1
0
Эх сурвалжийг харах

Merge topic 'BSD'

1ea8b8ed86 BSD: Set CMAKE_HOST_BSD variable on a BSD host
288f72efea BSD: Only use BSD as variable for target BSD system

Acked-by: Kitware Robot <[email protected]>
Merge-request: !7648
Brad King 3 жил өмнө
parent
commit
e71605dfb4

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

@@ -309,6 +309,7 @@ Variables that Describe the System
    /variable/CMAKE_CL_64
    /variable/CMAKE_COMPILER_2005
    /variable/CMAKE_HOST_APPLE
+   /variable/CMAKE_HOST_BSD
    /variable/CMAKE_HOST_SOLARIS
    /variable/CMAKE_HOST_SYSTEM
    /variable/CMAKE_HOST_SYSTEM_NAME
@@ -324,8 +325,6 @@ Variables that Describe the System
    /variable/CMAKE_SYSTEM_PROCESSOR
    /variable/CMAKE_SYSTEM_VERSION
    /variable/CYGWIN
-   /variable/DRAGONFLYBSD
-   /variable/FREEBSD
    /variable/GHSMULTI
    /variable/IOS
    /variable/LINUX
@@ -344,8 +343,6 @@ Variables that Describe the System
    /variable/MSVC_TOOLSET_VERSION
    /variable/MSVC_VERSION
    /variable/MSYS
-   /variable/NETBSD
-   /variable/OPENBSD
    /variable/UNIX
    /variable/WIN32
    /variable/WINCE

+ 8 - 0
Help/release/dev/BSD.rst

@@ -0,0 +1,8 @@
+Variables
+---------
+
+* The :variable:`BSD` variable is set to a string value when the target system is BSD.
+  This value can be one of the following: DragonFlyBSD, FreeBSD, OpenBSD, or NetBSD.
+
+* The :variable:`CMAKE_HOST_BSD` variable is set to a string value when the host system is BSD.
+  This value can be one of the following: DragonFlyBSD, FreeBSD, OpenBSD, or NetBSD.

+ 0 - 9
Help/release/dev/bsd-variables.rst

@@ -1,9 +0,0 @@
-bsd-variables
--------------
-
-* The :variable:`BSD` variable is set to true when the target system
-  is BSD (DragonFlyBSD, FreeBSD, OpenBSD, or NetBSD)
-* The :variable:`DRAGONFLYBSD` variable is set to true when the target system is DragonFlyBSD.
-* The :variable:`FREEBSD` variable is set to true when the target system is FreeBSD.
-* The :variable:`NETBSD` variable is set to true when the target system is NetBSD.
-* The :variable:`OPENBSD` variable is set to true when the target system is OpenBSD.

+ 2 - 1
Help/variable/BSD.rst

@@ -3,4 +3,5 @@ BSD
 
 .. versionadded:: 3.25
 
-Set to true when the target system is BSD (DragonFlyBSD, FreeBSD, OpenBSD, or NetBSD)
+Set to a string value when the target system is BSD. This value can be one of
+the following: DragonFlyBSD, FreeBSD, OpenBSD, or NetBSD.

+ 7 - 0
Help/variable/CMAKE_HOST_BSD.rst

@@ -0,0 +1,7 @@
+CMAKE_HOST_BSD
+--------------
+
+.. versionadded:: 3.25
+
+Set to a string value when the host system is BSD. This value can be one of
+the following: DragonFlyBSD, FreeBSD, OpenBSD, or NetBSD.

+ 0 - 6
Help/variable/DRAGONFLYBSD.rst

@@ -1,6 +0,0 @@
-DRAGONFLYBSD
-------------
-
-.. versionadded:: 3.25
-
-Set to true when the target system is DragonFlyBSD.

+ 0 - 6
Help/variable/FREEBSD.rst

@@ -1,6 +0,0 @@
-FREEBSD
--------
-
-.. versionadded:: 3.25
-
-Set to true when the target system is FreeBSD.

+ 0 - 6
Help/variable/NETBSD.rst

@@ -1,6 +0,0 @@
-NETBSD
-------
-
-.. versionadded:: 3.25
-
-Set to true when the target system is NetBSD.

+ 0 - 6
Help/variable/OPENBSD.rst

@@ -1,6 +0,0 @@
-OPENBSD
--------
-
-.. versionadded:: 3.25
-
-Set to true when the target system is OpenBSD.

+ 1 - 0
Modules/CMakeSystemSpecificInformation.cmake

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

+ 1 - 2
Modules/Platform/DragonFly.cmake

@@ -3,8 +3,7 @@
 # see http://archive.netbsd.se/?ml=dfbsd-users&a=2007-07&m=4678361
 
 include(Platform/FreeBSD)
-unset(FREEBSD)
-set(DRAGONFLYBSD 1)
+set(BSD "DragonFlyBSD")
 
 # DragonFly BSD requires -z origin to enable $ORIGIN expansion in RPATH.
 # This is not required for FreeBSD since 10.2-RELEASE.

+ 1 - 2
Modules/Platform/FreeBSD.cmake

@@ -1,5 +1,4 @@
-set(FREEBSD 1)
-set(BSD 1)
+set(BSD "FreeBSD")
 set(CMAKE_DL_LIBS "")
 set(CMAKE_C_COMPILE_OPTIONS_PIC "-fPIC")
 set(CMAKE_C_COMPILE_OPTIONS_PIE "-fPIE")

+ 1 - 2
Modules/Platform/NetBSD.cmake

@@ -1,5 +1,4 @@
-set(NETBSD 1)
-set(BSD 1)
+set(BSD "NetBSD")
 set(CMAKE_DL_LIBS "")
 set(CMAKE_C_COMPILE_OPTIONS_PIC "-fPIC")
 set(CMAKE_C_COMPILE_OPTIONS_PIE "-fPIE")

+ 1 - 2
Modules/Platform/OpenBSD.cmake

@@ -1,6 +1,5 @@
 include(Platform/NetBSD)
-unset(NETBSD)
-set(OPENBSD 1)
+set(BSD "OpenBSD")
 
 # On OpenBSD, the compile time linker does not share it's configuration with
 # the runtime linker.  This will extract the library search paths from the

+ 14 - 0
Source/cmStateSnapshot.cxx

@@ -317,6 +317,20 @@ void cmStateSnapshot::SetDefaultDefinitions()
   this->SetDefinition("CMAKE_HOST_SOLARIS", "1");
 #endif
 
+#if defined(__OpenBSD__)
+  this->SetDefinition("BSD", "OpenBSD");
+  this->SetDefinition("CMAKE_HOST_BSD", "OpenBSD");
+#elif defined(__FreeBSD__)
+  this->SetDefinition("BSD", "FreeBSD");
+  this->SetDefinition("CMAKE_HOST_BSD", "FreeBSD");
+#elif defined(__NetBSD__)
+  this->SetDefinition("BSD", "NetBSD");
+  this->SetDefinition("CMAKE_HOST_BSD", "NetBSD");
+#elif defined(__DragonFly__)
+  this->SetDefinition("BSD", "DragonFlyBSD");
+  this->SetDefinition("CMAKE_HOST_BSD", "DragonFlyBSD");
+#endif
+
   this->SetDefinition("CMAKE_MAJOR_VERSION",
                       std::to_string(cmVersion::GetMajorVersion()));
   this->SetDefinition("CMAKE_MINOR_VERSION",