mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-13 22:24:07 +00:00
CMake: Automatic regeneration of the library dependencies file.
It doesn't stop or reconfigure the build, though, so the user will see a broken build that magically succeeds at the next attempt. It is technically possible to halt the build with a helpful message, and even to automatically restart the build using the new dependencies as it we did when llvm-config was used by cmake for learning dependencies. This is left on the TODO list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79004 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -124,4 +124,26 @@ install(FILES ${LLVM_CONFIG}
|
||||
WORLD_READ WORLD_EXECUTE
|
||||
DESTINATION bin)
|
||||
|
||||
|
||||
# Regeneration of library dependencies.
|
||||
|
||||
# See the comments at the end of cmake/modules/LLVMConfig.cmake for
|
||||
# notes and guidelines.
|
||||
|
||||
set(LLVMLibDeps ${LLVM_MAIN_SRC_DIR}/cmake/modules/LLVMLibDeps.cmake)
|
||||
set(LLVMLibDeps_TMP ${CMAKE_CURRENT_BINARY_DIR}/LLVMLibDeps.cmake.tmp)
|
||||
|
||||
add_custom_command(OUTPUT ${LLVMLibDeps_TMP}
|
||||
COMMAND sed -e s'@\\.a@@g' -e 's@libLLVM@LLVM@g' -e 's@: @ @' -e 's@\\\(.*\\\)@set\(MSVC_LIB_DEPS_\\1\)@' ${FINAL_LIBDEPS} > ${LLVMLibDeps_TMP}
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${LLVMLibDeps_TMP} ${LLVMLibDeps}
|
||||
DEPENDS ${FINAL_LIBDEPS}
|
||||
COMMENT "Updating cmake library dependencies file ${LLVMLibDeps}"
|
||||
)
|
||||
|
||||
if( LLVM_TARGETS_TO_BUILD STREQUAL LLVM_ALL_TARGETS )
|
||||
add_custom_target(llvmlibdeps.target ALL DEPENDS ${LLVMLibDeps_TMP})
|
||||
add_dependencies(llvmlibdeps.target llvm-config.target)
|
||||
set(LLVM_COMMON_DEPENDS ${LLVM_COMMON_DEPENDS} llvmlibdeps.target)
|
||||
endif()
|
||||
|
||||
set(LLVM_COMMON_DEPENDS ${LLVM_COMMON_DEPENDS} PARENT_SCOPE)
|
||||
|
Reference in New Issue
Block a user