mirror of
https://github.com/reactos/CMake.git
synced 2024-12-04 17:56:26 +00:00
Use platform variable for response file flag
Create platform variable "CMAKE_<LANG>_RESPONSE_FILE_LINK_FLAG" to specify an alternative to "@" for referencing response files. It applies specifically to response files with linker options. See issue #10401.
This commit is contained in:
parent
87f0853941
commit
f9268c9c81
@ -1314,6 +1314,8 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
|
||||
cmProperty::VARIABLE,0,0);
|
||||
cm->DefineProperty("CMAKE_<LANG>_LINK_FLAGS",
|
||||
cmProperty::VARIABLE,0,0);
|
||||
cm->DefineProperty("CMAKE_<LANG>_RESPONSE_FILE_LINK_FLAG",
|
||||
cmProperty::VARIABLE,0,0);
|
||||
cm->DefineProperty("CMAKE_<LANG>_STANDARD_LIBRARIES",
|
||||
cmProperty::VARIABLE,0,0);
|
||||
cm->DefineProperty("CMAKE_<LANG>_STANDARD_LIBRARIES_INIT",
|
||||
|
@ -1620,6 +1620,17 @@ cmMakefileTargetGenerator
|
||||
std::vector<std::string> object_strings;
|
||||
this->WriteObjectsStrings(object_strings, responseFileLimit);
|
||||
|
||||
// Lookup the response file reference flag.
|
||||
std::string responseFlagVar = "CMAKE_";
|
||||
responseFlagVar += this->Target->GetLinkerLanguage(this->ConfigName);
|
||||
responseFlagVar += "_RESPONSE_FILE_LINK_FLAG";
|
||||
const char* responseFlag =
|
||||
this->Makefile->GetDefinition(responseFlagVar.c_str());
|
||||
if(!responseFlag)
|
||||
{
|
||||
responseFlag = "@";
|
||||
}
|
||||
|
||||
// Write a response file for each string.
|
||||
const char* sep = "";
|
||||
for(unsigned int i = 0; i < object_strings.size(); ++i)
|
||||
@ -1637,7 +1648,7 @@ cmMakefileTargetGenerator
|
||||
sep = " ";
|
||||
|
||||
// Reference the response file.
|
||||
buildObjs += "@";
|
||||
buildObjs += responseFlag;
|
||||
buildObjs += this->Convert(objects_rsp.c_str(),
|
||||
cmLocalGenerator::NONE,
|
||||
cmLocalGenerator::SHELL);
|
||||
|
Loading…
Reference in New Issue
Block a user