cmCoreTryCompile: Fix internal argument vector construction
In TryCompileCode we construct an internal argv[] vector that needs to have a fake argv[0] so our internal cmake command line looks like a real command line. Fix construction of the fake argv[0] when try_compile is called without the CMAKE_FLAGS argument. Otherwise the first internal -DVAR=val argument that we use to pass information like CMAKE_OSX_SYSROOT is ignored.
This commit is contained in:
parent
cbfae8c3f2
commit
710bde43aa
|
@ -29,7 +29,7 @@ int cmCoreTryCompile::TryCompileCode(std::vector<std::string> const& argv)
|
||||||
const char* sourceDirectory = argv[2].c_str();
|
const char* sourceDirectory = argv[2].c_str();
|
||||||
const char* projectName = 0;
|
const char* projectName = 0;
|
||||||
std::string targetName;
|
std::string targetName;
|
||||||
std::vector<std::string> cmakeFlags;
|
std::vector<std::string> cmakeFlags(1, "CMAKE_FLAGS"); // fake argv[0]
|
||||||
std::vector<std::string> compileDefs;
|
std::vector<std::string> compileDefs;
|
||||||
std::string outputVariable;
|
std::string outputVariable;
|
||||||
std::string copyFile;
|
std::string copyFile;
|
||||||
|
@ -53,10 +53,6 @@ int cmCoreTryCompile::TryCompileCode(std::vector<std::string> const& argv)
|
||||||
if(argv[i] == "CMAKE_FLAGS")
|
if(argv[i] == "CMAKE_FLAGS")
|
||||||
{
|
{
|
||||||
doing = DoingCMakeFlags;
|
doing = DoingCMakeFlags;
|
||||||
// CMAKE_FLAGS is the first argument because we need an argv[0] that
|
|
||||||
// is not used, so it matches regular command line parsing which has
|
|
||||||
// the program name as arg 0
|
|
||||||
cmakeFlags.push_back(argv[i]);
|
|
||||||
}
|
}
|
||||||
else if(argv[i] == "COMPILE_DEFINITIONS")
|
else if(argv[i] == "COMPILE_DEFINITIONS")
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue