1 /*
2 Copyright Ruslan Baratov 2017
3 Copyright Rene Rivera 2017
4 Distributed under the Boost Software License, Version 1.0.
5 (See accompanying file LICENSE_1_0.txt or copy at
6 http://www.boost.org/LICENSE_1_0.txt)
7 */
8 
9 #ifndef BOOST_PREDEF_PLAT_IOS_H
10 #define BOOST_PREDEF_PLAT_IOS_H
11 
12 #include <boost/predef/os/ios.h> // BOOST_OS_IOS
13 #include <boost/predef/version_number.h> // BOOST_VERSION_NUMBER_NOT_AVAILABLE
14 
15 /* tag::reference[]
16 = `BOOST_PLAT_IOS_DEVICE`
17 = `BOOST_PLAT_IOS_SIMULATOR`
18 
19 [options="header"]
20 |===
21 | {predef_symbol} | {predef_version}
22 
23 | `TARGET_IPHONE_SIMULATOR` | {predef_detection}
24 | `TARGET_OS_SIMULATOR` | {predef_detection}
25 |===
26 */ // end::reference[]
27 
28 #define BOOST_PLAT_IOS_DEVICE BOOST_VERSION_NUMBER_NOT_AVAILABLE
29 #define BOOST_PLAT_IOS_SIMULATOR BOOST_VERSION_NUMBER_NOT_AVAILABLE
30 
31 // https://opensource.apple.com/source/CarbonHeaders/CarbonHeaders-18.1/TargetConditionals.h
32 #if BOOST_OS_IOS
33 #    include <TargetConditionals.h>
34 #    if defined(TARGET_OS_SIMULATOR) && (TARGET_OS_SIMULATOR == 1)
35 #        undef BOOST_PLAT_IOS_SIMULATOR
36 #        define BOOST_PLAT_IOS_SIMULATOR BOOST_VERSION_NUMBER_AVAILABLE
37 #    elif defined(TARGET_IPHONE_SIMULATOR) && (TARGET_IPHONE_SIMULATOR == 1)
38 #        undef BOOST_PLAT_IOS_SIMULATOR
39 #        define BOOST_PLAT_IOS_SIMULATOR BOOST_VERSION_NUMBER_AVAILABLE
40 #    else
41 #        undef BOOST_PLAT_IOS_DEVICE
42 #        define BOOST_PLAT_IOS_DEVICE BOOST_VERSION_NUMBER_AVAILABLE
43 #    endif
44 #endif
45 
46 #if BOOST_PLAT_IOS_SIMULATOR
47 #    define BOOST_PLAT_IOS_SIMULATOR_AVAILABLE
48 #    include <boost/predef/detail/platform_detected.h>
49 #endif
50 
51 #if BOOST_PLAT_IOS_DEVICE
52 #    define BOOST_PLAT_IOS_DEVICE_AVAILABLE
53 #    include <boost/predef/detail/platform_detected.h>
54 #endif
55 
56 #define BOOST_PLAT_IOS_SIMULATOR_NAME "iOS Simulator"
57 #define BOOST_PLAT_IOS_DEVICE_NAME "iOS Device"
58 
59 #endif // BOOST_PREDEF_PLAT_IOS_H
60 
61 #include <boost/predef/detail/test.h>
62 BOOST_PREDEF_DECLARE_TEST(BOOST_PLAT_IOS_SIMULATOR,BOOST_PLAT_IOS_SIMULATOR_NAME)
63 BOOST_PREDEF_DECLARE_TEST(BOOST_PLAT_IOS_DEVICE,BOOST_PLAT_IOS_DEVICE_NAME)
64