From 0f4da7a529d145175b9a5a0b62fa570de093e2e5 Mon Sep 17 00:00:00 2001 From: Chris Hennes Date: Tue, 18 Feb 2025 21:39:06 -0600 Subject: [PATCH] CMake: Expand note about BOOST_PP_VARIADICS=1 --- .../FreeCAD_Helpers/CompilerChecksAndSetups.cmake | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/cMake/FreeCAD_Helpers/CompilerChecksAndSetups.cmake b/cMake/FreeCAD_Helpers/CompilerChecksAndSetups.cmake index 4de75d8dea..ed2b9cac69 100644 --- a/cMake/FreeCAD_Helpers/CompilerChecksAndSetups.cmake +++ b/cMake/FreeCAD_Helpers/CompilerChecksAndSetups.cmake @@ -29,11 +29,11 @@ macro(CompilerChecksAndSetups) endif(CMAKE_COMPILER_IS_GNUCXX AND NOT CMAKE_CXX_COMPILER_VERSION) # Enabled C++20 for Freecad 1.1 and later - set(BUILD_ENABLE_CXX_STD "C++20" CACHE STRING "Enable C++ standard") - set_property(CACHE BUILD_ENABLE_CXX_STD PROPERTY STRINGS - "C++20" - "C++23" - ) + set(BUILD_ENABLE_CXX_STD "C++20" CACHE STRING "Enable C++ standard") + set_property(CACHE BUILD_ENABLE_CXX_STD PROPERTY STRINGS + "C++20" + "C++23" + ) if (CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 11.2) message(FATAL_ERROR "FreeCAD 1.1 and later requires C++20. G++ must be 11.2 or later, the used version is ${CMAKE_CXX_COMPILER_VERSION}") @@ -105,7 +105,9 @@ macro(CompilerChecksAndSetups) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-undefined-var-template") endif() - # older boost.preprocessor turn off variadics for clang + # boost.preprocessor 1.74 and earlier turns off variadics for clang regardless of version, even though they + # work in all versions of clang that we support. Manually force variadic macro support until our oldest + # supported version of boost is 1.75 or higher. add_definitions(-DBOOST_PP_VARIADICS=1) message(STATUS "Force BOOST_PP_VARIADICS=1 for clang") endif()