darling/cmake/darling_exe.cmake
Thomas A fcc3d8c766 Update add_darling_executable to reference crt1.10.6
Adding in crt.c object file breaks the bash executable, luckly it is not need for later versions (10.5 or later) of macOS. So we can just not include it.
2023-05-02 16:22:03 -07:00

34 lines
1003 B
CMake

if(COMMAND cmake_policy)
cmake_policy(SET CMP0003 NEW)
cmake_policy(SET CMP0011 NEW)
endif(COMMAND cmake_policy)
include(use_ld64)
FUNCTION(add_darling_executable exe)
foreach(f IN LISTS ARGN)
set(files ${files} ${f})
endforeach(f)
add_executable(${exe} ${files})
set_property(TARGET ${exe} APPEND_STRING PROPERTY
LINK_FLAGS " ${CMAKE_EXE_LINKER_FLAGS} -nostdlib ${CMAKE_BINARY_DIR}/src/external/csu/CMakeFiles/crt1.10.6.dir/start.S.o ")
if (BUILD_TARGET_64BIT)
target_compile_options(${exe} PRIVATE -arch ${APPLE_ARCH_64BIT})
elseif (BUILD_TARGET_32BIT)
target_compile_options(${exe} PRIVATE -arch ${APPLE_ARCH_32BIT})
set_property(TARGET ${exe} APPEND_STRING PROPERTY
LINK_FLAGS " -arch ${APPLE_ARCH_32BIT}")
endif (BUILD_TARGET_64BIT)
use_ld64(${exe})
target_link_libraries(${exe} system)
add_dependencies(${exe} crt1.10.6)
if ((NOT NO_DSYM) AND (NOT ${exe}_NO_DSYM))
dsym(${exe})
endif ((NOT NO_DSYM) AND (NOT ${exe}_NO_DSYM))
ENDFUNCTION(add_darling_executable)