[cmake] make C and C++ standards configurable

use cache variables to allow overriding them from command line
This commit is contained in:
akallabeth
2025-02-13 12:50:36 +01:00
parent b85737e0b8
commit a24ffe957c
12 changed files with 19 additions and 37 deletions

View File

@@ -25,10 +25,6 @@ if(POLICY CMP0091)
endif()
project(FreeRDP LANGUAGES C)
set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED ON)
set(CMAKE_C_EXTENSIONS ON)
add_custom_target(fuzzers COMMENT "Build fuzzers")
if(NOT DEFINED VENDOR)
@@ -60,6 +56,8 @@ endif()
# Include our extra modules
list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/)
include(ProjectCStandard)
# Check for cmake compatibility (enable/disable features)
include(CheckCmakeCompat)

View File

@@ -28,11 +28,8 @@ project(sdl-freerdp LANGUAGES CXX VERSION ${FREERDP_DEFAULT_PROJECT_VERSION})
message("project ${PROJECT_NAME} is using version ${PROJECT_VERSION}")
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS ON)
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../cmake/)
include(ProjectCXXStandard)
include(CommonConfigOptions)
include(ConfigureFreeRDP)

View File

@@ -27,11 +27,8 @@ project(sfreerdp LANGUAGES C VERSION ${FREERDP_DEFAULT_PROJECT_VERSION})
message("project ${PROJECT_NAME} is using version ${PROJECT_VERSION}")
set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED ON)
set(CMAKE_C_EXTENSIONS ON)
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../cmake/)
include(ProjectCStandard)
include(CommonConfigOptions)
include(ConfigureFreeRDP)

View File

@@ -27,11 +27,8 @@ message("project ${PROJECT_NAME} is using version ${PROJECT_VERSION}")
set(MODULE_NAME "xfreerdp")
set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED ON)
set(CMAKE_C_EXTENSIONS ON)
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../cmake/)
include(ProjectCStandard)
include(CommonConfigOptions)
include(ConfigureFreeRDP)

View File

@@ -0,0 +1,3 @@
set(CMAKE_C_STANDARD 11 CACHE STRING "project default")
set(CMAKE_C_STANDARD_REQUIRED ON CACHE BOOL "project default")
set(CMAKE_C_EXTENSIONS ON CACHE BOOL "project default")

View File

@@ -0,0 +1,3 @@
set(CMAKE_CXX_STANDARD 17 CACHE STRING "project default")
set(CMAKE_CXX_STANDARD_REQUIRED ON CACHE BOOL "project default")
set(CMAKE_CXX_EXTENSIONS ON CACHE BOOL "project default")

View File

@@ -23,13 +23,12 @@ set(RDTK_VERSION "${RDTK_VERSION_MAJOR}.${RDTK_VERSION_MINOR}.${RDTK_VERSION_REV
set(RDTK_VERSION_FULL "${RDTK_VERSION}")
set(RDTK_API_VERSION "${RDTK_VERSION_MAJOR}")
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../cmake/)
if(NOT FREERDP_UNIFIED_BUILD)
cmake_minimum_required(VERSION 3.13)
project(RdTk VERSION ${RDTK_VERSION} LANGUAGES C)
set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED ON)
set(CMAKE_C_EXTENSIONS ON)
include(ProjectCStandard)
set(WINPR_VERSION_MAJOR 3)
option(BUILD_TESTING_INTERNAL "Build library unit tests" ON)
@@ -40,7 +39,6 @@ else()
endif()
# Include our extra modules
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../cmake/)
include(CommonConfigOptions)
# Include cmake modules

View File

@@ -33,12 +33,10 @@ project(proxy-bitmap-filter-plugin VERSION ${FREERDP_DEFAULT_PROJECT_VERSION} LA
message("project ${PROJECT_NAME} is using version ${PROJECT_VERSION}")
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/)
include(ProjectCXXStandard)
include(CommonConfigOptions)
include(CXXCompilerFlags)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(SRCS bitmap-filter.cpp)
addtargetwithresourcefile(${PROJECT_NAME} FALSE "${PROJECT_VERSION}" SRCS FALSE)

View File

@@ -33,12 +33,10 @@ project(proxy-demo-plugin VERSION ${FREERDP_DEFAULT_PROJECT_VERSION} LANGUAGES C
message("project ${PROJECT_NAME} is using version ${PROJECT_VERSION}")
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/)
include(ProjectCXXStandard)
include(CommonConfigOptions)
include(CXXCompilerFlags)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(SRCS demo.cpp)
addtargetwithresourcefile(${PROJECT_NAME} FALSE "${PROJECT_VERSION}" SRCS FALSE)

View File

@@ -34,9 +34,7 @@ message("project ${PROJECT_NAME} is using version ${PROJECT_VERSION}")
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/)
include(CommonConfigOptions)
include(CXXCompilerFlags)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
include(ProjectCXXStandard)
set(SRCS dyn-channel-dump.cpp)
addtargetwithresourcefile(${PROJECT_NAME} FALSE "${PROJECT_VERSION}" SRCS FALSE)

View File

@@ -23,13 +23,12 @@ set(UWAC_VERSION "${UWAC_VERSION_MAJOR}.${UWAC_VERSION_MINOR}.${UWAC_VERSION_REV
set(UWAC_VERSION_FULL "${UWAC_VERSION}")
set(UWAC_API_VERSION "${UWAC_VERSION_MAJOR}")
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../cmake/)
if(NOT FREERDP_UNIFIED_BUILD)
cmake_minimum_required(VERSION 3.13)
project(uwac VERSION ${UWAC_VERSION} LANGUAGES C)
set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED ON)
set(CMAKE_C_EXTENSIONS ON)
include(ProjectCStandard)
option(BUILD_TESTING_INTERNAL "Build library unit tests" ON)
@@ -40,7 +39,6 @@ option(UWAC_FORCE_STATIC_BUILD "Force UWAC to be build as static library (recomm
option(UWAC_HAVE_PIXMAN_REGION "Use PIXMAN or FreeRDP for region calculations" "NOT FREERDP_UNIFIED_BUILD")
# Include our extra modules
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../cmake/)
include(CommonConfigOptions)
include(CheckFunctionExists)

View File

@@ -26,10 +26,7 @@ if(NOT FREERDP_UNIFIED_BUILD)
endif()
project(WinPR LANGUAGES C)
set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED ON)
set(CMAKE_C_EXTENSIONS ON)
include(ProjectCStandard)
include(CommonConfigOptions)
include(ConfigOptions)