diff --git a/CMakeLists.txt b/CMakeLists.txt index 71ec300b..23c55335 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -77,6 +77,8 @@ if(WITH_ALL_BENCHMARKS) set(WITH_BENCHMARKS ON) endif() +set(DWARFS_CXX_STANDARD 20) + # Libraries that we can fetch on demand if necessary # # All of these libraries are header-only and not strictly required once @@ -472,8 +474,8 @@ if(WITH_TESTS OR WITH_BENCHMARKS OR WITH_FUZZ) if(WITH_BENCHMARKS) target_sources(dwarfs_test_helpers PRIVATE test/test_strings.cpp) endif() - target_link_libraries(dwarfs_test_helpers PUBLIC dwarfs_common dwarfs_writer dwarfs_tool) - set_property(TARGET dwarfs_test_helpers PROPERTY CXX_STANDARD 20) + target_link_libraries(dwarfs_test_helpers PUBLIC dwarfs_reader dwarfs_writer dwarfs_tool) + set_property(TARGET dwarfs_test_helpers PROPERTY CXX_STANDARD ${DWARFS_CXX_STANDARD}) endif() if(WITH_TESTS) @@ -818,7 +820,7 @@ foreach(tgt ${LIBDWARFS_TARGETS} ${LIBDWARFS_OBJECT_TARGETS} dwarfs_test_helpers ) endif() - set_property(TARGET ${tgt} PROPERTY CXX_STANDARD 20) + set_property(TARGET ${tgt} PROPERTY CXX_STANDARD ${DWARFS_CXX_STANDARD}) set_property(TARGET ${tgt} PROPERTY CXX_STANDARD_REQUIRED ON) set_property(TARGET ${tgt} PROPERTY CXX_EXTENSIONS OFF) diff --git a/cmake/compile.cmake b/cmake/compile.cmake index 6f99cc74..37bbd4e5 100644 --- a/cmake/compile.cmake +++ b/cmake/compile.cmake @@ -75,7 +75,7 @@ endif() set(default_build_type "Release") -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD ${DWARFS_CXX_STANDARD}) set(CMAKE_CXX_STANDARD_REQUIRED ON) if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) diff --git a/cmake/folly.cmake b/cmake/folly.cmake index 8d690450..cd532327 100644 --- a/cmake/folly.cmake +++ b/cmake/folly.cmake @@ -38,13 +38,13 @@ add_compile_definitions(GLOG_NO_ABBREVIATED_SEVERITIES NOMINMAX NOGDI) add_compile_definitions(GLOG_USE_GLOG_EXPORT) set( - CXX_STD "gnu++20" + CXX_STD "gnu++${DWARFS_CXX_STANDARD}" CACHE STRING "The C++ standard argument to pass to the compiler." ) set( - MSVC_LANGUAGE_VERSION "c++20" + MSVC_LANGUAGE_VERSION "c++${DWARFS_CXX_STANDARD}" CACHE STRING "The C++ standard argument to pass to the compiler." ) @@ -143,7 +143,7 @@ if(WIN32) ) endif() -set_property(TARGET dwarfs_folly_lite PROPERTY CXX_STANDARD 20) +set_property(TARGET dwarfs_folly_lite PROPERTY CXX_STANDARD ${DWARFS_CXX_STANDARD}) target_include_directories( dwarfs_folly_lite SYSTEM PUBLIC $ diff --git a/cmake/libdwarfs.cmake b/cmake/libdwarfs.cmake index 9e6317b0..1efa2aa6 100644 --- a/cmake/libdwarfs.cmake +++ b/cmake/libdwarfs.cmake @@ -239,7 +239,7 @@ endif() target_link_libraries(dwarfs_extractor PRIVATE PkgConfig::LIBARCHIVE) target_include_directories(dwarfs_common SYSTEM PRIVATE $) -set_property(TARGET dwarfs_fsst PROPERTY CXX_STANDARD 20) +set_property(TARGET dwarfs_fsst PROPERTY CXX_STANDARD ${DWARFS_CXX_STANDARD}) set_property(TARGET dwarfs_fsst PROPERTY CXX_STANDARD_REQUIRED ON) set_property(TARGET dwarfs_fsst PROPERTY CXX_EXTENSIONS OFF) diff --git a/cmake/need_gtest.cmake b/cmake/need_gtest.cmake index ffa22256..6c946904 100644 --- a/cmake/need_gtest.cmake +++ b/cmake/need_gtest.cmake @@ -28,7 +28,7 @@ if(PREFER_SYSTEM_GTEST) try_compile( GTEST_SUPPORTS_U8STRING SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/cmake/checks/gtest-u8string.cpp - CXX_STANDARD 20 + CXX_STANDARD ${DWARFS_CXX_STANDARD} ) if(NOT GTEST_SUPPORTS_U8STRING) diff --git a/cmake/need_phmap.cmake b/cmake/need_phmap.cmake index 85259e70..bbb32bbb 100644 --- a/cmake/need_phmap.cmake +++ b/cmake/need_phmap.cmake @@ -23,7 +23,7 @@ try_run( PHMAP_COMPILE_RESULT SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/cmake/checks/phmap-version.cpp CMAKE_FLAGS -DINCLUDE_DIRECTORIES=${TRY_RUN_INCLUDE_DIRECTORIES} - CXX_STANDARD 20 + CXX_STANDARD ${DWARFS_CXX_STANDARD} RUN_OUTPUT_VARIABLE PHMAP_VERSION COMPILE_OUTPUT_VARIABLE PHMAP_COMPILE_OUTPUT ) diff --git a/cmake/thrift.cmake b/cmake/thrift.cmake index fd7936e2..07db8eff 100644 --- a/cmake/thrift.cmake +++ b/cmake/thrift.cmake @@ -57,7 +57,7 @@ add_library( ${THRIFT_GENERATED_DIR}/thrift/lib/thrift/gen-cpp2/frozen_types_compact.cpp ) -set_property(TARGET dwarfs_thrift_lite PROPERTY CXX_STANDARD 20) +set_property(TARGET dwarfs_thrift_lite PROPERTY CXX_STANDARD ${DWARFS_CXX_STANDARD}) target_link_libraries(dwarfs_thrift_lite PUBLIC dwarfs_folly_lite) target_include_directories(dwarfs_thrift_lite SYSTEM PUBLIC diff --git a/cmake/thrift_library.cmake b/cmake/thrift_library.cmake index 3d40247f..0c6ed8b6 100644 --- a/cmake/thrift_library.cmake +++ b/cmake/thrift_library.cmake @@ -141,6 +141,6 @@ function(add_cpp2_thrift_library idlfile) if(NOT WIN32) target_compile_options(${_THRIFT_TARGET} PRIVATE -Wno-deprecated-declarations) endif() - set_property(TARGET ${_THRIFT_TARGET} PROPERTY CXX_STANDARD 20) + set_property(TARGET ${_THRIFT_TARGET} PROPERTY CXX_STANDARD ${DWARFS_CXX_STANDARD}) endif() endfunction()