This is an automated email from the ASF dual-hosted git repository. pnoltes pushed a commit to branch feature/pubsub-interceptor-fix in repository https://gitbox.apache.org/repos/asf/celix.git
commit 7ec75a7f31cedd5285a8b8c2d4c3cc9584b28231 Author: Pepijn Noltes <[email protected]> AuthorDate: Tue Jul 27 19:50:09 2021 +0200 Refactors setting the C++ standard, because osx has issues building with the prev setup. --- CMakeLists.txt | 3 ++- bundles/cxx_remote_services/admin/CMakeLists.txt | 1 - bundles/cxx_remote_services/admin/gtest/CMakeLists.txt | 1 - bundles/cxx_remote_services/discovery_configured/CMakeLists.txt | 1 - bundles/cxx_remote_services/discovery_configured/gtest/CMakeLists.txt | 2 -- bundles/cxx_remote_services/integration/CMakeLists.txt | 4 ---- bundles/cxx_remote_services/integration/gtest/CMakeLists.txt | 1 - bundles/cxx_remote_services/rsa_spi/CMakeLists.txt | 2 -- bundles/cxx_remote_services/topology_manager/CMakeLists.txt | 3 +-- bundles/pubsub/pubsub_serializer_avrobin/gtest/CMakeLists.txt | 1 - bundles/pubsub/pubsub_serializer_json/gtest/CMakeLists.txt | 1 - bundles/pubsub/pubsub_spi/gtest/CMakeLists.txt | 1 - bundles/pubsub/pubsub_utils/gtest/CMakeLists.txt | 1 - bundles/shell/shell/CMakeLists.txt | 1 + examples/CMakeLists.txt | 2 +- libs/framework/CMakeLists.txt | 2 ++ libs/promises/CMakeLists.txt | 2 -- libs/promises/gtest/CMakeLists.txt | 1 - 18 files changed, 7 insertions(+), 23 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5bb18cc..88ec2f6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -48,7 +48,8 @@ set(CMAKE_C_FLAGS "-D_GNU_SOURCE -std=gnu99 -fPIC ${CMAKE_C_FLAGS}") set(CMAKE_C_FLAGS "-Wall -Werror ${CMAKE_C_FLAGS}") # Set C++ specific flags -set(CMAKE_CXX_FLAGS "-std=c++11 -fno-rtti ${CMAKE_CXX_FLAGS}") +set(CMAKE_CXX_STANDARD 17) #test code and newer C++ bundles can be C++17. The Celix::framework and Celix::CxxShell is still C++11 +set(CMAKE_CXX_FLAGS "-fno-rtti ${CMAKE_CXX_FLAGS}") set(CMAKE_CXX_FLAGS "-Wall -Werror -Wextra -Weffc++ ${CMAKE_CXX_FLAGS}") if(APPLE) diff --git a/bundles/cxx_remote_services/admin/CMakeLists.txt b/bundles/cxx_remote_services/admin/CMakeLists.txt index 24b77ab..4271651 100644 --- a/bundles/cxx_remote_services/admin/CMakeLists.txt +++ b/bundles/cxx_remote_services/admin/CMakeLists.txt @@ -30,7 +30,6 @@ target_link_libraries(RemoteServiceAdmin PRIVATE Celix::framework Celix::log_helper ) -target_compile_options(RemoteServiceAdmin PRIVATE -std=c++17) install_celix_bundle(RemoteServiceAdmin EXPORT celix COMPONENT rsa) #Setup target aliases to match external usage diff --git a/bundles/cxx_remote_services/admin/gtest/CMakeLists.txt b/bundles/cxx_remote_services/admin/gtest/CMakeLists.txt index 878a555..0fe109d 100644 --- a/bundles/cxx_remote_services/admin/gtest/CMakeLists.txt +++ b/bundles/cxx_remote_services/admin/gtest/CMakeLists.txt @@ -19,7 +19,6 @@ add_executable(test_cxx_remote_service_admin src/RemoteServiceAdminTestSuite.cc ) target_link_libraries(test_cxx_remote_service_admin PRIVATE Celix::framework GTest::gtest GTest::gtest_main Celix::rsa_spi) -target_compile_options(test_cxx_remote_service_admin PRIVATE -std=c++17) add_dependencies(test_cxx_remote_service_admin RemoteServiceAdmin_bundle) diff --git a/bundles/cxx_remote_services/discovery_configured/CMakeLists.txt b/bundles/cxx_remote_services/discovery_configured/CMakeLists.txt index 49f31dd..7834cce 100644 --- a/bundles/cxx_remote_services/discovery_configured/CMakeLists.txt +++ b/bundles/cxx_remote_services/discovery_configured/CMakeLists.txt @@ -41,7 +41,6 @@ target_link_libraries(RsaConfiguredDiscovery PRIVATE Celix::log_helper ) target_include_directories(RsaConfiguredDiscovery PRIVATE src) -target_compile_options(RsaConfiguredDiscovery PRIVATE -std=c++17) install_celix_bundle(RsaConfiguredDiscovery EXPORT celix COMPONENT rsa) add_library(Celix::RsaConfiguredDiscovery ALIAS RsaConfiguredDiscovery) diff --git a/bundles/cxx_remote_services/discovery_configured/gtest/CMakeLists.txt b/bundles/cxx_remote_services/discovery_configured/gtest/CMakeLists.txt index 8e197fe..710440b 100644 --- a/bundles/cxx_remote_services/discovery_configured/gtest/CMakeLists.txt +++ b/bundles/cxx_remote_services/discovery_configured/gtest/CMakeLists.txt @@ -20,8 +20,6 @@ add_executable(test_cxx_rsa_configured_discovery ) target_link_libraries(test_cxx_rsa_configured_discovery PRIVATE Celix::framework GTest::gtest GTest::gtest_main Celix::rsa_spi RsaConfiguredDiscovery_api) -target_compile_options(test_cxx_rsa_configured_discovery PRIVATE -std=c++17) - add_dependencies(test_cxx_rsa_configured_discovery RsaConfiguredDiscovery_bundle) celix_get_bundle_file(RsaConfiguredDiscovery RSA_CONFIGURED_DISCOVERY_BUNDLE_LOCATION) diff --git a/bundles/cxx_remote_services/integration/CMakeLists.txt b/bundles/cxx_remote_services/integration/CMakeLists.txt index 860a081..8321f00 100644 --- a/bundles/cxx_remote_services/integration/CMakeLists.txt +++ b/bundles/cxx_remote_services/integration/CMakeLists.txt @@ -19,7 +19,6 @@ add_celix_bundle(TestExportImportRemoteServiceFactory SOURCES src/TestExportImportRemoteServiceFactory.cc ) target_link_libraries(TestExportImportRemoteServiceFactory PRIVATE Celix::rsa_spi Celix::pubsub_api Celix::Promises Celix::log_helper) -target_compile_options(TestExportImportRemoteServiceFactory PRIVATE -std=c++17) #TODO how can this be improved (bring back -std=c++17 on INTERFACE for promises? target_include_directories(TestExportImportRemoteServiceFactory PRIVATE include) celix_bundle_files(TestExportImportRemoteServiceFactory resources/Calculator$add$Invoke.descriptor @@ -32,8 +31,6 @@ add_celix_bundle(CalculatorProvider ) target_link_libraries(CalculatorProvider PRIVATE Celix::Promises) target_include_directories(CalculatorProvider PRIVATE include) -target_compile_options(CalculatorProvider PRIVATE -std=c++17) #TODO how can this be improved (bring back -std=c++17 on INTERFACE for promises? - add_celix_bundle(CalculatorConsumer SOURCES src/CalculatorConsumer.cc @@ -41,7 +38,6 @@ add_celix_bundle(CalculatorConsumer celix_bundle_files(CalculatorConsumer ${CMAKE_CURRENT_SOURCE_DIR}/resources/endpoint_discovery.json DESTINATION "META-INF/discovery") # add configured discovery as resource in the bundle. target_link_libraries(CalculatorConsumer PRIVATE Celix::Promises Celix::shell_api Celix::RsaConfiguredDiscovery_api) target_include_directories(CalculatorConsumer PRIVATE include) -target_compile_options(CalculatorConsumer PRIVATE -std=c++17) #TODO how can this be improved (bring back -std=c++17 on INTERFACE for promises? if (ENABLE_TESTING) add_subdirectory(gtest) diff --git a/bundles/cxx_remote_services/integration/gtest/CMakeLists.txt b/bundles/cxx_remote_services/integration/gtest/CMakeLists.txt index 81386b9..d6a66e9 100644 --- a/bundles/cxx_remote_services/integration/gtest/CMakeLists.txt +++ b/bundles/cxx_remote_services/integration/gtest/CMakeLists.txt @@ -19,7 +19,6 @@ add_executable(test_cxx_remote_services_integration src/RemoteServicesIntegrationTestSuite.cc ) target_link_libraries(test_cxx_remote_services_integration PRIVATE Celix::framework Celix::Promises Celix::shell_api ZMQ::lib CZMQ::lib GTest::gtest GTest::gtest_main) -target_compile_options(test_cxx_remote_services_integration PRIVATE -std=c++17) target_include_directories(test_cxx_remote_services_integration PRIVATE ../include) #Add ICalculator add_celix_bundle_dependencies(test_cxx_remote_services_integration diff --git a/bundles/cxx_remote_services/rsa_spi/CMakeLists.txt b/bundles/cxx_remote_services/rsa_spi/CMakeLists.txt index 73e944b..968af6d 100644 --- a/bundles/cxx_remote_services/rsa_spi/CMakeLists.txt +++ b/bundles/cxx_remote_services/rsa_spi/CMakeLists.txt @@ -20,8 +20,6 @@ target_include_directories(rsa_spi INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include> $<INSTALL_INTERFACE:include/celix/rsa> ) -#TODO TBD is it smart to add a c++ std as INTERFACE option? -#target_compile_options(rsa_spi INTERFACE -std=c++17) install(TARGETS rsa_spi EXPORT celix DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT rsa) install(DIRECTORY include/ DESTINATION include/celix/rsa COMPONENT rsa) diff --git a/bundles/cxx_remote_services/topology_manager/CMakeLists.txt b/bundles/cxx_remote_services/topology_manager/CMakeLists.txt index 6056ad9..7459fa3 100644 --- a/bundles/cxx_remote_services/topology_manager/CMakeLists.txt +++ b/bundles/cxx_remote_services/topology_manager/CMakeLists.txt @@ -29,8 +29,7 @@ target_link_libraries(async_topology_manager PRIVATE Celix::async_rsa_discovery_configured Celix::framework Celix::log_helper - ) -target_compile_options(async_topology_manager INTERFACE -std=c++17) +) #if (ENABLE_TESTING) # add_subdirectory(gtest) diff --git a/bundles/pubsub/pubsub_serializer_avrobin/gtest/CMakeLists.txt b/bundles/pubsub/pubsub_serializer_avrobin/gtest/CMakeLists.txt index 59e4ca5..8f764d4 100644 --- a/bundles/pubsub/pubsub_serializer_avrobin/gtest/CMakeLists.txt +++ b/bundles/pubsub/pubsub_serializer_avrobin/gtest/CMakeLists.txt @@ -25,7 +25,6 @@ add_executable(test_pubsub_serializer_avrobin src/PubSubAvrobinSerializationProviderTestSuite.cc ) target_link_libraries(test_pubsub_serializer_avrobin PRIVATE Celix::framework Celix::dfi Celix::pubsub_utils GTest::gtest GTest::gtest_main Celix::pubsub_spi) -target_compile_options(test_pubsub_serializer_avrobin PRIVATE -std=c++14) #Note test code is allowed to be C++14 add_dependencies(test_pubsub_serializer_avrobin celix_pubsub_serializer_avrobin_bundle pubsub_avrobin_serialization_descriptor_bundle) target_compile_definitions(test_pubsub_serializer_avrobin PRIVATE -DSERIALIZATION_BUNDLE=\"$<TARGET_PROPERTY:celix_pubsub_serializer_avrobin,BUNDLE_FILE>\") diff --git a/bundles/pubsub/pubsub_serializer_json/gtest/CMakeLists.txt b/bundles/pubsub/pubsub_serializer_json/gtest/CMakeLists.txt index 9a07c94..60b5626 100644 --- a/bundles/pubsub/pubsub_serializer_json/gtest/CMakeLists.txt +++ b/bundles/pubsub/pubsub_serializer_json/gtest/CMakeLists.txt @@ -25,7 +25,6 @@ add_executable(test_pubsub_serializer_json src/PubSubJsonSerializationProviderTestSuite.cc ) target_link_libraries(test_pubsub_serializer_json PRIVATE Celix::framework Celix::dfi Celix::pubsub_utils GTest::gtest GTest::gtest_main Celix::pubsub_spi) -target_compile_options(test_pubsub_serializer_json PRIVATE -std=c++14) #Note test code is allowed to be C++14 add_dependencies(test_pubsub_serializer_json celix_pubsub_serializer_json_bundle pubsub_json_serialization_descriptor_bundle) target_compile_definitions(test_pubsub_serializer_json PRIVATE -DSERIALIZATION_BUNDLE=\"$<TARGET_PROPERTY:celix_pubsub_serializer_json,BUNDLE_FILE>\") diff --git a/bundles/pubsub/pubsub_spi/gtest/CMakeLists.txt b/bundles/pubsub/pubsub_spi/gtest/CMakeLists.txt index 5cc80be..4c084bd 100644 --- a/bundles/pubsub/pubsub_spi/gtest/CMakeLists.txt +++ b/bundles/pubsub/pubsub_spi/gtest/CMakeLists.txt @@ -19,7 +19,6 @@ add_executable(test_pubsub_spi src/PubSubEndpointUtilsTestSuite.cc ) target_link_libraries(test_pubsub_spi PRIVATE Celix::pubsub_spi GTest::gtest GTest::gtest_main) -target_compile_options(test_pubsub_spi PRIVATE -std=c++14) #Note test code is allowed to be C++14 #Seems to be an issue with coverage setup, for now disabled #setup_target_for_coverage(test_pubsub_spi SCAN_DIR ..) diff --git a/bundles/pubsub/pubsub_utils/gtest/CMakeLists.txt b/bundles/pubsub/pubsub_utils/gtest/CMakeLists.txt index a883776..ac8cdb8 100644 --- a/bundles/pubsub/pubsub_utils/gtest/CMakeLists.txt +++ b/bundles/pubsub/pubsub_utils/gtest/CMakeLists.txt @@ -52,7 +52,6 @@ add_executable(test_pubsub_utils src/PubSubMatchingTestSuite.cpp ) target_link_libraries(test_pubsub_utils PRIVATE Celix::framework Celix::pubsub_utils GTest::gtest GTest::gtest_main Celix::pubsub_spi) -target_compile_options(test_pubsub_utils PRIVATE -std=c++14) #Note test code is allowed to be C++14 add_test(NAME test_pubsub_utils COMMAND test_pubsub_utils) setup_target_for_coverage(test_pubsub_utils SCAN_DIR ..) diff --git a/bundles/shell/shell/CMakeLists.txt b/bundles/shell/shell/CMakeLists.txt index c89e85a..ba62a4c 100644 --- a/bundles/shell/shell/CMakeLists.txt +++ b/bundles/shell/shell/CMakeLists.txt @@ -70,6 +70,7 @@ if (SHELL) add_library(Celix::shell ALIAS shell) if (CELIX_CXX) + set(CMAKE_CXX_STANDARD 11) #Note that the Celix::CxxShell uses C++11 only add_celix_bundle(ShellCxx SYMBOLIC_NAME "apache::celix::CxxShell" VERSION "2.1.0" diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index d26439c..80b88e7 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -30,6 +30,6 @@ cmake_minimum_required (VERSION 3.4) project (CelixUse C CXX) set(CMAKE_C_FLAGS "-D_GNU_SOURCE -std=gnu99 ${CMAKE_C_FLAGS}") -set(CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS}") +set(CMAKE_CXX_STANDARD 11) find_package(Celix REQUIRED) add_subdirectory(celix-examples examples) diff --git a/libs/framework/CMakeLists.txt b/libs/framework/CMakeLists.txt index c430a4a..cfc1d22 100644 --- a/libs/framework/CMakeLists.txt +++ b/libs/framework/CMakeLists.txt @@ -19,6 +19,8 @@ find_package(ZLIB REQUIRED) find_package(UUID REQUIRED) find_package(CURL REQUIRED) +set(CMAKE_CXX_STANDARD 11) #Note that the Celix framework C++ (header only) library uses C++11 only + set(SOURCES src/attribute.c src/bundle.c src/bundle_archive.c src/bundle_cache.c src/bundle_context.c src/bundle_revision.c src/capability.c src/celix_errorcodes.c diff --git a/libs/promises/CMakeLists.txt b/libs/promises/CMakeLists.txt index 5c212f9..86784e3 100644 --- a/libs/promises/CMakeLists.txt +++ b/libs/promises/CMakeLists.txt @@ -28,7 +28,6 @@ if (NOT COMMAND celix_subproject) include(GNUInstallDirs) - set(CMAKE_CXX_FLAGS "-std=c++17 ${CMAKE_CXX_FLAGS}") set(CMAKE_CXX_FLAGS_DEBUG "-g -DDEBUG ${CMAKE_CXX_FLAGS_DEBUG}") set(PROMISES_STANDALONE ON) @@ -49,7 +48,6 @@ if (PROMISES OR PROMISES_STANDALONE) add_library(Celix::Promises ALIAS Promises) add_executable(PromiseExamples src/PromiseExamples.cc) - target_compile_options(PromiseExamples PRIVATE -std=c++17) target_link_libraries(PromiseExamples PRIVATE Celix::Promises) if (ENABLE_TESTING AND NOT PROMISE_STANDALONE) diff --git a/libs/promises/gtest/CMakeLists.txt b/libs/promises/gtest/CMakeLists.txt index 38cfa8d..209e40d 100644 --- a/libs/promises/gtest/CMakeLists.txt +++ b/libs/promises/gtest/CMakeLists.txt @@ -20,7 +20,6 @@ add_executable(test_celix_promises src/PromisesTestSuite.cc src/VoidPromisesTestSuite.cc ) -target_compile_options(test_celix_promises PRIVATE -std=c++17) target_link_libraries(test_celix_promises PRIVATE GTest::gtest GTest::gtest_main Celix::Promises) add_test(NAME test_celix_promises COMMAND test_celix_promises)
