|
|
@@ -16,16 +16,9 @@
|
|
|
#include "cmState.h"
|
|
|
#include "cmStateDirectory.h"
|
|
|
#include "cmStatePrivate.h"
|
|
|
+#include "cmSystemTools.h"
|
|
|
#include "cmVersion.h"
|
|
|
|
|
|
-#if !defined(_WIN32)
|
|
|
-# include <sys/utsname.h>
|
|
|
-#endif
|
|
|
-
|
|
|
-#if defined(__CYGWIN__)
|
|
|
-# include "cmSystemTools.h"
|
|
|
-#endif
|
|
|
-
|
|
|
cmStateSnapshot::cmStateSnapshot(cmState* state)
|
|
|
: State(state)
|
|
|
{
|
|
|
@@ -292,34 +285,26 @@ void InitializeContentFromParent(T& parentContent, T& thisContent,
|
|
|
|
|
|
void cmStateSnapshot::SetDefaultDefinitions()
|
|
|
{
|
|
|
-/* Up to CMake 2.4 here only WIN32, UNIX and APPLE were set.
|
|
|
- With CMake must separate between target and host platform. In most cases
|
|
|
- the tests for WIN32, UNIX and APPLE will be for the target system, so an
|
|
|
- additional set of variables for the host system is required ->
|
|
|
- CMAKE_HOST_WIN32, CMAKE_HOST_UNIX, CMAKE_HOST_APPLE.
|
|
|
- WIN32, UNIX and APPLE are now set in the platform files in
|
|
|
- Modules/Platforms/.
|
|
|
- To keep cmake scripts (-P) and custom language and compiler modules
|
|
|
- working, these variables are still also set here in this place, but they
|
|
|
- will be reset in CMakeSystemSpecificInformation.cmake before the platform
|
|
|
- files are executed. */
|
|
|
-#if defined(_WIN32)
|
|
|
- this->SetDefinition("WIN32", "1");
|
|
|
- this->SetDefinition("CMAKE_HOST_WIN32", "1");
|
|
|
- this->SetDefinition("CMAKE_HOST_SYSTEM_NAME", "Windows");
|
|
|
-#else
|
|
|
- this->SetDefinition("UNIX", "1");
|
|
|
- this->SetDefinition("CMAKE_HOST_UNIX", "1");
|
|
|
-
|
|
|
-# if defined(__ANDROID__)
|
|
|
- this->SetDefinition("CMAKE_HOST_SYSTEM_NAME", "Android");
|
|
|
-# else
|
|
|
- struct utsname uts_name;
|
|
|
- if (uname(&uts_name) >= 0) {
|
|
|
- this->SetDefinition("CMAKE_HOST_SYSTEM_NAME", uts_name.sysname);
|
|
|
+ /* Up to CMake 2.4 here only WIN32, UNIX and APPLE were set.
|
|
|
+ With CMake must separate between target and host platform. In most cases
|
|
|
+ the tests for WIN32, UNIX and APPLE will be for the target system, so an
|
|
|
+ additional set of variables for the host system is required ->
|
|
|
+ CMAKE_HOST_WIN32, CMAKE_HOST_UNIX, CMAKE_HOST_APPLE.
|
|
|
+ WIN32, UNIX and APPLE are now set in the platform files in
|
|
|
+ Modules/Platforms/.
|
|
|
+ To keep cmake scripts (-P) and custom language and compiler modules
|
|
|
+ working, these variables are still also set here in this place, but they
|
|
|
+ will be reset in CMakeSystemSpecificInformation.cmake before the platform
|
|
|
+ files are executed. */
|
|
|
+ cm::string_view hostSystemName = cmSystemTools::GetSystemName();
|
|
|
+ this->SetDefinition("CMAKE_HOST_SYSTEM_NAME", hostSystemName);
|
|
|
+ if (hostSystemName == "Windows") {
|
|
|
+ this->SetDefinition("WIN32", "1");
|
|
|
+ this->SetDefinition("CMAKE_HOST_WIN32", "1");
|
|
|
+ } else {
|
|
|
+ this->SetDefinition("UNIX", "1");
|
|
|
+ this->SetDefinition("CMAKE_HOST_UNIX", "1");
|
|
|
}
|
|
|
-# endif
|
|
|
-#endif
|
|
|
#if defined(__CYGWIN__)
|
|
|
std::string legacy;
|
|
|
if (cmSystemTools::GetEnv("CMAKE_LEGACY_CYGWIN_WIN32", legacy) &&
|