Loading...
#include "base.xcconfig" // Allow building for all platforms SUPPORTED_PLATFORMS = macosx iphoneos xros watchos appletvos bridgeos watchsimulator iphonesimulator xrsimulator appletvsimulator exclavekit.macosx exclavekit.iphoneos exclavekit.appletvos exclavekit.xros exclavekit.watchos driverkit // Some headers are generated by copy and script phases. INSTALLHDRS_COPY_PHASE = YES INSTALLHDRS_SCRIPT_PHASE = YES // Most headers go into /usr/include/mach-o PUBLIC_HEADERS_FOLDER_PATH = ${SYSTEM_PREFIX}/usr/include/mach-o PUBLIC_HEADERS_FOLDER_PATH[sdk=driverkit*] = $(DRIVERKITROOT)/Runtime/usr/include/mach-o PRIVATE_HEADERS_FOLDER_PATH = ${SYSTEM_PREFIX}/usr/local/include/mach-o PRIVATE_HEADERS_FOLDER_PATH[sdk=driverkit*] = $(DRIVERKITROOT)/Runtime/usr/local/include/mach-o // A small set of headers go into /usr/include SECOND_PUBLIC_HEADERS_FOLDER_PATH = $(SYSTEM_PREFIX)/usr/include SECOND_PUBLIC_HEADERS_FOLDER_PATH[sdk=driverkit*] = $(DRIVERKITROOT)/usr/include SECOND_PRIVATE_HEADERS_FOLDER_PATH = $(SYSTEM_PREFIX)/usr/local/include SECOND_PRIVATE_HEADERS_FOLDER_PATH[sdk=driverkit*] = $(DRIVERKITROOT)/usr/local/include IS_ZIPPERED = YES LIBSYSTEM_LIBS[sdk=*simulator*] = -Wl,-no_warn_unused_dylibs -Wl,-upward-lsystem_sim_platform -Wl,-upward-lsystem_malloc -Wl,-upward-lsystem_c -Wl,-upward-lsystem_sim_pthread -Wl,-upward-lxpc -Wl,-upward-lsystem_blocks -Wl,-upward-lsystem_sim_kernel -Wl,-upward-ldispatch LIBSYSTEM_LIBS[sdk=embedded*] = -Wl,-no_warn_unused_dylibs -Wl,-upward-lsystem_platform -Wl,-upward-lsystem_malloc -Wl,-upward-lsystem_c -Wl,-upward-lsystem_pthread -Wl,-upward-lxpc -Wl,-upward-lsystem_blocks -Wl,-upward-lsystem_kernel -Wl,-upward-ldispatch -Wl,-upward-lcompiler_rt LIBSYSTEM_LIBS[sdk=macosx*] = -Wl,-no_warn_unused_dylibs -Wl,-upward-lsystem_platform -Wl,-upward-lsystem_malloc -Wl,-upward-lsystem_c -Wl,-upward-lsystem_pthread -Wl,-upward-lxpc -Wl,-upward-lsystem_blocks -Wl,-upward-lsystem_kernel -Wl,-upward-ldispatch -Wl,-upward-lcompiler_rt LIBSYSTEM_LIBS[sdk=driverkit*] = -Wl,-no_warn_unused_dylibs -Wl,-upward-lsystem_platform -Wl,-upward-lsystem_malloc -Wl,-upward-lsystem_c -Wl,-upward-lsystem_pthread -Wl,-upward-lsystem_blocks -Wl,-upward-lsystem_kernel LIBSYSTEM_LIBS[sdk=exclavekit*] = -Wl,-no_warn_unused_dylibs -Wl,-upward-llibc -Wl,-upward-lsystem_malloc -Wl,-upward-lsystem_blocks INSTALL_PATH = $(SYSTEM_PREFIX)/usr/lib/system // Disable building the _asan variant for dyld on ExclaveKit BUILD_VARIANTS[sdk=exclavekit*] = normal GCC_PREPROCESSOR_DEFINITIONS_Release = GCC_PREPROCESSOR_DEFINITIONS_Debug = DEBUG=1 GCC_PREPROCESSOR_DEFINITIONS = $(GCC_PREPROCESSOR_DEFINITIONS_$(CONFIGURATION)) BUILDING_LIBDYLD=1 GCC_PREPROCESSOR_DEFINITIONS[sdk=exclavekit*] = $(GCC_PREPROCESSOR_DEFINITIONS_$(CONFIGURATION)) BUILDING_LIBDYLD=1 L4_CONFIG_PLAT_EVP=1 // Turn off the use of __libcpp_verbose_abort from std::string_view CLANG_CXX_STANDARD_LIBRARY_HARDENING[sdk=exclavekit*] = '_LIBCPP_HARDENING_MODE_NONE' SYSTEM_HEADER_SEARCH_PATHS = SYSTEM_HEADER_SEARCH_PATHS[sdk=exclavekit*] = $(SDKROOT)$(SYSTEM_PREFIX)/usr/local/standalone/cL4/include SYSTEM_HEADER_SEARCH_PATHS[sdk=driverkit*] = $(SDKROOT)/$(DRIVERKITROOT)/usr/include/c++/v1 $(SDKROOT)/$(DRIVERKITROOT)/Runtime/usr/local/include $(SDKROOT)/$(DRIVERKITROOT)/Runtime/usr/include $(SDKROOT)/$(SYSTEM_PREFIX)/usr/include $(SDKROOT)/$(DRIVERKITROOT)/usr/local/include SYSTEM_FRAMEWORK_SEARCH_PATHS[sdk=driverkit*] = $(SDKROOT)/$(DRIVERKITROOT)/System/Library/PrivateFrameworks $(SDKROOT)/$(DRIVERKITROOT)/Runtime/System/Library/Frameworks // We don't have many symbols in libdyld.dylib, so mark them up manually with __attribute__((section())) and avoid the SDK dirty data file // FIXME: We force DATA_CONST for now to ensure ld64 generates split seg v2 on x86_64 DIRTY = -Wl,-dirty_data_list,${SRCROOT}/configs/libdyld.dirty -Wl,-data_const // FIXME: -Wl,-unexported_symbol is a hack to deal with C++20 comparison visbility, we can probably fix it better OTHER_LDFLAGS = -Wl,-no_inits -nostdlib -lCrashReporterClient $(LIBSYSTEM_LIBS) -umbrella System -L$(SDKROOT)/$(DRIVERKITROOT)/usr/lib/system $(EXTRA_SECTIONS) -Wl,-unexported_symbol,__ZNSt3* $(DIRTY) OTHER_LDFLAGS[sdk=exclavekit*] = -Wl,-no_inits -nostdlib $(LIBSYSTEM_LIBS) -umbrella System -L$(SDKROOT)/$(SYSTEM_PREFIX)/usr/lib/system $(EXTRA_SECTIONS) -Wl,-unexported_symbol,__ZNSt3* $(DIRTY) OTHER_TAPI_FLAGS = -umbrella System $(inherited) TAPI_EXTRA_PUBLIC_HEADERS = ${SRCROOT}/include/dlfcn.h TAPI_EXTRA_PRIVATE_HEADERS = ${SRCROOT}/include/mach-o/dyld_priv.h ${SRCROOT}/include/dlfcn_private.h CODE_SIGN_IDENTITY = $(TRUSTED_CODE_SIGN_IDENTITY) // TODO: Clean these up. They were moved from the build settings EXECUTABLE_PREFIX = lib HEADER_SEARCH_PATHS = ./include ONLY_ACTIVE_ARCH[config=Debug] = NO PRODUCT_NAME = dyld SUPPORTS_TEXT_BASED_API = YES TAPI_VERIFY_MODE = Pedantic USER_HEADER_SEARCH_PATHS = $(DERIVED_FILE_DIR) VERSION_INFO_EXPORT_DECL = __attribute__((visibility("default"))) |