summaryrefslogtreecommitdiffstats
path: root/Source/cmCoreTryCompile.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'Source/cmCoreTryCompile.cxx')
-rw-r--r--Source/cmCoreTryCompile.cxx27
1 files changed, 22 insertions, 5 deletions
diff --git a/Source/cmCoreTryCompile.cxx b/Source/cmCoreTryCompile.cxx
index ee4fe97..8abd690 100644
--- a/Source/cmCoreTryCompile.cxx
+++ b/Source/cmCoreTryCompile.cxx
@@ -225,13 +225,30 @@ int cmCoreTryCompile::TryCompileCode(std::vector<std::string> const& argv)
}
fprintf(fout, ")\n");
}
- const char* platformOptions =
- this->Makefile->GetDefinition("CMAKE_TRY_COMPILE_PLATFORM_OPTIONS");
- if ( platformOptions )
+
+ /* for the TRY_COMPILEs we want to be able to specify the architecture.
+ So the user can set CMAKE_OSX_ARCHITECTURE to i386;ppc and then set
+ CMAKE_TRY_COMPILE_OSX_ARCHITECTURE first to i386 and then to ppc to
+ have the tests run for each specific architecture. Since
+ cmLocalGenerator doesn't allow building for "the other"
+ architecture only via CMAKE_OSX_ARCHITECTURES,use to CMAKE_DO_TRY_COMPILE
+ to enforce it for this case here.
+ */
+ cmakeFlags.push_back("-DCMAKE_DO_TRY_COMPILE=TRUE");
+ if(this->Makefile->GetDefinition("CMAKE_TRY_COMPILE_OSX_ARCHITECTURES")!=0)
{
- fprintf(fout, "%s\n", platformOptions);
+ std::string flag="-DCMAKE_OSX_ARCHITECTURES=";
+ flag += this->Makefile->GetSafeDefinition(
+ "CMAKE_TRY_COMPILE_OSX_ARCHITECTURES");
+ cmakeFlags.push_back(flag);
}
-
+ else if (this->Makefile->GetDefinition("CMAKE_OSX_ARCHITECTURES")!=0)
+ {
+ std::string flag="-DCMAKE_OSX_ARCHITECTURES=";
+ flag += this->Makefile->GetSafeDefinition("CMAKE_OSX_ARCHITECTURES");
+ cmakeFlags.push_back(flag);
+ }
+
fprintf(fout, "ADD_EXECUTABLE(cmTryCompileExec \"%s\")\n",source.c_str());
fprintf(fout,
"TARGET_LINK_LIBRARIES(cmTryCompileExec ${LINK_LIBRARIES})\n");