1 # Figure out if we can track VC revisions.
2 function(find_first_existing_file out_var)
5 set(${out_var} "${file}" PARENT_SCOPE)
11 macro(find_first_existing_vc_file out_var path)
12 find_first_existing_file(${out_var}
13 "${path}/.git/logs/HEAD" # Git
14 "${path}/.svn/wc.db" # SVN 1.7
15 "${path}/.svn/entries" # SVN 1.6
19 find_first_existing_vc_file(llvm_vc "${LLVM_MAIN_SRC_DIR}")
21 # The VC revision include that we want to generate.
22 set(version_inc "${CMAKE_CURRENT_BINARY_DIR}/LLVMLTORevision.h")
24 set(get_svn_script "${LLVM_CMAKE_PATH}/GenerateVersionFromCVS.cmake")
27 # Create custom target to generate the VC revision include.
28 add_custom_command(OUTPUT "${version_inc}"
29 DEPENDS "${llvm_vc}" "${get_svn_script}"
31 ${CMAKE_COMMAND} "-DSOURCE_DIR=${LLVM_MAIN_SRC_DIR}"
32 "-DNAME=LLVM_REVISION"
33 "-DHEADER_FILE=${version_inc}"
34 -P "${get_svn_script}")
36 # Mark the generated header as being generated.
37 set_source_files_properties("${version_inc}"
38 PROPERTIES GENERATED TRUE
39 HEADER_FILE_ONLY TRUE)
41 # Tell Version.cpp that it needs to build with -DHAVE_SVN_VERSION_INC.
42 set_source_files_properties(Version.cpp
43 PROPERTIES COMPILE_DEFINITIONS "HAVE_SVN_VERSION_INC")
45 # Not producing a VC revision include.
50 add_llvm_library(LLVMLTO
56 UpdateCompilerUsed.cpp
57 ThinLTOCodeGenerator.cpp
60 ADDITIONAL_HEADER_DIRS
61 ${LLVM_MAIN_INCLUDE_DIR}/llvm/LTO