mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-25 14:02:52 +02:00
691da67fd3
Declare the LLVM_CMAKE_PATH to the source directory location of CMake files, in order to make it possible to easily use them in subprojects. Such a variable is already declared in most of LLVM projects (and inconsistently mixed with direct source tree references), including Clang, LLDB, compiler-rt, libcxx... Declaring it inside main LLVM tree makes it possible to avoid having to declare fallback values or use conditionals in those projects. It should be noted that in some of the subprojects LLVM_CMAKE_PATH is used to reference generated LLVMConfig.cmake file. However, these references are conditional to stand-alone builds and explicitly including this file is unnecessary in combined builds. Differential Revision: https://reviews.llvm.org/D25724 llvm-svn: 284581
65 lines
1.7 KiB
CMake
65 lines
1.7 KiB
CMake
# Figure out if we can track VC revisions.
|
|
function(find_first_existing_file out_var)
|
|
foreach(file ${ARGN})
|
|
if(EXISTS "${file}")
|
|
set(${out_var} "${file}" PARENT_SCOPE)
|
|
return()
|
|
endif()
|
|
endforeach()
|
|
endfunction()
|
|
|
|
macro(find_first_existing_vc_file out_var path)
|
|
find_first_existing_file(${out_var}
|
|
"${path}/.git/logs/HEAD" # Git
|
|
"${path}/.svn/wc.db" # SVN 1.7
|
|
"${path}/.svn/entries" # SVN 1.6
|
|
)
|
|
endmacro()
|
|
|
|
find_first_existing_vc_file(llvm_vc "${LLVM_MAIN_SRC_DIR}")
|
|
|
|
# The VC revision include that we want to generate.
|
|
set(version_inc "${CMAKE_CURRENT_BINARY_DIR}/LLVMLTORevision.h")
|
|
|
|
set(get_svn_script "${LLVM_CMAKE_PATH}/GenerateVersionFromCVS.cmake")
|
|
|
|
if(DEFINED llvm_vc)
|
|
# Create custom target to generate the VC revision include.
|
|
add_custom_command(OUTPUT "${version_inc}"
|
|
DEPENDS "${llvm_vc}" "${get_svn_script}"
|
|
COMMAND
|
|
${CMAKE_COMMAND} "-DSOURCE_DIR=${LLVM_MAIN_SRC_DIR}"
|
|
"-DNAME=LLVM_REVISION"
|
|
"-DHEADER_FILE=${version_inc}"
|
|
-P "${get_svn_script}")
|
|
|
|
# Mark the generated header as being generated.
|
|
set_source_files_properties("${version_inc}"
|
|
PROPERTIES GENERATED TRUE
|
|
HEADER_FILE_ONLY TRUE)
|
|
|
|
# Tell Version.cpp that it needs to build with -DHAVE_SVN_VERSION_INC.
|
|
set_source_files_properties(Version.cpp
|
|
PROPERTIES COMPILE_DEFINITIONS "HAVE_SVN_VERSION_INC")
|
|
else()
|
|
# Not producing a VC revision include.
|
|
set(version_inc)
|
|
endif()
|
|
|
|
|
|
add_llvm_library(LLVMLTO
|
|
Caching.cpp
|
|
LTO.cpp
|
|
LTOBackend.cpp
|
|
LTOModule.cpp
|
|
LTOCodeGenerator.cpp
|
|
UpdateCompilerUsed.cpp
|
|
ThinLTOCodeGenerator.cpp
|
|
${version_inc}
|
|
|
|
ADDITIONAL_HEADER_DIRS
|
|
${LLVM_MAIN_INCLUDE_DIR}/llvm/LTO
|
|
)
|
|
|
|
add_dependencies(LLVMLTO intrinsics_gen)
|