mirror of
https://github.com/ldc-developers/ldc.git
synced 2025-05-04 17:11:44 +03:00
Don't link ldc-build-runtime and ldc-prune-cache against LLVM libs
This commit is contained in:
parent
1c79b5bf65
commit
dd04ea5191
2 changed files with 20 additions and 25 deletions
|
@ -626,24 +626,12 @@ if(UNIX AND (CMAKE_COMPILER_IS_GNUCXX OR (${CMAKE_CXX_COMPILER_ID} MATCHES "Clan
|
||||||
message(STATUS "Host D compiler linker program: ${D_LINKER_COMMAND}")
|
message(STATUS "Host D compiler linker program: ${D_LINKER_COMMAND}")
|
||||||
message(STATUS "Host D compiler linker flags: ${D_LINKER_ARGS}")
|
message(STATUS "Host D compiler linker flags: ${D_LINKER_ARGS}")
|
||||||
endif()
|
endif()
|
||||||
list(APPEND LDC_LINKERFLAG_LIST ${D_LINKER_ARGS})
|
|
||||||
|
|
||||||
if(NOT "${CMAKE_EXE_LINKER_FLAGS}" STREQUAL "")
|
|
||||||
separate_arguments(flags UNIX_COMMAND "${CMAKE_EXE_LINKER_FLAGS}")
|
|
||||||
list(APPEND LDC_LINKERFLAG_LIST ${flags})
|
|
||||||
endif()
|
|
||||||
else()
|
|
||||||
# Use D compiler for linking, trying to translate a few common linker flags.
|
|
||||||
set(LDC_TRANSLATED_LINKER_FLAGS "")
|
|
||||||
foreach(f ${LDC_LINKERFLAG_LIST})
|
|
||||||
string(REPLACE "-LIBPATH:" "/LIBPATH:" f ${f})
|
|
||||||
list(APPEND LDC_TRANSLATED_LINKER_FLAGS "-L${f}")
|
|
||||||
endforeach()
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# CONFIG generator expressions need to be repeated due to https://cmake.org/Bug/view.php?id=14353
|
# CONFIG generator expressions need to be repeated due to https://cmake.org/Bug/view.php?id=14353
|
||||||
if(MSVC_IDE)
|
if(MSVC_IDE)
|
||||||
separate_arguments(LDC_FLAG_LIST WINDOWS_COMMAND "${LDC_TRANSLATED_LINKER_FLAGS} ${D_COMPILER_FLAGS} ${DDMD_DFLAGS} ${DDMD_LFLAGS}")
|
translate_linker_args(linker_args translated_linker_args)
|
||||||
|
separate_arguments(LDC_FLAG_LIST WINDOWS_COMMAND "${D_COMPILER_FLAGS} ${DDMD_DFLAGS} ${DDMD_LFLAGS} ${translated_linker_args}")
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
OUTPUT ${LDC_EXE_FULL}
|
OUTPUT ${LDC_EXE_FULL}
|
||||||
COMMAND ${D_COMPILER} -L$<TARGET_LINKER_FILE:${LDC_LIB}> ${LDC_FLAG_LIST} -of${LDC_EXE_FULL} ${LDC_D_SOURCE_FILES} $<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:-g> $<$<NOT:$<CONFIG:Debug>>:-O> $<$<NOT:$<CONFIG:Debug>>:-inline> $<$<NOT:$<CONFIG:Debug>>:-release>
|
COMMAND ${D_COMPILER} -L$<TARGET_LINKER_FILE:${LDC_LIB}> ${LDC_FLAG_LIST} -of${LDC_EXE_FULL} ${LDC_D_SOURCE_FILES} $<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:-g> $<$<NOT:$<CONFIG:Debug>>:-O> $<$<NOT:$<CONFIG:Debug>>:-inline> $<$<NOT:$<CONFIG:Debug>>:-release>
|
||||||
|
@ -656,7 +644,7 @@ else()
|
||||||
"${LDC_EXE_FULL}"
|
"${LDC_EXE_FULL}"
|
||||||
"${LDC_D_SOURCE_FILES}"
|
"${LDC_D_SOURCE_FILES}"
|
||||||
""
|
""
|
||||||
"$<TARGET_LINKER_FILE:${LDC_LIB}>"
|
"$<TARGET_LINKER_FILE:${LDC_LIB}>;${LDC_LINKERFLAG_LIST}"
|
||||||
"${FE_RES}"
|
"${FE_RES}"
|
||||||
"${LDC_LIB}"
|
"${LDC_LIB}"
|
||||||
${COMPILE_D_MODULES_SEPARATELY}
|
${COMPILE_D_MODULES_SEPARATELY}
|
||||||
|
@ -699,7 +687,7 @@ build_d_executable(
|
||||||
"${LDMD_EXE_FULL}"
|
"${LDMD_EXE_FULL}"
|
||||||
"${LDMD_D_SOURCE_FILES}"
|
"${LDMD_D_SOURCE_FILES}"
|
||||||
""
|
""
|
||||||
"$<TARGET_LINKER_FILE:LDMD_CXX_LIB>"
|
"$<TARGET_LINKER_FILE:LDMD_CXX_LIB>;${LDC_LINKERFLAG_LIST}"
|
||||||
""
|
""
|
||||||
"LDMD_CXX_LIB"
|
"LDMD_CXX_LIB"
|
||||||
${COMPILE_D_MODULES_SEPARATELY}
|
${COMPILE_D_MODULES_SEPARATELY}
|
||||||
|
@ -858,7 +846,7 @@ build_d_executable(
|
||||||
"${LDC_UNITTEST_EXE_FULL}"
|
"${LDC_UNITTEST_EXE_FULL}"
|
||||||
"${LDC_D_SOURCE_FILES}"
|
"${LDC_D_SOURCE_FILES}"
|
||||||
"-unittest"
|
"-unittest"
|
||||||
"$<TARGET_LINKER_FILE:${LDC_LIB}>"
|
"$<TARGET_LINKER_FILE:${LDC_LIB}>;${LDC_LINKERFLAG_LIST}"
|
||||||
""
|
""
|
||||||
"${LDC_LIB}"
|
"${LDC_LIB}"
|
||||||
ON # always build separately (faster with parallelization)
|
ON # always build separately (faster with parallelization)
|
||||||
|
|
|
@ -1,11 +1,21 @@
|
||||||
|
# Translates linker args for usage in DMD-compatible command-line (prepend -L).
|
||||||
|
macro(translate_linker_args in_var out_var)
|
||||||
|
set(${out_var} "")
|
||||||
|
foreach(f IN LISTS "${in_var}")
|
||||||
|
if(NOT "${f}" STREQUAL "")
|
||||||
|
string(REPLACE "-LIBPATH:" "/LIBPATH:" f ${f})
|
||||||
|
list(APPEND ${out_var} "-L${f}")
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
endmacro()
|
||||||
|
|
||||||
# Depends on these global variables:
|
# Depends on these global variables:
|
||||||
# - D_COMPILER
|
# - D_COMPILER
|
||||||
# - D_COMPILER_FLAGS
|
# - D_COMPILER_FLAGS
|
||||||
# - DDMD_DFLAGS
|
# - DDMD_DFLAGS
|
||||||
# - DDMD_LFLAGS
|
# - DDMD_LFLAGS
|
||||||
# - LDC_LINK_MANUALLY
|
# - LDC_LINK_MANUALLY
|
||||||
# - LDC_LINKERFLAG_LIST
|
# - D_LINKER_ARGS
|
||||||
# - LDC_TRANSLATED_LINKER_FLAGS
|
|
||||||
function(build_d_executable target_name output_exe d_src_files compiler_args linker_args extra_compile_deps link_deps compile_separately)
|
function(build_d_executable target_name output_exe d_src_files compiler_args linker_args extra_compile_deps link_deps compile_separately)
|
||||||
set(dflags "${D_COMPILER_FLAGS} ${DDMD_DFLAGS}")
|
set(dflags "${D_COMPILER_FLAGS} ${DDMD_DFLAGS}")
|
||||||
if(UNIX)
|
if(UNIX)
|
||||||
|
@ -51,7 +61,7 @@ function(build_d_executable target_name output_exe d_src_files compiler_args lin
|
||||||
RUNTIME_OUTPUT_DIRECTORY ${output_dir}
|
RUNTIME_OUTPUT_DIRECTORY ${output_dir}
|
||||||
LINKER_LANGUAGE CXX
|
LINKER_LANGUAGE CXX
|
||||||
)
|
)
|
||||||
target_link_libraries(${target_name} ${linker_args} ${LDC_LINKERFLAG_LIST})
|
target_link_libraries(${target_name} ${linker_args} ${D_LINKER_ARGS})
|
||||||
else()
|
else()
|
||||||
# Use a response file on Windows when compiling separately, in order not to
|
# Use a response file on Windows when compiling separately, in order not to
|
||||||
# exceed the max command-line length.
|
# exceed the max command-line length.
|
||||||
|
@ -62,13 +72,10 @@ function(build_d_executable target_name output_exe d_src_files compiler_args lin
|
||||||
set(objects_args "@${output_exe}.rsp")
|
set(objects_args "@${output_exe}.rsp")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(translated_linker_args "")
|
translate_linker_args(linker_args translated_linker_args)
|
||||||
foreach(f ${linker_args})
|
|
||||||
list(APPEND translated_linker_args "-L${f}")
|
|
||||||
endforeach()
|
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
OUTPUT ${output_exe}
|
OUTPUT ${output_exe}
|
||||||
COMMAND ${D_COMPILER} ${dflags} ${DDMD_LFLAGS} -of${output_exe} ${objects_args} ${translated_linker_args} ${LDC_TRANSLATED_LINKER_FLAGS}
|
COMMAND ${D_COMPILER} ${dflags} ${DDMD_LFLAGS} -of${output_exe} ${objects_args} ${translated_linker_args}
|
||||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
||||||
DEPENDS ${object_files} ${link_deps}
|
DEPENDS ${object_files} ${link_deps}
|
||||||
)
|
)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue