1*9880d681SAndroid Build Coastguard Worker# Figure out if we can track VC revisions. 2*9880d681SAndroid Build Coastguard Workerfunction(find_first_existing_file out_var) 3*9880d681SAndroid Build Coastguard Worker foreach(file ${ARGN}) 4*9880d681SAndroid Build Coastguard Worker if(EXISTS "${file}") 5*9880d681SAndroid Build Coastguard Worker set(${out_var} "${file}" PARENT_SCOPE) 6*9880d681SAndroid Build Coastguard Worker return() 7*9880d681SAndroid Build Coastguard Worker endif() 8*9880d681SAndroid Build Coastguard Worker endforeach() 9*9880d681SAndroid Build Coastguard Workerendfunction() 10*9880d681SAndroid Build Coastguard Worker 11*9880d681SAndroid Build Coastguard Workermacro(find_first_existing_vc_file out_var path) 12*9880d681SAndroid Build Coastguard Worker find_first_existing_file(${out_var} 13*9880d681SAndroid Build Coastguard Worker "${path}/.git/logs/HEAD" # Git 14*9880d681SAndroid Build Coastguard Worker "${path}/.svn/wc.db" # SVN 1.7 15*9880d681SAndroid Build Coastguard Worker "${path}/.svn/entries" # SVN 1.6 16*9880d681SAndroid Build Coastguard Worker ) 17*9880d681SAndroid Build Coastguard Workerendmacro() 18*9880d681SAndroid Build Coastguard Worker 19*9880d681SAndroid Build Coastguard Workerfind_first_existing_vc_file(llvm_vc "${LLVM_MAIN_SRC_DIR}") 20*9880d681SAndroid Build Coastguard Worker 21*9880d681SAndroid Build Coastguard Worker# The VC revision include that we want to generate. 22*9880d681SAndroid Build Coastguard Workerset(version_inc "${CMAKE_CURRENT_BINARY_DIR}/LLVMLTORevision.h") 23*9880d681SAndroid Build Coastguard Worker 24*9880d681SAndroid Build Coastguard Workerset(get_svn_script "${LLVM_MAIN_SRC_DIR}/cmake/modules/GenerateVersionFromCVS.cmake") 25*9880d681SAndroid Build Coastguard Worker 26*9880d681SAndroid Build Coastguard Workerif(DEFINED llvm_vc) 27*9880d681SAndroid Build Coastguard Worker # Create custom target to generate the VC revision include. 28*9880d681SAndroid Build Coastguard Worker add_custom_command(OUTPUT "${version_inc}" 29*9880d681SAndroid Build Coastguard Worker DEPENDS "${llvm_vc}" "${get_svn_script}" 30*9880d681SAndroid Build Coastguard Worker COMMAND 31*9880d681SAndroid Build Coastguard Worker ${CMAKE_COMMAND} "-DSOURCE_DIR=${LLVM_MAIN_SRC_DIR}" 32*9880d681SAndroid Build Coastguard Worker "-DNAME=LLVM_REVISION" 33*9880d681SAndroid Build Coastguard Worker "-DHEADER_FILE=${version_inc}" 34*9880d681SAndroid Build Coastguard Worker -P "${get_svn_script}") 35*9880d681SAndroid Build Coastguard Worker 36*9880d681SAndroid Build Coastguard Worker # Mark the generated header as being generated. 37*9880d681SAndroid Build Coastguard Worker set_source_files_properties("${version_inc}" 38*9880d681SAndroid Build Coastguard Worker PROPERTIES GENERATED TRUE 39*9880d681SAndroid Build Coastguard Worker HEADER_FILE_ONLY TRUE) 40*9880d681SAndroid Build Coastguard Worker 41*9880d681SAndroid Build Coastguard Worker # Tell Version.cpp that it needs to build with -DHAVE_SVN_VERSION_INC. 42*9880d681SAndroid Build Coastguard Worker set_source_files_properties(Version.cpp 43*9880d681SAndroid Build Coastguard Worker PROPERTIES COMPILE_DEFINITIONS "HAVE_SVN_VERSION_INC") 44*9880d681SAndroid Build Coastguard Workerelse() 45*9880d681SAndroid Build Coastguard Worker # Not producing a VC revision include. 46*9880d681SAndroid Build Coastguard Worker set(version_inc) 47*9880d681SAndroid Build Coastguard Workerendif() 48*9880d681SAndroid Build Coastguard Worker 49*9880d681SAndroid Build Coastguard Worker 50*9880d681SAndroid Build Coastguard Workeradd_llvm_library(LLVMLTO 51*9880d681SAndroid Build Coastguard Worker LTO.cpp 52*9880d681SAndroid Build Coastguard Worker LTOModule.cpp 53*9880d681SAndroid Build Coastguard Worker LTOCodeGenerator.cpp 54*9880d681SAndroid Build Coastguard Worker UpdateCompilerUsed.cpp 55*9880d681SAndroid Build Coastguard Worker ThinLTOCodeGenerator.cpp 56*9880d681SAndroid Build Coastguard Worker ${version_inc} 57*9880d681SAndroid Build Coastguard Worker 58*9880d681SAndroid Build Coastguard Worker ADDITIONAL_HEADER_DIRS 59*9880d681SAndroid Build Coastguard Worker ${LLVM_MAIN_INCLUDE_DIR}/llvm/LTO 60*9880d681SAndroid Build Coastguard Worker) 61*9880d681SAndroid Build Coastguard Worker 62*9880d681SAndroid Build Coastguard Workeradd_dependencies(LLVMLTO intrinsics_gen) 63