diff --git a/FindGrpc.cmake b/FindGrpc.cmake index ba752fd..4f35463 100644 --- a/FindGrpc.cmake +++ b/FindGrpc.cmake @@ -1,6 +1,6 @@ include("GenericFindDependency") -option(ABSL_PROPAGATE_CXX_STD "Use CMake C++ standard meta features (e.g. cxx_std_11) that propagate to targets that link to Abseil" true) +option(ABSL_PROPAGATE_CXX_STD "Use CMake C++ standard meta features (e.g. cxx_std_14) that propagate to targets that link to Abseil" true) option(protobuf_INSTALL "Install protobuf binaries and files" OFF) option(utf8_range_ENABLE_INSTALL "Configure installation" OFF) diff --git a/FindProtobuf.cmake b/FindProtobuf.cmake index 1717924..2fcd6b8 100644 --- a/FindProtobuf.cmake +++ b/FindProtobuf.cmake @@ -10,6 +10,7 @@ # WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. # +option(ABSL_PROPAGATE_CXX_STD "Use CMake C++ standard meta features (e.g. cxx_std_14) that propagate to targets that link to Abseil" true) option(protobuf_INSTALL "Install protobuf binaries and files" OFF) option(utf8_range_ENABLE_INSTALL "Configure installation" OFF) @@ -17,6 +18,6 @@ include("GenericFindDependency") option(protocol_BUILD_TESTS "" OFF) GenericFindDependency( TARGET "libprotobuf" - SOURCE_DIR "protobuf/cmake" + SOURCE_DIR "protobuf" SYSTEM_INCLUDES ) diff --git a/SwiftTargets.cmake b/SwiftTargets.cmake index 9e29064..d1fa346 100644 --- a/SwiftTargets.cmake +++ b/SwiftTargets.cmake @@ -250,8 +250,11 @@ function(swift_add_target target type) if (x_C_STANDARD) list(APPEND language_standards_args C ${x_C_STANDARD}) endif() + if (x_CXX_STANDARD) list(APPEND language_standards_args CXX ${x_CXX_STANDARD}) + elseif (SWIFT_CXX_STANDARD) + list(APPEND language_standards_args CXX ${SWIFT_CXX_STANDARD}) endif() if (x_INTERFACE AND x_OBJECT) diff --git a/TestTargets.cmake b/TestTargets.cmake index 26558b1..8f38515 100644 --- a/TestTargets.cmake +++ b/TestTargets.cmake @@ -261,7 +261,7 @@ endfunction() function(swift_add_test target) set(argOption "INTEGRATION_TEST" "PARALLEL" "POST_BUILD" "UNIT_TEST" "VALGRIND_MEMCHECK") - set(argSingle "COMMENT" "WORKING_DIRECTORY") + set(argSingle "C_STANDARD" "CXX_STANDARD" "COMMENT" "WORKING_DIRECTORY") set(argMulti "SRCS" "LINK" "INCLUDE") cmake_parse_arguments(x "${argOption}" "${argSingle}" "${argMulti}" ${ARGN}) @@ -290,9 +290,19 @@ function(swift_add_test target) message(FATAL_ERROR "VALGRIND_MEMCHECK can only be specified with UNIT_TEST") endif() + set(language_standards_args) + if (x_C_STANDARD) + list(APPEND language_standards_args C ${x_C_STANDARD}) + endif() + if (x_CXX_STANDARD) + list(APPEND language_standards_args CXX ${x_CXX_STANDARD}) + elseif (SWIFT_CXX_STANDARD) + list(APPEND language_standards_args CXX ${SWIFT_CXX_STANDARD}) + endif() + add_executable(${target} EXCLUDE_FROM_ALL ${x_SRCS}) set_target_properties(${target} PROPERTIES SWIFT_TYPE "test") - swift_set_language_standards(${target} C_EXTENSIONS_ON) + swift_set_language_standards(${target} ${language_standards_args} C_EXTENSIONS_ON) target_code_coverage(${target} AUTO ALL) if(x_INCLUDE) target_include_directories(${target} PRIVATE ${x_INCLUDE})