BSD: Set CMAKE_HOST_BSD variable on a BSD host

Also the BSD variable will be set in CMake scripting mode (-P).

Relates: #23853
This commit is contained in:
Cristian Adam
2022-09-06 01:15:44 +02:00
parent 288f72efea
commit 1ea8b8ed86
5 changed files with 26 additions and 0 deletions

View File

@@ -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

View File

@@ -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.

View File

@@ -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.

View File

@@ -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)

View File

@@ -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",