project(darling-libsystem_init) cmake_minimum_required(VERSION 2.4.0) if(COMMAND cmake_policy) cmake_policy(SET CMP0003 NEW) endif(COMMAND cmake_policy) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -nostdinc -ggdb") set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -nostdlib -Wl,--warn-unresolved-symbols -Wl,--version-script=${DARLING_TOP_DIRECTORY}/darwin.map") include_directories(${DARLING_TOP_DIRECTORY}/src/libc/fbsdcompat) include_directories(${DARLING_TOP_DIRECTORY}/src/kernel/libsyscall/wrappers) if(CMAKE_SIZEOF_VOID_P EQUAL 4 OR CMAKE_INSTALL_LIBDIR STREQUAL "lib32") set(BITS 32) add_definitions(-DTARGET_CPU_X86=1) else(CMAKE_SIZEOF_VOID_P EQUAL 4 OR CMAKE_INSTALL_LIBDIR STREQUAL "lib32") set(BITS 64) add_definitions(-DTARGET_CPU_X86_64=1) endif(CMAKE_SIZEOF_VOID_P EQUAL 4 OR CMAKE_INSTALL_LIBDIR STREQUAL "lib32") add_definitions(-DTARGET_OS_MAC=1) add_definitions(-DHAVE_STDINT_H=1) add_definitions(-D__APPLE__ -D__DYNAMIC__) add_definitions(-Ddlsym=__darwin_dlsym) # Hide warnings add_definitions( -Wno-implicit-function-declaration -Wno-incompatible-pointer-types-discards-qualifiers -Wno-incompatible-pointer-types ) set(libsystem_sources init.c dummy.c libmacho/arch.c ) SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/darling") SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) add_library(system SHARED ${libsystem_sources}) target_link_libraries(system PRIVATE dyld) target_link_libraries(system PUBLIC system_malloc system_c system_kernel keymgr system_m system_info system_notify system_quarantine libdispatch_shared objc launch removefile system_copyfile unwind system_coreservices CommonCrypto xpc) install(TARGETS system DESTINATION ${CMAKE_INSTALL_LIBDIR}/darling)