Bladeren bron

LINUX: Set CMAKE_HOST_LINUX variable when running on a Linux host

Relates: #23840
Cristian Adam 3 jaren geleden
bovenliggende
commit
caffb15d09

+ 1 - 0
Help/manual/cmake-variables.7.rst

@@ -310,6 +310,7 @@ Variables that Describe the System
    /variable/CMAKE_COMPILER_2005
    /variable/CMAKE_HOST_APPLE
    /variable/CMAKE_HOST_BSD
+   /variable/CMAKE_HOST_LINUX
    /variable/CMAKE_HOST_SOLARIS
    /variable/CMAKE_HOST_SYSTEM
    /variable/CMAKE_HOST_SYSTEM_NAME

+ 2 - 0
Help/release/dev/LINUX.rst

@@ -2,3 +2,5 @@ Variables
 ---------
 
 * The :variable:`LINUX` variable is set to true when the target system is Linux.
+
+* The :variable:`CMAKE_HOST_LINUX` variable is set to true when the host system is Linux.

+ 6 - 0
Help/variable/CMAKE_HOST_LINUX.rst

@@ -0,0 +1,6 @@
+CMAKE_HOST_LINUX
+----------------
+
+.. versionadded:: 3.25
+
+Set to true when the host system is Linux.

+ 1 - 0
Modules/CMakeSystemSpecificInformation.cmake

@@ -17,6 +17,7 @@ set(CYGWIN )
 set(MSYS )
 set(WIN32  )
 set(BSD )
+set(LINUX )
 
 function(_cmake_record_install_prefix )
   set(_CMAKE_SYSTEM_PREFIX_PATH_INSTALL_PREFIX_VALUE "${CMAKE_INSTALL_PREFIX}" PARENT_SCOPE)

+ 5 - 0
Source/cmStateSnapshot.cxx

@@ -331,6 +331,11 @@ void cmStateSnapshot::SetDefaultDefinitions()
   this->SetDefinition("CMAKE_HOST_BSD", "DragonFlyBSD");
 #endif
 
+#if defined(__linux__)
+  this->SetDefinition("LINUX", "1");
+  this->SetDefinition("CMAKE_HOST_LINUX", "1");
+#endif
+
   this->SetDefinition("CMAKE_MAJOR_VERSION",
                       std::to_string(cmVersion::GetMajorVersion()));
   this->SetDefinition("CMAKE_MINOR_VERSION",