2 // Copyright (c) 2010-2013 Apple Inc. All rights reserved.
4 // @APPLE_APACHE_LICENSE_HEADER_START@
6 // Licensed under the Apache License, Version 2.0 (the "License");
7 // you may not use this file except in compliance with the License.
8 // You may obtain a copy of the License at
10 // http://www.apache.org/licenses/LICENSE-2.0
12 // Unless required by applicable law or agreed to in writing, software
13 // distributed under the License is distributed on an "AS IS" BASIS,
14 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 // See the License for the specific language governing permissions and
16 // limitations under the License.
18 // @APPLE_APACHE_LICENSE_HEADER_END@
21 #include "<DEVELOPER_DIR>/Makefiles/CoreOS/Xcode/BSD.xcconfig"
22 #include "<DEVELOPER_DIR>/AppleInternal/XcodeConfig/PlatformSupport.xcconfig"
24 SDKROOT = macosx.internal
25 SUPPORTED_PLATFORMS = macosx iphoneos iphonesimulator appletvos appletvsimulator watchos watchsimulator
26 PRODUCT_NAME = libdispatch
28 INSTALL_PATH = /usr/lib/system
29 PUBLIC_HEADERS_FOLDER_PATH = /usr/include/dispatch
30 PRIVATE_HEADERS_FOLDER_PATH = /usr/local/include/dispatch
31 OS_PUBLIC_HEADERS_FOLDER_PATH = /usr/include/os
32 OS_PRIVATE_HEADERS_FOLDER_PATH = /usr/local/include/os
33 HEADER_SEARCH_PATHS = $(PROJECT_DIR) $(PROJECT_DIR)/private $(PROJECT_DIR)/src
34 LIBRARY_SEARCH_PATHS = $(SDKROOT)/usr/lib/system $(SDKROOT)/usr/local/lib
35 INSTALLHDRS_SCRIPT_PHASE = YES
36 ALWAYS_SEARCH_USER_PATHS = NO
38 BUILD_VARIANTS = normal debug profile
40 CLANG_LINK_OBJC_RUNTIME = NO
41 GCC_C_LANGUAGE_STANDARD = gnu11
42 CLANG_CXX_LANGUAGE_STANDARD = gnu++11
43 ENABLE_STRICT_OBJC_MSGSEND = YES
44 GCC_ENABLE_CPP_EXCEPTIONS = NO
45 GCC_STRICT_ALIASING = YES
46 GCC_SYMBOLS_PRIVATE_EXTERN = YES
47 GCC_ENABLE_PASCAL_STRINGS = NO
49 GCC_WARN_64_TO_32_BIT_CONVERSION = YES
50 GCC_WARN_ABOUT_RETURN_TYPE = YES
51 GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES
52 GCC_WARN_ABOUT_MISSING_NEWLINE = YES
53 GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES
54 GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES
55 GCC_WARN_SIGN_COMPARE = YES
56 GCC_WARN_STRICT_SELECTOR_MATCH = YES
57 GCC_WARN_UNDECLARED_SELECTOR = YES
58 GCC_WARN_UNINITIALIZED_AUTOS = YES
59 GCC_WARN_UNKNOWN_PRAGMAS = YES
60 GCC_WARN_UNUSED_FUNCTION = YES
61 GCC_WARN_UNUSED_LABEL = YES
62 GCC_WARN_UNUSED_PARAMETER = YES
63 GCC_WARN_UNUSED_VARIABLE = YES
64 CLANG_WARN_ASSIGN_ENUM = YES
65 CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES
66 CLANG_WARN_DOCUMENTATION_COMMENTS = YES
67 CLANG_WARN__DUPLICATE_METHOD_MATCH = YES
68 CLANG_WARN_EMPTY_BODY = YES
69 CLANG_WARN_IMPLICIT_SIGN_CONVERSION = YES
70 CLANG_WARN_INFINITE_RECURSION = YES
71 CLANG_WARN_OBJC_IMPLICIT_ATOMIC_PROPERTIES = YES
72 CLANG_WARN_OBJC_MISSING_PROPERTY_SYNTHESIS = YES
73 CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES
74 CLANG_WARN_SUSPICIOUS_MOVE = YES
75 CLANG_WARN_UNREACHABLE_CODE = YES
76 GCC_TREAT_WARNINGS_AS_ERRORS = YES
77 GCC_OPTIMIZATION_LEVEL = s
78 GCC_NO_COMMON_BLOCKS = YES
79 GCC_PREPROCESSOR_DEFINITIONS = __DARWIN_NON_CANCELABLE=1 $(DISPATCH_PREPROCESSOR_DEFINITIONS)
80 STATICLIB_PREPROCESSOR_DEFINITIONS = DISPATCH_VARIANT_STATIC=1 USE_OBJC=0 DISPATCH_USE_DTRACE=0
81 WARNING_CFLAGS = -Wall -Wextra -Warray-bounds-pointer-arithmetic -Watomic-properties -Wcomma -Wconditional-uninitialized -Wcovered-switch-default -Wdate-time -Wdeprecated -Wdouble-promotion -Wduplicate-enum -Wexpansion-to-defined -Wfloat-equal -Widiomatic-parentheses -Wignored-qualifiers -Wimplicit-fallthrough -Wnullable-to-nonnull-conversion -Wobjc-interface-ivars -Wover-aligned -Wpacked -Wpointer-arith -Wselector -Wstatic-in-inline -Wsuper-class-method-mismatch -Wswitch-enum -Wtautological-compare -Wunguarded-availability -Wunused -Wno-unknown-warning-option $(NO_WARNING_CFLAGS)
82 NO_WARNING_CFLAGS = -Wno-pedantic -Wno-bad-function-cast -Wno-c++-compat -Wno-c++98-compat -Wno-c++98-compat-pedantic -Wno-cast-align -Wno-cast-qual -Wno-disabled-macro-expansion -Wno-documentation-unknown-command -Wno-format-nonliteral -Wno-missing-variable-declarations -Wno-old-style-cast -Wno-padded -Wno-reserved-id-macro -Wno-shift-sign-overflow -Wno-undef -Wno-unreachable-code-aggressive -Wno-unused-macros -Wno-used-but-marked-unused -Wno-vla
83 OTHER_CFLAGS = -fverbose-asm -isystem $(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders $(PLATFORM_CFLAGS)
84 OTHER_CFLAGS[arch=i386][sdk=macosx*] = $(OTHER_CFLAGS) -fno-unwind-tables -fno-asynchronous-unwind-tables -fno-exceptions
85 OTHER_CFLAGS_normal = -momit-leaf-frame-pointer
86 OTHER_CFLAGS_profile = $(OTHER_CFLAGS_normal) -DDISPATCH_PROFILE=1 -DDISPATCH_PERF_MON=1
87 OTHER_CFLAGS_debug = -fstack-protector -fno-inline -O0 -DDISPATCH_DEBUG=1 -DOS_DEBUG=1
88 GENERATE_PROFILING_CODE = NO
89 DYLIB_CURRENT_VERSION = $(CURRENT_PROJECT_VERSION)
90 SIM_SUFFIX[sdk=*simulator*] = _sim
91 DYLIB_LDFLAGS = -umbrella System -nodefaultlibs -ldyld -lcompiler_rt -lsystem$(SIM_SUFFIX)_kernel -lsystem$(SIM_SUFFIX)_platform -lsystem$(SIM_SUFFIX)_pthread -lsystem_malloc -lsystem_c -lsystem_blocks -lunwind
92 OBJC_LDFLAGS = -Wl,-upward-lobjc -Wl,-order_file,$(SRCROOT)/xcodeconfig/libdispatch.order
93 ALIASES_LDFLAGS = -Wl,-alias_list,$(SRCROOT)/xcodeconfig/libdispatch.aliases
94 OTHER_LDFLAGS = $(OTHER_LDFLAGS) $(DYLIB_LDFLAGS) $(CR_LDFLAGS) $(OBJC_LDFLAGS) $(ALIASES_LDFLAGS) $(PLATFORM_LDFLAGS)
95 OTHER_MIGFLAGS = -novouchers