Allow to keep CMake's CXX_STANDARD property empty

This can be useful to e.g. specify the standard manually or to just stick
to the compiler's default.
This commit is contained in:
Martchus 2022-12-22 23:31:45 +01:00
parent 1aba9f5f6f
commit d9eb99fca1
4 changed files with 28 additions and 8 deletions

View File

@ -56,13 +56,17 @@ target_compile_options(
PRIVATE "${META_PRIVATE_COMPILE_OPTIONS}")
set_target_properties(
${META_TARGET_NAME}
PROPERTIES CXX_STANDARD "${META_CXX_STANDARD}"
C_VISIBILITY_PRESET hidden
PROPERTIES C_VISIBILITY_PRESET hidden
CXX_VISIBILITY_PRESET hidden
LINK_SEARCH_START_STATIC ${STATIC_LINKAGE}
LINK_SEARCH_END_STATIC ${STATIC_LINKAGE}
AUTOGEN_TARGET_DEPENDS "${AUTOGEN_DEPS}"
QT_DEFAULT_PLUGINS "${META_QT_DEFAULT_PLUGINS}")
if (NOT META_CXX_STANDARD STREQUAL "any")
set_target_properties(
${META_TARGET_NAME}
PROPERTIES CXX_STANDARD "${META_CXX_STANDARD}")
endif ()
# set properties for macOS bundle and generate icon for macOS bundle
if (GUI_TYPE STREQUAL "MACOSX_BUNDLE")

View File

@ -160,13 +160,17 @@ else ()
${META_TARGET_NAME}
PROPERTIES VERSION "${META_VERSION_MAJOR}.${META_VERSION_MINOR}.${META_VERSION_PATCH}"
SOVERSION "${META_SOVERSION}"
CXX_STANDARD "${META_CXX_STANDARD}"
C_VISIBILITY_PRESET hidden
CXX_VISIBILITY_PRESET hidden
LINK_SEARCH_START_STATIC ${STATIC_LINKAGE}
LINK_SEARCH_END_STATIC ${STATIC_LINKAGE}
AUTOGEN_TARGET_DEPENDS "${AUTOGEN_DEPS}"
QT_DEFAULT_PLUGINS "${META_QT_DEFAULT_PLUGINS}")
if (NOT META_CXX_STANDARD STREQUAL "any")
set_target_properties(
${META_TARGET_NAME}
PROPERTIES CXX_STANDARD "${META_CXX_STANDARD}")
endif ()
if (META_PLUGIN_CATEGORY)
set_target_properties(${META_TARGET_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${META_PLUGIN_CATEGORY}")
endif ()
@ -235,8 +239,12 @@ if (META_HEADER_ONLY_LIB)
${META_TARGET_NAME}_interface_sources_for_qtcreator
PROPERTIES VERSION "${META_VERSION_MAJOR}.${META_VERSION_MINOR}.${META_VERSION_PATCH}"
SOVERSION "${META_SOVERSION}"
CXX_STANDARD "${META_CXX_STANDARD}"
AUTOGEN_TARGET_DEPENDS "${AUTOGEN_DEPS}")
if (NOT META_CXX_STANDARD STREQUAL "any")
set_target_properties(
${META_TARGET_NAME}_interface_sources_for_qtcreator
PROPERTIES CXX_STANDARD "${META_CXX_STANDARD}")
endif ()
endif ()
# generate CMake code to configure additional arguments for required CMake-packages

View File

@ -115,12 +115,16 @@ if (META_PROJECT_IS_APPLICATION AND LINK_TESTS_AGAINST_APP_TARGET)
PRIVATE "${META_PRIVATE_COMPILE_OPTIONS}")
set_target_properties(
${META_TARGET_NAME}_testlib
PROPERTIES CXX_STANDARD "${META_CXX_STANDARD}"
C_VISIBILITY_PRESET default
PROPERTIES C_VISIBILITY_PRESET default
CXX_VISIBILITY_PRESET default
LINK_SEARCH_START_STATIC ${STATIC_LINKAGE}
LINK_SEARCH_END_STATIC ${STATIC_LINKAGE}
AUTOGEN_TARGET_DEPENDS "${AUTOGEN_DEPS}")
if (NOT META_CXX_STANDARD STREQUAL "any")
set_target_properties(
${META_TARGET_NAME}_testlib
PROPERTIES CXX_STANDARD "${META_CXX_STANDARD}")
endif ()
if (CPP_UNIT_CONFIG_${META_PROJECT_NAME}_FOUND)
target_include_directories(${META_TARGET_NAME}_testlib
PRIVATE "${CPP_UNIT_CONFIG_${META_PROJECT_NAME}_INCLUDE_DIRS}")

View File

@ -62,11 +62,15 @@ function (configure_test_target)
PRIVATE "${META_PRIVATE_COMPILE_OPTIONS}")
set_target_properties(
"${TEST_TARGET_NAME}"
PROPERTIES CXX_STANDARD "${META_CXX_STANDARD}"
C_VISIBILITY_PRESET hidden
PROPERTIES C_VISIBILITY_PRESET hidden
CXX_VISIBILITY_PRESET hidden
LINK_SEARCH_START_STATIC ${STATIC_LINKAGE}
LINK_SEARCH_END_STATIC ${STATIC_LINKAGE})
if (NOT META_CXX_STANDARD STREQUAL "any")
set_target_properties(
"${TEST_TARGET_NAME}"
PROPERTIES CXX_STANDARD "${META_CXX_STANDARD}")
endif ()
# make the test recognized by ctest
if (NOT ARGS_MANUAL)