add support for overriding version strings in llvm.ident and resources (#354)
Typically this functionality will be triggered via lab automated builds in preparation for a release. hctbuild supports the required flag already via the -fv switch.
This commit is contained in:
Родитель
2c568d00db
Коммит
ff210c4abf
|
@ -950,3 +950,23 @@ function(add_lit_testsuites project directory)
|
|||
endforeach()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
# HLSL Change Starts
|
||||
function(hlsl_update_product_ver RC_INTERNAL_NAME)
|
||||
if (HLSL_ENABLE_FIXED_VER)
|
||||
set_property(SOURCE ${windows_resource_file}
|
||||
PROPERTY COMPILE_DEFINITIONS
|
||||
"RC_COMPANY_NAME=\"Microsoft(r) Corporation\""
|
||||
"RC_VERSION_FIELD_1=0"
|
||||
"RC_VERSION_FIELD_2=2017"
|
||||
"RC_VERSION_FIELD_3=6"
|
||||
"RC_VERSION_FIELD_4=0"
|
||||
"RC_FILE_VERSION=\"0.2017.6.0\""
|
||||
"RC_FILE_DESCRIPTION=\"DirectX Compiler - Out Of Band\""
|
||||
"RC_INTERNAL_NAME=\"${RC_INTERNAL_NAME}\""
|
||||
"RC_COPYRIGHT=\"(c) Microsoft Corporation. All rights reserved.\""
|
||||
"RC_PRODUCT_NAME=\"Microsoft(r) DirectX for Windows(r) - Out Of Band\""
|
||||
"RC_PRODUCT_VERSION=\"0.2017.6.0\"")
|
||||
endif (HLSL_ENABLE_FIXED_VER)
|
||||
endfunction(hlsl_update_product_ver)
|
||||
# HLSL Change Ends
|
||||
|
|
|
@ -30,6 +30,12 @@ set(version_inc "${CMAKE_CURRENT_BINARY_DIR}/SVNVersion.inc")
|
|||
|
||||
set(get_svn_script "${LLVM_MAIN_SRC_DIR}/cmake/modules/GetSVN.cmake")
|
||||
|
||||
# HLSL Change Starts
|
||||
if (HLSL_ENABLE_FIXED_VER)
|
||||
add_definitions(/DHLSL_FIXED_VER="dxcoob 2017.6")
|
||||
endif (HLSL_ENABLE_FIXED_VER)
|
||||
# HLSL Change Ends
|
||||
|
||||
if(DEFINED llvm_vc AND DEFINED clang_vc)
|
||||
# Create custom target to generate the VC revision include.
|
||||
add_custom_command(OUTPUT "${version_inc}"
|
||||
|
|
|
@ -25,6 +25,9 @@
|
|||
namespace clang {
|
||||
|
||||
std::string getClangRepositoryPath() {
|
||||
#ifdef HLSL_FIXED_VER // HLSL Change Starts
|
||||
return std::string();
|
||||
#else
|
||||
#if defined(CLANG_REPOSITORY_STRING)
|
||||
return CLANG_REPOSITORY_STRING;
|
||||
#else
|
||||
|
@ -52,9 +55,13 @@ std::string getClangRepositoryPath() {
|
|||
|
||||
return URL;
|
||||
#endif
|
||||
#endif // HLSL Change Ends
|
||||
}
|
||||
|
||||
std::string getLLVMRepositoryPath() {
|
||||
#ifdef HLSL_FIXED_VER // HLSL Change Starts
|
||||
return std::string();
|
||||
#else
|
||||
#ifdef LLVM_REPOSITORY
|
||||
StringRef URL(LLVM_REPOSITORY);
|
||||
#else
|
||||
|
@ -69,25 +76,37 @@ std::string getLLVMRepositoryPath() {
|
|||
URL = URL.substr(Start);
|
||||
|
||||
return URL;
|
||||
#endif // HLSL Change Ends
|
||||
}
|
||||
|
||||
std::string getClangRevision() {
|
||||
#ifdef HLSL_FIXED_VER // HLSL Change Starts
|
||||
return std::string();
|
||||
#else
|
||||
#ifdef SVN_REVISION
|
||||
return SVN_REVISION;
|
||||
#else
|
||||
return "";
|
||||
#endif
|
||||
#endif // HLSL Change Ends
|
||||
}
|
||||
|
||||
std::string getLLVMRevision() {
|
||||
#ifdef HLSL_FIXED_VER // HLSL Change Starts
|
||||
return std::string();
|
||||
#else
|
||||
#ifdef LLVM_REVISION
|
||||
return LLVM_REVISION;
|
||||
#else
|
||||
return "";
|
||||
#endif
|
||||
#endif // HLSL Change Ends
|
||||
}
|
||||
|
||||
std::string getClangFullRepositoryVersion() {
|
||||
#ifdef HLSL_FIXED_VER // HLSL Change Starts
|
||||
return std::string();
|
||||
#else
|
||||
std::string buf;
|
||||
llvm::raw_string_ostream OS(buf);
|
||||
std::string Path = getClangRepositoryPath();
|
||||
|
@ -113,6 +132,7 @@ std::string getClangFullRepositoryVersion() {
|
|||
OS << LLVMRev << ')';
|
||||
}
|
||||
return OS.str();
|
||||
#endif
|
||||
}
|
||||
|
||||
std::string getClangFullVersion() {
|
||||
|
@ -120,6 +140,11 @@ std::string getClangFullVersion() {
|
|||
}
|
||||
|
||||
std::string getClangToolFullVersion(StringRef ToolName) {
|
||||
#ifdef HLSL_FIXED_VER // HLSL Change Starts
|
||||
// We fix a specific version for builds that are released;
|
||||
// this allows tools to pick a known version for a given !llvm.ident value.
|
||||
return std::string(HLSL_FIXED_VER);
|
||||
#else
|
||||
std::string buf;
|
||||
llvm::raw_string_ostream OS(buf);
|
||||
#ifdef CLANG_VENDOR
|
||||
|
@ -134,9 +159,15 @@ std::string getClangToolFullVersion(StringRef ToolName) {
|
|||
#endif
|
||||
|
||||
return OS.str();
|
||||
#endif // HLSL Change Ends
|
||||
}
|
||||
|
||||
std::string getClangFullCPPVersion() {
|
||||
#ifdef HLSL_FIXED_VER // HLSL Change Starts
|
||||
// We fix a specific version for builds that are released;
|
||||
// this allows tools to pick a known version for a given !llvm.ident value.
|
||||
return std::string(HLSL_FIXED_VER);
|
||||
#else
|
||||
// The version string we report in __VERSION__ is just a compacted version of
|
||||
// the one we report on the command line.
|
||||
std::string buf;
|
||||
|
@ -146,6 +177,7 @@ std::string getClangFullCPPVersion() {
|
|||
#endif
|
||||
OS << "Clang " CLANG_VERSION_STRING " " << getClangFullRepositoryVersion();
|
||||
return OS.str();
|
||||
#endif // HLSL Change Ends
|
||||
}
|
||||
|
||||
} // end namespace clang
|
||||
|
|
|
@ -22,6 +22,7 @@ target_link_libraries(dxc
|
|||
)
|
||||
|
||||
set_target_properties(dxc PROPERTIES VERSION ${CLANG_EXECUTABLE_VERSION})
|
||||
hlsl_update_product_ver("dxc")
|
||||
|
||||
include_directories(AFTER ${DIASDK_INCLUDE_DIRS})
|
||||
|
||||
|
|
|
@ -99,23 +99,4 @@ set_target_properties(dxcompiler
|
|||
VERSION ${LIBCLANG_LIBRARY_VERSION}
|
||||
DEFINE_SYMBOL _CINDEX_LIB_)
|
||||
|
||||
# This will likely go to a more common location to be reused from other targets.
|
||||
function(hlsl_update_product_ver)
|
||||
if (HLSL_ENABLE_FIXED_VER)
|
||||
set_property(SOURCE ${windows_resource_file}
|
||||
PROPERTY COMPILE_DEFINITIONS
|
||||
"RC_COMPANY_NAME=\"Microsoft® Corporation\""
|
||||
"RC_VERSION_FIELD_1=0"
|
||||
"RC_VERSION_FIELD_2=2"
|
||||
"RC_VERSION_FIELD_3=0"
|
||||
"RC_VERSION_FIELD_4=0"
|
||||
"RC_FILE_VERSION=\"0.2.0.0\""
|
||||
"RC_FILE_DESCRIPTION=\"DirectX Compiler\""
|
||||
"RC_INTERNAL_NAME=\"dxcompiler\""
|
||||
"RC_COPYRIGHT=\"© Microsoft Corporation. All rights reserved.\""
|
||||
"RC_PRODUCT_NAME=\"Microsoft® DirectX for Windows®\""
|
||||
"RC_PRODUCT_VERSION=\"0.2.0.0\"")
|
||||
endif (HLSL_ENABLE_FIXED_VER)
|
||||
endfunction(hlsl_update_product_ver)
|
||||
|
||||
hlsl_update_product_ver()
|
||||
hlsl_update_product_ver("dxcompiler")
|
||||
|
|
Загрузка…
Ссылка в новой задаче