From f4b7c599157299acadc89c1d2b87ecf61cca6f7d Mon Sep 17 00:00:00 2001 From: akallabeth Date: Tue, 19 Mar 2024 09:51:11 +0100 Subject: [PATCH] [cmake] move platform defines to common include * Move platform specific settings to a common CMake include --- CMakeLists.txt | 16 ---------------- cmake/CommonConfigOptions.cmake | 1 + cmake/PlatformDefaults.cmake | 23 +++++++++++++++++++++++ libfreerdp/utils/CMakeLists.txt | 4 ---- winpr/CMakeLists.txt | 5 ----- winpr/libwinpr/crt/alignment.c | 10 +--------- winpr/libwinpr/handle/CMakeLists.txt | 3 --- winpr/libwinpr/nt/CMakeLists.txt | 4 ---- winpr/libwinpr/pool/CMakeLists.txt | 4 ---- winpr/libwinpr/thread/CMakeLists.txt | 4 ---- 10 files changed, 25 insertions(+), 49 deletions(-) create mode 100644 cmake/PlatformDefaults.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index fd82cfa40..da6854034 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -59,12 +59,6 @@ endif() # Include our extra modules list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/) -if((CMAKE_SYSTEM_NAME MATCHES "WindowsStore") AND (CMAKE_SYSTEM_VERSION MATCHES "10.0")) - set(UWP 1) - add_definitions("-D_UWP") - set(CMAKE_WINDOWS_VERSION "WIN10") -endif() - # Check for cmake compatibility (enable/disable features) include(CheckCmakeCompat) @@ -214,16 +208,6 @@ if(FREEBSD) find_library(EPOLLSHIM_LIBS NAMES epoll-shim libepoll-shim HINTS /usr/local/lib) endif() -# Enable 64bit file support on linux and FreeBSD. -if("${CMAKE_SYSTEM_NAME}" MATCHES "Linux" OR FREEBSD) - add_definitions("-D_FILE_OFFSET_BITS=64") -endif() - -# Use Standard conforming getpwnam_r() on Solaris. -if("${CMAKE_SYSTEM_NAME}" MATCHES "SunOS") - add_definitions("-D_POSIX_PTHREAD_SEMANTICS") -endif() - # Compiler-specific flags if(CMAKE_COMPILER_IS_GNUCC) if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64" OR CMAKE_SYSTEM_PROCESSOR MATCHES "i686") diff --git a/cmake/CommonConfigOptions.cmake b/cmake/CommonConfigOptions.cmake index 8d7f485cc..e144bbfda 100644 --- a/cmake/CommonConfigOptions.cmake +++ b/cmake/CommonConfigOptions.cmake @@ -28,6 +28,7 @@ if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE "Release" CACHE STRING "project default") endif() +include(PlatformDefaults) include(PreventInSourceBuilds) include(GNUInstallDirsWrapper) include(MSVCRuntime) diff --git a/cmake/PlatformDefaults.cmake b/cmake/PlatformDefaults.cmake new file mode 100644 index 000000000..3dc673fa0 --- /dev/null +++ b/cmake/PlatformDefaults.cmake @@ -0,0 +1,23 @@ +# default defines or other required preferences per platform +if((CMAKE_SYSTEM_NAME MATCHES "WindowsStore") AND (CMAKE_SYSTEM_VERSION MATCHES "10.0")) + set(UWP 1 CACHE BOOL "platform default") + add_definitions("-D_UWP") + set(CMAKE_WINDOWS_VERSION "WIN10" CACHE STRING "platform default") +endif() +# Enable 64bit file support on linux and FreeBSD. +if("${CMAKE_SYSTEM_NAME}" MATCHES "Linux") + add_definitions("-D_FILE_OFFSET_BITS=64") +endif() + +if("${CMAKE_SYSTEM_NAME}" MATCHES FREEBSD) + add_definitions("-D_FILE_OFFSET_BITS=64") +endif() + +# Use Standard conforming getpwnam_r() on Solaris. +# Use Standard conforming getpwnam_r() on Solaris. +if("${CMAKE_SYSTEM_NAME}" MATCHES "SunOS") + add_definitions("-D_POSIX_PTHREAD_SEMANTICS") + list(APPEND CMAKE_STANDARD_LIBRARIES rt) + set(CMAKE_STANDARD_LIBRARIES ${CMAKE_STANDARD_LIBRARIES} CACHE STRING "platform default") + set(WITH_SUN true CACHE BOOL "platform default") +endif() diff --git a/libfreerdp/utils/CMakeLists.txt b/libfreerdp/utils/CMakeLists.txt index 52690bf8c..d644837a8 100644 --- a/libfreerdp/utils/CMakeLists.txt +++ b/libfreerdp/utils/CMakeLists.txt @@ -47,10 +47,6 @@ if(WIN32) freerdp_library_add(cfgmgr32) endif() -if(${CMAKE_SYSTEM_NAME} MATCHES SunOS) - freerdp_library_add(rt) -endif() - if(BUILD_TESTING) add_subdirectory(test) endif() diff --git a/winpr/CMakeLists.txt b/winpr/CMakeLists.txt index 26cc6a674..6d6f4d818 100644 --- a/winpr/CMakeLists.txt +++ b/winpr/CMakeLists.txt @@ -323,11 +323,6 @@ endif() add_definitions(-DWINPR_EXPORTS) -# Enable 64bit file support on linux and FreeBSD. -if("${CMAKE_SYSTEM_NAME}" MATCHES "Linux" OR FREEBSD) - add_definitions("-D_FILE_OFFSET_BITS=64") -endif() - include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include) include_directories(${CMAKE_CURRENT_BINARY_DIR}/include) diff --git a/winpr/libwinpr/crt/alignment.c b/winpr/libwinpr/crt/alignment.c index e313c2d80..71dd0e0b1 100644 --- a/winpr/libwinpr/crt/alignment.c +++ b/winpr/libwinpr/crt/alignment.c @@ -36,14 +36,6 @@ #include -#if defined(__APPLE__) -#include -#elif defined(__FreeBSD__) || defined(__OpenBSD__) -#include -#else -#include -#endif - #include "../log.h" #define TAG WINPR_TAG("crt") @@ -108,7 +100,7 @@ void* winpr_aligned_offset_malloc(size_t size, size_t alignment, size_t offset) /* malloc size + alignment to make sure we can align afterwards */ #if defined(_ISOC11_SOURCE) base = aligned_alloc(alignment, alignsize); -#elif _POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600 +#elif defined(_POSIX_C_SOURCE) && (_POSIX_C_SOURCE >= 200112L) || (_XOPEN_SOURCE >= 600) if (posix_memalign(&base, alignment, alignsize) != 0) return NULL; #else diff --git a/winpr/libwinpr/handle/CMakeLists.txt b/winpr/libwinpr/handle/CMakeLists.txt index 37c410ea1..48c7aea3f 100644 --- a/winpr/libwinpr/handle/CMakeLists.txt +++ b/winpr/libwinpr/handle/CMakeLists.txt @@ -18,6 +18,3 @@ winpr_module_add(handle.c handle.h nonehandle.c nonehandle.h) -if(${CMAKE_SYSTEM_NAME} MATCHES SunOS) - winpr_library_add_private(rt) -endif() diff --git a/winpr/libwinpr/nt/CMakeLists.txt b/winpr/libwinpr/nt/CMakeLists.txt index ef335e41f..6ad18d620 100644 --- a/winpr/libwinpr/nt/CMakeLists.txt +++ b/winpr/libwinpr/nt/CMakeLists.txt @@ -21,10 +21,6 @@ winpr_library_add_private( ${CMAKE_THREAD_LIBS_INIT} ${CMAKE_DL_LIBS}) -if(${CMAKE_SYSTEM_NAME} MATCHES SunOS) - winpr_library_add_private(rt) -endif() - if(BUILD_TESTING) add_subdirectory(test) endif() diff --git a/winpr/libwinpr/pool/CMakeLists.txt b/winpr/libwinpr/pool/CMakeLists.txt index 2e25916a2..bf6a663c1 100644 --- a/winpr/libwinpr/pool/CMakeLists.txt +++ b/winpr/libwinpr/pool/CMakeLists.txt @@ -30,10 +30,6 @@ winpr_library_add_private( ${CMAKE_THREAD_LIBS_INIT} ${CMAKE_DL_LIBS}) -if(${CMAKE_SYSTEM_NAME} MATCHES SunOS) - winpr_library_add_private(rt) -endif() - if(BUILD_TESTING) add_subdirectory(test) endif() diff --git a/winpr/libwinpr/thread/CMakeLists.txt b/winpr/libwinpr/thread/CMakeLists.txt index bfc04ddda..2e9cd05be 100644 --- a/winpr/libwinpr/thread/CMakeLists.txt +++ b/winpr/libwinpr/thread/CMakeLists.txt @@ -25,10 +25,6 @@ winpr_module_add( thread.h tls.c) -if(${CMAKE_SYSTEM_NAME} MATCHES SunOS) - winpr_library_add_private(rt) -endif() - if(BUILD_TESTING) add_subdirectory(test) endif()