@@ -11,59 +11,32 @@ else()
1111 set (UUID_INCLUDE "${UUID_INCLUDE_DIRS} " )
1212endif ()
1313
14- # Figure out if we can track VC revisions.
15- # FIXME: Copied from Clang.
16- function (find_first_existing_file out_var)
17- foreach (file ${ARGN} )
18- if (EXISTS "${file} " )
19- set (${out_var} "${file} " PARENT_SCOPE)
20- return ()
21- endif ()
22- endforeach ()
23- endfunction ()
14+ function (generate_revision_inc revision_inc_var name dir)
15+ find_first_existing_vc_file("${dir} " ${name} _vc)
2416
25- macro (find_first_existing_vc_file out_var path )
26- find_first_existing_file(${out_var}
27- "${path} /.git/logs/HEAD" # Git
28- "${path} /.svn/wc.db" # SVN 1.7
29- "${path} /.svn/entries" # SVN 1.6
30- )
31- endmacro ()
17+ # Create custom target to generate the VC revision include.
18+ set (version_inc "${CMAKE_CURRENT_BINARY_DIR} /${name} Revision.inc" )
3219
33- set (generate_vcs_version_script "${LLVM_MAIN_SRC_DIR} /cmake/modules/GenerateVersionFromVCS.cmake" )
20+ set (generate_vcs_version_script "${LLVM_MAIN_SRC_DIR} /cmake/modules/GenerateVersionFromVCS.cmake" )
3421
35- function (generate_revision_inc revision_inc_var name dir)
36- find_first_existing_vc_file(dep_file "${dir} " )
37- # Create custom target to generate the VC revision include.
38- set (revision_inc "${CMAKE_CURRENT_BINARY_DIR} /${name} Revision.inc" )
39- string (TOUPPER ${name} upper_name)
40- if (DEFINED dep_file)
41- add_custom_command (OUTPUT "${revision_inc} "
42- DEPENDS "${dep_file} " "${generate_vcs_version_script} "
43- COMMAND
44- ${CMAKE_COMMAND} "-DNAMES=${upper_name} "
45- "-D${upper_name} _SOURCE_DIR=${dir} "
46- "-DHEADER_FILE=${revision_inc} "
47- -P "${generate_vcs_version_script} " )
48- else ()
49- # Generate an empty Revision.inc file if we are not using git or SVN.
50- file (WRITE "${revision_inc} " "" )
51- endif ()
22+ add_custom_command (OUTPUT "${version_inc} "
23+ DEPENDS "${${name} _vc}" "${generate_vcs_version_script} "
24+ COMMAND ${CMAKE_COMMAND} "-DNAMES=$<UPPER_CASE:name>"
25+ "-D$<UPPER_CASE:name>_SOURCE_DIR=${dir} "
26+ "-DHEADER_FILE=${version_inc} "
27+ -P "${generate_vcs_version_script} " )
5228
5329 # Mark the generated header as being generated.
54- set_source_files_properties ("${revision_inc } "
30+ set_source_files_properties ("${version_inc } "
5531 PROPERTIES GENERATED TRUE
5632 HEADER_FILE_ONLY TRUE )
57- set (${revision_inc_var} ${revision_inc } PARENT_SCOPE)
33+ set (${revision_inc_var} ${version_inc } PARENT_SCOPE)
5834endfunction ()
5935
6036generate_revision_inc(llvm_revision_inc LLVM "${LLVM_MAIN_SRC_DIR} " )
6137generate_revision_inc(clang_revision_inc Clang "${CLANG_MAIN_SRC_DIR} " )
6238generate_revision_inc(swift_revision_inc Swift "${SWIFT_SOURCE_DIR} " )
6339
64- set (version_inc_files
65- ${llvm_revision_inc} ${clang_revision_inc} ${swift_revision_inc} )
66-
6740add_swift_host_library(swiftBasic STATIC
6841 AnyValue.cpp
6942 Cache .cpp
@@ -95,7 +68,10 @@ add_swift_host_library(swiftBasic STATIC
9568 Unicode.cpp
9669 UUID.cpp
9770 Version .cpp
98- ${version_inc_files}
71+
72+ ${llvm_revision_inc}
73+ ${clang_revision_inc}
74+ ${swift_revision_inc}
9975
10076 # Platform-specific TaskQueue implementations
10177 Unix /TaskQueue.inc
0 commit comments