From 288f72efea0636c498755a9cec6d5ddcbfed5c8c Mon Sep 17 00:00:00 2001 From: Cristian Adam Date: Tue, 6 Sep 2022 00:29:04 +0200 Subject: BSD: Only use BSD as variable for target BSD system Instead of having multiple boolean variables, we only have one string variable: BSD with the name of the target BSD system. Relates: #23853 --- Help/manual/cmake-variables.7.rst | 4 ---- Help/release/dev/BSD.rst | 5 +++++ Help/release/dev/bsd-variables.rst | 9 --------- Help/variable/BSD.rst | 3 ++- Help/variable/DRAGONFLYBSD.rst | 6 ------ Help/variable/FREEBSD.rst | 6 ------ Help/variable/NETBSD.rst | 6 ------ Help/variable/OPENBSD.rst | 6 ------ Modules/Platform/DragonFly.cmake | 3 +-- Modules/Platform/FreeBSD.cmake | 3 +-- Modules/Platform/NetBSD.cmake | 3 +-- Modules/Platform/OpenBSD.cmake | 3 +-- 12 files changed, 11 insertions(+), 46 deletions(-) create mode 100644 Help/release/dev/BSD.rst delete mode 100644 Help/release/dev/bsd-variables.rst delete mode 100644 Help/variable/DRAGONFLYBSD.rst delete mode 100644 Help/variable/FREEBSD.rst delete mode 100644 Help/variable/NETBSD.rst delete mode 100644 Help/variable/OPENBSD.rst diff --git a/Help/manual/cmake-variables.7.rst b/Help/manual/cmake-variables.7.rst index ad6bfbc..bb72c14 100644 --- a/Help/manual/cmake-variables.7.rst +++ b/Help/manual/cmake-variables.7.rst @@ -324,8 +324,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 +342,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 diff --git a/Help/release/dev/BSD.rst b/Help/release/dev/BSD.rst new file mode 100644 index 0000000..fab2015 --- /dev/null +++ b/Help/release/dev/BSD.rst @@ -0,0 +1,5 @@ +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. diff --git a/Help/release/dev/bsd-variables.rst b/Help/release/dev/bsd-variables.rst deleted file mode 100644 index 9d59edc..0000000 --- a/Help/release/dev/bsd-variables.rst +++ /dev/null @@ -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. diff --git a/Help/variable/BSD.rst b/Help/variable/BSD.rst index 0b3e5dc..fdfe5ec 100644 --- a/Help/variable/BSD.rst +++ b/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. diff --git a/Help/variable/DRAGONFLYBSD.rst b/Help/variable/DRAGONFLYBSD.rst deleted file mode 100644 index f006156..0000000 --- a/Help/variable/DRAGONFLYBSD.rst +++ /dev/null @@ -1,6 +0,0 @@ -DRAGONFLYBSD ------------- - -.. versionadded:: 3.25 - -Set to true when the target system is DragonFlyBSD. diff --git a/Help/variable/FREEBSD.rst b/Help/variable/FREEBSD.rst deleted file mode 100644 index 9990948..0000000 --- a/Help/variable/FREEBSD.rst +++ /dev/null @@ -1,6 +0,0 @@ -FREEBSD -------- - -.. versionadded:: 3.25 - -Set to true when the target system is FreeBSD. diff --git a/Help/variable/NETBSD.rst b/Help/variable/NETBSD.rst deleted file mode 100644 index e7965f8..0000000 --- a/Help/variable/NETBSD.rst +++ /dev/null @@ -1,6 +0,0 @@ -NETBSD ------- - -.. versionadded:: 3.25 - -Set to true when the target system is NetBSD. diff --git a/Help/variable/OPENBSD.rst b/Help/variable/OPENBSD.rst deleted file mode 100644 index dd9b23d..0000000 --- a/Help/variable/OPENBSD.rst +++ /dev/null @@ -1,6 +0,0 @@ -OPENBSD -------- - -.. versionadded:: 3.25 - -Set to true when the target system is OpenBSD. diff --git a/Modules/Platform/DragonFly.cmake b/Modules/Platform/DragonFly.cmake index d8bc05a..994ba79 100644 --- a/Modules/Platform/DragonFly.cmake +++ b/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. diff --git a/Modules/Platform/FreeBSD.cmake b/Modules/Platform/FreeBSD.cmake index e968a78..9cd9399 100644 --- a/Modules/Platform/FreeBSD.cmake +++ b/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") diff --git a/Modules/Platform/NetBSD.cmake b/Modules/Platform/NetBSD.cmake index a64bf0b..52c6594 100644 --- a/Modules/Platform/NetBSD.cmake +++ b/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") diff --git a/Modules/Platform/OpenBSD.cmake b/Modules/Platform/OpenBSD.cmake index f6b955a..51ea60d 100644 --- a/Modules/Platform/OpenBSD.cmake +++ b/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 -- cgit v0.12 From 1ea8b8ed86628ecaa6a6e47231cefb2d68ac9e73 Mon Sep 17 00:00:00 2001 From: Cristian Adam Date: Tue, 6 Sep 2022 01:15:44 +0200 Subject: BSD: Set CMAKE_HOST_BSD variable on a BSD host Also the BSD variable will be set in CMake scripting mode (-P). Relates: #23853 --- Help/manual/cmake-variables.7.rst | 1 + Help/release/dev/BSD.rst | 3 +++ Help/variable/CMAKE_HOST_BSD.rst | 7 +++++++ Modules/CMakeSystemSpecificInformation.cmake | 1 + Source/cmStateSnapshot.cxx | 14 ++++++++++++++ 5 files changed, 26 insertions(+) create mode 100644 Help/variable/CMAKE_HOST_BSD.rst diff --git a/Help/manual/cmake-variables.7.rst b/Help/manual/cmake-variables.7.rst index bb72c14..22fae08 100644 --- a/Help/manual/cmake-variables.7.rst +++ b/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 diff --git a/Help/release/dev/BSD.rst b/Help/release/dev/BSD.rst index fab2015..cd2352b 100644 --- a/Help/release/dev/BSD.rst +++ b/Help/release/dev/BSD.rst @@ -3,3 +3,6 @@ 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. diff --git a/Help/variable/CMAKE_HOST_BSD.rst b/Help/variable/CMAKE_HOST_BSD.rst new file mode 100644 index 0000000..d3554f9 --- /dev/null +++ b/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. diff --git a/Modules/CMakeSystemSpecificInformation.cmake b/Modules/CMakeSystemSpecificInformation.cmake index e045932..319b0bb 100644 --- a/Modules/CMakeSystemSpecificInformation.cmake +++ b/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) diff --git a/Source/cmStateSnapshot.cxx b/Source/cmStateSnapshot.cxx index f73df8f..102d1ce 100644 --- a/Source/cmStateSnapshot.cxx +++ b/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", -- cgit v0.12