[cmake] Add LLVM_FORCE_VC_REVISION option (#67125)
This patch adds a LLVM_FORCE_VC_REVISION option to force a custom VC revision to be included instead of trying to fetch one from a git command. This is helpful in environments where git is not available or is non-functional but the vc revision is available through some other means.
This commit is contained in:
parent
5bfd5c60bf
commit
247b7d0684
@ -39,6 +39,8 @@ add_custom_command(OUTPUT "${version_inc}"
|
||||
"-DHEADER_FILE=${version_inc}"
|
||||
"-DLLVM_VC_REPOSITORY=${llvm_vc_repository}"
|
||||
"-DLLVM_VC_REVISION=${llvm_vc_revision}"
|
||||
"-DLLVM_FORCE_VC_REVISION=${LLVM_FORCE_VC_REVISION}"
|
||||
"-DLLVM_FORCE_VC_REPOSITORY=${LLVM_FORCE_VC_REPOSITORY}"
|
||||
-P "${generate_vcs_version_script}")
|
||||
|
||||
# Mark the generated header as being generated.
|
||||
|
@ -12,7 +12,7 @@ endif()
|
||||
if(flang_vc AND LLVM_APPEND_VC_REV)
|
||||
set(flang_source_dir ${FLANG_SOURCE_DIR})
|
||||
endif()
|
||||
|
||||
|
||||
# Create custom target to generate the VC revision include.
|
||||
add_custom_command(OUTPUT "${version_inc}"
|
||||
DEPENDS "${llvm_vc}" "${flang_vc}" "${generate_vcs_version_script}"
|
||||
@ -20,6 +20,8 @@ add_custom_command(OUTPUT "${version_inc}"
|
||||
"-DLLVM_SOURCE_DIR=${llvm_source_dir}"
|
||||
"-DFLANG_SOURCE_DIR=${flang_source_dir}"
|
||||
"-DHEADER_FILE=${version_inc}"
|
||||
"-DLLVM_FORCE_VC_REVISION=${LLVM_FORCE_VC_REVISION}"
|
||||
"-DLLVM_FORCE_VC_REPOSITORY=${LLVM_FORCE_VC_REPOSITORY}"
|
||||
-P "${generate_vcs_version_script}")
|
||||
|
||||
# Mark the generated header as being generated.
|
||||
|
@ -13,6 +13,8 @@ add_custom_command(OUTPUT "${version_inc}"
|
||||
COMMAND ${CMAKE_COMMAND} "-DNAMES=LLD"
|
||||
"-DLLD_SOURCE_DIR=${lld_source_dir}"
|
||||
"-DHEADER_FILE=${version_inc}"
|
||||
"-DLLVM_FORCE_VC_REVISION=${LLVM_FORCE_VC_REVISION}"
|
||||
"-DLLVM_FORCE_VC_REPOSITORY=${LLVM_FORCE_VC_REPOSITORY}"
|
||||
-P "${generate_vcs_version_script}")
|
||||
|
||||
# Mark the generated header as being generated.
|
||||
|
@ -17,6 +17,8 @@ add_custom_command(OUTPUT "${vcs_version_inc}"
|
||||
COMMAND ${CMAKE_COMMAND} "-DNAMES=LLDB"
|
||||
"-DLLDB_SOURCE_DIR=${lldb_source_dir}"
|
||||
"-DHEADER_FILE=${vcs_version_inc}"
|
||||
"-DLLVM_FORCE_VC_REVISION=${LLVM_FORCE_VC_REVISION}"
|
||||
"-DLLVM_FORCE_VC_REPOSITORY=${LLVM_FORCE_VC_REPOSITORY}"
|
||||
-P "${generate_vcs_version_script}")
|
||||
|
||||
set_source_files_properties("${vcs_version_inc}"
|
||||
|
@ -325,6 +325,12 @@ include(VersionFromVCS)
|
||||
option(LLVM_APPEND_VC_REV
|
||||
"Embed the version control system revision in LLVM" ON)
|
||||
|
||||
set(LLVM_FORCE_VC_REVISION
|
||||
"" CACHE STRING "Force custom VC revision for LLVM_APPEND_VC_REV")
|
||||
|
||||
set(LLVM_FORCE_VC_REPOSITORY
|
||||
"" CACHE STRING "Force custom VC repository for LLVM_APPEND_VC_REV")
|
||||
|
||||
option(LLVM_TOOL_LLVM_DRIVER_BUILD "Enables building the llvm multicall tool" OFF)
|
||||
|
||||
set(PACKAGE_NAME LLVM)
|
||||
|
@ -36,7 +36,14 @@ function(append_info name revision repository)
|
||||
endfunction()
|
||||
|
||||
foreach(name IN LISTS NAMES)
|
||||
if(${name}_VC_REPOSITORY AND ${name}_VC_REVISION)
|
||||
if(LLVM_FORCE_VC_REVISION AND LLVM_FORCE_VC_REPOSITORY)
|
||||
set(revision ${LLVM_FORCE_VC_REVISION})
|
||||
set(repository ${LLVM_FORCE_VC_REPOSITORY})
|
||||
elseif(LLVM_FORCE_VC_REVISION)
|
||||
set(revision ${LLVM_FORCE_VC_REVISION})
|
||||
elseif(LLVM_FORCE_VC_REPOSITORY)
|
||||
set(repository ${LLVM_FORCE_VC_REPOSITORY})
|
||||
elseif(${name}_VC_REPOSITORY AND ${name}_VC_REVISION)
|
||||
set(revision ${${name}_VC_REVISION})
|
||||
set(repository ${${name}_VC_REPOSITORY})
|
||||
elseif(DEFINED ${name}_SOURCE_DIR)
|
||||
|
@ -334,6 +334,15 @@ enabled sub-projects. Nearly all of these variable names begin with
|
||||
need revision info can disable this option to avoid re-linking most binaries
|
||||
after a branch switch. Defaults to ON.
|
||||
|
||||
**LLVM_FORCE_VC_REVISION**:STRING
|
||||
Force a specific Git revision id rather than calling to git to determine it.
|
||||
This is useful in environments where git is not available or non-functional
|
||||
but the VC revision is available through other means.
|
||||
|
||||
**LLVM_FORCE_VC_REPOSITORY**:STRING
|
||||
Set the git repository to include in version info rather than calling git to
|
||||
determine it.
|
||||
|
||||
**LLVM_BUILD_32_BITS**:BOOL
|
||||
Build 32-bit executables and libraries on 64-bit systems. This option is
|
||||
available only on some 64-bit Unix systems. Defaults to OFF.
|
||||
|
@ -28,6 +28,8 @@ if (fake_version_inc)
|
||||
COMMAND ${CMAKE_COMMAND} "-DNAMES=LLVM"
|
||||
"-DLLVM_SOURCE_DIR=${llvm_source_dir}"
|
||||
"-DHEADER_FILE=${version_inc}"
|
||||
"-DLLVM_FORCE_VC_REVISION=${LLVM_FORCE_VC_REVISION}"
|
||||
"-DLLVM_FORCE_VC_REPOSITORY=${LLVM_FORCE_VC_REPOSITORY}"
|
||||
-P "${generate_vcs_version_script}")
|
||||
else()
|
||||
add_custom_command(OUTPUT "${version_inc}"
|
||||
@ -35,6 +37,8 @@ else()
|
||||
COMMAND ${CMAKE_COMMAND} "-DNAMES=LLVM"
|
||||
"-DLLVM_SOURCE_DIR=${llvm_source_dir}"
|
||||
"-DHEADER_FILE=${version_inc}"
|
||||
"-DLLVM_FORCE_VC_REVISION=${LLVM_FORCE_VC_REVISION}"
|
||||
"-DLLVM_FORCE_VC_REPOSITORY=${LLVM_FORCE_VC_REPOSITORY}"
|
||||
-P "${generate_vcs_version_script}")
|
||||
endif()
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user