You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@celix.apache.org by pe...@apache.org on 2022/03/15 04:56:05 UTC
[celix] 03/03: Improve the modular structure of cmake project, update conanfile accordingly.
This is an automated email from the ASF dual-hosted git repository.
pengzheng pushed a commit to branch feature/conan_support
in repository https://gitbox.apache.org/repos/asf/celix.git
commit fe5dc9ba205e63a17c85bd84cd2883e7737ee97f
Author: PengZheng <ho...@gmail.com>
AuthorDate: Tue Mar 15 12:55:18 2022 +0800
Improve the modular structure of cmake project, update conanfile accordingly.
Replace the broken automatic dependency deduction in celix_subproject with automatic error detection. Use celix_subproject systematically to reflect the current modular structure, and thus allowing more to be opted out. Essential and non-essential usages are carefully differentiated: e.g., PUBSUB_PSA_WS uses HTTP_ADMIN essentially, while all bundles use log_helper non-essentially. Now it's possible to turn off all bundles.
Minor cmake style improvements, including: replacing add_dependencies with add_celix_bundle_dependencies; use ${CMAKE_INSTALL_INCLUDEDIR} instead of fixed `include`; replacing $<INSTALL_INTERFACE:> with INCLUDES DESTINATION.
conanfile.py is also updated according to the current project structure. The default options reflect a reasonably minimal and functionally stable configuration: framework without etcd, log_admin, http_admin, pubsub_pas_ws with no need of external discovery mechanism, rsa with preconfigured discovery.
---
CMakeLists.txt | 36 +-
bundles/cxx_remote_services/CMakeLists.txt | 13 +-
.../cxx_remote_services/admin/gtest/CMakeLists.txt | 2 +-
.../discovery_configured/gtest/CMakeLists.txt | 2 +-
.../cxx_remote_services/integration/CMakeLists.txt | 81 +-
bundles/cxx_remote_services/rsa_spi/CMakeLists.txt | 6 +-
bundles/deployment_admin/CMakeLists.txt | 25 +-
bundles/device_access/CMakeLists.txt | 4 +-
bundles/device_access/device_access/CMakeLists.txt | 8 +-
bundles/device_access/example/CMakeLists.txt | 2 +-
bundles/http_admin/CMakeLists.txt | 2 +-
bundles/http_admin/civetweb/CMakeLists.txt | 10 +-
bundles/http_admin/http_admin_api/CMakeLists.txt | 6 +-
bundles/logging/CMakeLists.txt | 19 +-
bundles/logging/log_admin/gtest/CMakeLists.txt | 2 +-
bundles/logging/log_helper/CMakeLists.txt | 12 +-
bundles/logging/log_service_api/CMakeLists.txt | 10 +-
bundles/logging/log_writers/CMakeLists.txt | 2 +-
.../log_writers/syslog_writer/CMakeLists.txt | 2 +-
.../log_writers/syslog_writer/gtest/CMakeLists.txt | 3 +-
bundles/pubsub/CMakeLists.txt | 31 +-
bundles/pubsub/examples/CMakeLists.txt | 663 +++++++-------
bundles/pubsub/integration/CMakeLists.txt | 994 +++++++++++----------
bundles/pubsub/pubsub_admin_tcp/CMakeLists.txt | 49 +-
bundles/pubsub/pubsub_admin_udp_mc/CMakeLists.txt | 45 +-
.../pubsub/pubsub_admin_websocket/CMakeLists.txt | 47 +-
bundles/pubsub/pubsub_admin_zmq/CMakeLists.txt | 65 +-
bundles/pubsub/pubsub_api/CMakeLists.txt | 7 +-
bundles/pubsub/pubsub_discovery/CMakeLists.txt | 41 +-
.../pubsub_serializer_avrobin/gtest/CMakeLists.txt | 2 +-
.../pubsub/pubsub_serializer_json/CMakeLists.txt | 2 +-
.../pubsub_serializer_json/gtest/CMakeLists.txt | 2 +-
bundles/pubsub/pubsub_spi/CMakeLists.txt | 8 +-
bundles/pubsub/pubsub_utils/CMakeLists.txt | 6 +-
bundles/pubsub/pubsub_utils/gtest/CMakeLists.txt | 3 +-
bundles/remote_services/CMakeLists.txt | 17 +-
.../deprecated_rsa_spi/CMakeLists.txt | 6 +-
.../discovery_configured/CMakeLists.txt | 43 +-
.../remote_services/discovery_etcd/CMakeLists.txt | 57 +-
.../examples/interceptors/CMakeLists.txt | 2 +-
.../remote_service_admin_dfi/CMakeLists.txt | 66 +-
.../remote_service_admin_dfi/gtest/CMakeLists.txt | 8 +-
.../remote_services_api/CMakeLists.txt | 6 +-
.../topology_manager/CMakeLists.txt | 11 +-
.../topology_manager/tms_tst/CMakeLists.txt | 2 +-
bundles/shell/remote_shell/CMakeLists.txt | 32 +-
bundles/shell/shell/CMakeLists.txt | 36 +-
bundles/shell/shell/gtest/CMakeLists.txt | 4 +-
bundles/shell/shell_bonjour/CMakeLists.txt | 6 +-
bundles/shell/shell_tui/CMakeLists.txt | 4 +-
bundles/shell/shell_wui/CMakeLists.txt | 2 -
cmake/CelixConfig.cmake | 32 +-
cmake/celix_project/CelixProject.cmake | 29 +-
cmake/cmake_celix/BundlePackaging.cmake | 5 +-
cmake/cmake_celix/ContainerPackaging.cmake | 3 +-
conanfile.py | 111 ++-
examples/celix-examples/CMakeLists.txt | 2 +-
libs/dependency_manager/CMakeLists.txt | 5 +-
libs/dfi/CMakeLists.txt | 5 +-
libs/etcdlib/CMakeLists.txt | 103 +--
libs/framework/CMakeLists.txt | 8 +-
libs/launcher/CMakeLists.txt | 11 +-
libs/promises/CMakeLists.txt | 6 +-
libs/pushstreams/CMakeLists.txt | 8 +-
libs/utils/CMakeLists.txt | 8 +-
misc/experimental/CMakeLists.txt | 2 +-
66 files changed, 1452 insertions(+), 1400 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 599ba2c..f9db6bc 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -27,6 +27,34 @@ project (Celix C CXX)
include(cmake/celix_project/CelixProject.cmake)
include(cmake/cmake_celix/UseCelix.cmake)
+#find required packages
+find_package(ZLIB REQUIRED) #framework
+find_package(UUID REQUIRED) #framework
+find_package(CURL REQUIRED) #framework, etcdlib
+find_package(LIBZIP REQUIRED) #framework, etcdlib
+find_package(Jansson REQUIRED) #etcdlib, dfi
+find_package(FFI REQUIRED) #dfi
+
+if (NOT TARGET ZLIB::ZLIB)
+ #Note more recent zlib will create ZLIB::ZLIB target
+ message("Note ZLIB::ZLIB target not created by find_package(ZLIB). Creating ZLIB::ZLIB Target.")
+ add_library(ZLIB::ZLIB SHARED IMPORTED)
+ set_target_properties(ZLIB::ZLIB PROPERTIES
+ IMPORTED_LOCATION "${ZLIB_LIBRARIES}"
+ INTERFACE_INCLUDE_DIRECTORIES "${ZLIB_INCLUDE_DIRS}"
+ )
+endif ()
+
+if (NOT TARGET CURL::libcurl)
+ #Note more recent curl will create CURL::libcurl target
+ message("Note CURL::libcurl target not created by find_package(CURL). Creating CURL::libcurl Target.")
+ add_library(CURL::libcurl SHARED IMPORTED)
+ set_target_properties(CURL::libcurl PROPERTIES
+ IMPORTED_LOCATION "${CURL_LIBRARIES}"
+ INTERFACE_INCLUDE_DIRECTORIES "${CURL_INCLUDE_DIRS}"
+ )
+endif ()
+
# see https://public.kitware.com/Bug/view.php?id=15696
IF (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} EQUAL 3.3 AND ${CMAKE_GENERATOR} STREQUAL "Unix Makefiles")
message( FATAL_ERROR "Building Celix using CMake 3.3 and makefiles is not supported due to a bug in the Makefile Generator (see Bug 15696). Please change the used CMake version - both, CMake 3.2 and CMake 3.4 are working fine. Or use a different generator (e.g. Ninja)." )
@@ -120,9 +148,11 @@ if (CMAKE_BUILD_TYPE STREQUAL "Debug")
endif()
# Set version for the framework package/release
-set(CELIX_MAJOR "2")
-set(CELIX_MINOR "2")
-set(CELIX_MICRO "1")
+if (NOT DEFINED CELIX_MAJOR)
+ set(CELIX_MAJOR "2")
+ set(CELIX_MINOR "2")
+ set(CELIX_MICRO "1")
+endif ()
# Default bundle version
set(DEFAULT_VERSION 1.0.0)
diff --git a/bundles/cxx_remote_services/CMakeLists.txt b/bundles/cxx_remote_services/CMakeLists.txt
index 1fde6fd..c083cd3 100644
--- a/bundles/cxx_remote_services/CMakeLists.txt
+++ b/bundles/cxx_remote_services/CMakeLists.txt
@@ -15,21 +15,14 @@
# specific language governing permissions and limitations
# under the License.
-celix_subproject(REMOTE_SERVICE_ADMIN "Option to enable building the C++17 Remote Service Admin Service bundles" OFF)
-if (REMOTE_SERVICE_ADMIN AND CELIX_CXX)
+celix_subproject(CXX_REMOTE_SERVICE_ADMIN "Option to enable building the C++17 Remote Service Admin Service bundles" ON)
+if (CXX_REMOTE_SERVICE_ADMIN)
message(STATUS "The C++ Remote Service Admin is still experimental; The API, SPI and implementation is not stable and will change")
add_subdirectory(rsa_spi)
add_subdirectory(admin)
add_subdirectory(discovery_configured)
-
- find_package(ZMQ)
- find_package(CZMQ)
- if (ZMQ_FOUND AND CZMQ_FOUND)
- add_subdirectory(integration)
- else ()
- message(STATUS "C++ RSA integration test will not be build, because they require zmq and czmq")
- endif ()
+ add_subdirectory(integration)
#NOTE the topology manager is not yet used. The discovery and RSA need to be refactor for this
#add_subdirectory(topology_manager)
diff --git a/bundles/cxx_remote_services/admin/gtest/CMakeLists.txt b/bundles/cxx_remote_services/admin/gtest/CMakeLists.txt
index 0fe109d..8664001 100644
--- a/bundles/cxx_remote_services/admin/gtest/CMakeLists.txt
+++ b/bundles/cxx_remote_services/admin/gtest/CMakeLists.txt
@@ -20,7 +20,7 @@ add_executable(test_cxx_remote_service_admin
)
target_link_libraries(test_cxx_remote_service_admin PRIVATE Celix::framework GTest::gtest GTest::gtest_main Celix::rsa_spi)
-add_dependencies(test_cxx_remote_service_admin RemoteServiceAdmin_bundle)
+add_celix_bundle_dependencies(test_cxx_remote_service_admin RemoteServiceAdmin)
celix_get_bundle_file(RemoteServiceAdmin REMOTE_SERVICE_ADMIN_BUNDLE_LOCATION)
target_compile_definitions(test_cxx_remote_service_admin PRIVATE REMOTE_SERVICE_ADMIN_BUNDLE_LOCATION="${REMOTE_SERVICE_ADMIN_BUNDLE_LOCATION}")
diff --git a/bundles/cxx_remote_services/discovery_configured/gtest/CMakeLists.txt b/bundles/cxx_remote_services/discovery_configured/gtest/CMakeLists.txt
index 710440b..d4a35f3 100644
--- a/bundles/cxx_remote_services/discovery_configured/gtest/CMakeLists.txt
+++ b/bundles/cxx_remote_services/discovery_configured/gtest/CMakeLists.txt
@@ -21,7 +21,7 @@ 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)
-add_dependencies(test_cxx_rsa_configured_discovery RsaConfiguredDiscovery_bundle)
+add_celix_bundle_dependencies(test_cxx_rsa_configured_discovery RsaConfiguredDiscovery)
celix_get_bundle_file(RsaConfiguredDiscovery RSA_CONFIGURED_DISCOVERY_BUNDLE_LOCATION)
target_compile_definitions(test_cxx_rsa_configured_discovery PRIVATE RSA_CONFIGURED_DISCOVERY_BUNDLE_LOCATION="${RSA_CONFIGURED_DISCOVERY_BUNDLE_LOCATION}")
target_compile_definitions(test_cxx_rsa_configured_discovery PRIVATE RSA_CONFIGURED_DISCOVERY_DISCOVERY_FILE="${CMAKE_CURRENT_SOURCE_DIR}/resources/endpoint_discovery.json")
diff --git a/bundles/cxx_remote_services/integration/CMakeLists.txt b/bundles/cxx_remote_services/integration/CMakeLists.txt
index f896ed6..4b8e97b 100644
--- a/bundles/cxx_remote_services/integration/CMakeLists.txt
+++ b/bundles/cxx_remote_services/integration/CMakeLists.txt
@@ -15,42 +15,46 @@
# specific language governing permissions and limitations
# under the License.
-add_celix_bundle(TestExportImportRemoteServiceFactory
- SOURCES src/TestExportImportRemoteServiceFactory.cc
-)
-target_link_libraries(TestExportImportRemoteServiceFactory PRIVATE Celix::rsa_spi Celix::pubsub_api Celix::Promises Celix::PushStreams Celix::log_helper)
-target_include_directories(TestExportImportRemoteServiceFactory PRIVATE include)
-celix_bundle_files(TestExportImportRemoteServiceFactory
- resources/Calculator$add$Invoke.descriptor
- resources/Calculator$result$Event.descriptor
- resources/Calculator$add$Return.descriptor
- DESTINATION "META-INF/descriptors"
-)
+celix_subproject(CXX_RSA_INTEGRATION "Option to build the C++17 Remote Service Admin Service integration" ON DEPS SHELL SHELL_TUI PUBSUB PROMISES PUSHSTREAMS PUBSUB_PSA_ZMQ PUBSUB_DISCOVERY_ETCD)
+if (CXX_RSA_INTEGRATION)
+ find_package(ZMQ REQUIRED)
+ find_package(CZMQ REQUIRED)
+ add_celix_bundle(TestExportImportRemoteServiceFactory
+ SOURCES src/TestExportImportRemoteServiceFactory.cc
+ )
+ target_link_libraries(TestExportImportRemoteServiceFactory PRIVATE Celix::rsa_spi Celix::pubsub_api Celix::Promises Celix::PushStreams Celix::log_helper)
+ target_include_directories(TestExportImportRemoteServiceFactory PRIVATE include)
+ celix_bundle_files(TestExportImportRemoteServiceFactory
+ resources/Calculator$add$Invoke.descriptor
+ resources/Calculator$result$Event.descriptor
+ resources/Calculator$add$Return.descriptor
+ DESTINATION "META-INF/descriptors"
+ )
-add_celix_bundle(CalculatorProvider
- SOURCES src/CalculatorProvider.cc
-)
-target_link_libraries(CalculatorProvider PRIVATE Celix::Promises Celix::PushStreams)
-target_include_directories(CalculatorProvider PRIVATE include)
+ add_celix_bundle(CalculatorProvider
+ SOURCES src/CalculatorProvider.cc
+ )
+ target_link_libraries(CalculatorProvider PRIVATE Celix::Promises Celix::PushStreams)
+ target_include_directories(CalculatorProvider PRIVATE include)
-add_celix_bundle(CalculatorConsumer
- SOURCES src/CalculatorConsumer.cc
-)
-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::PushStreams Celix::shell_api Celix::RsaConfiguredDiscovery_api)
-target_include_directories(CalculatorConsumer PRIVATE include)
+ add_celix_bundle(CalculatorConsumer
+ SOURCES src/CalculatorConsumer.cc
+ )
+ 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::PushStreams Celix::shell_api Celix::RsaConfiguredDiscovery_api)
+ target_include_directories(CalculatorConsumer PRIVATE include)
-if (ENABLE_TESTING)
- add_subdirectory(gtest)
-endif()
+ if (ENABLE_TESTING)
+ add_subdirectory(gtest)
+ endif()
-################# Integration examples ##################################
+ ################# Integration examples ##################################
-add_celix_container(RemoteCalculatorProvider
- GROUP rsa
- PROPERTIES
+ add_celix_container(RemoteCalculatorProvider
+ GROUP rsa
+ PROPERTIES
CELIX_LOGGING_DEFAULT_ACTIVE_LOG_LEVEL=trace
- BUNDLES
+ BUNDLES
Celix::ShellCxx
Celix::shell_tui
@@ -66,14 +70,14 @@ add_celix_container(RemoteCalculatorProvider
TestExportImportRemoteServiceFactory #needed to be able to create a ExportedService for ICalculator
CalculatorProvider
-)
-target_link_libraries(RemoteCalculatorProvider PRIVATE ZMQ::lib CZMQ::lib)
+ )
+ target_link_libraries(RemoteCalculatorProvider PRIVATE ZMQ::lib CZMQ::lib)
-add_celix_container(RemoteCalculatorConsumer
- GROUP rsa
- PROPERTIES
+ add_celix_container(RemoteCalculatorConsumer
+ GROUP rsa
+ PROPERTIES
CELIX_LOGGING_DEFAULT_ACTIVE_LOG_LEVEL=trace
- BUNDLES
+ BUNDLES
Celix::ShellCxx
Celix::shell_tui
@@ -90,5 +94,6 @@ add_celix_container(RemoteCalculatorConsumer
TestExportImportRemoteServiceFactory #needed to be able to create a ExportedService for ICalculator
CalculatorConsumer
-)
-target_link_libraries(RemoteCalculatorConsumer PRIVATE ZMQ::lib CZMQ::lib)
+ )
+ target_link_libraries(RemoteCalculatorConsumer PRIVATE ZMQ::lib CZMQ::lib)
+endif()
\ No newline at end of file
diff --git a/bundles/cxx_remote_services/rsa_spi/CMakeLists.txt b/bundles/cxx_remote_services/rsa_spi/CMakeLists.txt
index 968af6d..c56dc6b 100644
--- a/bundles/cxx_remote_services/rsa_spi/CMakeLists.txt
+++ b/bundles/cxx_remote_services/rsa_spi/CMakeLists.txt
@@ -18,11 +18,11 @@
add_library(rsa_spi INTERFACE)
target_include_directories(rsa_spi INTERFACE
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>
- $<INSTALL_INTERFACE:include/celix/rsa>
)
-install(TARGETS rsa_spi EXPORT celix DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT rsa)
-install(DIRECTORY include/ DESTINATION include/celix/rsa COMPONENT rsa)
+install(TARGETS rsa_spi EXPORT celix DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT rsa
+ INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix/rsa)
+install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix/rsa COMPONENT rsa)
#Setup target aliases to match external usage
add_library(Celix::rsa_spi ALIAS rsa_spi)
diff --git a/bundles/deployment_admin/CMakeLists.txt b/bundles/deployment_admin/CMakeLists.txt
index ba7cdec..fde8f2b 100644
--- a/bundles/deployment_admin/CMakeLists.txt
+++ b/bundles/deployment_admin/CMakeLists.txt
@@ -15,7 +15,7 @@
# specific language governing permissions and limitations
# under the License.
-celix_subproject(DEPLOYMENT_ADMIN "Option to enable building the Deployment Admin Service bundles" ON DEPS framework launcher shell_tui log_writer)
+celix_subproject(DEPLOYMENT_ADMIN "Option to enable building the Deployment Admin Service bundles" ON)
if (DEPLOYMENT_ADMIN)
message(WARNING "Celix::deployment_admin is considered unstable, because develop of this bundle has been dormant for a while")
@@ -26,7 +26,6 @@ if (DEPLOYMENT_ADMIN)
add_library(deployment_admin_api INTERFACE)
target_include_directories(deployment_admin_api INTERFACE
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/api>
- $<INSTALL_INTERFACE:include/celix/deployment_admin>
)
add_celix_bundle(deployment_admin
@@ -49,20 +48,22 @@ if (DEPLOYMENT_ADMIN)
target_compile_definitions(deployment_admin PRIVATE -DUSE_FILE32API)
target_link_libraries(deployment_admin PRIVATE CURL::libcurl UUID::lib ZLIB::ZLIB deployment_admin_api)
- install(TARGETS deployment_admin_api EXPORT celix COMPONENT deployment_admin)
- install(DIRECTORY api/ DESTINATION include/celix/deployment_admin COMPONENT deployment_admin)
+ install(TARGETS deployment_admin_api EXPORT celix COMPONENT deployment_admin
+ INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix/deployment_admin)
+ install(DIRECTORY api/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix/deployment_admin COMPONENT deployment_admin)
install_celix_bundle(deployment_admin EXPORT celix COMPONENT deployment_admin)
#Setup target aliases to match external usage
add_library(Celix::deployment_admin_api ALIAS deployment_admin_api)
add_library(Celix::deployment_admin ALIAS deployment_admin)
- add_celix_container(deployment-admin
- BUNDLES Celix::deployment_admin Celix::shell Celix::shell_tui Celix::log_admin
- PROPERTIES
- "deployment_admin_url=http://localhost:8080"
- "deployment_admin_identification=celix"
- "org.osgi.framework.storage.clean=onFirstInit"
- )
-
+ if (BUILD_SHELL AND BUILD_SHELL_TUI AND BUILD_LOG_SERVICE)
+ add_celix_container(deployment-admin
+ BUNDLES Celix::deployment_admin Celix::shell Celix::shell_tui Celix::log_admin
+ PROPERTIES
+ "deployment_admin_url=http://localhost:8080"
+ "deployment_admin_identification=celix"
+ "org.osgi.framework.storage.clean=onFirstInit"
+ )
+ endif ()
endif (DEPLOYMENT_ADMIN)
diff --git a/bundles/device_access/CMakeLists.txt b/bundles/device_access/CMakeLists.txt
index ee22363..aafa768 100644
--- a/bundles/device_access/CMakeLists.txt
+++ b/bundles/device_access/CMakeLists.txt
@@ -15,11 +15,11 @@
# specific language governing permissions and limitations
# under the License.
-celix_subproject(DEVICE_ACCESS "Option to enable building the Device Access Service bundles" ON DEPS LAUNCHER LOG_SERVICE SHELL shell_tui)
+celix_subproject(DEVICE_ACCESS "Option to enable building the Device Access Service bundles" ON)
if(DEVICE_ACCESS)
message(WARNING "DEVICE_ACCESS is considered unstable, because develop of these bundles has been dormant for a while")
add_subdirectory(device_access)
- add_subdirectory(driver_locator)
+ add_subdirectory(driver_locator)
add_subdirectory(example)
endif(DEVICE_ACCESS)
diff --git a/bundles/device_access/device_access/CMakeLists.txt b/bundles/device_access/device_access/CMakeLists.txt
index b3e6686..abf9881 100644
--- a/bundles/device_access/device_access/CMakeLists.txt
+++ b/bundles/device_access/device_access/CMakeLists.txt
@@ -17,9 +17,8 @@
add_library(device_access_api INTERFACE)
-target_include_directories(device_access_api INTERFACE
+target_include_directories(device_access_api INTERFACE
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>
- $<INSTALL_INTERFACE:include/celix/device_access>
)
add_celix_bundle(device_manager
@@ -39,8 +38,9 @@ target_link_libraries(device_manager PRIVATE Celix::log_helper)
target_include_directories(device_manager PRIVATE src)
target_link_libraries(device_manager PRIVATE device_access_api)
-install(TARGETS device_access_api EXPORT celix COMPONENT device_access)
-install(DIRECTORY include/ DESTINATION include/celix/device_access COMPONENT device_access)
+install(TARGETS device_access_api EXPORT celix COMPONENT device_access
+ INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix/device_access)
+install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix/device_access COMPONENT device_access)
install_celix_bundle(device_manager EXPORT celix COMPONENT device_access)
#Setup target aliases to match external usage
diff --git a/bundles/device_access/example/CMakeLists.txt b/bundles/device_access/example/CMakeLists.txt
index ea8974b..d1acdbe 100644
--- a/bundles/device_access/example/CMakeLists.txt
+++ b/bundles/device_access/example/CMakeLists.txt
@@ -15,7 +15,7 @@
# specific language governing permissions and limitations
# under the License.
-celix_subproject(DEVICE_ACCESS_EXAMPLE "Option to enable building the Device Access example bundles" OFF DEPS LAUNCHER LOG_SERVICE shell_pt shell_tui)
+celix_subproject(DEVICE_ACCESS_EXAMPLE "Option to enable building the Device Access example bundles" OFF DEPS SHELL SHELL_TUI)
if(DEVICE_ACCESS_EXAMPLE)
add_subdirectory(base_driver)
add_subdirectory(consuming_driver)
diff --git a/bundles/http_admin/CMakeLists.txt b/bundles/http_admin/CMakeLists.txt
index a0c7b0d..d7720d4 100644
--- a/bundles/http_admin/CMakeLists.txt
+++ b/bundles/http_admin/CMakeLists.txt
@@ -15,7 +15,7 @@
# specific language governing permissions and limitations
# under the License.
-celix_subproject(HTTP_ADMIN "Service to use a HTTP server with websocket support" ON DEPS UTILS)
+celix_subproject(HTTP_ADMIN "Service to use a HTTP server with websocket support" ON)
if (HTTP_ADMIN)
add_subdirectory(http_admin_api)
diff --git a/bundles/http_admin/civetweb/CMakeLists.txt b/bundles/http_admin/civetweb/CMakeLists.txt
index ff2e5fd..c6ef078 100644
--- a/bundles/http_admin/civetweb/CMakeLists.txt
+++ b/bundles/http_admin/civetweb/CMakeLists.txt
@@ -15,7 +15,6 @@
# specific language governing permissions and limitations
# under the License.
-find_package(CURL REQUIRED)
#Create shared library
add_library(civetweb_shared SHARED
@@ -23,9 +22,7 @@ add_library(civetweb_shared SHARED
)
target_include_directories(civetweb_shared PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>
- $<INSTALL_INTERFACE:include/celix/http_admin>
)
-target_link_libraries(civetweb_shared PUBLIC CURL::libcurl)
add_library(Celix::civetweb_shared ALIAS civetweb_shared)
#Create static library
@@ -35,13 +32,12 @@ add_library(civetweb_static STATIC
target_include_directories(civetweb_static PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>
- $<INSTALL_INTERFACE:include/celix/http_admin>
)
-target_link_libraries(civetweb_static PUBLIC CURL::libcurl)
target_compile_options(civetweb_shared PRIVATE -w -DUSE_WEBSOCKET)
target_compile_options(civetweb_static PRIVATE -w -DUSE_WEBSOCKET)
-install(TARGETS civetweb_shared EXPORT celix DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT http_admin)
-install(DIRECTORY include/ DESTINATION include/celix/http_admin)
+install(TARGETS civetweb_shared civetweb_static EXPORT celix DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT http_admin
+ INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix/http_admin)
+install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix/http_admin)
diff --git a/bundles/http_admin/http_admin_api/CMakeLists.txt b/bundles/http_admin/http_admin_api/CMakeLists.txt
index 0a9b367..567a0d8 100644
--- a/bundles/http_admin/http_admin_api/CMakeLists.txt
+++ b/bundles/http_admin/http_admin_api/CMakeLists.txt
@@ -20,13 +20,13 @@ add_library(http_admin_api INTERFACE)
target_include_directories(http_admin_api INTERFACE
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>
- $<INSTALL_INTERFACE:include/celix/http_admin>
)
target_link_libraries(http_admin_api INTERFACE civetweb_shared)
#install api
-install(TARGETS http_admin_api EXPORT celix DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT http_admin)
-install(DIRECTORY include/ DESTINATION include/celix/http_admin COMPONENT http_admin)
+install(TARGETS http_admin_api EXPORT celix DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT http_admin
+ INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix/http_admin)
+install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix/http_admin COMPONENT http_admin)
#Setup target aliases to match external usage
add_library(Celix::http_admin_api ALIAS http_admin_api)
diff --git a/bundles/logging/CMakeLists.txt b/bundles/logging/CMakeLists.txt
index afcdbaa..1d3604b 100644
--- a/bundles/logging/CMakeLists.txt
+++ b/bundles/logging/CMakeLists.txt
@@ -17,14 +17,17 @@
add_subdirectory(log_service_api)
+add_subdirectory(log_helper)
-#Version 2 API (deprecated)
-if (CELIX_INSTALL_DEPRECATED_API)
- add_subdirectory(log_service_v2)
-endif ()
+celix_subproject(LOG_SERVICE "Option to enable building the Log Service bundles" ON)
+if (LOG_SERVICE)
+ #Version 2 API (deprecated)
+ if (CELIX_INSTALL_DEPRECATED_API)
+ add_subdirectory(log_service_v2)
+ endif ()
-#Version 3 API
-add_subdirectory(log_helper)
-add_subdirectory(log_admin)
-add_subdirectory(log_writers)
+ #Version 3 API
+ add_subdirectory(log_admin)
+ add_subdirectory(log_writers)
+endif ()
diff --git a/bundles/logging/log_admin/gtest/CMakeLists.txt b/bundles/logging/log_admin/gtest/CMakeLists.txt
index 9f7c795..d8d407d 100644
--- a/bundles/logging/log_admin/gtest/CMakeLists.txt
+++ b/bundles/logging/log_admin/gtest/CMakeLists.txt
@@ -21,7 +21,7 @@ add_executable(test_log_admin
)
target_link_libraries(test_log_admin PRIVATE Celix::log_service_api Celix::shell_api GTest::gtest GTest::gtest_main)
-add_dependencies(test_log_admin log_admin_bundle)
+add_celix_bundle_dependencies(test_log_admin Celix::log_admin)
target_compile_definitions(test_log_admin PRIVATE -DLOG_ADMIN_BUNDLE=\"$<TARGET_PROPERTY:log_admin,BUNDLE_FILE>\")
diff --git a/bundles/logging/log_helper/CMakeLists.txt b/bundles/logging/log_helper/CMakeLists.txt
index 6e60f8d..9eab168 100644
--- a/bundles/logging/log_helper/CMakeLists.txt
+++ b/bundles/logging/log_helper/CMakeLists.txt
@@ -25,20 +25,20 @@ add_library(log_helper STATIC ${SOURCES})
set_target_properties(log_helper PROPERTIES OUTPUT_NAME "celix_log_utils")
target_include_directories(log_helper PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>
- $<INSTALL_INTERFACE:include/celix/log_helper>
)
-target_link_libraries(log_helper PUBLIC Celix::utils Celix::log_service_api)
-install(TARGETS log_helper EXPORT celix DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT logging)
-install(DIRECTORY include/ DESTINATION include/celix/log_helper COMPONENT logging)
+target_link_libraries(log_helper PUBLIC Celix::log_service_api Celix::framework PRIVATE Celix::utils)
if (CELIX_INSTALL_DEPRECATED_API)
target_include_directories(log_helper PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include_v1>
- $<INSTALL_INTERFACE:include/celix/log_helper>
)
- install(DIRECTORY include_v1/ DESTINATION include/celix/log_helper)
+ install(DIRECTORY include_v1/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix/log_helper)
endif ()
+install(TARGETS log_helper EXPORT celix DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT logging
+ INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix/log_helper)
+install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix/log_helper COMPONENT logging)
+
add_library(Celix::log_helper ALIAS log_helper)
if (ENABLE_TESTING)
diff --git a/bundles/logging/log_service_api/CMakeLists.txt b/bundles/logging/log_service_api/CMakeLists.txt
index 772115b..c1828ef 100644
--- a/bundles/logging/log_service_api/CMakeLists.txt
+++ b/bundles/logging/log_service_api/CMakeLists.txt
@@ -18,18 +18,18 @@
add_library(log_service_api INTERFACE)
target_include_directories(log_service_api INTERFACE
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>
- $<INSTALL_INTERFACE:include/celix/log_service>
)
target_link_libraries(log_service_api INTERFACE Celix::utils Celix::framework)
-install(TARGETS log_service_api EXPORT celix)
-install(DIRECTORY include/ DESTINATION include/celix/log_service)
if (CELIX_INSTALL_DEPRECATED_API)
target_include_directories(log_service_api INTERFACE
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include_v2>
- $<INSTALL_INTERFACE:include/celix/log_service>
)
- install(DIRECTORY include_v2/ DESTINATION include/celix/log_service)
+ install(DIRECTORY include_v2/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix/log_service)
endif ()
+install(TARGETS log_service_api EXPORT celix
+ INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix/log_service)
+install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix/log_service)
+
add_library(Celix::log_service_api ALIAS log_service_api)
diff --git a/bundles/logging/log_writers/CMakeLists.txt b/bundles/logging/log_writers/CMakeLists.txt
index 68062ca..31a6119 100644
--- a/bundles/logging/log_writers/CMakeLists.txt
+++ b/bundles/logging/log_writers/CMakeLists.txt
@@ -15,7 +15,7 @@
# specific language governing permissions and limitations
# under the License.
-celix_subproject(SYSLOG_WRITER "Option to enable building the SysLog Writer bundle" ON DEPS FRAMEWORK)
+celix_subproject(SYSLOG_WRITER "Option to enable building the SysLog Writer bundle" ON)
if (SYSLOG_WRITER)
add_subdirectory(syslog_writer)
endif ()
diff --git a/bundles/logging/log_writers/syslog_writer/CMakeLists.txt b/bundles/logging/log_writers/syslog_writer/CMakeLists.txt
index e0678dd..63e1174 100644
--- a/bundles/logging/log_writers/syslog_writer/CMakeLists.txt
+++ b/bundles/logging/log_writers/syslog_writer/CMakeLists.txt
@@ -24,7 +24,7 @@ add_celix_bundle(syslog_writer
SOURCES
src/celix_syslog_writer_activator.c
)
-target_link_libraries(syslog_writer PRIVATE Celix::log_helper)
+target_link_libraries(syslog_writer PRIVATE Celix::log_helper Celix::log_service_api)
install_celix_bundle(syslog_writer EXPORT celix COMPONENT logging)
#Setup target aliases to match external usage
diff --git a/bundles/logging/log_writers/syslog_writer/gtest/CMakeLists.txt b/bundles/logging/log_writers/syslog_writer/gtest/CMakeLists.txt
index 1e87228..f9df777 100644
--- a/bundles/logging/log_writers/syslog_writer/gtest/CMakeLists.txt
+++ b/bundles/logging/log_writers/syslog_writer/gtest/CMakeLists.txt
@@ -20,8 +20,7 @@ add_executable(test_syslog_writer
src/SyslogWriterTestSuite.cc
)
target_link_libraries(test_syslog_writer PRIVATE Celix::log_helper GTest::gtest GTest::gtest_main)
-
-add_dependencies(test_syslog_writer log_admin_bundle syslog_writer_bundle)
+add_celix_bundle_dependencies(test_syslog_writer Celix::log_admin Celix::syslog_writer)
target_compile_definitions(test_syslog_writer PRIVATE -DLOG_ADMIN_BUNDLE=\"$<TARGET_PROPERTY:log_admin,BUNDLE_FILE>\")
target_compile_definitions(test_syslog_writer PRIVATE -DSYSLOG_WRITER_BUNDLE=\"$<TARGET_PROPERTY:syslog_writer,BUNDLE_FILE>\")
diff --git a/bundles/pubsub/CMakeLists.txt b/bundles/pubsub/CMakeLists.txt
index 39275c5..bf8fe5f 100644
--- a/bundles/pubsub/CMakeLists.txt
+++ b/bundles/pubsub/CMakeLists.txt
@@ -15,44 +15,23 @@
# specific language governing permissions and limitations
# under the License.
-celix_subproject(PUBSUB "Option to build the pubsub bundles" ON DEPS FRAMEWORK)
+celix_subproject(PUBSUB "Option to build the pubsub bundles" ON)
if (PUBSUB)
-
- option(BUILD_PUBSUB_PSA_ZMQ "Build ZeroMQ PubSub Admin (LGPL License)" ON)
- if (BUILD_PUBSUB_PSA_ZMQ)
- option(BUILD_ZMQ_SECURITY "Build with security for ZeroMQ." OFF)
- add_subdirectory(pubsub_admin_zmq)
- endif (BUILD_PUBSUB_PSA_ZMQ)
-
- option(BUILD_PUBSUB_PSA_TCP "Build TCP PubSub Admin" ON)
- if (BUILD_PUBSUB_PSA_TCP)
- add_subdirectory(pubsub_admin_tcp)
- endif (BUILD_PUBSUB_PSA_TCP)
-
- option(BUILD_PUBSUB_PSA_UDP_MC "Build UDP MC PubSub Admin" ON)
- if (BUILD_PUBSUB_PSA_UDP_MC)
- add_subdirectory(pubsub_admin_udp_mc)
- endif (BUILD_PUBSUB_PSA_UDP_MC)
-
- option(BUILD_PUBSUB_PSA_WS "Build WebSocket PubSub Admin" ON)
- if (BUILD_PUBSUB_PSA_WS)
- add_subdirectory(pubsub_admin_websocket)
- endif (BUILD_PUBSUB_PSA_WS)
-
add_subdirectory(pubsub_api)
add_subdirectory(pubsub_utils)
add_subdirectory(pubsub_spi)
add_subdirectory(pubsub_topology_manager)
+ add_subdirectory(pubsub_admin_zmq)
+ add_subdirectory(pubsub_admin_tcp)
+ add_subdirectory(pubsub_admin_udp_mc)
+ add_subdirectory(pubsub_admin_websocket)
add_subdirectory(pubsub_discovery)
add_subdirectory(pubsub_serializer_json)
add_subdirectory(pubsub_serializer_avrobin)
add_subdirectory(pubsub_protocol)
add_subdirectory(keygen)
-
add_subdirectory(examples)
-
if (ENABLE_TESTING)
add_subdirectory(integration)
endif()
-
endif(PUBSUB)
diff --git a/bundles/pubsub/examples/CMakeLists.txt b/bundles/pubsub/examples/CMakeLists.txt
index a34a28b..7b7e2ea 100644
--- a/bundles/pubsub/examples/CMakeLists.txt
+++ b/bundles/pubsub/examples/CMakeLists.txt
@@ -15,93 +15,95 @@
# specific language governing permissions and limitations
# under the License.
-add_subdirectory(pubsub)
+celix_subproject(PUBSUB_EXAMPLES "Option to build the pubsub examples" ON DEPS LOG_SERVICE SHELL SHELL_TUI PUBSUB_DISCOVERY_ETCD)
+if (PUBSUB_EXAMPLES)
+ add_subdirectory(pubsub)
-find_program(ETCD_CMD NAMES etcd)
-find_program(XTERM_CMD NAMES xterm)
+ find_program(ETCD_CMD NAMES etcd)
+ find_program(XTERM_CMD NAMES xterm)
-find_package(Jansson REQUIRED)
+ find_package(Jansson REQUIRED)
-set(PUBSUB_CONTAINER_LIBS Jansson Celix::dfi)
+ set(PUBSUB_CONTAINER_LIBS Jansson Celix::dfi)
-# UDP Multicast
-if (BUILD_PUBSUB_PSA_UDP_MC)
- add_celix_container(pubsub_publisher_udp_mc
- GROUP pubsub
- BUNDLES
- Celix::log_admin
- Celix::shell
- Celix::shell_tui
- Celix::celix_pubsub_serializer_json
- Celix::celix_pubsub_discovery_etcd
- Celix::celix_pubsub_topology_manager
- Celix::celix_pubsub_admin_udp_multicast
- celix_pubsub_poi_publisher
- celix_pubsub_poi_publisher2
- PROPERTIES
- PSA_UDPMC_VERBOSE=true
- PUBSUB_ETCD_DISCOVERY_VERBOSE=true
- PUBSUB_TOPOLOGY_MANAGER_VERBOSE=true
- )
- target_link_libraries(pubsub_publisher_udp_mc PRIVATE ${PUBSUB_CONTAINER_LIBS})
+ # UDP Multicast
+ if (BUILD_PUBSUB_PSA_UDP_MC)
+ add_celix_container(pubsub_publisher_udp_mc
+ GROUP pubsub
+ BUNDLES
+ Celix::log_admin
+ Celix::shell
+ Celix::shell_tui
+ Celix::celix_pubsub_serializer_json
+ Celix::celix_pubsub_discovery_etcd
+ Celix::celix_pubsub_topology_manager
+ Celix::celix_pubsub_admin_udp_multicast
+ celix_pubsub_poi_publisher
+ celix_pubsub_poi_publisher2
+ PROPERTIES
+ PSA_UDPMC_VERBOSE=true
+ PUBSUB_ETCD_DISCOVERY_VERBOSE=true
+ PUBSUB_TOPOLOGY_MANAGER_VERBOSE=true
+ )
+ target_link_libraries(pubsub_publisher_udp_mc PRIVATE ${PUBSUB_CONTAINER_LIBS})
- add_celix_container(pubsub_subscriber_udp_mc
- GROUP pubsub
- BUNDLES
- Celix::log_admin
- Celix::shell
- Celix::shell_tui
- Celix::celix_pubsub_serializer_json
- Celix::celix_pubsub_discovery_etcd
- Celix::celix_pubsub_topology_manager
- Celix::celix_pubsub_admin_udp_multicast
- celix_pubsub_poi_subscriber
- PROPERTIES
- PSA_UDPMC_VERBOSE=true
- PUBSUB_ETCD_DISCOVERY_VERBOSE=true
- PUBSUB_TOPOLOGY_MANAGER_VERBOSE=true
- )
- target_link_libraries(pubsub_subscriber_udp_mc PRIVATE ${PUBSUB_CONTAINER_LIBS})
+ add_celix_container(pubsub_subscriber_udp_mc
+ GROUP pubsub
+ BUNDLES
+ Celix::log_admin
+ Celix::shell
+ Celix::shell_tui
+ Celix::celix_pubsub_serializer_json
+ Celix::celix_pubsub_discovery_etcd
+ Celix::celix_pubsub_topology_manager
+ Celix::celix_pubsub_admin_udp_multicast
+ celix_pubsub_poi_subscriber
+ PROPERTIES
+ PSA_UDPMC_VERBOSE=true
+ PUBSUB_ETCD_DISCOVERY_VERBOSE=true
+ PUBSUB_TOPOLOGY_MANAGER_VERBOSE=true
+ )
+ target_link_libraries(pubsub_subscriber_udp_mc PRIVATE ${PUBSUB_CONTAINER_LIBS})
- add_celix_container(pubsub_subscriber2_udp_mc
- GROUP pubsub
- BUNDLES
- Celix::log_admin
- Celix::shell
- Celix::shell_tui
- Celix::celix_pubsub_serializer_json
- Celix::celix_pubsub_discovery_etcd
- Celix::celix_pubsub_topology_manager
- Celix::celix_pubsub_admin_udp_multicast
- celix_pubsub_poi_subscriber
- PROPERTIES
- PSA_UDPMC_VERBOSE=true
- PUBSUB_ETCD_DISCOVERY_VERBOSE=true
- PUBSUB_TOPOLOGY_MANAGER_VERBOSE=true
- )
- target_link_libraries(pubsub_subscriber2_udp_mc PRIVATE ${PUBSUB_CONTAINER_LIBS})
+ add_celix_container(pubsub_subscriber2_udp_mc
+ GROUP pubsub
+ BUNDLES
+ Celix::log_admin
+ Celix::shell
+ Celix::shell_tui
+ Celix::celix_pubsub_serializer_json
+ Celix::celix_pubsub_discovery_etcd
+ Celix::celix_pubsub_topology_manager
+ Celix::celix_pubsub_admin_udp_multicast
+ celix_pubsub_poi_subscriber
+ PROPERTIES
+ PSA_UDPMC_VERBOSE=true
+ PUBSUB_ETCD_DISCOVERY_VERBOSE=true
+ PUBSUB_TOPOLOGY_MANAGER_VERBOSE=true
+ )
+ target_link_libraries(pubsub_subscriber2_udp_mc PRIVATE ${PUBSUB_CONTAINER_LIBS})
- if (ETCD_CMD AND XTERM_CMD)
- # Runtime starting a publish and subscriber for udp mc
- add_celix_runtime(pubsub_rt_upd_mc
- NAME udp_mc
- GROUP pubsub
- CONTAINERS
- pubsub_publisher_udp_mc
- pubsub_subscriber_udp_mc
- pubsub_subscriber2_udp_mc
- COMMANDS
- etcd
- USE_TERM
- )
- endif ()
-endif()
+ if (ETCD_CMD AND XTERM_CMD)
+ # Runtime starting a publish and subscriber for udp mc
+ add_celix_runtime(pubsub_rt_upd_mc
+ NAME udp_mc
+ GROUP pubsub
+ CONTAINERS
+ pubsub_publisher_udp_mc
+ pubsub_subscriber_udp_mc
+ pubsub_subscriber2_udp_mc
+ COMMANDS
+ etcd
+ USE_TERM
+ )
+ endif ()
+ endif()
-if (BUILD_PUBSUB_PSA_TCP)
- # TCP
- add_celix_container(pubsub_publisher_tcp
- GROUP pubsub
- BUNDLES
+ if (BUILD_PUBSUB_PSA_TCP)
+ # TCP
+ add_celix_container(pubsub_publisher_tcp
+ GROUP pubsub
+ BUNDLES
Celix::log_admin
Celix::shell
Celix::shell_tui
@@ -112,16 +114,16 @@ if (BUILD_PUBSUB_PSA_TCP)
Celix::celix_pubsub_protocol_wire_v2
celix_pubsub_poi_publisher
celix_pubsub_poi_publisher2
- PROPERTIES
+ PROPERTIES
PSA_TCP_VERBOSE=true
PUBSUB_ETCD_DISCOVERY_VERBOSE=true
PUBSUB_TOPOLOGY_MANAGER_VERBOSE=true
- )
- target_link_libraries(pubsub_publisher_tcp PRIVATE ${PUBSUB_CONTAINER_LIBS})
+ )
+ target_link_libraries(pubsub_publisher_tcp PRIVATE ${PUBSUB_CONTAINER_LIBS})
- add_celix_container(pubsub_subscriber_tcp
- GROUP pubsub
- BUNDLES
+ add_celix_container(pubsub_subscriber_tcp
+ GROUP pubsub
+ BUNDLES
Celix::log_admin
Celix::shell
Celix::shell_tui
@@ -131,16 +133,16 @@ if (BUILD_PUBSUB_PSA_TCP)
Celix::celix_pubsub_admin_tcp
Celix::celix_pubsub_protocol_wire_v2
celix_pubsub_poi_subscriber
- PROPERTIES
+ PROPERTIES
PSA_TCP_VERBOSE=true
PUBSUB_ETCD_DISCOVERY_VERBOSE=true
PUBSUB_TOPOLOGY_MANAGER_VERBOSE=true
- )
- target_link_libraries(pubsub_subscriber_tcp PRIVATE ${PUBSUB_CONTAINER_LIBS})
+ )
+ target_link_libraries(pubsub_subscriber_tcp PRIVATE ${PUBSUB_CONTAINER_LIBS})
- add_celix_container(pubsub_subscriber2_tcp
- GROUP pubsub
- BUNDLES
+ add_celix_container(pubsub_subscriber2_tcp
+ GROUP pubsub
+ BUNDLES
Celix::log_admin
Celix::shell
Celix::shell_tui
@@ -150,281 +152,282 @@ if (BUILD_PUBSUB_PSA_TCP)
Celix::celix_pubsub_admin_tcp
Celix::celix_pubsub_protocol_wire_v2
celix_pubsub_poi_subscriber
- PROPERTIES
+ PROPERTIES
PSA_TCP_VERBOSE=true
PUBSUB_ETCD_DISCOVERY_VERBOSE=true
PUBSUB_TOPOLOGY_MANAGER_VERBOSE=true
- )
- target_link_libraries(pubsub_subscriber2_tcp PRIVATE ${PUBSUB_CONTAINER_LIBS})
+ )
+ target_link_libraries(pubsub_subscriber2_tcp PRIVATE ${PUBSUB_CONTAINER_LIBS})
- if (ETCD_CMD AND XTERM_CMD)
- # Runtime starting a publish and subscriber for tcp
- add_celix_runtime(pubsub_rt_tcp
- NAME tcp
- GROUP pubsub
- CONTAINERS
+ if (ETCD_CMD AND XTERM_CMD)
+ # Runtime starting a publish and subscriber for tcp
+ add_celix_runtime(pubsub_rt_tcp
+ NAME tcp
+ GROUP pubsub
+ CONTAINERS
pubsub_publisher_tcp
pubsub_subscriber_tcp
pubsub_subscriber2_tcp
- COMMANDS
+ COMMANDS
etcd
- USE_TERM
- )
- endif ()
-endif()
+ USE_TERM
+ )
+ endif ()
+ endif()
+
+ if (BUILD_PUBSUB_PSA_ZMQ)
+ find_package(ZMQ REQUIRED)
+ find_package(CZMQ REQUIRED)
+
+ set(PUBSUB_CONTAINER_LIBS ${PUBSUB_CONTAINER_LIBS} ZMQ::lib CZMQ::lib ${OPTIONAL_OPENSSL_LIB})
-if (BUILD_PUBSUB_PSA_ZMQ)
- find_package(ZMQ REQUIRED)
- find_package(CZMQ REQUIRED)
+ if (BUILD_PUBSUB_PSA_TCP AND BUILD_PUBSUB_PSA_UDP_MC)
+ # Dynamic ZMQ / UDP / TCP admin
+ add_celix_container(pubsub_publisher
+ GROUP "pubsub"
+ BUNDLES
+ Celix::shell
+ Celix::shell_tui
+ Celix::celix_pubsub_serializer_json
+ Celix::celix_pubsub_discovery_etcd
+ Celix::celix_pubsub_topology_manager
+ Celix::celix_pubsub_admin_zmq
+ Celix::celix_pubsub_admin_udp_multicast
+ Celix::celix_pubsub_admin_tcp
+ Celix::celix_pubsub_protocol_wire_v1
+ celix_pubsub_poi_publisher
+ celix_pubsub_poi_publisher2
+ )
+ target_link_libraries(pubsub_publisher PRIVATE ${PUBSUB_CONTAINER_LIBS})
- set(PUBSUB_CONTAINER_LIBS ${PUBSUB_CONTAINER_LIBS} ZMQ::lib CZMQ::lib ${OPTIONAL_OPENSSL_LIB})
+ add_celix_container(pubsub_subscriber
+ GROUP "pubsub"
+ BUNDLES
+ Celix::shell
+ Celix::shell_tui
+ Celix::celix_pubsub_serializer_json
+ Celix::celix_pubsub_discovery_etcd
+ Celix::celix_pubsub_topology_manager
+ Celix::celix_pubsub_admin_zmq
+ Celix::celix_pubsub_admin_udp_multicast
+ Celix::celix_pubsub_admin_tcp
+ Celix::celix_pubsub_protocol_wire_v1
+ celix_pubsub_poi_subscriber
+ )
+ target_link_libraries(pubsub_subscriber PRIVATE ${PUBSUB_CONTAINER_LIBS})
+ endif()
- if (BUILD_PUBSUB_PSA_TCP AND BUILD_PUBSUB_PSA_UDP_MC)
- # Dynamic ZMQ / UDP / TCP admin
- add_celix_container(pubsub_publisher
- GROUP "pubsub"
- BUNDLES
+ # ZMQ
+ add_celix_container(pubsub_zmq
+ GROUP "pubsub"
+ BUNDLES
Celix::shell
Celix::shell_tui
Celix::celix_pubsub_serializer_json
Celix::celix_pubsub_discovery_etcd
Celix::celix_pubsub_topology_manager
Celix::celix_pubsub_admin_zmq
- Celix::celix_pubsub_admin_udp_multicast
- Celix::celix_pubsub_admin_tcp
+ celix_pubsub_poi_publisher
+ celix_pubsub_poi_subscriber
+ PROPERTIES
+ PSA_ZMQ_ZEROCOPY_ENABLED=true
+ )
+ target_link_libraries(pubsub_zmq PRIVATE ${PUBSUB_CONTAINER_LIBS})
+
+ add_celix_container(pubsub_publisher_zmq
+ GROUP "pubsub"
+ BUNDLES
+ Celix::shell
+ Celix::shell_tui
+ Celix::celix_pubsub_serializer_json
Celix::celix_pubsub_protocol_wire_v1
+ Celix::celix_pubsub_discovery_etcd
+ Celix::celix_pubsub_topology_manager
+ Celix::celix_pubsub_admin_zmq
celix_pubsub_poi_publisher
celix_pubsub_poi_publisher2
- )
- target_link_libraries(pubsub_publisher PRIVATE ${PUBSUB_CONTAINER_LIBS})
+ celix_pubsub_interceptors_example
+ PROPERTIES
+ PSA_ZMQ_VERBOSE=true
+ PUBSUB_ETCD_DISCOVERY_VERBOSE=true
+ PUBSUB_TOPOLOGY_MANAGER_VERBOSE=true
+ PSA_ZMQ_ZEROCOPY_ENABLED=false
+ )
+ target_link_libraries(pubsub_publisher_zmq PRIVATE ${PUBSUB_CONTAINER_LIBS})
- add_celix_container(pubsub_subscriber
- GROUP "pubsub"
- BUNDLES
+ add_celix_container(pubsub_subscriber_zmq
+ GROUP "pubsub"
+ BUNDLES
Celix::shell
Celix::shell_tui
Celix::celix_pubsub_serializer_json
+ Celix::celix_pubsub_protocol_wire_v1
Celix::celix_pubsub_discovery_etcd
Celix::celix_pubsub_topology_manager
Celix::celix_pubsub_admin_zmq
- Celix::celix_pubsub_admin_udp_multicast
- Celix::celix_pubsub_admin_tcp
- Celix::celix_pubsub_protocol_wire_v1
celix_pubsub_poi_subscriber
- )
- target_link_libraries(pubsub_subscriber PRIVATE ${PUBSUB_CONTAINER_LIBS})
- endif()
-
- # ZMQ
- add_celix_container(pubsub_zmq
- GROUP "pubsub"
- BUNDLES
- Celix::shell
- Celix::shell_tui
- Celix::celix_pubsub_serializer_json
- Celix::celix_pubsub_discovery_etcd
- Celix::celix_pubsub_topology_manager
- Celix::celix_pubsub_admin_zmq
- celix_pubsub_poi_publisher
- celix_pubsub_poi_subscriber
- PROPERTIES
- PSA_ZMQ_ZEROCOPY_ENABLED=true
- )
- target_link_libraries(pubsub_zmq PRIVATE ${PUBSUB_CONTAINER_LIBS})
-
- add_celix_container(pubsub_publisher_zmq
- GROUP "pubsub"
- BUNDLES
- Celix::shell
- Celix::shell_tui
- Celix::celix_pubsub_serializer_json
- Celix::celix_pubsub_protocol_wire_v1
- Celix::celix_pubsub_discovery_etcd
- Celix::celix_pubsub_topology_manager
- Celix::celix_pubsub_admin_zmq
- celix_pubsub_poi_publisher
- celix_pubsub_poi_publisher2
- celix_pubsub_interceptors_example
- PROPERTIES
- PSA_ZMQ_VERBOSE=true
- PUBSUB_ETCD_DISCOVERY_VERBOSE=true
- PUBSUB_TOPOLOGY_MANAGER_VERBOSE=true
- PSA_ZMQ_ZEROCOPY_ENABLED=false
- )
- target_link_libraries(pubsub_publisher_zmq PRIVATE ${PUBSUB_CONTAINER_LIBS})
-
- add_celix_container(pubsub_subscriber_zmq
- GROUP "pubsub"
- BUNDLES
- Celix::shell
- Celix::shell_tui
- Celix::celix_pubsub_serializer_json
- Celix::celix_pubsub_protocol_wire_v1
- Celix::celix_pubsub_discovery_etcd
- Celix::celix_pubsub_topology_manager
- Celix::celix_pubsub_admin_zmq
- celix_pubsub_poi_subscriber
- celix_pubsub_interceptors_example
- PROPERTIES
- PSA_ZMQ_VERBOSE=true
- PUBSUB_ETCD_DISCOVERY_VERBOSE=true
- PUBSUB_TOPOLOGY_MANAGER_VERBOSE=true
- )
- target_link_libraries(pubsub_subscriber_zmq PRIVATE ${PUBSUB_CONTAINER_LIBS})
+ celix_pubsub_interceptors_example
+ PROPERTIES
+ PSA_ZMQ_VERBOSE=true
+ PUBSUB_ETCD_DISCOVERY_VERBOSE=true
+ PUBSUB_TOPOLOGY_MANAGER_VERBOSE=true
+ )
+ target_link_libraries(pubsub_subscriber_zmq PRIVATE ${PUBSUB_CONTAINER_LIBS})
- add_celix_container(pubsub_subscriber2_zmq
- GROUP "pubsub"
- BUNDLES
- Celix::shell
- Celix::shell_tui
- Celix::celix_pubsub_serializer_json
- Celix::celix_pubsub_discovery_etcd
- Celix::celix_pubsub_topology_manager
- Celix::celix_pubsub_admin_zmq
- celix_pubsub_poi_subscriber
- PROPERTIES
- PSA_ZMQ_VERBOSE=true
- PUBSUB_ETCD_DISCOVERY_VERBOSE=true
- PUBSUB_TOPOLOGY_MANAGER_VERBOSE=true
- )
- target_link_libraries(pubsub_subscriber2_zmq PRIVATE ${PUBSUB_CONTAINER_LIBS})
+ add_celix_container(pubsub_subscriber2_zmq
+ GROUP "pubsub"
+ BUNDLES
+ Celix::shell
+ Celix::shell_tui
+ Celix::celix_pubsub_serializer_json
+ Celix::celix_pubsub_discovery_etcd
+ Celix::celix_pubsub_topology_manager
+ Celix::celix_pubsub_admin_zmq
+ celix_pubsub_poi_subscriber
+ PROPERTIES
+ PSA_ZMQ_VERBOSE=true
+ PUBSUB_ETCD_DISCOVERY_VERBOSE=true
+ PUBSUB_TOPOLOGY_MANAGER_VERBOSE=true
+ )
+ target_link_libraries(pubsub_subscriber2_zmq PRIVATE ${PUBSUB_CONTAINER_LIBS})
- if (ETCD_CMD AND XTERM_CMD)
- # Runtime starting two bundles using both zmq and upd mc pubsub
- add_celix_runtime(pubsub_rt_zmq_udpmc_combi
- NAME combi
- GROUP pubsub
- CONTAINERS
- pubsub_publisher_zmq
- pubsub_subscriber_zmq
- pubsub_subscriber_zmq
- COMMANDS
- etcd
- USE_TERM
- )
+ if (ETCD_CMD AND XTERM_CMD)
+ # Runtime starting two bundles using both zmq and upd mc pubsub
+ add_celix_runtime(pubsub_rt_zmq_udpmc_combi
+ NAME combi
+ GROUP pubsub
+ CONTAINERS
+ pubsub_publisher_zmq
+ pubsub_subscriber_zmq
+ pubsub_subscriber_zmq
+ COMMANDS
+ etcd
+ USE_TERM
+ )
- # Runtime starting a publish and 2 subscribers for zmq
- add_celix_runtime(pubsub_rt_zmq
- NAME zmq
- GROUP pubsub
- CONTAINERS
- pubsub_publisher_zmq
- pubsub_subscriber_zmq
- pubsub_subscriber2_zmq
- COMMANDS
- etcd
- USE_TERM
- )
- endif ()
-endif()
+ # Runtime starting a publish and 2 subscribers for zmq
+ add_celix_runtime(pubsub_rt_zmq
+ NAME zmq
+ GROUP pubsub
+ CONTAINERS
+ pubsub_publisher_zmq
+ pubsub_subscriber_zmq
+ pubsub_subscriber2_zmq
+ COMMANDS
+ etcd
+ USE_TERM
+ )
+ endif ()
+ endif()
-if (BUILD_PUBSUB_PSA_NANOMSG)
- set(PUBSUB_CONTAINER_LIBS NANOMSG::lib ${PUBSUB_CONTAINER_LIBS})
+ if (BUILD_PUBSUB_PSA_NANOMSG)
+ set(PUBSUB_CONTAINER_LIBS NANOMSG::lib ${PUBSUB_CONTAINER_LIBS})
- add_celix_container(pubsub_publisher1_nanomsg
- GROUP "pubsub"
- BUNDLES
- Celix::shell
- Celix::shell_tui
- Celix::celix_pubsub_serializer_json
- Celix::celix_pubsub_discovery_etcd
- Celix::celix_pubsub_topology_manager
- Celix::celix_pubsub_admin_nanomsg
- celix_pubsub_poi_publisher
- PROPERTIES
- PSA_NANOMSG_VERBOSE=true
- PUBSUB_ETCD_DISCOVERY_VERBOSE=true
- PUBSUB_TOPOLOGY_MANAGER_VERBOSE=true
- )
- target_link_libraries(pubsub_publisher1_nanomsg PRIVATE ${PUBSUB_CONTAINER_LIBS})
+ add_celix_container(pubsub_publisher1_nanomsg
+ GROUP "pubsub"
+ BUNDLES
+ Celix::shell
+ Celix::shell_tui
+ Celix::celix_pubsub_serializer_json
+ Celix::celix_pubsub_discovery_etcd
+ Celix::celix_pubsub_topology_manager
+ Celix::celix_pubsub_admin_nanomsg
+ celix_pubsub_poi_publisher
+ PROPERTIES
+ PSA_NANOMSG_VERBOSE=true
+ PUBSUB_ETCD_DISCOVERY_VERBOSE=true
+ PUBSUB_TOPOLOGY_MANAGER_VERBOSE=true
+ )
+ target_link_libraries(pubsub_publisher1_nanomsg PRIVATE ${PUBSUB_CONTAINER_LIBS})
- add_celix_container(pubsub_publisher2_nanomsg
- GROUP "pubsub"
- BUNDLES
- Celix::shell
- Celix::shell_tui
- Celix::celix_pubsub_serializer_json
- Celix::celix_pubsub_discovery_etcd
- Celix::celix_pubsub_topology_manager
- Celix::celix_pubsub_admin_nanomsg
- celix_pubsub_poi_publisher
- PROPERTIES
- PSA_NANOMSG_VERBOSE=true
- PUBSUB_ETCD_DISCOVERY_VERBOSE=true
- PUBSUB_TOPOLOGY_MANAGER_VERBOSE=true
- )
- target_link_libraries(pubsub_publisher2_nanomsg PRIVATE ${PUBSUB_CONTAINER_LIBS})
+ add_celix_container(pubsub_publisher2_nanomsg
+ GROUP "pubsub"
+ BUNDLES
+ Celix::shell
+ Celix::shell_tui
+ Celix::celix_pubsub_serializer_json
+ Celix::celix_pubsub_discovery_etcd
+ Celix::celix_pubsub_topology_manager
+ Celix::celix_pubsub_admin_nanomsg
+ celix_pubsub_poi_publisher
+ PROPERTIES
+ PSA_NANOMSG_VERBOSE=true
+ PUBSUB_ETCD_DISCOVERY_VERBOSE=true
+ PUBSUB_TOPOLOGY_MANAGER_VERBOSE=true
+ )
+ target_link_libraries(pubsub_publisher2_nanomsg PRIVATE ${PUBSUB_CONTAINER_LIBS})
- add_celix_container(pubsub_subscriber1_nanomsg
- GROUP "pubsub"
- BUNDLES
- Celix::shell
- Celix::shell_tui
- Celix::celix_pubsub_serializer_json
- Celix::celix_pubsub_discovery_etcd
- Celix::celix_pubsub_topology_manager
- Celix::celix_pubsub_admin_nanomsg
- celix_pubsub_poi_subscriber
- PROPERTIES
- PSA_NANOMSG_VERBOSE=true
- PUBSUB_ETCD_DISCOVERY_VERBOSE=true
- PUBSUB_TOPOLOGY_MANAGER_VERBOSE=true
- )
- target_link_libraries(pubsub_subscriber1_nanomsg PRIVATE ${PUBSUB_CONTAINER_LIBS})
+ add_celix_container(pubsub_subscriber1_nanomsg
+ GROUP "pubsub"
+ BUNDLES
+ Celix::shell
+ Celix::shell_tui
+ Celix::celix_pubsub_serializer_json
+ Celix::celix_pubsub_discovery_etcd
+ Celix::celix_pubsub_topology_manager
+ Celix::celix_pubsub_admin_nanomsg
+ celix_pubsub_poi_subscriber
+ PROPERTIES
+ PSA_NANOMSG_VERBOSE=true
+ PUBSUB_ETCD_DISCOVERY_VERBOSE=true
+ PUBSUB_TOPOLOGY_MANAGER_VERBOSE=true
+ )
+ target_link_libraries(pubsub_subscriber1_nanomsg PRIVATE ${PUBSUB_CONTAINER_LIBS})
- add_celix_container(pubsub_subscriber2_nanomsg
- GROUP "pubsub"
- BUNDLES
- Celix::shell
- Celix::shell_tui
- Celix::celix_pubsub_serializer_json
- Celix::celix_pubsub_discovery_etcd
- Celix::celix_pubsub_topology_manager
- Celix::celix_pubsub_admin_nanomsg
- celix_pubsub_poi_subscriber
- PROPERTIES
- PSA_NANOMSG_VERBOSE=true
- PUBSUB_ETCD_DISCOVERY_VERBOSE=true
- PUBSUB_TOPOLOGY_MANAGER_VERBOSE=true
- )
- target_link_libraries(pubsub_subscriber2_nanomsg PRIVATE ${PUBSUB_CONTAINER_LIBS})
+ add_celix_container(pubsub_subscriber2_nanomsg
+ GROUP "pubsub"
+ BUNDLES
+ Celix::shell
+ Celix::shell_tui
+ Celix::celix_pubsub_serializer_json
+ Celix::celix_pubsub_discovery_etcd
+ Celix::celix_pubsub_topology_manager
+ Celix::celix_pubsub_admin_nanomsg
+ celix_pubsub_poi_subscriber
+ PROPERTIES
+ PSA_NANOMSG_VERBOSE=true
+ PUBSUB_ETCD_DISCOVERY_VERBOSE=true
+ PUBSUB_TOPOLOGY_MANAGER_VERBOSE=true
+ )
+ target_link_libraries(pubsub_subscriber2_nanomsg PRIVATE ${PUBSUB_CONTAINER_LIBS})
- if (ETCD_CMD AND XTERM_CMD)
- # Runtime starting a publisher and 2 subscribers for nanomsg
- add_celix_runtime(pubsub_rt_nanomsg
- NAME nanomsg
- GROUP pubsub
- CONTAINERS
- pubsub_publisher1_nanomsg
- pubsub_publisher2_nanomsg
- pubsub_subscriber1_nanomsg
- pubsub_subscriber2_nanomsg
- COMMANDS
- etcd
- USE_TERM
- )
- endif ()
+ if (ETCD_CMD AND XTERM_CMD)
+ # Runtime starting a publisher and 2 subscribers for nanomsg
+ add_celix_runtime(pubsub_rt_nanomsg
+ NAME nanomsg
+ GROUP pubsub
+ CONTAINERS
+ pubsub_publisher1_nanomsg
+ pubsub_publisher2_nanomsg
+ pubsub_subscriber1_nanomsg
+ pubsub_subscriber2_nanomsg
+ COMMANDS
+ etcd
+ USE_TERM
+ )
+ endif ()
-endif()
+ endif()
-if (BUILD_PUBSUB_PSA_WS)
- add_celix_container(pubsub_websocket_example
- GROUP pubsub
- BUNDLES
- Celix::log_admin
- Celix::shell
- Celix::shell_tui
- Celix::http_admin
- Celix::celix_pubsub_serializer_json
- Celix::celix_pubsub_topology_manager
- Celix::celix_pubsub_admin_websocket
- celix_pubsub_websocket_example
- PROPERTIES
- PSA_TCP_VERBOSE=true
- PUBSUB_ETCD_DISCOVERY_VERBOSE=true
- PUBSUB_TOPOLOGY_MANAGER_VERBOSE=true
- CELIX_HTTP_ADMIN_LISTENING_PORTS=7660
- CELIX_HTTP_ADMIN_NUM_THREADS=5
- )
- target_link_libraries(pubsub_websocket_example PRIVATE ${PUBSUB_CONTAINER_LIBS})
-endif()
+ if (BUILD_PUBSUB_PSA_WS)
+ add_celix_container(pubsub_websocket_example
+ GROUP pubsub
+ BUNDLES
+ Celix::log_admin
+ Celix::shell
+ Celix::shell_tui
+ Celix::http_admin
+ Celix::celix_pubsub_serializer_json
+ Celix::celix_pubsub_topology_manager
+ Celix::celix_pubsub_admin_websocket
+ celix_pubsub_websocket_example
+ PROPERTIES
+ PSA_TCP_VERBOSE=true
+ PUBSUB_ETCD_DISCOVERY_VERBOSE=true
+ PUBSUB_TOPOLOGY_MANAGER_VERBOSE=true
+ CELIX_HTTP_ADMIN_LISTENING_PORTS=7660
+ CELIX_HTTP_ADMIN_NUM_THREADS=5
+ )
+ target_link_libraries(pubsub_websocket_example PRIVATE ${PUBSUB_CONTAINER_LIBS})
+ endif()
+endif ()
diff --git a/bundles/pubsub/integration/CMakeLists.txt b/bundles/pubsub/integration/CMakeLists.txt
index cc675e1..58dc701 100644
--- a/bundles/pubsub/integration/CMakeLists.txt
+++ b/bundles/pubsub/integration/CMakeLists.txt
@@ -15,400 +15,401 @@
# specific language governing permissions and limitations
# under the License.
-find_package(Jansson REQUIRED)
-
-add_celix_bundle(pubsub_endpoint_sut
- #"Vanilla" bundle which is under test
- SOURCES
- gtest/sut_endpoint_activator.c
- VERSION 1.0.0
- )
-target_include_directories(pubsub_endpoint_sut PRIVATE gtest)
-target_link_libraries(pubsub_endpoint_sut PRIVATE Celix::pubsub_api)
-celix_bundle_files(pubsub_endpoint_sut
- meta_data/msg.descriptor
- DESTINATION "META-INF/descriptors"
- )
-celix_bundle_files(pubsub_endpoint_sut
- meta_data/ping2.properties
- DESTINATION "META-INF/topics/pub"
- )
-
-add_celix_bundle(pubsub_endpoint_tst
- #Test bundle containing cpputests and uses celix_test_runner launcher instead of the celix launcher
- SOURCES
- gtest/tst_endpoint_activator.c
- VERSION 1.0.0
- )
-target_link_libraries(pubsub_endpoint_tst PRIVATE Celix::framework Celix::pubsub_api)
-celix_bundle_files(pubsub_endpoint_tst
- meta_data/msg.descriptor
- DESTINATION "META-INF/descriptors"
- )
-celix_bundle_files(pubsub_endpoint_tst
- meta_data/pong3.properties
- DESTINATION "META-INF/topics/sub"
- )
-
-
-add_celix_bundle(pubsub_loopback
- #"Vanilla" bundle which is under test
- SOURCES
- gtest/loopback_activator.c
- VERSION 1.0.0
- )
-target_include_directories(pubsub_loopback PRIVATE gtest)
-target_link_libraries(pubsub_loopback PRIVATE Celix::pubsub_api)
-celix_bundle_files(pubsub_loopback
- meta_data/msg.descriptor
- DESTINATION "META-INF/descriptors"
- )
-celix_bundle_files(pubsub_loopback
- meta_data/ping3.properties
- DESTINATION "META-INF/topics/pub"
- )
-celix_bundle_files(pubsub_loopback
- meta_data/pong2.properties
- DESTINATION "META-INF/topics/sub"
- )
-
-add_celix_bundle(pubsub_sut
- #"Vanilla" bundle which is under test
- SOURCES
- gtest/sut_activator.c
- VERSION 1.0.0
-)
-target_include_directories(pubsub_sut PRIVATE gtest)
-target_link_libraries(pubsub_sut PRIVATE Celix::pubsub_api)
-celix_bundle_files(pubsub_sut
- meta_data/msg.descriptor
- DESTINATION "META-INF/descriptors"
-)
-celix_bundle_files(pubsub_sut
- meta_data/ping.properties
- DESTINATION "META-INF/topics/pub"
-)
-
-add_celix_bundle(pubsub_tst
- #Test bundle containing cpputests and uses celix_test_runner launcher instead of the celix launcher
- SOURCES
- gtest/tst_activator.c
- VERSION 1.0.0
-)
-target_link_libraries(pubsub_tst PRIVATE Celix::framework Celix::pubsub_api)
-celix_bundle_files(pubsub_tst
- meta_data/msg.descriptor
- DESTINATION "META-INF/descriptors"
-)
-celix_bundle_files(pubsub_tst
- meta_data/ping.properties
- DESTINATION "META-INF/topics/sub"
-)
-
-add_celix_bundle(pubsub_deadlock_sut
- #"Vanilla" bundle which is used to trigger a publisher added call
- SOURCES
- gtest/sut_activator.c
- VERSION 1.0.0
-)
-celix_bundle_files(pubsub_deadlock_sut
- meta_data/msg.descriptor
- DESTINATION "META-INF/descriptors"
-)
-celix_bundle_files(pubsub_deadlock_sut
- meta_data/deadlock.scope.properties
- DESTINATION "META-INF/topics/pub"
-)
-celix_bundle_files(pubsub_deadlock_sut
- meta_data/deadlock.scope2.properties
- DESTINATION "META-INF/topics/pub"
-)
-target_link_libraries(pubsub_deadlock_sut PRIVATE Celix::pubsub_api)
-
-celix_get_bundle_file(pubsub_deadlock_sut DEADLOCK_SUT_BUNDLE_FILE)
-
-add_celix_bundle(pubsub_serializer
- #serializer bundle
- SOURCES
- gtest/serializer_activator.cc
- VERSION 1.0.0
- )
-target_include_directories(pubsub_serializer PRIVATE gtest)
-target_link_libraries(pubsub_serializer PRIVATE Celix::pubsub_api Celix::pubsub_spi)
-
-if (BUILD_PUBSUB_PSA_UDP_MC)
- add_celix_container(pubsub_udpmc_tests
- USE_CONFIG #ensures that a config.properties will be created with the launch bundles.
- LAUNCHER_SRC ${CMAKE_CURRENT_LIST_DIR}/gtest/PubSubIntegrationTestSuite.cc
- DIR ${CMAKE_CURRENT_BINARY_DIR}
- PROPERTIES
+celix_subproject(PUBSUB_INTEGRATION "Option to build the pubsub integration" ON DEPS SHELL SHELL_TUI)
+if (PUBSUB_INTEGRATION)
+ find_package(Jansson REQUIRED)
+
+ add_celix_bundle(pubsub_endpoint_sut
+ #"Vanilla" bundle which is under test
+ SOURCES
+ gtest/sut_endpoint_activator.c
+ VERSION 1.0.0
+ )
+ target_include_directories(pubsub_endpoint_sut PRIVATE gtest)
+ target_link_libraries(pubsub_endpoint_sut PRIVATE Celix::pubsub_api)
+ celix_bundle_files(pubsub_endpoint_sut
+ meta_data/msg.descriptor
+ DESTINATION "META-INF/descriptors"
+ )
+ celix_bundle_files(pubsub_endpoint_sut
+ meta_data/ping2.properties
+ DESTINATION "META-INF/topics/pub"
+ )
+
+ add_celix_bundle(pubsub_endpoint_tst
+ #Test bundle containing cpputests and uses celix_test_runner launcher instead of the celix launcher
+ SOURCES
+ gtest/tst_endpoint_activator.c
+ VERSION 1.0.0
+ )
+ target_link_libraries(pubsub_endpoint_tst PRIVATE Celix::framework Celix::pubsub_api)
+ celix_bundle_files(pubsub_endpoint_tst
+ meta_data/msg.descriptor
+ DESTINATION "META-INF/descriptors"
+ )
+ celix_bundle_files(pubsub_endpoint_tst
+ meta_data/pong3.properties
+ DESTINATION "META-INF/topics/sub"
+ )
+
+
+ add_celix_bundle(pubsub_loopback
+ #"Vanilla" bundle which is under test
+ SOURCES
+ gtest/loopback_activator.c
+ VERSION 1.0.0
+ )
+ target_include_directories(pubsub_loopback PRIVATE gtest)
+ target_link_libraries(pubsub_loopback PRIVATE Celix::pubsub_api)
+ celix_bundle_files(pubsub_loopback
+ meta_data/msg.descriptor
+ DESTINATION "META-INF/descriptors"
+ )
+ celix_bundle_files(pubsub_loopback
+ meta_data/ping3.properties
+ DESTINATION "META-INF/topics/pub"
+ )
+ celix_bundle_files(pubsub_loopback
+ meta_data/pong2.properties
+ DESTINATION "META-INF/topics/sub"
+ )
+
+ add_celix_bundle(pubsub_sut
+ #"Vanilla" bundle which is under test
+ SOURCES
+ gtest/sut_activator.c
+ VERSION 1.0.0
+ )
+ target_include_directories(pubsub_sut PRIVATE gtest)
+ target_link_libraries(pubsub_sut PRIVATE Celix::pubsub_api)
+ celix_bundle_files(pubsub_sut
+ meta_data/msg.descriptor
+ DESTINATION "META-INF/descriptors"
+ )
+ celix_bundle_files(pubsub_sut
+ meta_data/ping.properties
+ DESTINATION "META-INF/topics/pub"
+ )
+
+ add_celix_bundle(pubsub_tst
+ #Test bundle containing cpputests and uses celix_test_runner launcher instead of the celix launcher
+ SOURCES
+ gtest/tst_activator.c
+ VERSION 1.0.0
+ )
+ target_link_libraries(pubsub_tst PRIVATE Celix::framework Celix::pubsub_api)
+ celix_bundle_files(pubsub_tst
+ meta_data/msg.descriptor
+ DESTINATION "META-INF/descriptors"
+ )
+ celix_bundle_files(pubsub_tst
+ meta_data/ping.properties
+ DESTINATION "META-INF/topics/sub"
+ )
+
+ add_celix_bundle(pubsub_deadlock_sut
+ #"Vanilla" bundle which is used to trigger a publisher added call
+ SOURCES
+ gtest/sut_activator.c
+ VERSION 1.0.0
+ )
+ celix_bundle_files(pubsub_deadlock_sut
+ meta_data/msg.descriptor
+ DESTINATION "META-INF/descriptors"
+ )
+ celix_bundle_files(pubsub_deadlock_sut
+ meta_data/deadlock.scope.properties
+ DESTINATION "META-INF/topics/pub"
+ )
+ celix_bundle_files(pubsub_deadlock_sut
+ meta_data/deadlock.scope2.properties
+ DESTINATION "META-INF/topics/pub"
+ )
+ target_link_libraries(pubsub_deadlock_sut PRIVATE Celix::pubsub_api)
+
+ celix_get_bundle_file(pubsub_deadlock_sut DEADLOCK_SUT_BUNDLE_FILE)
+
+ add_celix_bundle(pubsub_serializer
+ #serializer bundle
+ SOURCES
+ gtest/serializer_activator.cc
+ VERSION 1.0.0
+ )
+ target_include_directories(pubsub_serializer PRIVATE gtest)
+ target_link_libraries(pubsub_serializer PRIVATE Celix::pubsub_api Celix::pubsub_spi)
+
+ if (BUILD_PUBSUB_PSA_UDP_MC)
+ add_celix_container(pubsub_udpmc_tests
+ USE_CONFIG #ensures that a config.properties will be created with the launch bundles.
+ LAUNCHER_SRC ${CMAKE_CURRENT_LIST_DIR}/gtest/PubSubIntegrationTestSuite.cc
+ DIR ${CMAKE_CURRENT_BINARY_DIR}
+ PROPERTIES
LOGHELPER_STDOUT_FALLBACK_INCLUDE_DEBUG=true
CELIX_LOGGING_DEFAULT_ACTIVE_LOG_LEVEL=trace
- BUNDLES
+ BUNDLES
Celix::celix_pubsub_serializer_json
Celix::celix_pubsub_topology_manager
Celix::celix_pubsub_admin_udp_multicast
pubsub_sut
pubsub_tst
- )
- target_link_libraries(pubsub_udpmc_tests PRIVATE Celix::pubsub_api Jansson Celix::dfi GTest::gtest GTest::gtest_main)
- target_include_directories(pubsub_udpmc_tests SYSTEM PRIVATE gtest)
-
- add_celix_container(pstm_deadlock_udpmc_test
- USE_CONFIG #ensures that a config.properties will be created with the launch bundles.
- LAUNCHER_SRC ${CMAKE_CURRENT_LIST_DIR}/pstm_deadlock_test/test_runner.cc
- DIR ${CMAKE_CURRENT_BINARY_DIR}
- PROPERTIES
- LOGHELPER_STDOUT_FALLBACK_INCLUDE_DEBUG=true
- CELIX_LOGGING_DEFAULT_ACTIVE_LOG_LEVEL=trace
- BUNDLES
- Celix::celix_pubsub_serializer_json
- Celix::celix_pubsub_protocol_wire_v2
- Celix::celix_pubsub_topology_manager
- Celix::celix_pubsub_admin_udp_multicast
- Celix::shell
- Celix::shell_tui
- )
- target_compile_definitions(pstm_deadlock_udpmc_test PRIVATE -DDEADLOCK_SUT_BUNDLE_FILE=\"${DEADLOCK_SUT_BUNDLE_FILE}\")
- target_link_libraries(pstm_deadlock_udpmc_test PRIVATE Celix::pubsub_api Jansson Celix::dfi GTest::gtest GTest::gtest_main)
- target_include_directories(pstm_deadlock_udpmc_test SYSTEM PRIVATE pstm_deadlock_udpmc_test)
-
- #Note we do not link to bundles, as result (to ensure a bundle zip file is created) an dependency on the bundle is needed.
- add_dependencies(pstm_deadlock_udpmc_test pubsub_deadlock_sut_bundle)
-
- #Framework "bundle" has no cache dir. Default as "cache dir" the cwd is used.
- configure_file(${CMAKE_CURRENT_SOURCE_DIR}/meta_data/msg.descriptor ${CMAKE_CURRENT_BINARY_DIR}/pstm_deadlock_udpmc_gtest/META-INF/descriptors/msg.descriptor COPYONLY)
- configure_file(${CMAKE_CURRENT_SOURCE_DIR}/meta_data/deadlock.scope.properties ${CMAKE_CURRENT_BINARY_DIR}/pstm_deadlock_udpmc_gtest/META-INF/topics/pub/deadlock.properties COPYONLY)
-
- add_test(NAME pstm_deadlock_udpmc_test COMMAND pstm_deadlock_udpmc_test WORKING_DIRECTORY $<TARGET_PROPERTY:pstm_deadlock_udpmc_test,CONTAINER_LOC>)
- setup_target_for_coverage(pstm_deadlock_udpmc_test SCAN_DIR ..)
-
- #TODO fix issues with UDPMC and reanble test again
- #add_test(NAME pubsub_udpmc_tests COMMAND pubsub_udpmc_tests WORKING_DIRECTORY $<TARGET_PROPERTY:pubsub_udpmc_tests,CONTAINER_LOC>)
- #setup_target_for_coverage(pubsub_udpmc_tests SCAN_DIR ..)
-endif()
-
-if (BUILD_PUBSUB_PSA_TCP)
- # TCP v2 tests
-
- add_celix_container(pubsub_tcp_v2_wire_v1_tests
- USE_CONFIG #ensures that a config.properties will be created with the launch bundles.
- LAUNCHER_SRC ${CMAKE_CURRENT_LIST_DIR}/gtest/PubSubIntegrationTestSuite.cc
- DIR ${CMAKE_CURRENT_BINARY_DIR}
- PROPERTIES
- LOGHELPER_STDOUT_FALLBACK_INCLUDE_DEBUG=true
- CELIX_LOGGING_DEFAULT_ACTIVE_LOG_LEVEL=trace
- BUNDLES
- Celix::shell
- Celix::shell_tui
- Celix::celix_pubsub_serializer_json
- Celix::celix_pubsub_protocol_wire_v1
- Celix::celix_pubsub_topology_manager
- Celix::celix_pubsub_admin_tcp
- pubsub_sut
- pubsub_tst
- pubsub_serializer
- )
- target_link_libraries(pubsub_tcp_v2_wire_v1_tests PRIVATE Celix::pubsub_api Celix::dfi GTest::gtest GTest::gtest_main)
- target_include_directories(pubsub_tcp_v2_wire_v1_tests SYSTEM PRIVATE gtest)
- add_test(NAME pubsub_tcp_v2_wire_v1_tests COMMAND pubsub_tcp_v2_wire_v1_tests WORKING_DIRECTORY $<TARGET_PROPERTY:pubsub_tcp_v2_wire_v1_tests,CONTAINER_LOC>)
- setup_target_for_coverage(pubsub_tcp_v2_wire_v1_tests SCAN_DIR ..)
-
- add_celix_container(pubsub_tcp_v2_wire_v2_tests
- USE_CONFIG #ensures that a config.properties will be created with the launch bundles.
- LAUNCHER_SRC ${CMAKE_CURRENT_LIST_DIR}/gtest/PubSubIntegrationTestSuite.cc
- DIR ${CMAKE_CURRENT_BINARY_DIR}
- PROPERTIES
- LOGHELPER_STDOUT_FALLBACK_INCLUDE_DEBUG=true
- CELIX_LOGGING_DEFAULT_ACTIVE_LOG_LEVEL=trace
- BUNDLES
- Celix::shell
- Celix::shell_tui
- Celix::celix_pubsub_serializer_json
- Celix::celix_pubsub_protocol_wire_v2
- Celix::celix_pubsub_topology_manager
- Celix::celix_pubsub_admin_tcp
- pubsub_sut
- pubsub_tst
- pubsub_serializer
- )
- target_link_libraries(pubsub_tcp_v2_wire_v2_tests PRIVATE Celix::pubsub_api Celix::dfi GTest::gtest GTest::gtest_main)
- target_include_directories(pubsub_tcp_v2_wire_v2_tests SYSTEM PRIVATE gtest)
- add_test(NAME pubsub_tcp_v2_wire_v2_tests COMMAND pubsub_tcp_v2_wire_v2_tests WORKING_DIRECTORY $<TARGET_PROPERTY:pubsub_tcp_v2_wire_v2_tests,CONTAINER_LOC>)
- setup_target_for_coverage(pubsub_tcp_v2_wire_v2_tests SCAN_DIR ..)
-
- add_celix_container(pubsub_tcp_v2_wire_v2_with_no_scope_tests
- USE_CONFIG #ensures that a config.properties will be created with the launch bundles.
- LAUNCHER_SRC ${CMAKE_CURRENT_LIST_DIR}/gtest/PubSubIntegrationTestSuite.cc
- DIR ${CMAKE_CURRENT_BINARY_DIR}
- PROPERTIES
- LOGHELPER_STDOUT_FALLBACK_INCLUDE_DEBUG=true
- CELIX_LOGGING_DEFAULT_ACTIVE_LOG_LEVEL=trace
- CELIX_PUBSUB_TEST_USE_NEGATIVE_SCOPE_FILTER=false
- BUNDLES
- Celix::shell
- Celix::shell_tui
- Celix::celix_pubsub_serializer_json
- Celix::celix_pubsub_protocol_wire_v2
- Celix::celix_pubsub_topology_manager
- Celix::celix_pubsub_admin_tcp
- pubsub_sut
- pubsub_tst
- pubsub_serializer
- )
- target_link_libraries(pubsub_tcp_v2_wire_v2_with_no_scope_tests PRIVATE Celix::pubsub_api Celix::dfi GTest::gtest GTest::gtest_main)
- target_include_directories(pubsub_tcp_v2_wire_v2_with_no_scope_tests SYSTEM PRIVATE gtest)
- add_test(NAME pubsub_tcp_v2_wire_v2_with_no_scope_tests COMMAND pubsub_tcp_v2_wire_v2_with_no_scope_tests WORKING_DIRECTORY $<TARGET_PROPERTY:pubsub_tcp_v2_wire_v2_with_no_scope_tests,CONTAINER_LOC>)
- setup_target_for_coverage(pubsub_tcp_v2_wire_v2_with_no_scope_tests SCAN_DIR ..)
-
- add_celix_container(pubsub_tcp_v2_endpoint_tests
- USE_CONFIG #ensures that a config.properties will be created with the launch bundles.
- LAUNCHER_SRC ${CMAKE_CURRENT_LIST_DIR}/gtest/PubSubEndpointIntegrationTestSuite.cc
- DIR ${CMAKE_CURRENT_BINARY_DIR}
- PROPERTIES
- LOGHELPER_STDOUT_FALLBACK_INCLUDE_DEBUG=true
- CELIX_LOGGING_DEFAULT_ACTIVE_LOG_LEVEL=trace
- BUNDLES
- Celix::shell
- Celix::shell_tui
- Celix::celix_pubsub_serializer_json
- Celix::celix_pubsub_protocol_wire_v2
- Celix::celix_pubsub_topology_manager
- Celix::celix_pubsub_admin_tcp
- pubsub_endpoint_tst
- pubsub_endpoint_sut
- pubsub_loopback
- pubsub_serializer
- )
- target_link_libraries(pubsub_tcp_v2_endpoint_tests PRIVATE Celix::pubsub_api Celix::dfi GTest::gtest GTest::gtest_main)
- target_include_directories(pubsub_tcp_v2_endpoint_tests SYSTEM PRIVATE gtest)
-
- add_celix_container(pstm_deadlock_tcp_v2_test
- USE_CONFIG #ensures that a config.properties will be created with the launch bundles.
- LAUNCHER_SRC ${CMAKE_CURRENT_LIST_DIR}/pstm_deadlock_test/test_runner.cc
- DIR ${CMAKE_CURRENT_BINARY_DIR}
- PROPERTIES
- LOGHELPER_STDOUT_FALLBACK_INCLUDE_DEBUG=true
- CELIX_LOGGING_DEFAULT_ACTIVE_LOG_LEVEL=trace
- BUNDLES
- Celix::celix_pubsub_serializer_json
- Celix::celix_pubsub_protocol_wire_v2
- Celix::celix_pubsub_topology_manager
- Celix::celix_pubsub_admin_tcp
- Celix::shell
- Celix::shell_tui
- pubsub_serializer
- )
- target_compile_definitions(pstm_deadlock_tcp_v2_test PRIVATE -DDEADLOCK_SUT_BUNDLE_FILE=\"${DEADLOCK_SUT_BUNDLE_FILE}\")
- target_link_libraries(pstm_deadlock_tcp_v2_test PRIVATE Celix::pubsub_api GTest::gtest GTest::gtest_main Celix::dfi)
- target_include_directories(pstm_deadlock_tcp_v2_test SYSTEM PRIVATE pstm_deadlock_tcp_v2_test)
+ )
+ target_link_libraries(pubsub_udpmc_tests PRIVATE Celix::pubsub_api Jansson Celix::dfi GTest::gtest GTest::gtest_main)
+ target_include_directories(pubsub_udpmc_tests SYSTEM PRIVATE gtest)
+
+ add_celix_container(pstm_deadlock_udpmc_test
+ USE_CONFIG #ensures that a config.properties will be created with the launch bundles.
+ LAUNCHER_SRC ${CMAKE_CURRENT_LIST_DIR}/pstm_deadlock_test/test_runner.cc
+ DIR ${CMAKE_CURRENT_BINARY_DIR}
+ PROPERTIES
+ LOGHELPER_STDOUT_FALLBACK_INCLUDE_DEBUG=true
+ CELIX_LOGGING_DEFAULT_ACTIVE_LOG_LEVEL=trace
+ BUNDLES
+ Celix::celix_pubsub_serializer_json
+ Celix::celix_pubsub_protocol_wire_v2
+ Celix::celix_pubsub_topology_manager
+ Celix::celix_pubsub_admin_udp_multicast
+ Celix::shell
+ Celix::shell_tui
+ )
+ target_compile_definitions(pstm_deadlock_udpmc_test PRIVATE -DDEADLOCK_SUT_BUNDLE_FILE=\"${DEADLOCK_SUT_BUNDLE_FILE}\")
+ target_link_libraries(pstm_deadlock_udpmc_test PRIVATE Celix::pubsub_api Jansson Celix::dfi GTest::gtest GTest::gtest_main)
+ target_include_directories(pstm_deadlock_udpmc_test SYSTEM PRIVATE pstm_deadlock_udpmc_test)
- #Note we do not link to bundles, as result (to ensure a bundle zip file is created) an dependency on the bundle is needed.
- add_dependencies(pstm_deadlock_tcp_v2_test pubsub_deadlock_sut_bundle)
+ add_celix_bundle_dependencies(pstm_deadlock_udpmc_test pubsub_deadlock_sut)
- #Framework "bundle" has no cache dir. Default as "cache dir" the cwd is used.
- configure_file(${CMAKE_CURRENT_SOURCE_DIR}/meta_data/msg.descriptor ${CMAKE_CURRENT_BINARY_DIR}/pstm_deadlock_tcp_gtest/META-INF/descriptors/msg.descriptor COPYONLY)
- configure_file(${CMAKE_CURRENT_SOURCE_DIR}/meta_data/deadlock.scope.properties ${CMAKE_CURRENT_BINARY_DIR}/pstm_deadlock_tcp_gtest/META-INF/topics/pub/deadlock.properties COPYONLY)
+ #Framework "bundle" has no cache dir. Default as "cache dir" the cwd is used.
+ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/meta_data/msg.descriptor ${CMAKE_CURRENT_BINARY_DIR}/pstm_deadlock_udpmc_gtest/META-INF/descriptors/msg.descriptor COPYONLY)
+ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/meta_data/deadlock.scope.properties ${CMAKE_CURRENT_BINARY_DIR}/pstm_deadlock_udpmc_gtest/META-INF/topics/pub/deadlock.properties COPYONLY)
- add_test(NAME pstm_deadlock_tcp_v2_test COMMAND pstm_deadlock_tcp_v2_test WORKING_DIRECTORY $<TARGET_PROPERTY:pstm_deadlock_tcp_v2_test,CONTAINER_LOC>)
- setup_target_for_coverage(pstm_deadlock_tcp_v2_test SCAN_DIR ..)
+ add_test(NAME pstm_deadlock_udpmc_test COMMAND pstm_deadlock_udpmc_test WORKING_DIRECTORY $<TARGET_PROPERTY:pstm_deadlock_udpmc_test,CONTAINER_LOC>)
+ setup_target_for_coverage(pstm_deadlock_udpmc_test SCAN_DIR ..)
- #TCP Endpoint test is disabled because the test is not stable when running on Travis
- if (ENABLE_PUBSUB_PSA_TCP_ENDPOINT_TEST)
- add_test(NAME pubsub_tcp_v2_endpoint_tests COMMAND pubsub_tcp_v2_endpoint_tests WORKING_DIRECTORY $<TARGET_PROPERTY:pubsub_tcp_v2_endpoint_tests,CONTAINER_LOC>)
- setup_target_for_coverage(pubsub_tcp_v2_endpoint_tests SCAN_DIR ..)
+ #TODO fix issues with UDPMC and reanble test again
+ #add_test(NAME pubsub_udpmc_tests COMMAND pubsub_udpmc_tests WORKING_DIRECTORY $<TARGET_PROPERTY:pubsub_udpmc_tests,CONTAINER_LOC>)
+ #setup_target_for_coverage(pubsub_udpmc_tests SCAN_DIR ..)
endif()
-endif()
-
-if (BUILD_PUBSUB_PSA_WS)
- add_celix_container(pubsub_websocket_v2_tests
- USE_CONFIG
- LAUNCHER_SRC ${CMAKE_CURRENT_LIST_DIR}/gtest/PubSubIntegrationTestSuite.cc
- DIR ${CMAKE_CURRENT_BINARY_DIR}
- PROPERTIES
- LOGHELPER_STDOUT_FALLBACK_INCLUDE_DEBUG=true
- CELIX_LOGGING_DEFAULT_ACTIVE_LOG_LEVEL=trace
- CELIX_HTTP_ADMIN_LISTENING_PORTS=58080
- BUNDLES
- Celix::celix_pubsub_serializer_json
- Celix::http_admin
- Celix::celix_pubsub_topology_manager
- Celix::celix_pubsub_admin_websocket
- pubsub_sut
- pubsub_tst
- pubsub_serializer
- )
- target_link_libraries(pubsub_websocket_v2_tests PRIVATE Celix::pubsub_api Jansson civetweb_shared GTest::gtest GTest::gtest_main)
- target_include_directories(pubsub_websocket_v2_tests SYSTEM PRIVATE gtest)
- add_test(NAME pubsub_websocket_v2_tests COMMAND pubsub_websocket_v2_tests WORKING_DIRECTORY $<TARGET_PROPERTY:pubsub_websocket_v2_tests,CONTAINER_LOC>)
- setup_target_for_coverage(pubsub_websocket_v2_tests SCAN_DIR ..)
-
- add_celix_container(pstm_deadlock_websocket_v2_test
- USE_CONFIG #ensures that a config.properties will be created with the launch bundles.
- LAUNCHER_SRC ${CMAKE_CURRENT_LIST_DIR}/pstm_deadlock_test/test_runner.cc
- DIR ${CMAKE_CURRENT_BINARY_DIR}
- PROPERTIES
- LOGHELPER_STDOUT_FALLBACK_INCLUDE_DEBUG=true
- CELIX_LOGGING_DEFAULT_ACTIVE_LOG_LEVEL=trace
- CELIX_HTTP_ADMIN_LISTENING_PORTS=58080
- BUNDLES
- Celix::celix_pubsub_serializer_json
- Celix::celix_pubsub_topology_manager
- Celix::celix_pubsub_admin_websocket
- Celix::shell
- Celix::shell_tui
- pubsub_serializer
- )
- target_compile_definitions(pstm_deadlock_websocket_v2_test PRIVATE -DDEADLOCK_SUT_BUNDLE_FILE=\"${DEADLOCK_SUT_BUNDLE_FILE}\")
- target_link_libraries(pstm_deadlock_websocket_v2_test PRIVATE Celix::pubsub_api GTest::gtest GTest::gtest_main Jansson Celix::dfi civetweb_shared)
- target_include_directories(pstm_deadlock_websocket_v2_test SYSTEM PRIVATE pstm_deadlock_websocket_v2_test)
-
- #Note we do not link to bundles, as result (to ensure a bundle zip file is created) an dependency on the bundle is needed.
- add_dependencies(pstm_deadlock_websocket_v2_test pubsub_deadlock_sut_bundle)
-
- #Framework "bundle" has no cache dir. Default as "cache dir" the cwd is used.
- configure_file(${CMAKE_CURRENT_SOURCE_DIR}/meta_data/msg.descriptor ${CMAKE_CURRENT_BINARY_DIR}/pstm_deadlock_websocket_v2_test/META-INF/descriptors/msg.descriptor COPYONLY)
- configure_file(${CMAKE_CURRENT_SOURCE_DIR}/meta_data/deadlock.scope.properties ${CMAKE_CURRENT_BINARY_DIR}/pstm_deadlock_websocket_v2_test/META-INF/topics/pub/deadlock.properties COPYONLY)
-
- add_test(NAME pstm_deadlock_websocket_v2_test COMMAND pstm_deadlock_websocket_v2_test WORKING_DIRECTORY $<TARGET_PROPERTY:pstm_deadlock_websocket_v2_test,CONTAINER_LOC>)
- setup_target_for_coverage(pstm_deadlock_websocket_v2_test SCAN_DIR ..)
-endif()
-
-if (BUILD_PUBSUB_PSA_ZMQ)
- find_package(ZMQ REQUIRED)
- find_package(CZMQ REQUIRED)
-
- add_celix_container(pubsub_zmq_v2_tests
- USE_CONFIG #ensures that a config.properties will be created with the launch bundles.
- LAUNCHER_SRC ${CMAKE_CURRENT_LIST_DIR}/gtest/PubSubIntegrationTestSuite.cc
- DIR ${CMAKE_CURRENT_BINARY_DIR}
- PROPERTIES
+
+ if (BUILD_PUBSUB_PSA_TCP)
+ # TCP v2 tests
+
+ add_celix_container(pubsub_tcp_v2_wire_v1_tests
+ USE_CONFIG #ensures that a config.properties will be created with the launch bundles.
+ LAUNCHER_SRC ${CMAKE_CURRENT_LIST_DIR}/gtest/PubSubIntegrationTestSuite.cc
+ DIR ${CMAKE_CURRENT_BINARY_DIR}
+ PROPERTIES
LOGHELPER_STDOUT_FALLBACK_INCLUDE_DEBUG=true
CELIX_LOGGING_DEFAULT_ACTIVE_LOG_LEVEL=trace
- BUNDLES
+ BUNDLES
+ Celix::shell
+ Celix::shell_tui
Celix::celix_pubsub_serializer_json
+ Celix::celix_pubsub_protocol_wire_v1
Celix::celix_pubsub_topology_manager
- Celix::celix_pubsub_admin_zmq
+ Celix::celix_pubsub_admin_tcp
+ pubsub_sut
+ pubsub_tst
+ pubsub_serializer
+ )
+ target_link_libraries(pubsub_tcp_v2_wire_v1_tests PRIVATE Celix::pubsub_api Celix::dfi GTest::gtest GTest::gtest_main)
+ target_include_directories(pubsub_tcp_v2_wire_v1_tests SYSTEM PRIVATE gtest)
+ add_test(NAME pubsub_tcp_v2_wire_v1_tests COMMAND pubsub_tcp_v2_wire_v1_tests WORKING_DIRECTORY $<TARGET_PROPERTY:pubsub_tcp_v2_wire_v1_tests,CONTAINER_LOC>)
+ setup_target_for_coverage(pubsub_tcp_v2_wire_v1_tests SCAN_DIR ..)
+
+ add_celix_container(pubsub_tcp_v2_wire_v2_tests
+ USE_CONFIG #ensures that a config.properties will be created with the launch bundles.
+ LAUNCHER_SRC ${CMAKE_CURRENT_LIST_DIR}/gtest/PubSubIntegrationTestSuite.cc
+ DIR ${CMAKE_CURRENT_BINARY_DIR}
+ PROPERTIES
+ LOGHELPER_STDOUT_FALLBACK_INCLUDE_DEBUG=true
+ CELIX_LOGGING_DEFAULT_ACTIVE_LOG_LEVEL=trace
+ BUNDLES
+ Celix::shell
+ Celix::shell_tui
+ Celix::celix_pubsub_serializer_json
Celix::celix_pubsub_protocol_wire_v2
+ Celix::celix_pubsub_topology_manager
+ Celix::celix_pubsub_admin_tcp
pubsub_sut
pubsub_tst
pubsub_serializer
- )
+ )
+ target_link_libraries(pubsub_tcp_v2_wire_v2_tests PRIVATE Celix::pubsub_api Celix::dfi GTest::gtest GTest::gtest_main)
+ target_include_directories(pubsub_tcp_v2_wire_v2_tests SYSTEM PRIVATE gtest)
+ add_test(NAME pubsub_tcp_v2_wire_v2_tests COMMAND pubsub_tcp_v2_wire_v2_tests WORKING_DIRECTORY $<TARGET_PROPERTY:pubsub_tcp_v2_wire_v2_tests,CONTAINER_LOC>)
+ setup_target_for_coverage(pubsub_tcp_v2_wire_v2_tests SCAN_DIR ..)
+
+ add_celix_container(pubsub_tcp_v2_wire_v2_with_no_scope_tests
+ USE_CONFIG #ensures that a config.properties will be created with the launch bundles.
+ LAUNCHER_SRC ${CMAKE_CURRENT_LIST_DIR}/gtest/PubSubIntegrationTestSuite.cc
+ DIR ${CMAKE_CURRENT_BINARY_DIR}
+ PROPERTIES
+ LOGHELPER_STDOUT_FALLBACK_INCLUDE_DEBUG=true
+ CELIX_LOGGING_DEFAULT_ACTIVE_LOG_LEVEL=trace
+ CELIX_PUBSUB_TEST_USE_NEGATIVE_SCOPE_FILTER=false
+ BUNDLES
+ Celix::shell
+ Celix::shell_tui
+ Celix::celix_pubsub_serializer_json
+ Celix::celix_pubsub_protocol_wire_v2
+ Celix::celix_pubsub_topology_manager
+ Celix::celix_pubsub_admin_tcp
+ pubsub_sut
+ pubsub_tst
+ pubsub_serializer
+ )
+ target_link_libraries(pubsub_tcp_v2_wire_v2_with_no_scope_tests PRIVATE Celix::pubsub_api Celix::dfi GTest::gtest GTest::gtest_main)
+ target_include_directories(pubsub_tcp_v2_wire_v2_with_no_scope_tests SYSTEM PRIVATE gtest)
+ add_test(NAME pubsub_tcp_v2_wire_v2_with_no_scope_tests COMMAND pubsub_tcp_v2_wire_v2_with_no_scope_tests WORKING_DIRECTORY $<TARGET_PROPERTY:pubsub_tcp_v2_wire_v2_with_no_scope_tests,CONTAINER_LOC>)
+ setup_target_for_coverage(pubsub_tcp_v2_wire_v2_with_no_scope_tests SCAN_DIR ..)
+
+ add_celix_container(pubsub_tcp_v2_endpoint_tests
+ USE_CONFIG #ensures that a config.properties will be created with the launch bundles.
+ LAUNCHER_SRC ${CMAKE_CURRENT_LIST_DIR}/gtest/PubSubEndpointIntegrationTestSuite.cc
+ DIR ${CMAKE_CURRENT_BINARY_DIR}
+ PROPERTIES
+ LOGHELPER_STDOUT_FALLBACK_INCLUDE_DEBUG=true
+ CELIX_LOGGING_DEFAULT_ACTIVE_LOG_LEVEL=trace
+ BUNDLES
+ Celix::shell
+ Celix::shell_tui
+ Celix::celix_pubsub_serializer_json
+ Celix::celix_pubsub_protocol_wire_v2
+ Celix::celix_pubsub_topology_manager
+ Celix::celix_pubsub_admin_tcp
+ pubsub_endpoint_tst
+ pubsub_endpoint_sut
+ pubsub_loopback
+ pubsub_serializer
+ )
+ target_link_libraries(pubsub_tcp_v2_endpoint_tests PRIVATE Celix::pubsub_api Celix::dfi GTest::gtest GTest::gtest_main)
+ target_include_directories(pubsub_tcp_v2_endpoint_tests SYSTEM PRIVATE gtest)
+
+ add_celix_container(pstm_deadlock_tcp_v2_test
+ USE_CONFIG #ensures that a config.properties will be created with the launch bundles.
+ LAUNCHER_SRC ${CMAKE_CURRENT_LIST_DIR}/pstm_deadlock_test/test_runner.cc
+ DIR ${CMAKE_CURRENT_BINARY_DIR}
+ PROPERTIES
+ LOGHELPER_STDOUT_FALLBACK_INCLUDE_DEBUG=true
+ CELIX_LOGGING_DEFAULT_ACTIVE_LOG_LEVEL=trace
+ BUNDLES
+ Celix::celix_pubsub_serializer_json
+ Celix::celix_pubsub_protocol_wire_v2
+ Celix::celix_pubsub_topology_manager
+ Celix::celix_pubsub_admin_tcp
+ Celix::shell
+ Celix::shell_tui
+ pubsub_serializer
+ )
+ target_compile_definitions(pstm_deadlock_tcp_v2_test PRIVATE -DDEADLOCK_SUT_BUNDLE_FILE=\"${DEADLOCK_SUT_BUNDLE_FILE}\")
+ target_link_libraries(pstm_deadlock_tcp_v2_test PRIVATE Celix::pubsub_api GTest::gtest GTest::gtest_main Celix::dfi)
+ target_include_directories(pstm_deadlock_tcp_v2_test SYSTEM PRIVATE pstm_deadlock_tcp_v2_test)
+
+ #Note we do not link to bundles, as result (to ensure a bundle zip file is created) an dependency on the bundle is needed.
+ add_celix_bundle_dependencies(pstm_deadlock_tcp_v2_test pubsub_deadlock_sut)
+
+ #Framework "bundle" has no cache dir. Default as "cache dir" the cwd is used.
+ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/meta_data/msg.descriptor ${CMAKE_CURRENT_BINARY_DIR}/pstm_deadlock_tcp_gtest/META-INF/descriptors/msg.descriptor COPYONLY)
+ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/meta_data/deadlock.scope.properties ${CMAKE_CURRENT_BINARY_DIR}/pstm_deadlock_tcp_gtest/META-INF/topics/pub/deadlock.properties COPYONLY)
+
+ add_test(NAME pstm_deadlock_tcp_v2_test COMMAND pstm_deadlock_tcp_v2_test WORKING_DIRECTORY $<TARGET_PROPERTY:pstm_deadlock_tcp_v2_test,CONTAINER_LOC>)
+ setup_target_for_coverage(pstm_deadlock_tcp_v2_test SCAN_DIR ..)
+
+ #TCP Endpoint test is disabled because the test is not stable when running on Travis
+ if (ENABLE_PUBSUB_PSA_TCP_ENDPOINT_TEST)
+ add_test(NAME pubsub_tcp_v2_endpoint_tests COMMAND pubsub_tcp_v2_endpoint_tests WORKING_DIRECTORY $<TARGET_PROPERTY:pubsub_tcp_v2_endpoint_tests,CONTAINER_LOC>)
+ setup_target_for_coverage(pubsub_tcp_v2_endpoint_tests SCAN_DIR ..)
+ endif()
+ endif()
- target_link_libraries(pubsub_zmq_v2_tests PRIVATE Celix::pubsub_api Celix::dfi ZMQ::lib CZMQ::lib GTest::gtest GTest::gtest_main)
- target_include_directories(pubsub_zmq_v2_tests SYSTEM PRIVATE gtest)
- add_test(NAME pubsub_zmq_v2_tests COMMAND pubsub_zmq_v2_tests WORKING_DIRECTORY $<TARGET_PROPERTY:pubsub_zmq_v2_tests,CONTAINER_LOC>)
- setup_target_for_coverage(pubsub_zmq_v2_tests SCAN_DIR ..)
+ if (BUILD_PUBSUB_PSA_WS)
+ add_celix_container(pubsub_websocket_v2_tests
+ USE_CONFIG
+ LAUNCHER_SRC ${CMAKE_CURRENT_LIST_DIR}/gtest/PubSubIntegrationTestSuite.cc
+ DIR ${CMAKE_CURRENT_BINARY_DIR}
+ PROPERTIES
+ LOGHELPER_STDOUT_FALLBACK_INCLUDE_DEBUG=true
+ CELIX_LOGGING_DEFAULT_ACTIVE_LOG_LEVEL=trace
+ CELIX_HTTP_ADMIN_LISTENING_PORTS=58080
+ BUNDLES
+ Celix::celix_pubsub_serializer_json
+ Celix::http_admin
+ Celix::celix_pubsub_topology_manager
+ Celix::celix_pubsub_admin_websocket
+ pubsub_sut
+ pubsub_tst
+ pubsub_serializer
+ )
+ target_link_libraries(pubsub_websocket_v2_tests PRIVATE Celix::pubsub_api Jansson civetweb_shared GTest::gtest GTest::gtest_main)
+ target_include_directories(pubsub_websocket_v2_tests SYSTEM PRIVATE gtest)
+ add_test(NAME pubsub_websocket_v2_tests COMMAND pubsub_websocket_v2_tests WORKING_DIRECTORY $<TARGET_PROPERTY:pubsub_websocket_v2_tests,CONTAINER_LOC>)
+ setup_target_for_coverage(pubsub_websocket_v2_tests SCAN_DIR ..)
+
+ add_celix_container(pstm_deadlock_websocket_v2_test
+ USE_CONFIG #ensures that a config.properties will be created with the launch bundles.
+ LAUNCHER_SRC ${CMAKE_CURRENT_LIST_DIR}/pstm_deadlock_test/test_runner.cc
+ DIR ${CMAKE_CURRENT_BINARY_DIR}
+ PROPERTIES
+ LOGHELPER_STDOUT_FALLBACK_INCLUDE_DEBUG=true
+ CELIX_LOGGING_DEFAULT_ACTIVE_LOG_LEVEL=trace
+ CELIX_HTTP_ADMIN_LISTENING_PORTS=58080
+ BUNDLES
+ Celix::celix_pubsub_serializer_json
+ Celix::celix_pubsub_topology_manager
+ Celix::celix_pubsub_admin_websocket
+ Celix::shell
+ Celix::shell_tui
+ pubsub_serializer
+ )
+ target_compile_definitions(pstm_deadlock_websocket_v2_test PRIVATE -DDEADLOCK_SUT_BUNDLE_FILE=\"${DEADLOCK_SUT_BUNDLE_FILE}\")
+ target_link_libraries(pstm_deadlock_websocket_v2_test PRIVATE Celix::pubsub_api GTest::gtest GTest::gtest_main Jansson Celix::dfi civetweb_shared)
+ target_include_directories(pstm_deadlock_websocket_v2_test SYSTEM PRIVATE pstm_deadlock_websocket_v2_test)
+
+ #Note we do not link to bundles, as result (to ensure a bundle zip file is created) an dependency on the bundle is needed.
+ add_celix_bundle_dependencies(pstm_deadlock_websocket_v2_test pubsub_deadlock_sut)
+
+ #Framework "bundle" has no cache dir. Default as "cache dir" the cwd is used.
+ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/meta_data/msg.descriptor ${CMAKE_CURRENT_BINARY_DIR}/pstm_deadlock_websocket_v2_test/META-INF/descriptors/msg.descriptor COPYONLY)
+ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/meta_data/deadlock.scope.properties ${CMAKE_CURRENT_BINARY_DIR}/pstm_deadlock_websocket_v2_test/META-INF/topics/pub/deadlock.properties COPYONLY)
+
+ add_test(NAME pstm_deadlock_websocket_v2_test COMMAND pstm_deadlock_websocket_v2_test WORKING_DIRECTORY $<TARGET_PROPERTY:pstm_deadlock_websocket_v2_test,CONTAINER_LOC>)
+ setup_target_for_coverage(pstm_deadlock_websocket_v2_test SCAN_DIR ..)
+ endif()
+
+ if (BUILD_PUBSUB_PSA_ZMQ)
+ find_package(ZMQ REQUIRED)
+ find_package(CZMQ REQUIRED)
- add_celix_container(pubsub_zmq_v2_zerocopy_tests
- USE_CONFIG #ensures that a config.properties will be created with the launch bundles.
- LAUNCHER_SRC ${CMAKE_CURRENT_LIST_DIR}/gtest/PubSubIntegrationTestSuite.cc
- DIR ${CMAKE_CURRENT_BINARY_DIR}
- PROPERTIES
+ add_celix_container(pubsub_zmq_v2_tests
+ USE_CONFIG #ensures that a config.properties will be created with the launch bundles.
+ LAUNCHER_SRC ${CMAKE_CURRENT_LIST_DIR}/gtest/PubSubIntegrationTestSuite.cc
+ DIR ${CMAKE_CURRENT_BINARY_DIR}
+ PROPERTIES
+ LOGHELPER_STDOUT_FALLBACK_INCLUDE_DEBUG=true
+ CELIX_LOGGING_DEFAULT_ACTIVE_LOG_LEVEL=trace
+ BUNDLES
+ Celix::celix_pubsub_serializer_json
+ Celix::celix_pubsub_topology_manager
+ Celix::celix_pubsub_admin_zmq
+ Celix::celix_pubsub_protocol_wire_v2
+ pubsub_sut
+ pubsub_tst
+ pubsub_serializer
+ )
+
+ target_link_libraries(pubsub_zmq_v2_tests PRIVATE Celix::pubsub_api Celix::dfi ZMQ::lib CZMQ::lib GTest::gtest GTest::gtest_main)
+ target_include_directories(pubsub_zmq_v2_tests SYSTEM PRIVATE gtest)
+ add_test(NAME pubsub_zmq_v2_tests COMMAND pubsub_zmq_v2_tests WORKING_DIRECTORY $<TARGET_PROPERTY:pubsub_zmq_v2_tests,CONTAINER_LOC>)
+ setup_target_for_coverage(pubsub_zmq_v2_tests SCAN_DIR ..)
+
+ add_celix_container(pubsub_zmq_v2_zerocopy_tests
+ USE_CONFIG #ensures that a config.properties will be created with the launch bundles.
+ LAUNCHER_SRC ${CMAKE_CURRENT_LIST_DIR}/gtest/PubSubIntegrationTestSuite.cc
+ DIR ${CMAKE_CURRENT_BINARY_DIR}
+ PROPERTIES
LOGHELPER_STDOUT_FALLBACK_INCLUDE_DEBUG=true
PSA_ZMQ_ZEROCOPY_ENABLED=true
CELIX_LOGGING_DEFAULT_ACTIVE_LOG_LEVEL=trace
- BUNDLES
+ BUNDLES
Celix::celix_pubsub_serializer_json
Celix::celix_pubsub_topology_manager
Celix::celix_pubsub_admin_zmq
@@ -418,139 +419,140 @@ if (BUILD_PUBSUB_PSA_ZMQ)
pubsub_sut
pubsub_tst
pubsub_serializer
- )
+ )
- target_link_libraries(pubsub_zmq_v2_zerocopy_tests PRIVATE Celix::pubsub_api Celix::dfi ZMQ::lib CZMQ::lib GTest::gtest GTest::gtest_main)
- target_include_directories(pubsub_zmq_v2_zerocopy_tests SYSTEM PRIVATE gtest)
-
- add_test(NAME pubsub_zmq_v2_zerocopy_tests COMMAND pubsub_zmq_v2_zerocopy_tests WORKING_DIRECTORY $<TARGET_PROPERTY:pubsub_zmq_v2_zerocopy_tests,CONTAINER_LOC>)
- setup_target_for_coverage(pubsub_zmq_v2_zerocopy_tests SCAN_DIR ..)
-
- add_celix_container(pstm_deadlock_zmq_v2_test
- USE_CONFIG #ensures that a config.properties will be created with the launch bundles.
- LAUNCHER_SRC ${CMAKE_CURRENT_LIST_DIR}/pstm_deadlock_test/test_runner.cc
- DIR ${CMAKE_CURRENT_BINARY_DIR}
- PROPERTIES
- LOGHELPER_STDOUT_FALLBACK_INCLUDE_DEBUG=true
- CELIX_LOGGING_DEFAULT_ACTIVE_LOG_LEVEL=trace
- BUNDLES
- Celix::celix_pubsub_serializer_json
- Celix::celix_pubsub_topology_manager
- Celix::celix_pubsub_admin_zmq
- Celix::celix_pubsub_protocol_wire_v2
- )
+ target_link_libraries(pubsub_zmq_v2_zerocopy_tests PRIVATE Celix::pubsub_api Celix::dfi ZMQ::lib CZMQ::lib GTest::gtest GTest::gtest_main)
+ target_include_directories(pubsub_zmq_v2_zerocopy_tests SYSTEM PRIVATE gtest)
- target_compile_definitions(pstm_deadlock_zmq_v2_test PRIVATE -DDEADLOCK_SUT_BUNDLE_FILE=\"${DEADLOCK_SUT_BUNDLE_FILE}\")
- target_link_libraries(pstm_deadlock_zmq_v2_test PRIVATE Celix::pubsub_api GTest::gtest GTest::gtest_main Celix::dfi ZMQ::lib CZMQ::lib)
- target_include_directories(pstm_deadlock_zmq_v2_test SYSTEM PRIVATE pstm_deadlock_zmq_v2_test)
-
- #Note we do not link to bundles, as result (to ensure a bundle zip file is created) an dependency on the bundle is needed.
- add_dependencies(pstm_deadlock_zmq_v2_test pubsub_deadlock_sut_bundle)
-
- #Framework "bundle" has no cache dir. Default as "cache dir" the cwd is used.
- configure_file(${CMAKE_CURRENT_SOURCE_DIR}/meta_data/msg.descriptor ${CMAKE_CURRENT_BINARY_DIR}/pstm_deadlock_zmq_v2_test/META-INF/descriptors/msg.descriptor COPYONLY)
- configure_file(${CMAKE_CURRENT_SOURCE_DIR}/meta_data/deadlock.scope.properties ${CMAKE_CURRENT_BINARY_DIR}/pstm_deadlock_zmq_v2_test/META-INF/topics/pub/deadlock.properties COPYONLY)
-
- add_test(NAME pstm_deadlock_zmq_v2_test COMMAND pstm_deadlock_zmq_v2_test WORKING_DIRECTORY $<TARGET_PROPERTY:pstm_deadlock_zmq_v2_test,CONTAINER_LOC>)
- setup_target_for_coverage(pstm_deadlock_zmq_v2_test SCAN_DIR ..)
-endif ()
-
-if (BUILD_PUBSUB_PSA_ZMQ)
- #Test suite to test if component with same topic and different scope combinations work
- add_executable(test_pubsub_topic_and_scope_integration
- gtest/PubSubTopicAndScopeIntegrationTestSuite.cc
- )
- target_link_libraries(test_pubsub_topic_and_scope_integration PRIVATE Celix::framework Celix::pubsub_api GTest::gtest GTest::gtest_main)
- add_test(NAME test_pubsub_topic_and_scope_integration COMMAND test_pubsub_topic_and_scope_integration)
- setup_target_for_coverage(test_pubsub_topic_and_scope_integration SCAN_DIR ..)
-
- #configure topology manager and pubsub zmq, json serializer and wire protocol v2 bundles
- celix_get_bundle_file(Celix::celix_pubsub_serializer_json PUBSUB_JSON_BUNDLE_FILE)
- celix_get_bundle_file(Celix::celix_pubsub_topology_manager PUBSUB_TOPMAN_BUNDLE_FILE)
- celix_get_bundle_file(Celix::celix_pubsub_admin_zmq PUBSUB_ZMQ_BUNDLE_FILE)
- celix_get_bundle_file(Celix::celix_pubsub_protocol_wire_v2 PUBSUB_WIRE_BUNDLE_FILE)
- add_dependencies(test_pubsub_topic_and_scope_integration
- celix_pubsub_serializer_json_bundle
- celix_pubsub_topology_manager_bundle
- celix_pubsub_admin_zmq_bundle
- celix_pubsub_protocol_wire_v2_bundle
- )
- target_compile_definitions(test_pubsub_topic_and_scope_integration PRIVATE
- PUBSUB_JSON_BUNDLE_FILE="${PUBSUB_JSON_BUNDLE_FILE}"
- PUBSUB_TOPMAN_BUNDLE_FILE="${PUBSUB_TOPMAN_BUNDLE_FILE}"
- PUBSUB_ZMQ_BUNDLE_FILE="${PUBSUB_ZMQ_BUNDLE_FILE}"
- PUBSUB_WIRE_BUNDLE_FILE="${PUBSUB_WIRE_BUNDLE_FILE}"
- )
-endif ()
-
-#[[
-Add a integration test with use interceptors for a configurable PSA and wire protocol
-
-ARGV0 is test target name
-ARGV1 is PSA target name
-ARGV2 is wire protocol target name
-ARGV3 is option boolean whether http admin bundle should be used
-
-]]
-function(add_celix_interceptors_test_for_psa_and_wire)
- set(TEST_TARGET_NAME ${ARGV0})
- set(PSA ${ARGV1})
- set(WIRE ${ARGV2})
- set(USE_HTTP_ADMIN ${ARGV3})
-
- #Test suite to test if pusbub interceptors
- add_executable(${TEST_TARGET_NAME}
- gtest/PubSubInterceptorTestSuite.cc
- )
- target_link_libraries(${TEST_TARGET_NAME} PRIVATE Celix::framework Celix::pubsub_api GTest::gtest GTest::gtest_main Celix::pubsub_spi)
- target_include_directories(${TEST_TARGET_NAME} PRIVATE gtest)
- add_test(NAME ${TEST_TARGET_NAME} COMMAND ${TEST_TARGET_NAME})
- setup_target_for_coverage(${TEST_TARGET_NAME} SCAN_DIR ..)
-
- #configure topology manager and pubsub admin, json serializer and wire protocol bundles
- celix_get_bundle_file(Celix::celix_pubsub_serializer_json PUBSUB_JSON_BUNDLE_FILE)
- celix_get_bundle_file(Celix::celix_pubsub_topology_manager PUBSUB_TOPMAN_BUNDLE_FILE)
- celix_get_bundle_file(${PSA} PUBSUB_PSA_BUNDLE_FILE)
- celix_get_bundle_file(${WIRE} PUBSUB_WIRE_BUNDLE_FILE)
-
- celix_get_bundle_file(pubsub_sut PUBSUB_PUBLISHER_BUNDLE_FILE)
- celix_get_bundle_file(pubsub_tst PUBSUB_SUBSCRIBER_BUNDLE_FILE)
- add_celix_bundle_dependencies(${TEST_TARGET_NAME} Celix::celix_pubsub_serializer_json Celix::celix_pubsub_topology_manager ${PSA} ${WIRE} pubsub_sut pubsub_tst)
- target_compile_definitions(${TEST_TARGET_NAME} PRIVATE
- PUBSUB_JSON_BUNDLE_FILE="${PUBSUB_JSON_BUNDLE_FILE}"
- PUBSUB_TOPMAN_BUNDLE_FILE="${PUBSUB_TOPMAN_BUNDLE_FILE}"
- PUBSUB_PSA_BUNDLE_FILE="${PUBSUB_PSA_BUNDLE_FILE}"
- PUBSUB_WIRE_BUNDLE_FILE="${PUBSUB_WIRE_BUNDLE_FILE}"
- PUBSUB_PUBLISHER_BUNDLE_FILE="${PUBSUB_PUBLISHER_BUNDLE_FILE}"
- PUBSUB_SUBSCRIBER_BUNDLE_FILE="${PUBSUB_SUBSCRIBER_BUNDLE_FILE}"
- )
-
- #if PSA websocket is enabled add http_admin bundle
- if (USE_HTTP_ADMIN)
- target_link_libraries(${TEST_TARGET_NAME} PRIVATE Celix::http_admin_api)
- celix_get_bundle_file(Celix::http_admin HTTP_ADMIN_BUNDLE_FILE)
- add_celix_bundle_dependencies(${TEST_TARGET_NAME} Celix::http_admin)
- target_compile_definitions(${TEST_TARGET_NAME} PRIVATE HTTP_ADMIN_BUNDLE_FILE="${HTTP_ADMIN_BUNDLE_FILE}")
- endif ()
+ add_test(NAME pubsub_zmq_v2_zerocopy_tests COMMAND pubsub_zmq_v2_zerocopy_tests WORKING_DIRECTORY $<TARGET_PROPERTY:pubsub_zmq_v2_zerocopy_tests,CONTAINER_LOC>)
+ setup_target_for_coverage(pubsub_zmq_v2_zerocopy_tests SCAN_DIR ..)
+
+ add_celix_container(pstm_deadlock_zmq_v2_test
+ USE_CONFIG #ensures that a config.properties will be created with the launch bundles.
+ LAUNCHER_SRC ${CMAKE_CURRENT_LIST_DIR}/pstm_deadlock_test/test_runner.cc
+ DIR ${CMAKE_CURRENT_BINARY_DIR}
+ PROPERTIES
+ LOGHELPER_STDOUT_FALLBACK_INCLUDE_DEBUG=true
+ CELIX_LOGGING_DEFAULT_ACTIVE_LOG_LEVEL=trace
+ BUNDLES
+ Celix::celix_pubsub_serializer_json
+ Celix::celix_pubsub_topology_manager
+ Celix::celix_pubsub_admin_zmq
+ Celix::celix_pubsub_protocol_wire_v2
+ )
+
+ target_compile_definitions(pstm_deadlock_zmq_v2_test PRIVATE -DDEADLOCK_SUT_BUNDLE_FILE=\"${DEADLOCK_SUT_BUNDLE_FILE}\")
+ target_link_libraries(pstm_deadlock_zmq_v2_test PRIVATE Celix::pubsub_api GTest::gtest GTest::gtest_main Celix::dfi ZMQ::lib CZMQ::lib)
+ target_include_directories(pstm_deadlock_zmq_v2_test SYSTEM PRIVATE pstm_deadlock_zmq_v2_test)
+
+ #Note we do not link to bundles, as result (to ensure a bundle zip file is created) an dependency on the bundle is needed.
+ add_celix_bundle_dependencies(pstm_deadlock_zmq_v2_test pubsub_deadlock_sut)
+
+ #Framework "bundle" has no cache dir. Default as "cache dir" the cwd is used.
+ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/meta_data/msg.descriptor ${CMAKE_CURRENT_BINARY_DIR}/pstm_deadlock_zmq_v2_test/META-INF/descriptors/msg.descriptor COPYONLY)
+ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/meta_data/deadlock.scope.properties ${CMAKE_CURRENT_BINARY_DIR}/pstm_deadlock_zmq_v2_test/META-INF/topics/pub/deadlock.properties COPYONLY)
- #Linking against zmq if present
- if (TARGET ZMQ::lib AND TARGET CZMQ::lib)
- target_link_libraries(${TEST_TARGET_NAME} PRIVATE ZMQ::lib CZMQ::lib)
+ add_test(NAME pstm_deadlock_zmq_v2_test COMMAND pstm_deadlock_zmq_v2_test WORKING_DIRECTORY $<TARGET_PROPERTY:pstm_deadlock_zmq_v2_test,CONTAINER_LOC>)
+ setup_target_for_coverage(pstm_deadlock_zmq_v2_test SCAN_DIR ..)
endif ()
-endfunction()
+ if (BUILD_PUBSUB_PSA_ZMQ)
+ #Test suite to test if component with same topic and different scope combinations work
+ add_executable(test_pubsub_topic_and_scope_integration
+ gtest/PubSubTopicAndScopeIntegrationTestSuite.cc
+ )
+ target_link_libraries(test_pubsub_topic_and_scope_integration PRIVATE Celix::framework Celix::pubsub_api GTest::gtest GTest::gtest_main)
+ add_test(NAME test_pubsub_topic_and_scope_integration COMMAND test_pubsub_topic_and_scope_integration)
+ setup_target_for_coverage(test_pubsub_topic_and_scope_integration SCAN_DIR ..)
+
+ #configure topology manager and pubsub zmq, json serializer and wire protocol v2 bundles
+ celix_get_bundle_file(Celix::celix_pubsub_serializer_json PUBSUB_JSON_BUNDLE_FILE)
+ celix_get_bundle_file(Celix::celix_pubsub_topology_manager PUBSUB_TOPMAN_BUNDLE_FILE)
+ celix_get_bundle_file(Celix::celix_pubsub_admin_zmq PUBSUB_ZMQ_BUNDLE_FILE)
+ celix_get_bundle_file(Celix::celix_pubsub_protocol_wire_v2 PUBSUB_WIRE_BUNDLE_FILE)
+ add_celix_bundle_dependencies(test_pubsub_topic_and_scope_integration
+ celix_pubsub_serializer_json
+ celix_pubsub_topology_manager
+ celix_pubsub_admin_zmq
+ celix_pubsub_protocol_wire_v2
+ )
+ target_compile_definitions(test_pubsub_topic_and_scope_integration PRIVATE
+ PUBSUB_JSON_BUNDLE_FILE="${PUBSUB_JSON_BUNDLE_FILE}"
+ PUBSUB_TOPMAN_BUNDLE_FILE="${PUBSUB_TOPMAN_BUNDLE_FILE}"
+ PUBSUB_ZMQ_BUNDLE_FILE="${PUBSUB_ZMQ_BUNDLE_FILE}"
+ PUBSUB_WIRE_BUNDLE_FILE="${PUBSUB_WIRE_BUNDLE_FILE}"
+ )
+ endif ()
-if (BUILD_PUBSUB_PSA_WS)
- add_celix_interceptors_test_for_psa_and_wire(test_pubsub_interceptors_ws_and_wire_v1_integration Celix::celix_pubsub_admin_websocket Celix::celix_pubsub_protocol_wire_v1 true)
- add_celix_interceptors_test_for_psa_and_wire(test_pubsub_interceptors_ws_and_wire_v2_integration Celix::celix_pubsub_admin_websocket Celix::celix_pubsub_protocol_wire_v2 true)
-endif ()
+ #[[
+ Add a integration test with use interceptors for a configurable PSA and wire protocol
+
+ ARGV0 is test target name
+ ARGV1 is PSA target name
+ ARGV2 is wire protocol target name
+ ARGV3 is option boolean whether http admin bundle should be used
+
+ ]]
+ function(add_celix_interceptors_test_for_psa_and_wire)
+ set(TEST_TARGET_NAME ${ARGV0})
+ set(PSA ${ARGV1})
+ set(WIRE ${ARGV2})
+ set(USE_HTTP_ADMIN ${ARGV3})
+
+ #Test suite to test if pusbub interceptors
+ add_executable(${TEST_TARGET_NAME}
+ gtest/PubSubInterceptorTestSuite.cc
+ )
+ target_link_libraries(${TEST_TARGET_NAME} PRIVATE Celix::framework Celix::pubsub_api GTest::gtest GTest::gtest_main Celix::pubsub_spi)
+ target_include_directories(${TEST_TARGET_NAME} PRIVATE gtest)
+ add_test(NAME ${TEST_TARGET_NAME} COMMAND ${TEST_TARGET_NAME})
+ setup_target_for_coverage(${TEST_TARGET_NAME} SCAN_DIR ..)
+
+ #configure topology manager and pubsub admin, json serializer and wire protocol bundles
+ celix_get_bundle_file(Celix::celix_pubsub_serializer_json PUBSUB_JSON_BUNDLE_FILE)
+ celix_get_bundle_file(Celix::celix_pubsub_topology_manager PUBSUB_TOPMAN_BUNDLE_FILE)
+ celix_get_bundle_file(${PSA} PUBSUB_PSA_BUNDLE_FILE)
+ celix_get_bundle_file(${WIRE} PUBSUB_WIRE_BUNDLE_FILE)
+
+ celix_get_bundle_file(pubsub_sut PUBSUB_PUBLISHER_BUNDLE_FILE)
+ celix_get_bundle_file(pubsub_tst PUBSUB_SUBSCRIBER_BUNDLE_FILE)
+ add_celix_bundle_dependencies(${TEST_TARGET_NAME} Celix::celix_pubsub_serializer_json Celix::celix_pubsub_topology_manager ${PSA} ${WIRE} pubsub_sut pubsub_tst)
+ target_compile_definitions(${TEST_TARGET_NAME} PRIVATE
+ PUBSUB_JSON_BUNDLE_FILE="${PUBSUB_JSON_BUNDLE_FILE}"
+ PUBSUB_TOPMAN_BUNDLE_FILE="${PUBSUB_TOPMAN_BUNDLE_FILE}"
+ PUBSUB_PSA_BUNDLE_FILE="${PUBSUB_PSA_BUNDLE_FILE}"
+ PUBSUB_WIRE_BUNDLE_FILE="${PUBSUB_WIRE_BUNDLE_FILE}"
+ PUBSUB_PUBLISHER_BUNDLE_FILE="${PUBSUB_PUBLISHER_BUNDLE_FILE}"
+ PUBSUB_SUBSCRIBER_BUNDLE_FILE="${PUBSUB_SUBSCRIBER_BUNDLE_FILE}"
+ )
+
+ #if PSA websocket is enabled add http_admin bundle
+ if (USE_HTTP_ADMIN)
+ target_link_libraries(${TEST_TARGET_NAME} PRIVATE Celix::http_admin_api)
+ celix_get_bundle_file(Celix::http_admin HTTP_ADMIN_BUNDLE_FILE)
+ add_celix_bundle_dependencies(${TEST_TARGET_NAME} Celix::http_admin)
+ target_compile_definitions(${TEST_TARGET_NAME} PRIVATE HTTP_ADMIN_BUNDLE_FILE="${HTTP_ADMIN_BUNDLE_FILE}")
+ endif ()
+
+ #Linking against zmq if present
+ if (TARGET ZMQ::lib AND TARGET CZMQ::lib)
+ target_link_libraries(${TEST_TARGET_NAME} PRIVATE ZMQ::lib CZMQ::lib)
+ endif ()
+ endfunction()
+
+
+ if (BUILD_PUBSUB_PSA_WS)
+ add_celix_interceptors_test_for_psa_and_wire(test_pubsub_interceptors_ws_and_wire_v1_integration Celix::celix_pubsub_admin_websocket Celix::celix_pubsub_protocol_wire_v1 true)
+ add_celix_interceptors_test_for_psa_and_wire(test_pubsub_interceptors_ws_and_wire_v2_integration Celix::celix_pubsub_admin_websocket Celix::celix_pubsub_protocol_wire_v2 true)
+ endif ()
-if (BUILD_PUBSUB_PSA_TCP)
- add_celix_interceptors_test_for_psa_and_wire(test_pubsub_interceptors_tcp_and_wire_v1_integration Celix::celix_pubsub_admin_tcp Celix::celix_pubsub_protocol_wire_v1)
- add_celix_interceptors_test_for_psa_and_wire(test_pubsub_interceptors_tcp_and_wire_v2_integration Celix::celix_pubsub_admin_tcp Celix::celix_pubsub_protocol_wire_v2)
-endif ()
+ if (BUILD_PUBSUB_PSA_TCP)
+ add_celix_interceptors_test_for_psa_and_wire(test_pubsub_interceptors_tcp_and_wire_v1_integration Celix::celix_pubsub_admin_tcp Celix::celix_pubsub_protocol_wire_v1)
+ add_celix_interceptors_test_for_psa_and_wire(test_pubsub_interceptors_tcp_and_wire_v2_integration Celix::celix_pubsub_admin_tcp Celix::celix_pubsub_protocol_wire_v2)
+ endif ()
-if (BUILD_PUBSUB_PSA_ZMQ)
- add_celix_interceptors_test_for_psa_and_wire(test_pubsub_interceptors_zmq_and_wire_v1_integration Celix::celix_pubsub_admin_zmq Celix::celix_pubsub_protocol_wire_v1)
- add_celix_interceptors_test_for_psa_and_wire(test_pubsub_interceptors_zmq_and_wire_v2_integration Celix::celix_pubsub_admin_zmq Celix::celix_pubsub_protocol_wire_v2)
+ if (BUILD_PUBSUB_PSA_ZMQ)
+ add_celix_interceptors_test_for_psa_and_wire(test_pubsub_interceptors_zmq_and_wire_v1_integration Celix::celix_pubsub_admin_zmq Celix::celix_pubsub_protocol_wire_v1)
+ add_celix_interceptors_test_for_psa_and_wire(test_pubsub_interceptors_zmq_and_wire_v2_integration Celix::celix_pubsub_admin_zmq Celix::celix_pubsub_protocol_wire_v2)
+ endif ()
endif ()
\ No newline at end of file
diff --git a/bundles/pubsub/pubsub_admin_tcp/CMakeLists.txt b/bundles/pubsub/pubsub_admin_tcp/CMakeLists.txt
index c3e032c..9acfbbc 100644
--- a/bundles/pubsub/pubsub_admin_tcp/CMakeLists.txt
+++ b/bundles/pubsub/pubsub_admin_tcp/CMakeLists.txt
@@ -15,29 +15,32 @@
# specific language governing permissions and limitations
# under the License.
-find_package(UUID REQUIRED)
+celix_subproject(PUBSUB_PSA_TCP "Build TCP PubSub Admin" ON)
+if (PUBSUB_PSA_TCP)
+ find_package(UUID REQUIRED)
-add_celix_bundle(celix_pubsub_admin_tcp
- BUNDLE_SYMBOLICNAME "apache_celix_pubsub_admin_tcp"
- VERSION "2.0.0"
- GROUP "Celix/PubSub"
- SOURCES
- src/psa_activator.c
- src/pubsub_tcp_admin.c
- src/pubsub_tcp_topic_sender.c
- src/pubsub_tcp_topic_receiver.c
- src/pubsub_tcp_handler.c
- src/pubsub_tcp_common.c
-)
+ add_celix_bundle(celix_pubsub_admin_tcp
+ BUNDLE_SYMBOLICNAME "apache_celix_pubsub_admin_tcp"
+ VERSION "2.0.0"
+ GROUP "Celix/PubSub"
+ SOURCES
+ src/psa_activator.c
+ src/pubsub_tcp_admin.c
+ src/pubsub_tcp_topic_sender.c
+ src/pubsub_tcp_topic_receiver.c
+ src/pubsub_tcp_handler.c
+ src/pubsub_tcp_common.c
+ )
-target_link_libraries(celix_pubsub_admin_tcp PRIVATE Celix::pubsub_spi Celix::pubsub_utils)
-target_link_libraries(celix_pubsub_admin_tcp PRIVATE Celix::framework Celix::log_helper)
-target_link_libraries(celix_pubsub_admin_tcp PRIVATE Celix::shell_api)
-target_include_directories(celix_pubsub_admin_tcp PRIVATE src)
-# cmake find package UUID set the wrong include dir for OSX
-if (NOT APPLE)
- target_link_libraries(celix_pubsub_admin_tcp PRIVATE UUID::lib)
-endif()
+ target_link_libraries(celix_pubsub_admin_tcp PRIVATE Celix::pubsub_spi Celix::pubsub_utils)
+ target_link_libraries(celix_pubsub_admin_tcp PRIVATE Celix::framework Celix::log_helper)
+ target_link_libraries(celix_pubsub_admin_tcp PRIVATE Celix::shell_api)
+ target_include_directories(celix_pubsub_admin_tcp PRIVATE src)
+ # cmake find package UUID set the wrong include dir for OSX, does Conan solve this?
+ if (NOT APPLE)
+ target_link_libraries(celix_pubsub_admin_tcp PRIVATE UUID::lib)
+ endif()
-install_celix_bundle(celix_pubsub_admin_tcp EXPORT celix COMPONENT pubsub)
-add_library(Celix::celix_pubsub_admin_tcp ALIAS celix_pubsub_admin_tcp)
+ install_celix_bundle(celix_pubsub_admin_tcp EXPORT celix COMPONENT pubsub)
+ add_library(Celix::celix_pubsub_admin_tcp ALIAS celix_pubsub_admin_tcp)
+endif (PUBSUB_PSA_TCP)
diff --git a/bundles/pubsub/pubsub_admin_udp_mc/CMakeLists.txt b/bundles/pubsub/pubsub_admin_udp_mc/CMakeLists.txt
index 4cf8fef..1e5148d 100644
--- a/bundles/pubsub/pubsub_admin_udp_mc/CMakeLists.txt
+++ b/bundles/pubsub/pubsub_admin_udp_mc/CMakeLists.txt
@@ -15,28 +15,31 @@
# specific language governing permissions and limitations
# under the License.
-find_package(Jansson REQUIRED)
+celix_subproject(PUBSUB_PSA_UDP_MC "Build UDP MC PubSub Admin" ON)
+if (PUBSUB_PSA_UDP_MC)
+ find_package(Jansson REQUIRED)
-add_celix_bundle(celix_pubsub_admin_udp_multicast
- BUNDLE_SYMBOLICNAME "apache_celix_pubsub_admin_udp_multicast"
- VERSION "1.0.0"
- GROUP "Celix/PubSub"
- SOURCES
- src/psa_activator.c
- src/pubsub_udpmc_admin.c
- src/pubsub_udpmc_topic_sender.c
- src/pubsub_udpmc_topic_receiver.c
- src/pubsub_udpmc_common.c
- src/large_udp.c
-)
-target_include_directories(celix_pubsub_admin_udp_multicast PRIVATE
- src
-)
-set_target_properties(celix_pubsub_admin_udp_multicast PROPERTIES INSTALL_RPATH "$ORIGIN")
-target_link_libraries(celix_pubsub_admin_udp_multicast PRIVATE Celix::framework Celix::dfi Celix::log_helper Celix::utils Celix::shell_api)
-target_link_libraries(celix_pubsub_admin_udp_multicast PRIVATE Celix::pubsub_spi Celix::pubsub_utils )
-install_celix_bundle(celix_pubsub_admin_udp_multicast EXPORT celix COMPONENT pubsub)
+ add_celix_bundle(celix_pubsub_admin_udp_multicast
+ BUNDLE_SYMBOLICNAME "apache_celix_pubsub_admin_udp_multicast"
+ VERSION "1.0.0"
+ GROUP "Celix/PubSub"
+ SOURCES
+ src/psa_activator.c
+ src/pubsub_udpmc_admin.c
+ src/pubsub_udpmc_topic_sender.c
+ src/pubsub_udpmc_topic_receiver.c
+ src/pubsub_udpmc_common.c
+ src/large_udp.c
+ )
+ target_include_directories(celix_pubsub_admin_udp_multicast PRIVATE
+ src
+ )
+ set_target_properties(celix_pubsub_admin_udp_multicast PROPERTIES INSTALL_RPATH "$ORIGIN")
+ target_link_libraries(celix_pubsub_admin_udp_multicast PRIVATE Celix::framework Celix::dfi Celix::log_helper Celix::utils Celix::shell_api)
+ target_link_libraries(celix_pubsub_admin_udp_multicast PRIVATE Celix::pubsub_spi Celix::pubsub_utils )
+ install_celix_bundle(celix_pubsub_admin_udp_multicast EXPORT celix COMPONENT pubsub)
-add_library(Celix::celix_pubsub_admin_udp_multicast ALIAS celix_pubsub_admin_udp_multicast)
+ add_library(Celix::celix_pubsub_admin_udp_multicast ALIAS celix_pubsub_admin_udp_multicast)
+endif (PUBSUB_PSA_UDP_MC)
diff --git a/bundles/pubsub/pubsub_admin_websocket/CMakeLists.txt b/bundles/pubsub/pubsub_admin_websocket/CMakeLists.txt
index 625e24d..15ad395 100644
--- a/bundles/pubsub/pubsub_admin_websocket/CMakeLists.txt
+++ b/bundles/pubsub/pubsub_admin_websocket/CMakeLists.txt
@@ -15,28 +15,31 @@
# specific language governing permissions and limitations
# under the License.
-find_package(Jansson REQUIRED)
-find_package(UUID REQUIRED)
+celix_subproject(PUBSUB_PSA_WS "Build WebSocket PubSub Admin" ON DEPS HTTP_ADMIN)
+if (PUBSUB_PSA_WS)
+ find_package(Jansson REQUIRED)
+ find_package(UUID REQUIRED)
-add_celix_bundle(celix_pubsub_admin_websocket
- BUNDLE_SYMBOLICNAME "apache_celix_pubsub_admin_websocket"
- VERSION "2.0.0"
- GROUP "Celix/PubSub"
- SOURCES
- src/psa_activator.c
- src/pubsub_websocket_admin.c
- src/pubsub_websocket_topic_sender.c
- src/pubsub_websocket_topic_receiver.c
- src/pubsub_websocket_common.c
-)
+ add_celix_bundle(celix_pubsub_admin_websocket
+ BUNDLE_SYMBOLICNAME "apache_celix_pubsub_admin_websocket"
+ VERSION "2.0.0"
+ GROUP "Celix/PubSub"
+ SOURCES
+ src/psa_activator.c
+ src/pubsub_websocket_admin.c
+ src/pubsub_websocket_topic_sender.c
+ src/pubsub_websocket_topic_receiver.c
+ src/pubsub_websocket_common.c
+ )
-target_link_libraries(celix_pubsub_admin_websocket PRIVATE
- Celix::framework Celix::log_helper Celix::utils
- Celix::http_admin_api
-)
-target_link_libraries(celix_pubsub_admin_websocket PRIVATE Celix::pubsub_spi Celix::pubsub_utils)
-target_link_libraries(celix_pubsub_admin_websocket PRIVATE Celix::shell_api)
-target_include_directories(celix_pubsub_admin_websocket PRIVATE src)
+ target_link_libraries(celix_pubsub_admin_websocket PRIVATE
+ Celix::framework Celix::log_helper Celix::utils
+ Celix::http_admin_api
+ )
+ target_link_libraries(celix_pubsub_admin_websocket PRIVATE Celix::pubsub_spi Celix::pubsub_utils)
+ target_link_libraries(celix_pubsub_admin_websocket PRIVATE Celix::shell_api)
+ target_include_directories(celix_pubsub_admin_websocket PRIVATE src)
-install_celix_bundle(celix_pubsub_admin_websocket EXPORT celix COMPONENT pubsub)
-add_library(Celix::celix_pubsub_admin_websocket ALIAS celix_pubsub_admin_websocket)
+ install_celix_bundle(celix_pubsub_admin_websocket EXPORT celix COMPONENT pubsub)
+ add_library(Celix::celix_pubsub_admin_websocket ALIAS celix_pubsub_admin_websocket)
+endif (PUBSUB_PSA_WS)
diff --git a/bundles/pubsub/pubsub_admin_zmq/CMakeLists.txt b/bundles/pubsub/pubsub_admin_zmq/CMakeLists.txt
index e8bbbf2..daf590e 100644
--- a/bundles/pubsub/pubsub_admin_zmq/CMakeLists.txt
+++ b/bundles/pubsub/pubsub_admin_zmq/CMakeLists.txt
@@ -15,38 +15,43 @@
# specific language governing permissions and limitations
# under the License.
-find_package(ZMQ REQUIRED)
-find_package(CZMQ REQUIRED)
-find_package(UUID REQUIRED)
+celix_subproject(PUBSUB_PSA_ZMQ "Build ZeroMQ PubSub Admin (LGPL License)" ON)
+if (PUBSUB_PSA_ZMQ)
+ find_package(ZMQ REQUIRED)
+ find_package(CZMQ REQUIRED)
+ find_package(UUID REQUIRED)
-set(OPTIONAL_OPENSSL_LIB )
-if (BUILD_ZMQ_SECURITY)
- add_definitions(-DBUILD_WITH_ZMQ_SECURITY=1)
+ set(OPTIONAL_OPENSSL_LIB )
+ # FIXME: ZMQ_SECURITY doesn't compile now
+ option(BUILD_ZMQ_SECURITY "Build with security for ZeroMQ." OFF)
+ if (BUILD_ZMQ_SECURITY)
+ add_definitions(-DBUILD_WITH_ZMQ_SECURITY=1)
- find_package(OpenSSL 1.1.0 REQUIRED)
- include_directories("${OPENSSL_INCLUDE_DIR}")
- set(OPTIONAL_OPENSSL_LIB OpenSSL::SSL)
+ find_package(OpenSSL 1.1.0 REQUIRED)
+ include_directories("${OPENSSL_INCLUDE_DIR}")
+ set(OPTIONAL_OPENSSL_LIB OpenSSL::SSL)
- set (ZMQ_CRYPTO_C "src/zmq_crypto.c")
-endif()
+ set (ZMQ_CRYPTO_C "src/zmq_crypto.c")
+ endif()
-add_celix_bundle(celix_pubsub_admin_zmq
- BUNDLE_SYMBOLICNAME "apache_celix_pubsub_admin_zmq"
- VERSION "2.0.0"
- GROUP "Celix/PubSub"
- SOURCES
- src/psa_activator.c
- src/pubsub_zmq_admin.c
- src/pubsub_zmq_topic_sender.c
- src/pubsub_zmq_topic_receiver.c
- ${ZMQ_CRYPTO_C}
-)
+ add_celix_bundle(celix_pubsub_admin_zmq
+ BUNDLE_SYMBOLICNAME "apache_celix_pubsub_admin_zmq"
+ VERSION "2.0.0"
+ GROUP "Celix/PubSub"
+ SOURCES
+ src/psa_activator.c
+ src/pubsub_zmq_admin.c
+ src/pubsub_zmq_topic_sender.c
+ src/pubsub_zmq_topic_receiver.c
+ ${ZMQ_CRYPTO_C}
+ )
-target_link_libraries(celix_pubsub_admin_zmq PRIVATE
- Celix::framework Celix::dfi Celix::log_helper Celix::utils
- ZMQ::lib CZMQ::lib ${OPTIONAL_OPENSSL_LIB})
-target_link_libraries(celix_pubsub_admin_zmq PRIVATE Celix::shell_api)
-target_link_libraries(celix_pubsub_admin_zmq PRIVATE Celix::pubsub_spi Celix::pubsub_utils )
-target_include_directories(celix_pubsub_admin_zmq PRIVATE src)
-install_celix_bundle(celix_pubsub_admin_zmq EXPORT celix COMPONENT pubsub)
-add_library(Celix::celix_pubsub_admin_zmq ALIAS celix_pubsub_admin_zmq)
+ target_link_libraries(celix_pubsub_admin_zmq PRIVATE
+ Celix::framework Celix::dfi Celix::log_helper Celix::utils
+ ZMQ::lib CZMQ::lib ${OPTIONAL_OPENSSL_LIB})
+ target_link_libraries(celix_pubsub_admin_zmq PRIVATE Celix::shell_api)
+ target_link_libraries(celix_pubsub_admin_zmq PRIVATE Celix::pubsub_spi Celix::pubsub_utils)
+ target_include_directories(celix_pubsub_admin_zmq PRIVATE src)
+ install_celix_bundle(celix_pubsub_admin_zmq EXPORT celix COMPONENT pubsub)
+ add_library(Celix::celix_pubsub_admin_zmq ALIAS celix_pubsub_admin_zmq)
+endif (PUBSUB_PSA_ZMQ)
diff --git a/bundles/pubsub/pubsub_api/CMakeLists.txt b/bundles/pubsub/pubsub_api/CMakeLists.txt
index 336ba5e..3269e25 100644
--- a/bundles/pubsub/pubsub_api/CMakeLists.txt
+++ b/bundles/pubsub/pubsub_api/CMakeLists.txt
@@ -20,13 +20,12 @@ add_library(pubsub_api INTERFACE)
target_include_directories(pubsub_api INTERFACE
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>
- $<INSTALL_INTERFACE:include/celix/pubsub>
- $<INSTALL_INTERFACE:include/celix>
)
#install api
-install(TARGETS pubsub_api EXPORT celix DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT pubsub)
-install(DIRECTORY include/ DESTINATION include/celix/pubsub COMPONENT pubsub)
+install(TARGETS pubsub_api EXPORT celix DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT pubsub
+ INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix/pubsub)
+install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix/pubsub COMPONENT pubsub)
#Setup target aliases to match external usage
add_library(Celix::pubsub_api ALIAS pubsub_api)
diff --git a/bundles/pubsub/pubsub_discovery/CMakeLists.txt b/bundles/pubsub/pubsub_discovery/CMakeLists.txt
index 8dab81c..fafa1bb 100644
--- a/bundles/pubsub/pubsub_discovery/CMakeLists.txt
+++ b/bundles/pubsub/pubsub_discovery/CMakeLists.txt
@@ -15,25 +15,28 @@
# specific language governing permissions and limitations
# under the License.
-find_package(CURL REQUIRED)
-find_package(Jansson REQUIRED)
+celix_subproject(PUBSUB_DISCOVERY_ETCD "Option to enable building the PubSub Discovery (ETCD) bundle" ON DEPS CELIX_ETCDLIB)
+if (PUBSUB_DISCOVERY_ETCD)
+ find_package(CURL REQUIRED)
+ find_package(Jansson REQUIRED)
-add_celix_bundle(celix_pubsub_discovery_etcd
- BUNDLE_SYMBOLICNAME "apache_celix_pubsub_discovery_etcd"
- VERSION "1.1.0"
- GROUP "Celix/PubSub"
- SOURCES
- src/psd_activator.c
- src/pubsub_discovery_impl.c
-)
-target_include_directories(celix_pubsub_discovery_etcd PRIVATE src)
-target_link_libraries(celix_pubsub_discovery_etcd PRIVATE
- Celix::framework Celix::etcdlib_static
- Celix::shell_api Celix::log_helper
- CURL::libcurl Jansson
-)
-target_link_libraries(celix_pubsub_discovery_etcd PRIVATE Celix::pubsub_spi Celix::pubsub_utils )
+ add_celix_bundle(celix_pubsub_discovery_etcd
+ BUNDLE_SYMBOLICNAME "apache_celix_pubsub_discovery_etcd"
+ VERSION "1.1.0"
+ GROUP "Celix/PubSub"
+ SOURCES
+ src/psd_activator.c
+ src/pubsub_discovery_impl.c
+ )
+ target_include_directories(celix_pubsub_discovery_etcd PRIVATE src)
+ target_link_libraries(celix_pubsub_discovery_etcd PRIVATE
+ Celix::framework Celix::etcdlib_static
+ Celix::shell_api Celix::log_helper
+ CURL::libcurl Jansson
+ )
+ target_link_libraries(celix_pubsub_discovery_etcd PRIVATE Celix::pubsub_spi Celix::pubsub_utils)
-install_celix_bundle(celix_pubsub_discovery_etcd EXPORT celix COMPONENT pubsub)
+ install_celix_bundle(celix_pubsub_discovery_etcd EXPORT celix COMPONENT pubsub)
-add_library(Celix::celix_pubsub_discovery_etcd ALIAS celix_pubsub_discovery_etcd)
+ add_library(Celix::celix_pubsub_discovery_etcd ALIAS celix_pubsub_discovery_etcd)
+endif ()
diff --git a/bundles/pubsub/pubsub_serializer_avrobin/gtest/CMakeLists.txt b/bundles/pubsub/pubsub_serializer_avrobin/gtest/CMakeLists.txt
index 8f764d4..bb6cf73 100644
--- a/bundles/pubsub/pubsub_serializer_avrobin/gtest/CMakeLists.txt
+++ b/bundles/pubsub/pubsub_serializer_avrobin/gtest/CMakeLists.txt
@@ -26,7 +26,7 @@ add_executable(test_pubsub_serializer_avrobin
)
target_link_libraries(test_pubsub_serializer_avrobin PRIVATE Celix::framework Celix::dfi Celix::pubsub_utils GTest::gtest GTest::gtest_main Celix::pubsub_spi)
-add_dependencies(test_pubsub_serializer_avrobin celix_pubsub_serializer_avrobin_bundle pubsub_avrobin_serialization_descriptor_bundle)
+add_celix_bundle_dependencies(test_pubsub_serializer_avrobin celix_pubsub_serializer_avrobin pubsub_avrobin_serialization_descriptor)
target_compile_definitions(test_pubsub_serializer_avrobin PRIVATE -DSERIALIZATION_BUNDLE=\"$<TARGET_PROPERTY:celix_pubsub_serializer_avrobin,BUNDLE_FILE>\")
target_compile_definitions(test_pubsub_serializer_avrobin PRIVATE -DDESCRIPTOR_BUNDLE=\"$<TARGET_PROPERTY:pubsub_avrobin_serialization_descriptor,BUNDLE_FILE>\")
diff --git a/bundles/pubsub/pubsub_serializer_json/CMakeLists.txt b/bundles/pubsub/pubsub_serializer_json/CMakeLists.txt
index 2b295f1..2073f0c 100644
--- a/bundles/pubsub/pubsub_serializer_json/CMakeLists.txt
+++ b/bundles/pubsub/pubsub_serializer_json/CMakeLists.txt
@@ -32,7 +32,7 @@ target_include_directories(celix_pubsub_serializer_json PRIVATE
)
set_target_properties(celix_pubsub_serializer_json PROPERTIES INSTALL_RPATH "$ORIGIN")
target_link_libraries(celix_pubsub_serializer_json PRIVATE Celix::framework Celix::dfi Jansson Celix::log_helper)
-target_link_libraries(celix_pubsub_serializer_json PRIVATE Celix::pubsub_spi Celix::pubsub_utils )
+target_link_libraries(celix_pubsub_serializer_json PRIVATE Celix::pubsub_spi Celix::pubsub_utils)
install_celix_bundle(celix_pubsub_serializer_json EXPORT celix COMPONENT pubsub)
diff --git a/bundles/pubsub/pubsub_serializer_json/gtest/CMakeLists.txt b/bundles/pubsub/pubsub_serializer_json/gtest/CMakeLists.txt
index 60b5626..062d6cb 100644
--- a/bundles/pubsub/pubsub_serializer_json/gtest/CMakeLists.txt
+++ b/bundles/pubsub/pubsub_serializer_json/gtest/CMakeLists.txt
@@ -26,7 +26,7 @@ add_executable(test_pubsub_serializer_json
)
target_link_libraries(test_pubsub_serializer_json PRIVATE Celix::framework Celix::dfi Celix::pubsub_utils GTest::gtest GTest::gtest_main Celix::pubsub_spi)
-add_dependencies(test_pubsub_serializer_json celix_pubsub_serializer_json_bundle pubsub_json_serialization_descriptor_bundle)
+add_celix_bundle_dependencies(test_pubsub_serializer_json celix_pubsub_serializer_json pubsub_json_serialization_descriptor)
target_compile_definitions(test_pubsub_serializer_json PRIVATE -DSERIALIZATION_BUNDLE=\"$<TARGET_PROPERTY:celix_pubsub_serializer_json,BUNDLE_FILE>\")
target_compile_definitions(test_pubsub_serializer_json PRIVATE -DDESCRIPTOR_BUNDLE=\"$<TARGET_PROPERTY:pubsub_json_serialization_descriptor,BUNDLE_FILE>\")
diff --git a/bundles/pubsub/pubsub_spi/CMakeLists.txt b/bundles/pubsub/pubsub_spi/CMakeLists.txt
index 8d1c340..465fea8 100644
--- a/bundles/pubsub/pubsub_spi/CMakeLists.txt
+++ b/bundles/pubsub/pubsub_spi/CMakeLists.txt
@@ -25,15 +25,15 @@ add_library(pubsub_spi STATIC
set_target_properties(pubsub_spi PROPERTIES OUTPUT_NAME "celix_pubsub_spi")
target_include_directories(pubsub_spi PUBLIC
- $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>
- $<INSTALL_INTERFACE:include/celix/pubsub_spi>)
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>)
target_link_libraries(pubsub_spi PUBLIC Celix::framework Celix::pubsub_api)
target_link_libraries(pubsub_spi PUBLIC Celix::pubsub_utils )
add_library(Celix::pubsub_spi ALIAS pubsub_spi)
-install(TARGETS pubsub_spi EXPORT celix DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT pubsub)
-install(DIRECTORY include/ DESTINATION include/celix/pubsub_spi COMPONENT pubsub)
+install(TARGETS pubsub_spi EXPORT celix DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT pubsub
+ INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix/pubsub_spi)
+install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix/pubsub_spi COMPONENT pubsub)
if (ENABLE_TESTING)
diff --git a/bundles/pubsub/pubsub_utils/CMakeLists.txt b/bundles/pubsub/pubsub_utils/CMakeLists.txt
index 0c285aa..21374ee 100644
--- a/bundles/pubsub/pubsub_utils/CMakeLists.txt
+++ b/bundles/pubsub/pubsub_utils/CMakeLists.txt
@@ -26,15 +26,15 @@ add_library(pubsub_utils STATIC
set_target_properties(pubsub_utils PROPERTIES OUTPUT_NAME "celix_pubsub_utils")
target_include_directories(pubsub_utils PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>
- $<INSTALL_INTERFACE:include/celix/pubsub_utils>
)
target_link_libraries(pubsub_utils PUBLIC Celix::framework Celix::pubsub_api Celix::log_helper Celix::shell_api)
target_link_libraries(pubsub_utils PRIVATE Celix::pubsub_spi)
add_library(Celix::pubsub_utils ALIAS pubsub_utils)
-install(TARGETS pubsub_utils EXPORT celix DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT pubsub)
-install(DIRECTORY include/ DESTINATION include/celix/pubsub_utils COMPONENT pubsub)
+install(TARGETS pubsub_utils EXPORT celix DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT pubsub
+ INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix/pubsub_utils)
+install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix/pubsub_utils COMPONENT pubsub)
if (ENABLE_TESTING)
add_subdirectory(gtest)
diff --git a/bundles/pubsub/pubsub_utils/gtest/CMakeLists.txt b/bundles/pubsub/pubsub_utils/gtest/CMakeLists.txt
index ac8cdb8..a16d29f 100644
--- a/bundles/pubsub/pubsub_utils/gtest/CMakeLists.txt
+++ b/bundles/pubsub/pubsub_utils/gtest/CMakeLists.txt
@@ -54,7 +54,6 @@ add_executable(test_pubsub_utils
target_link_libraries(test_pubsub_utils PRIVATE Celix::framework Celix::pubsub_utils GTest::gtest GTest::gtest_main Celix::pubsub_spi)
add_test(NAME test_pubsub_utils COMMAND test_pubsub_utils)
setup_target_for_coverage(test_pubsub_utils SCAN_DIR ..)
-
-add_dependencies(test_pubsub_utils pubsub_serialization_matching_descriptors pubsub_serialization_provider_descriptors_bundle)
+add_celix_bundle_dependencies(test_pubsub_utils pubsub_serialization_matching_descriptors pubsub_serialization_provider_descriptors)
target_compile_definitions(test_pubsub_utils PRIVATE -DDESCRIPTOR_BUNDLE=\"$<TARGET_PROPERTY:pubsub_serialization_provider_descriptors,BUNDLE_FILE>\")
target_compile_definitions(test_pubsub_utils PRIVATE -DMATCHING_BUNDLE=\"$<TARGET_PROPERTY:pubsub_serialization_matching_descriptors,BUNDLE_FILE>\")
\ No newline at end of file
diff --git a/bundles/remote_services/CMakeLists.txt b/bundles/remote_services/CMakeLists.txt
index 94fee52..6c72db2 100644
--- a/bundles/remote_services/CMakeLists.txt
+++ b/bundles/remote_services/CMakeLists.txt
@@ -19,30 +19,25 @@ celix_subproject(REMOTE_SERVICE_ADMIN "Option to enable building the Remote Serv
if (REMOTE_SERVICE_ADMIN)
add_subdirectory(remote_services_api)
- add_subdirectory(examples)
add_subdirectory(deprecated_rsa_spi)
add_subdirectory(rsa_common)
add_subdirectory(civetweb)
- add_subdirectory(topology_manager)
add_subdirectory(discovery_common)
add_subdirectory(discovery_configured)
add_subdirectory(discovery_etcd)
+ add_subdirectory(examples)
+ add_subdirectory(topology_manager)
add_subdirectory(remote_service_admin_dfi)
- if (APPLE)
- set(RSA_SHM_DEFAULT_ENABLED OFF)
- else ()
- set(RSA_SHM_DEFAULT_ENABLED ON)
- endif ()
-
- celix_subproject(RSA_SHM "Option to enable building the Discovery (SHM) bundle" ${RSA_SHM_DEFAULT_ENABLED})
+ celix_subproject(RSA_SHM "Option to enable building the Discovery (SHM) bundle" OFF)
if (RSA_SHM)
add_subdirectory(discovery_shm)
- #TODO refactor shm rsa to use dfi
+ # TODO refactor shm rsa to use dfi
+ # TODO make it work on Apple
#add_subdirectory(remote_service_admin_shm)
endif ()
- if (BUILD_RSA_DISCOVERY_ETCD AND BUILD_RSA_REMOTE_SERVICE_ADMIN_DFI)
+ if (BUILD_RSA_DISCOVERY_ETCD AND BUILD_RSA_REMOTE_SERVICE_ADMIN_DFI AND BUILD_SHELL AND BUILD_SHELL_TUI AND BUILD_LOG_SERVICE)
add_celix_container(remote-services-dfi
NAME "server"
GROUP "remote-services/remote-services-dfi"
diff --git a/bundles/remote_services/deprecated_rsa_spi/CMakeLists.txt b/bundles/remote_services/deprecated_rsa_spi/CMakeLists.txt
index eeeb100..eac0621 100644
--- a/bundles/remote_services/deprecated_rsa_spi/CMakeLists.txt
+++ b/bundles/remote_services/deprecated_rsa_spi/CMakeLists.txt
@@ -18,12 +18,12 @@
add_library(deprecated_rsa_spi INTERFACE)
target_include_directories(deprecated_rsa_spi INTERFACE
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>
- $<INSTALL_INTERFACE:include/celix/rsa>
)
target_link_libraries(deprecated_rsa_spi INTERFACE Celix::remote_services_api)
-install(TARGETS deprecated_rsa_spi EXPORT celix DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT rsa)
-install(DIRECTORY include/ DESTINATION include/celix/rsa COMPONENT rsa)
+install(TARGETS deprecated_rsa_spi EXPORT celix DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT rsa
+ INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix/rsa)
+install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix/rsa COMPONENT rsa)
#Setup target aliases to match external usage
add_library(Celix::deprecated_rsa_spi ALIAS deprecated_rsa_spi)
diff --git a/bundles/remote_services/discovery_configured/CMakeLists.txt b/bundles/remote_services/discovery_configured/CMakeLists.txt
index 522840d..1c2fec7 100644
--- a/bundles/remote_services/discovery_configured/CMakeLists.txt
+++ b/bundles/remote_services/discovery_configured/CMakeLists.txt
@@ -15,25 +15,28 @@
# specific language governing permissions and limitations
# under the License.
-find_package(CURL REQUIRED)
-find_package(LibXml2 REQUIRED)
+celix_subproject(RSA_DISCOVERY_CONFIGURED "Option to enable building the Discovery (Configured) bundle" ON)
+if (RSA_DISCOVERY_CONFIGURED)
+ find_package(CURL REQUIRED)
+ find_package(LibXml2 REQUIRED)
-add_celix_bundle(rsa_discovery
- VERSION 0.9.0
- SYMBOLIC_NAME "apache_celix_rsa_discovery"
- NAME "Apache Celix RSA Configured Discovery"
- SOURCES
- src/discovery_impl.c
- $<TARGET_OBJECTS:Celix::rsa_discovery_common>
- $<TARGET_OBJECTS:Celix::civetweb>
-)
-target_include_directories(rsa_discovery PRIVATE
- src
- $<TARGET_PROPERTY:Celix::rsa_discovery_common,INCLUDE_DIRECTORIES>
- $<TARGET_PROPERTY:Celix::civetweb,INCLUDE_DIRECTORIES>
-)
-target_link_libraries(rsa_discovery PRIVATE CURL::libcurl ${LIBXML2_LIBRARIES} Celix::log_helper Celix::rsa_common)
+ add_celix_bundle(rsa_discovery
+ VERSION 0.9.0
+ SYMBOLIC_NAME "apache_celix_rsa_discovery"
+ NAME "Apache Celix RSA Configured Discovery"
+ SOURCES
+ src/discovery_impl.c
+ $<TARGET_OBJECTS:Celix::rsa_discovery_common>
+ $<TARGET_OBJECTS:Celix::civetweb>
+ )
+ target_include_directories(rsa_discovery PRIVATE
+ src
+ $<TARGET_PROPERTY:Celix::rsa_discovery_common,INCLUDE_DIRECTORIES>
+ $<TARGET_PROPERTY:Celix::civetweb,INCLUDE_DIRECTORIES>
+ )
+ target_link_libraries(rsa_discovery PRIVATE CURL::libcurl ${LIBXML2_LIBRARIES} Celix::log_helper Celix::rsa_common)
-install_celix_bundle(rsa_discovery EXPORT celix COMPONENT rsa)
-#Setup target aliases to match external usage
-add_library(Celix::rsa_discovery ALIAS rsa_discovery)
+ install_celix_bundle(rsa_discovery EXPORT celix COMPONENT rsa)
+ #Setup target aliases to match external usage
+ add_library(Celix::rsa_discovery ALIAS rsa_discovery)
+endif (RSA_DISCOVERY_CONFIGURED)
diff --git a/bundles/remote_services/discovery_etcd/CMakeLists.txt b/bundles/remote_services/discovery_etcd/CMakeLists.txt
index c0bbba3..6fc76f9 100644
--- a/bundles/remote_services/discovery_etcd/CMakeLists.txt
+++ b/bundles/remote_services/discovery_etcd/CMakeLists.txt
@@ -15,33 +15,36 @@
# specific language governing permissions and limitations
# under the License.
-find_package(CURL REQUIRED)
-find_package(LibXml2 REQUIRED)
-find_package(Jansson REQUIRED)
+celix_subproject(RSA_DISCOVERY_ETCD "Option to enable building the Discovery (ETCD) bundle" ON DEPS CELIX_ETCDLIB)
+if (RSA_DISCOVERY_ETCD)
+ find_package(CURL REQUIRED)
+ find_package(LibXml2 REQUIRED)
+ find_package(Jansson REQUIRED)
-add_celix_bundle(rsa_discovery_etcd
- VERSION 0.9.0
- SYMBOLIC_NAME "apache_celix_rsa_discovery_etcd"
- NAME "Apache Celix RSA Discovery ETCD"
- GROUP "Celix/RSA"
- SOURCES
- src/discovery_impl.c
- src/etcd_watcher.c
- $<TARGET_OBJECTS:Celix::rsa_discovery_common>
- $<TARGET_OBJECTS:Celix::civetweb>
-)
-target_link_libraries(rsa_discovery_etcd PRIVATE Celix::log_helper Celix::etcdlib_static Celix::rsa_common)
-target_include_directories(rsa_discovery_etcd PRIVATE src)
-target_include_directories(rsa_discovery_etcd PRIVATE
- $<TARGET_PROPERTY:Celix::rsa_discovery_common,INCLUDE_DIRECTORIES>
- $<TARGET_PROPERTY:Celix::civetweb,INCLUDE_DIRECTORIES>
-)
+ add_celix_bundle(rsa_discovery_etcd
+ VERSION 0.9.0
+ SYMBOLIC_NAME "apache_celix_rsa_discovery_etcd"
+ NAME "Apache Celix RSA Discovery ETCD"
+ GROUP "Celix/RSA"
+ SOURCES
+ src/discovery_impl.c
+ src/etcd_watcher.c
+ $<TARGET_OBJECTS:Celix::rsa_discovery_common>
+ $<TARGET_OBJECTS:Celix::civetweb>
+ )
+ target_link_libraries(rsa_discovery_etcd PRIVATE Celix::log_helper Celix::etcdlib_static Celix::rsa_common)
+ target_include_directories(rsa_discovery_etcd PRIVATE src)
+ target_include_directories(rsa_discovery_etcd PRIVATE
+ $<TARGET_PROPERTY:Celix::rsa_discovery_common,INCLUDE_DIRECTORIES>
+ $<TARGET_PROPERTY:Celix::civetweb,INCLUDE_DIRECTORIES>
+ )
target_include_directories(rsa_discovery_etcd SYSTEM PRIVATE
- ${CURL_INCLUDE_DIR}
- ${LIBXML2_INCLUDE_DIR}
-)
-target_link_libraries(rsa_discovery_etcd PRIVATE CURL::libcurl ${LIBXML2_LIBRARIES} Jansson)
+ ${CURL_INCLUDE_DIR}
+ ${LIBXML2_INCLUDE_DIR}
+ )
+ target_link_libraries(rsa_discovery_etcd PRIVATE CURL::libcurl ${LIBXML2_LIBRARIES} Jansson)
-install_celix_bundle(rsa_discovery_etcd EXPORT celix COMPONENT rsa)
-#Setup target aliases to match external usage
-add_library(Celix::rsa_discovery_etcd ALIAS rsa_discovery_etcd)
+ install_celix_bundle(rsa_discovery_etcd EXPORT celix COMPONENT rsa)
+ #Setup target aliases to match external usage
+ add_library(Celix::rsa_discovery_etcd ALIAS rsa_discovery_etcd)
+endif (RSA_DISCOVERY_ETCD)
diff --git a/bundles/remote_services/examples/interceptors/CMakeLists.txt b/bundles/remote_services/examples/interceptors/CMakeLists.txt
index 0b9cb35..db7257d 100644
--- a/bundles/remote_services/examples/interceptors/CMakeLists.txt
+++ b/bundles/remote_services/examples/interceptors/CMakeLists.txt
@@ -24,5 +24,5 @@ add_celix_bundle(celix_remote_interceptors_example
src/second_interceptor.c
)
-target_link_libraries(celix_remote_interceptors_example PRIVATE Celix::framework Celix::rsa_common)
+target_link_libraries(celix_remote_interceptors_example PRIVATE Celix::framework Celix::deprecated_rsa_spi)
target_include_directories(celix_remote_interceptors_example PRIVATE include)
\ No newline at end of file
diff --git a/bundles/remote_services/remote_service_admin_dfi/CMakeLists.txt b/bundles/remote_services/remote_service_admin_dfi/CMakeLists.txt
index 2edaef1..251de6e 100644
--- a/bundles/remote_services/remote_service_admin_dfi/CMakeLists.txt
+++ b/bundles/remote_services/remote_service_admin_dfi/CMakeLists.txt
@@ -15,38 +15,40 @@
# specific language governing permissions and limitations
# under the License.
-find_package(CURL REQUIRED)
-find_package(Jansson REQUIRED)
-find_package(UUID REQUIRED)
+celix_subproject(RSA_REMOTE_SERVICE_ADMIN_DFI "Option to enable building the Remote Service Admin Service DFI" ON)
+if (RSA_REMOTE_SERVICE_ADMIN_DFI)
+ find_package(CURL REQUIRED)
+ find_package(Jansson REQUIRED)
+ find_package(UUID REQUIRED)
-add_celix_bundle(rsa_dfi
- VERSION 0.9.0
- SYMBOLIC_NAME "apache_celix_remote_service_admin_dfi"
- NAME "Apache Celix Remote Service Admin Dynamic Function Interface (DFI)"
- GROUP "Celix/RSA"
- SOURCES
- src/remote_service_admin_dfi.c
- src/remote_service_admin_activator.c
- src/export_registration_dfi.c
- src/import_registration_dfi.c
- src/dfi_utils.c
- $<TARGET_OBJECTS:Celix::civetweb>
-)
-celix_bundle_private_libs(rsa_dfi Celix::dfi)
-target_include_directories(rsa_dfi PRIVATE $<TARGET_PROPERTY:Celix::civetweb,INCLUDE_DIRECTORIES>)
-target_link_libraries(rsa_dfi PRIVATE
- Celix::dfi
- Celix::log_helper
- Celix::rsa_common
- CURL::libcurl
- Jansson
-)
-
-if (ENABLE_TESTING)
- add_subdirectory(gtest)
-endif()
+ add_celix_bundle(rsa_dfi
+ VERSION 0.9.0
+ SYMBOLIC_NAME "apache_celix_remote_service_admin_dfi"
+ NAME "Apache Celix Remote Service Admin Dynamic Function Interface (DFI)"
+ GROUP "Celix/RSA"
+ SOURCES
+ src/remote_service_admin_dfi.c
+ src/remote_service_admin_activator.c
+ src/export_registration_dfi.c
+ src/import_registration_dfi.c
+ src/dfi_utils.c
+ $<TARGET_OBJECTS:Celix::civetweb>
+ )
+ celix_bundle_private_libs(rsa_dfi Celix::dfi)
+ target_include_directories(rsa_dfi PRIVATE $<TARGET_PROPERTY:Celix::civetweb,INCLUDE_DIRECTORIES>)
+ target_link_libraries(rsa_dfi PRIVATE
+ Celix::dfi
+ Celix::log_helper
+ Celix::rsa_common
+ CURL::libcurl
+ Jansson
+ )
+ install_celix_bundle(rsa_dfi EXPORT celix COMPONENT rsa)
+ #Setup target aliases to match external usage
+ add_library(Celix::rsa_dfi ALIAS rsa_dfi)
-install_celix_bundle(rsa_dfi EXPORT celix COMPONENT rsa)
-#Setup target aliases to match external usage
-add_library(Celix::rsa_dfi ALIAS rsa_dfi)
+ if (ENABLE_TESTING)
+ add_subdirectory(gtest)
+ endif()
+endif()
diff --git a/bundles/remote_services/remote_service_admin_dfi/gtest/CMakeLists.txt b/bundles/remote_services/remote_service_admin_dfi/gtest/CMakeLists.txt
index aa33865..6793eeb 100644
--- a/bundles/remote_services/remote_service_admin_dfi/gtest/CMakeLists.txt
+++ b/bundles/remote_services/remote_service_admin_dfi/gtest/CMakeLists.txt
@@ -60,10 +60,10 @@ configure_file(server.properties.in server.properties)
#add exception service interface descriptor
configure_file(exception_test_service.descriptor exception_test_service.descriptor)
-add_dependencies(test_rsa_dfi
- rsa_dfi_bundle #note depend on the target creating the bundle zip not the lib target
- calculator_bundle
- remote_example_service_bundle
+add_celix_bundle_dependencies(test_rsa_dfi
+ rsa_dfi #note depend on the target creating the bundle zip not the lib target
+ calculator
+ remote_example_service
)
add_test(NAME run_test_rsa_dfi COMMAND test_rsa_dfi)
diff --git a/bundles/remote_services/remote_services_api/CMakeLists.txt b/bundles/remote_services/remote_services_api/CMakeLists.txt
index a092f59..676c095 100644
--- a/bundles/remote_services/remote_services_api/CMakeLists.txt
+++ b/bundles/remote_services/remote_services_api/CMakeLists.txt
@@ -18,11 +18,11 @@
add_library(remote_services_api INTERFACE)
target_include_directories(remote_services_api INTERFACE
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>
- $<INSTALL_INTERFACE:include/celix/remote_service_admin>
)
-install(TARGETS remote_services_api EXPORT celix DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT rsa)
-install(DIRECTORY include/ DESTINATION include/celix/remote_service_admin COMPONENT rsa)
+install(TARGETS remote_services_api EXPORT celix DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT rsa
+ INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix/remote_service_admin)
+install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix/remote_service_admin COMPONENT rsa)
#Setup target aliases to match external usage
add_library(Celix::remote_services_api ALIAS remote_services_api)
diff --git a/bundles/remote_services/topology_manager/CMakeLists.txt b/bundles/remote_services/topology_manager/CMakeLists.txt
index c812ad0..52ad5fa 100644
--- a/bundles/remote_services/topology_manager/CMakeLists.txt
+++ b/bundles/remote_services/topology_manager/CMakeLists.txt
@@ -29,11 +29,12 @@ target_include_directories(rsa_topology_manager PRIVATE src)
target_include_directories(rsa_topology_manager PRIVATE include)
target_link_libraries(rsa_topology_manager PRIVATE Celix::log_helper Celix::deprecated_rsa_spi)
-if (ENABLE_TESTING)
- find_package(Jansson REQUIRED)
- add_subdirectory(tms_tst)
-endif (ENABLE_TESTING)
-
install_celix_bundle(rsa_topology_manager EXPORT celix COMPONENT rsa)
#Setup target aliases to match external usage
add_library(Celix::rsa_topology_manager ALIAS rsa_topology_manager)
+
+if (ENABLE_TESTING AND BUILD_RSA_REMOTE_SERVICE_ADMIN_DFI)
+ find_package(Jansson REQUIRED)
+ add_subdirectory(tms_tst)
+endif ()
+
diff --git a/bundles/remote_services/topology_manager/tms_tst/CMakeLists.txt b/bundles/remote_services/topology_manager/tms_tst/CMakeLists.txt
index 2a7442d..a46b82b 100644
--- a/bundles/remote_services/topology_manager/tms_tst/CMakeLists.txt
+++ b/bundles/remote_services/topology_manager/tms_tst/CMakeLists.txt
@@ -41,7 +41,7 @@ target_link_libraries(test_tm_scoped PRIVATE
Celix::rsa_common
)
-add_dependencies(test_tm_scoped rsa_dfi_bundle rsa_topology_manager_bundle)
+add_celix_bundle_dependencies(test_tm_scoped Celix::rsa_dfi Celix::rsa_topology_manager)
file(GENERATE
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/config.properties"
diff --git a/bundles/shell/remote_shell/CMakeLists.txt b/bundles/shell/remote_shell/CMakeLists.txt
index 330715d..c302170 100644
--- a/bundles/shell/remote_shell/CMakeLists.txt
+++ b/bundles/shell/remote_shell/CMakeLists.txt
@@ -14,33 +14,35 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-celix_subproject(REMOTE_SHELL "Option to enable building the Remote Shell bundles" ON DEPS LAUNCHER SHELL_TUI)
+celix_subproject(REMOTE_SHELL "Option to enable building the Remote Shell bundles" ON SHELL)
if (REMOTE_SHELL)
- add_celix_bundle(remote_shell
- SYMBOLIC_NAME "apache_celix_remote_shell"
- VERSION "0.0.2"
- NAME "Apache Celix Remote Shell"
- FILENAME celix_remote_shell
- GROUP "Celix/Shell"
- SOURCES
+ add_celix_bundle(remote_shell
+ SYMBOLIC_NAME "apache_celix_remote_shell"
+ VERSION "0.0.2"
+ NAME "Apache Celix Remote Shell"
+ FILENAME celix_remote_shell
+ GROUP "Celix/Shell"
+ SOURCES
src/activator.c
src/connection_listener.c
src/shell_mediator.c
src/remote_shell.c
- )
+ )
target_include_directories(remote_shell PRIVATE src)
target_link_libraries(remote_shell PRIVATE Celix::log_helper)
- include_directories("${PROJECT_SOURCE_DIR}/utils/public/include")
- include_directories("${PROJECT_SOURCE_DIR}/log_service/public/include")
-
- target_link_libraries(remote_shell PRIVATE Celix::shell_api)
+ include_directories("${PROJECT_SOURCE_DIR}/utils/public/include")
+ include_directories("${PROJECT_SOURCE_DIR}/log_service/public/include")
- install_celix_bundle(remote_shell EXPORT celix COMPONENT remote_shell)
+ target_link_libraries(remote_shell PRIVATE Celix::shell_api)
+
+ install_celix_bundle(remote_shell EXPORT celix COMPONENT remote_shell)
#Alias setup to match external usage
add_library(Celix::remote_shell ALIAS remote_shell)
- add_celix_container("remote_shell_deploy" NAME "remote_shell" BUNDLES Celix::shell Celix::remote_shell Celix::shell_tui Celix::log_admin)
+ if (BUILD_SHELL_TUI AND BUILD_LOG_SERVICE)
+ add_celix_container("remote_shell_deploy" NAME "remote_shell" BUNDLES Celix::shell Celix::remote_shell Celix::shell_tui Celix::log_admin)
+ endif ()
endif (REMOTE_SHELL)
diff --git a/bundles/shell/shell/CMakeLists.txt b/bundles/shell/shell/CMakeLists.txt
index 0d8ab19..3e72148 100644
--- a/bundles/shell/shell/CMakeLists.txt
+++ b/bundles/shell/shell/CMakeLists.txt
@@ -14,22 +14,25 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-celix_subproject(SHELL "Option to enable building the Shell bundles" ON DEPS LAUNCHER LOG_SERVICE)
-if (SHELL)
- find_package(CURL REQUIRED)
- add_library(shell_api INTERFACE)
- target_include_directories(shell_api INTERFACE
- $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/api>
- $<INSTALL_INTERFACE:include/celix/shell>
- )
- install(TARGETS shell_api EXPORT celix COMPONENT shell)
- install(DIRECTORY api/ DESTINATION include/celix/shell COMPONENT shell)
+add_library(shell_api INTERFACE)
+target_include_directories(shell_api INTERFACE
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/api>
+ )
- if (CELIX_INSTALL_DEPRECATED_API)
- target_include_directories(shell_api INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/deprecated_api>)
- install(DIRECTORY deprecated_api/ DESTINATION include/celix/shell COMPONENT shell)
- endif ()
+if (CELIX_INSTALL_DEPRECATED_API)
+ target_include_directories(shell_api INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/deprecated_api>)
+ install(DIRECTORY deprecated_api/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix/shell COMPONENT shell)
+endif ()
+
+install(TARGETS shell_api EXPORT celix COMPONENT shell
+ INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix/shell)
+install(DIRECTORY api/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix/shell COMPONENT shell)
+
+add_library(Celix::shell_api ALIAS shell_api)
+
+celix_subproject(SHELL "Option to enable building the Shell bundles" ON)
+if (SHELL)
add_library(shell_commands STATIC
src/lb_command.c
@@ -45,7 +48,7 @@ if (SHELL)
src/std_commands.c
)
target_include_directories(shell_commands PRIVATE src)
- target_link_libraries(shell_commands PRIVATE Celix::shell_api Celix::log_service_api Celix::log_helper)
+ target_link_libraries(shell_commands PRIVATE Celix::shell_api Celix::log_helper)
add_celix_bundle(shell
SYMBOLIC_NAME "apache_celix_c_shell"
@@ -58,7 +61,7 @@ if (SHELL)
src/c_shell.c
)
target_include_directories(shell PRIVATE src)
- target_link_libraries(shell PRIVATE shell_commands Celix::shell_api Celix::log_service_api Celix::log_helper)
+ target_link_libraries(shell PRIVATE shell_commands Celix::shell_api Celix::log_helper)
target_compile_options(shell PRIVATE -Wno-deprecated-declarations)
if (CELIX_INSTALL_DEPRECATED_API)
target_compile_definitions(shell PRIVATE CELIX_INSTALL_DEPRECATED_API)
@@ -66,7 +69,6 @@ if (SHELL)
install_celix_bundle(shell EXPORT celix COMPONENT shell)
#Setup target aliases to match external usage
- add_library(Celix::shell_api ALIAS shell_api)
add_library(Celix::shell ALIAS shell)
if (CELIX_CXX)
diff --git a/bundles/shell/shell/gtest/CMakeLists.txt b/bundles/shell/shell/gtest/CMakeLists.txt
index 120c738..6950e70 100644
--- a/bundles/shell/shell/gtest/CMakeLists.txt
+++ b/bundles/shell/shell/gtest/CMakeLists.txt
@@ -20,7 +20,7 @@ add_executable(test_shell
)
target_link_libraries(test_shell PRIVATE Celix::framework Celix::shell_api GTest::gtest GTest::gtest_main)
-add_dependencies(test_shell shell_bundle)
+add_celix_bundle_dependencies(test_shell shell)
target_compile_definitions(test_shell PRIVATE -DSHELL_BUNDLE_LOCATION=\"$<TARGET_PROPERTY:shell,BUNDLE_FILE>\")
target_compile_options(test_shell PRIVATE -Wno-deprecated-declarations)
if (CELIX_INSTALL_DEPRECATED_API)
@@ -36,7 +36,7 @@ add_executable(test_cxx_shell
)
target_link_libraries(test_cxx_shell PRIVATE Celix::framework Celix::shell_api GTest::gtest GTest::gtest_main)
-add_dependencies(test_cxx_shell ShellCxx_bundle)
+add_celix_bundle_dependencies(test_cxx_shell ShellCxx)
target_compile_definitions(test_cxx_shell PRIVATE -DSHELL_BUNDLE_LOCATION=\"$<TARGET_PROPERTY:ShellCxx,BUNDLE_FILE>\")
target_compile_definitions(test_cxx_shell PRIVATE -DCXX_SHELL)
diff --git a/bundles/shell/shell_bonjour/CMakeLists.txt b/bundles/shell/shell_bonjour/CMakeLists.txt
index 17f8e3e..fdb76b0 100644
--- a/bundles/shell/shell_bonjour/CMakeLists.txt
+++ b/bundles/shell/shell_bonjour/CMakeLists.txt
@@ -15,14 +15,15 @@
# specific language governing permissions and limitations
# under the License.
-celix_subproject(SHELL_BONJOUR "Option to enable building the Bonjour Shell (shell access by chat clients)" OFF DEPS LAUNCHER shell)
+celix_subproject(SHELL_BONJOUR "Option to enable building the Bonjour Shell (shell access by chat clients)" OFF DEPS SHELL)
if (SHELL_BONJOUR)
message(WARNING "Celix::bonjour_shell is considered unstable, because develop of this bundle has been dormant for a while")
find_package(LibXml2 REQUIRED)
#TODO create/add FindDNS_SD.cmake and use it (with required)
find_library(DNS_SD_LIB NAMES dns_sd dns_services)
-
+ find_path(DNS_SD_INCLUDE_DIR dns_sd.h)
+
set(BUNDLE_SYMBOLICNAME "bonjour_shell")
set(BUNDLE_VERSION "0.1.0")
set(BUNDLE_NAME "bonjour_shell")
@@ -41,6 +42,7 @@ if (SHELL_BONJOUR)
target_include_directories(bonjour_shell PRIVATE
"${PROJECT_SOURCE_DIR}/utils/public/include"
"${LIBXML2_INCLUDE_DIR}"
+ "${DNS_SD_INCLUDE_DIR}"
private/include
)
target_link_libraries(bonjour_shell PRIVATE ${LIBXML2_LIBRARIES} ${DNS_SD_LIB} Celix::shell_api)
diff --git a/bundles/shell/shell_tui/CMakeLists.txt b/bundles/shell/shell_tui/CMakeLists.txt
index 1002a77..238e868 100644
--- a/bundles/shell/shell_tui/CMakeLists.txt
+++ b/bundles/shell/shell_tui/CMakeLists.txt
@@ -14,7 +14,7 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-celix_subproject(SHELL_TUI "Option to enable building the Shell Textual User Interface bundles" ON DEPS LAUNCHER SHELL)
+celix_subproject(SHELL_TUI "Option to enable building the Shell Textual User Interface bundles" ON DEPS SHELL)
if (SHELL_TUI)
add_celix_bundle(shell_tui
@@ -37,7 +37,7 @@ if (SHELL_TUI)
#Alias setup to match external usage
add_library(Celix::shell_tui ALIAS shell_tui)
- if (ENABLE_TESTING AND TARGET Celix::shell)
+ if (ENABLE_TESTING)
add_subdirectory(gtest)
endif()
endif (SHELL_TUI)
diff --git a/bundles/shell/shell_wui/CMakeLists.txt b/bundles/shell/shell_wui/CMakeLists.txt
index 9ebc25c..482b74d 100644
--- a/bundles/shell/shell_wui/CMakeLists.txt
+++ b/bundles/shell/shell_wui/CMakeLists.txt
@@ -17,7 +17,6 @@
celix_subproject(SHELL_WUI "Option to enable building the Shell Web User Interface bundles" ON DEPS SHELL HTTP_ADMIN)
if (SHELL_WUI)
-
add_celix_bundle(shell_wui
SYMBOLIC_NAME "apache_celix_shell_wui"
VERSION "1.0.0"
@@ -38,5 +37,4 @@ if (SHELL_WUI)
#Alias setup to match external usage
add_library(Celix::shell_wui ALIAS shell_wui)
-
endif ()
\ No newline at end of file
diff --git a/cmake/CelixConfig.cmake b/cmake/CelixConfig.cmake
index e56039e..0766bed 100644
--- a/cmake/CelixConfig.cmake
+++ b/cmake/CelixConfig.cmake
@@ -50,7 +50,10 @@ set(CELIX_INCLUDE_DIRS
set(CELIX_FRAMEWORK_LIBRARY Celix::framework)
set(CELIX_UTILS_LIBRARY Celix::utils)
set(CELIX_DFI_LIBRARY Celix::dfi)
-set(CELIX_LAUNCHER Celix::launcher)
+
+if (TARGET Celix::launcher)
+ set(CELIX_LAUNCHER Celix::launcher)
+endif ()
if (TARGET Celix::etcdlib)
set(CELIX_ETCD_INCLUDE_DIRS $<TARGET_PROPERTY:Celix::etcdlib,INTERFACE_INCLUDE_DIRECTORIES>)
@@ -80,16 +83,33 @@ find_dependency(LIBZIP) #Needed by utils
find_dependency(Jansson) #Needed by dfi, etcdlib, remote services, pubsub
find_dependency(FFI) #Needed by dfi
-if (TARGET Celix::dfi)
- find_dependency(FFI)
-endif()
+if (NOT TARGET ZLIB::ZLIB)
+ #Note more recent zlib will create ZLIB::ZLIB target
+ message("Note ZLIB::ZLIB target not created by find_package(ZLIB). Creating ZLIB::ZLIB Target.")
+ add_library(ZLIB::ZLIB SHARED IMPORTED)
+ set_target_properties(ZLIB::ZLIB PROPERTIES
+ IMPORTED_LOCATION "${ZLIB_LIBRARIES}"
+ INTERFACE_INCLUDE_DIRECTORIES "${ZLIB_INCLUDE_DIRS}"
+ )
+endif ()
+
+if (NOT TARGET CURL::libcurl)
+ #Note more recent curl will create CURL::libcurl target
+ message("Note CURL::libcurl target not created by find_package(CURL). Creating CURL::libcurl Target.")
+ add_library(CURL::libcurl SHARED IMPORTED)
+ set_target_properties(CURL::libcurl PROPERTIES
+ IMPORTED_LOCATION "${CURL_LIBRARIES}"
+ INTERFACE_INCLUDE_DIRECTORIES "${CURL_INCLUDE_DIRS}"
+ )
+endif ()
+
if (TARGET Celix::RsaConfiguredDiscovery)
find_dependency(RapidJSON)
endif ()
-if (TARGET Celix::rsa_discovery_common)
+if (TARGET Celix::rsa_discovery_common OR TARGET Celix::bonjour_shell)
find_dependency(LibXml2)
endif ()
-if (TARGET Celix::celix_pubsub_admin_zmq OR TARGET Celix::celix_pubsub_admin_zmq_v2)
+if (TARGET Celix::celix_pubsub_admin_zmq OR TARGET Celix::celix_pubsub_admin_zmq_v2)
find_dependency(ZMQ)
find_dependency(CZMQ)
endif ()
diff --git a/cmake/celix_project/CelixProject.cmake b/cmake/celix_project/CelixProject.cmake
index 8b2d06c..9581398 100644
--- a/cmake/celix_project/CelixProject.cmake
+++ b/cmake/celix_project/CelixProject.cmake
@@ -66,36 +66,17 @@ MACRO(celix_subproject)
option(${NAME} "${OPTION_DESCRIPTION}" ${OPTION_DEFAULT})
- get_property(BUILD GLOBAL PROPERTY ${NAME}_INTERNAL)
- if (NOT DEFINED BUILD)
- set(BUILD "OFF")
- endif (NOT DEFINED BUILD)
-
- IF (${NAME} OR ${BUILD})
+ IF (${NAME})
set(${OPTION_NAME} "ON")
- set_property(GLOBAL PROPERTY ${NAME}_INTERNAL "ON")
-
FOREACH (DEP ${OPTION_DEPS})
string(TOUPPER ${DEP} UC_DEP)
set(DEP_NAME "BUILD_${UC_DEP}")
- set_property(GLOBAL PROPERTY ${DEP_NAME}_INTERNAL "ON")
+ if (NOT ${DEP_NAME})
+ message(FATAL_ERROR "${DEP} is required by ${OPTION_NAME}: please add -D${DEP_NAME}:BOOL=ON")
+ endif ()
ENDFOREACH (DEP)
- ELSE (${NAME} OR ${BUILD})
- set(${OPTION_NAME} "OFF")
- ENDIF (${NAME} OR ${BUILD})
+ ENDIF (${NAME})
ENDMACRO(celix_subproject)
-MACRO(is_enabled name)
- string(TOUPPER "BUILD_${name}_INTERNAL" OPTION)
-
- get_property(BUILD GLOBAL PROPERTY ${OPTION})
-
- if(BUILD)
- set(${name} "ON")
- else()
- set(${name} "OFF")
- endif()
-ENDMACRO(is_enabled)
-
include(${CMAKE_CURRENT_LIST_DIR}/ApacheRat.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/CodeCoverage.cmake)
diff --git a/cmake/cmake_celix/BundlePackaging.cmake b/cmake/cmake_celix/BundlePackaging.cmake
index 844625a..3b564c6 100644
--- a/cmake/cmake_celix/BundlePackaging.cmake
+++ b/cmake/cmake_celix/BundlePackaging.cmake
@@ -908,8 +908,9 @@ function(install_celix_bundle_targets)
get_target_property(EXPORT_BUNDLES celix-bundles EXPORT_${EXPORT_NAME}_BUNDLES)
- if (NOT DEFINED EXPORT_BUNDLES)
- message(FATAL_ERROR "Export ${EXPORT_NAME} not defined. Did you forgot to use a install_celix_bundle with the 'EXPORT ${EXPORT_NAME}' option?")
+ if (NOT DEFINED EXPORT_BUNDLES OR NOT EXPORT_BUNDLES)
+ message("Export ${EXPORT_NAME} not defined. Did you forgot to use a install_celix_bundle with the 'EXPORT ${EXPORT_NAME}' option?")
+ set(EXPORT_BUNDLES "")
endif ()
if (NOT DEFINED EXPORT_NAMESPACE)
message(FATAL_ERROR "Please provide a namespace used for the generated cmake targets.")
diff --git a/cmake/cmake_celix/ContainerPackaging.cmake b/cmake/cmake_celix/ContainerPackaging.cmake
index d034799..8a18082 100644
--- a/cmake/cmake_celix/ContainerPackaging.cmake
+++ b/cmake/cmake_celix/ContainerPackaging.cmake
@@ -277,11 +277,10 @@ $<JOIN:$<TARGET_PROPERTY:${CONTAINER_TARGET},CONTAINER_RUNTIME_PROPERTIES>,
endif ()
#needed in the release.sh & run.sh files
- #Setting CELIX_LIB_DIRS, CELIX_BIN_DIR and CELIX_LAUNCHER
+ #Setting CELIX_LIB_DIRS
if (TARGET Celix::framework)
#Celix Main Project
set(CELIX_LIB_DIRS "$<TARGET_FILE_DIR:Celix::framework>:$<TARGET_FILE_DIR:Celix::utils>:$<TARGET_FILE_DIR:Celix::dfi>")
- set(CELIX_BIN_DIR "$<TARGET_FILE_DIR:Celix::launcher>")
else ()
message(FATAL_ERROR "No Celix::framework target is defined. Did you use find_package(Celix REQUIRED)?")
endif()
diff --git a/conanfile.py b/conanfile.py
index d36e8a0..64d756f 100644
--- a/conanfile.py
+++ b/conanfile.py
@@ -18,7 +18,9 @@ class CelixConan(ConanFile):
description = "Apache Celix is an implementation of the OSGi specification adapted to C and C++ (C++17). " \
"It is a framework to develop (dynamic) modular software applications " \
"using component and/or service-oriented programming."
- # TODO: update according to latest codes
+
+ tool_requires = "cmake/3.17.5"
+
options = {
"enable_testing": [True, False],
"enable_address_sanitizer": [True, False],
@@ -30,31 +32,32 @@ class CelixConan(ConanFile):
"build_device_access": [True, False],
"build_http_admin": [True, False],
"build_log_service": [True, False],
- "build_log_writer": [True, False],
- "build_log_writer_syslog": [True, False],
+ "build_syslog_writer": [True, False],
"build_pubsub": [True, False],
"build_pubsub_psa_zmq": [True, False],
"build_zmq_security": [True, False],
+ "build_pubsub_examples": [True, False],
+ "build_pubsub_integration": [True, False],
"build_pubsub_psa_tcp": [True, False],
"build_pubsub_psa_udp_mc": [True, False],
"build_pubsub_psa_ws": [True, False],
- "build_pubsub_tests": [True, False],
+ "build_pubsub_discovery_etcd": [True, False],
+ "build_cxx_remote_service_admin": [True, False],
+ "build_cxx_rsa_integration": [True, False],
"build_remote_service_admin": [True, False],
"build_rsa_remote_service_admin_dfi": [True, False],
"build_rsa_discovery_configured": [True, False],
"build_rsa_discovery_etcd": [True, False],
- "build_rsa_discovery_shm": [True, False],
- "build_rsa_topology_manager": [True, False],
- "build_rsa_examples": [True, False],
"build_shell": [True, False],
"build_remote_shell": [True, False],
"build_shell_bonjour": [True, False],
"build_shell_tui": [True, False],
"build_shell_wui": [True, False],
"build_examples": [True, False],
+ "build_celix_etcdlib": [True, False],
"build_launcher": [True, False],
- "build_event_admin": [True, False],
- "build_experimental": [True, False],
+ "build_promises": [True, False],
+ "build_pushstreams": [True, False],
"celix_cxx": [True, False],
"celix_install_deprecated_api": [True, False],
"celix_add_deprecated_attributes": [True, False],
@@ -66,35 +69,36 @@ class CelixConan(ConanFile):
"enable_code_coverage": False,
"celix_add_openssl_dep": False,
"build_deployment_admin": False,
- "build_device_access": True,
+ "build_device_access": False,
"build_device_access_example": False,
"build_http_admin": True,
"build_log_service": True,
- "build_log_writer": True,
- "build_log_writer_syslog": True,
+ "build_syslog_writer": True,
"build_pubsub": True,
"build_pubsub_psa_zmq": False,
"build_zmq_security": False,
- "build_pubsub_psa_tcp": True,
- "build_pubsub_psa_udp_mc": True,
+ "build_pubsub_examples": False,
+ "build_pubsub_integration": False,
+ "build_pubsub_psa_tcp": False,
+ "build_pubsub_psa_udp_mc": False,
"build_pubsub_psa_ws": True,
- "build_pubsub_tests": False,
+ "build_pubsub_discovery_etcd": False,
+ "build_cxx_remote_service_admin": False,
+ "build_cxx_rsa_integration": False,
"build_remote_service_admin": True,
"build_rsa_remote_service_admin_dfi": True,
"build_rsa_discovery_configured": True,
- "build_rsa_discovery_etcd": True,
- "build_rsa_discovery_shm": False,
- "build_rsa_topology_manager": True,
- "build_rsa_examples": True,
+ "build_rsa_discovery_etcd": False,
"build_shell": True,
- "build_remote_shell": True,
+ "build_remote_shell": False,
"build_shell_bonjour": False,
- "build_shell_tui": True,
+ "build_shell_tui": False,
"build_shell_wui": False,
- "build_examples": True,
- "build_launcher": True,
- "build_event_admin": False,
- "build_experimental": False,
+ "build_examples": False,
+ "build_celix_etcdlib": False,
+ "build_launcher": False,
+ "build_promises": False,
+ "build_pushstreams": False,
"celix_cxx": False,
"celix_install_deprecated_api": False,
"celix_add_deprecated_attributes": True,
@@ -103,49 +107,70 @@ class CelixConan(ConanFile):
def validate(self):
if self.settings.os != "Linux" and self.settings.os != "Macos":
- raise ConanInvalidConfiguration("Library MyLib is only supported for Linux")
+ raise ConanInvalidConfiguration("Celix is only supported for Linux/Macos")
+
+ def package_id(self):
+ del self.info.options.enable_testing
+ del self.info.options.celix_add_openssl_dep
+ del self.info.options.build_device_access_example
+ del self.info.options.build_pubsub_integration
+ del self.info.options.build_pubsub_examples
+ del self.info.options.build_cxx_rsa_integration
+ del self.info.options.build_examples
+
+ def build_requirements(self):
+ if self.options.enable_testing:
+ self.test_requires("gtest/1.10.0")
+ self.test_requires("cpputest/4.0")
def configure(self):
+ if not self.options.celix_cxx:
+ self.options.build_cxx_remote_service_admin = False
+ if not self.options.build_cxx_remote_service_admin:
+ self.options.build_cxx_rsa_integration = False
if not self.options.enable_testing:
- self.options.build_pubsub_tests = False;
+ self.options.build_pubsub_integration = False
if not self.options.build_device_access:
self.options.build_device_access_example = False
- if not self.options.build_log_writer:
- self.options.build_log_writer_syslog = False
+ if not self.options.build_log_service:
+ self.options.build_syslog_writer = False
if not self.options.build_pubsub:
self.options.build_pubsub_psa_zmq = False
+ self.options.build_pubsub_examples = False
+ self.options.build_pubsub_integration = False
+ self.options.build_pubsub_psa_tcp = False
+ self.options.build_pubsub_psa_udp_mc = False
+ self.options.build_pubsub_psa_ws = False
+ self.options.build_pubsub_discovery_etcd = False
if not self.options.build_pubsub_psa_zmq:
self.options.build_zmq_security = False
if not self.options.build_remote_service_admin:
self.options.build_rsa_remote_service_admin_dfi = False
self.options.build_rsa_discovery_configured = False
self.options.build_rsa_discovery_etcd = False
- self.options.build_rsa_discovery_shm = False
- self.options.build_rsa_topology_manager = False
- self.options.build_rsa_examples = False
if not self.options.build_shell:
self.options.build_remote_shell = False
self.options.build_shell_bonjour = False
self.options.build_shell_tui = False
self.options.build_shell_wui = False
- if not self.options.build_experimental:
- self.options.build_event_admin = False
+ if not self.options.celix_install_deprecated_api:
+ self.options.build_shell_bonjour = False
def requirements(self):
# libffi/3.3@zhengpeng/testing is a workaround of the following buggy commit:
# https://github.com/conan-io/conan-center-index/pull/5085#issuecomment-847487808
#self.requires("libffi/3.3@zhengpeng/testing")
self.requires("libffi/[~3.2.1]")
- self.requires("jansson/[~2.12]")
- self.requires("libcurl/[~7.64.1]")
- self.requires("zlib/[~1.2.8]")
- self.requires("libuuid/1.0.3")
- self.requires("libzip/[~1.7.3]")
self.options['libffi'].shared = True
+ self.requires("jansson/[~2.12]")
self.options['jansson'].shared = True
+ self.requires("libcurl/[~7.64.1]")
self.options['libcurl'].shared = True
+ self.requires("zlib/[~1.2.8]")
self.options['zlib'].shared = True
+ self.requires("libuuid/1.0.3")
self.options['libuuid'].shared = True
+ self.requires("libzip/[~1.7.3]")
self.options['libzip'].shared = True
self.options['openssl'].shared = True
self.options['libxml2'].shared = True
@@ -156,6 +181,11 @@ class CelixConan(ConanFile):
self.requires("openssl/1.1.1k")
if self.options.build_remote_service_admin or self.options.build_shell_bonjour:
self.requires("libxml2/[~2.9.9]")
+ if self.options.build_shell_bonjour:
+ # TODO: CC=cc is fixed in the official mdnsresponder Makefile, patching is needed to make cross-compile work
+ # https://github.com/conan-io/conan-center-index/issues/9711
+ # Another issue is in conan infrastructure: https://github.com/conan-io/conan-center-index/issues/9709
+ self.requires("mdnsresponder/1310.140.1")
if self.options.build_pubsub_psa_zmq:
self.requires("zeromq/4.3.2")
self.options['zeromq'].shared = True
@@ -170,7 +200,8 @@ class CelixConan(ConanFile):
self._cmake.definitions[opt.upper()] = self.options.get_safe(opt, False)
self._cmake.definitions["CMAKE_PROJECT_Celix_INCLUDE"] = os.path.join(self.build_folder, "conan_paths.cmake")
self.output.info(self._cmake.definitions)
- self._cmake.configure()
+ v = tools.Version(self.version)
+ self._cmake.configure(defs={'CELIX_MAJOR': v.major, 'CELIX_MINOR': v.minor, 'CELIX_MICRO': v.patch})
return self._cmake
def build(self):
diff --git a/examples/celix-examples/CMakeLists.txt b/examples/celix-examples/CMakeLists.txt
index 090d524..0a983b9 100644
--- a/examples/celix-examples/CMakeLists.txt
+++ b/examples/celix-examples/CMakeLists.txt
@@ -16,7 +16,7 @@
# under the License.
if (COMMAND celix_subproject)
- celix_subproject(EXAMPLES "Option to enable building the Examples" ON DEPS FRAMEWORK LAUNCHER SHELL_TUI LOG_SERVICE LOG_WRITER)
+ celix_subproject(EXAMPLES "Option to enable building the Examples" ON DEPS SHELL SHELL_TUI LOG_SERVICE)
else ()
set(EXAMPLES true) #celix_subproject is only available in the celix project -> using examples dir in other project is also supported
option(CELIX_CXX ON)
diff --git a/libs/dependency_manager/CMakeLists.txt b/libs/dependency_manager/CMakeLists.txt
index 758cc49..cc4102b 100644
--- a/libs/dependency_manager/CMakeLists.txt
+++ b/libs/dependency_manager/CMakeLists.txt
@@ -19,7 +19,6 @@
add_library(dependency_manager_static STATIC src/dm_activator.c)
target_include_directories(dependency_manager_static PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/api>
- $<INSTALL_INTERFACE:include/celix>
)
if (APPLE)
target_link_libraries(dependency_manager_static Celix::framework "-undefined dynamic_lookup")
@@ -30,7 +29,6 @@ endif()
add_library(dependency_manager_so SHARED src/dm_activator.c)
target_include_directories(dependency_manager_so PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/api>
- $<INSTALL_INTERFACE:include/celix>
)
if (APPLE)
target_link_libraries(dependency_manager_so Celix::framework "-undefined dynamic_lookup")
@@ -47,5 +45,6 @@ add_library(Celix::dependency_manager_static ALIAS dependency_manager_static)
add_library(Celix::dependency_manager_so ALIAS dependency_manager_so)
#install dummy libs
-install(TARGETS dependency_manager_static dependency_manager_so dm_shell EXPORT celix DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT framework)
+install(TARGETS dependency_manager_static dependency_manager_so dm_shell EXPORT celix DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT framework
+ INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix)
diff --git a/libs/dfi/CMakeLists.txt b/libs/dfi/CMakeLists.txt
index 136419f..f6f4d76 100644
--- a/libs/dfi/CMakeLists.txt
+++ b/libs/dfi/CMakeLists.txt
@@ -45,8 +45,9 @@ target_link_libraries(dfi PUBLIC Jansson)
target_link_libraries(dfi PRIVATE Celix::utils)
set_target_properties(dfi PROPERTIES "SOVERSION" 1)
-install(TARGETS dfi EXPORT celix DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT dfi)
-install(DIRECTORY include/ DESTINATION include/celix/dfi COMPONENT dfi)
+install(TARGETS dfi EXPORT celix DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT dfi
+ INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix/dfi)
+install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix/dfi COMPONENT dfi)
#Alias setup to match external usage
add_library(Celix::dfi ALIAS dfi)
diff --git a/libs/etcdlib/CMakeLists.txt b/libs/etcdlib/CMakeLists.txt
index 0ddf91c..0d1c2d4 100644
--- a/libs/etcdlib/CMakeLists.txt
+++ b/libs/etcdlib/CMakeLists.txt
@@ -35,67 +35,60 @@ if (NOT COMMAND celix_subproject)
set(CMAKE_EXE_LINKER_FLAGS "-pthread ${CMAKE_EXE_LINKER_FLAGS}")
set(ETCDLIB_CMP ${CMAKE_INSTALL_DEFAULT_COMPONENT_NAME})
-else()
- set(ETCDLIB_CMP framework)
-endif ()
-find_package(CURL REQUIRED)
-find_package(Jansson REQUIRED)
-
-if (NOT TARGET CURL::libcurl)
- #Note more recent curl will create CURL::libcurl target
- message("Note CURL::libcurl target not created by find_package(CURL). Creating CURL::libcurl Target.")
- add_library(CURL::libcurl SHARED IMPORTED)
- set_target_properties(CURL::libcurl PROPERTIES
- IMPORTED_LOCATION "${CURL_LIBRARIES}"
- INTERFACE_INCLUDE_DIRECTORIES "${CURL_INCLUDE_DIRS}"
- )
-endif ()
+ find_package(CURL REQUIRED)
+ find_package(Jansson REQUIRED)
-if (NOT TARGET Jansson)
- #Note if JanssonConfig is present on system this is not needed
- message("Note Jansson target not created by find_package(Jansson). Creating Jansson Target.")
- add_library(Jansson SHARED IMPORTED)
- set_target_properties(Jansson PROPERTIES
- IMPORTED_LOCATION "${JANSSON_LIBRARY}"
- INTERFACE_INCLUDE_DIRECTORIES "${JANSSON_INCLUDE_DIR}"
- )
+ if (NOT TARGET CURL::libcurl)
+ #Note more recent curl will create CURL::libcurl target
+ message("Note CURL::libcurl target not created by find_package(CURL). Creating CURL::libcurl Target.")
+ add_library(CURL::libcurl SHARED IMPORTED)
+ set_target_properties(CURL::libcurl PROPERTIES
+ IMPORTED_LOCATION "${CURL_LIBRARIES}"
+ INTERFACE_INCLUDE_DIRECTORIES "${CURL_INCLUDE_DIRS}"
+ )
+ endif ()
+ set(ETCDLIB_STANDALONE ON)
+else()
+ set(ETCDLIB_CMP framework)
+ celix_subproject(CELIX_ETCDLIB "Option to build the ETCD library" ON)
endif ()
-add_library(etcdlib SHARED
- src/etcd.c
-)
-target_include_directories(etcdlib PUBLIC
- $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/api>
- $<INSTALL_INTERFACE:include/etcdlib>
-)
-target_include_directories(etcdlib PRIVATE src)
+if (CELIX_ETCDLIB OR ETCDLIB_STANDALONE)
+ add_library(etcdlib SHARED
+ src/etcd.c
+ )
+ target_include_directories(etcdlib PUBLIC
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/api>
+ )
+ target_include_directories(etcdlib PRIVATE src)
-set_target_properties(etcdlib PROPERTIES SOVERSION 1)
-set_target_properties(etcdlib PROPERTIES VERSION 1.0.0)
-target_link_libraries(etcdlib PUBLIC CURL::libcurl Jansson ${CELIX_OPTIONAL_EXTRA_LIBS})
+ set_target_properties(etcdlib PROPERTIES SOVERSION 1)
+ set_target_properties(etcdlib PROPERTIES VERSION 1.0.0)
+ target_link_libraries(etcdlib PUBLIC CURL::libcurl Jansson ${CELIX_OPTIONAL_EXTRA_LIBS})
-add_library(etcdlib_static STATIC
- src/etcd.c
-)
-target_include_directories(etcdlib_static PUBLIC
- $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/api>
- $<INSTALL_INTERFACE:include/etcdlib>
-)
-target_include_directories(etcdlib_static PRIVATE src)
-set_target_properties(etcdlib_static PROPERTIES "SOVERSION" 1)
-target_link_libraries(etcdlib_static PUBLIC CURL::libcurl Jansson ${CELIX_OPTIONAL_EXTRA_LIBS})
+ add_library(etcdlib_static STATIC
+ src/etcd.c
+ )
+ target_include_directories(etcdlib_static PUBLIC
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/api>
+ )
+ target_include_directories(etcdlib_static PRIVATE src)
+ set_target_properties(etcdlib_static PROPERTIES "SOVERSION" 1)
+ target_link_libraries(etcdlib_static PUBLIC CURL::libcurl Jansson ${CELIX_OPTIONAL_EXTRA_LIBS})
-add_executable(etcdlib_test ${CMAKE_CURRENT_SOURCE_DIR}/test/etcdlib_test.c)
-target_link_libraries(etcdlib_test PRIVATE etcdlib_static CURL::libcurl Jansson)
+ add_executable(etcdlib_test ${CMAKE_CURRENT_SOURCE_DIR}/test/etcdlib_test.c)
+ target_link_libraries(etcdlib_test PRIVATE etcdlib_static CURL::libcurl Jansson)
-#TODO install etcdlib_static. For now left out, because the imported target leaks library paths
-install(DIRECTORY api/ DESTINATION include/etcdlib COMPONENT ${ETCDLIB_CMP})
-if (NOT COMMAND celix_subproject)
- install(TARGETS etcdlib DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT ${ETCDLIB_CMP})
-else ()
- install(TARGETS etcdlib EXPORT celix DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT ${ETCDLIB_CMP})
- #Setup target aliases to match external usage
- add_library(Celix::etcdlib ALIAS etcdlib)
- add_library(Celix::etcdlib_static ALIAS etcdlib_static)
+ install(DIRECTORY api/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/etcdlib COMPONENT ${ETCDLIB_CMP})
+ if (NOT COMMAND celix_subproject)
+ install(TARGETS etcdlib etcdlib_static DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT ${ETCDLIB_CMP}
+ INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/etcdlib)
+ else ()
+ install(TARGETS etcdlib etcdlib_static EXPORT celix DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT ${ETCDLIB_CMP}
+ INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/etcdlib)
+ #Setup target aliases to match external usage
+ add_library(Celix::etcdlib ALIAS etcdlib)
+ add_library(Celix::etcdlib_static ALIAS etcdlib_static)
+ endif ()
endif ()
diff --git a/libs/framework/CMakeLists.txt b/libs/framework/CMakeLists.txt
index f0bcb10..4e2ffe0 100644
--- a/libs/framework/CMakeLists.txt
+++ b/libs/framework/CMakeLists.txt
@@ -38,17 +38,17 @@ add_library(framework SHARED ${SOURCES})
set_target_properties(framework PROPERTIES OUTPUT_NAME "celix_framework")
target_include_directories(framework PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>
- $<INSTALL_INTERFACE:include/celix>
)
target_compile_options(framework PRIVATE -DUSE_FILE32API)
target_compile_options(framework PRIVATE -Wno-deprecated-declarations) #note part of the api is deprecated, ignore this warning on own api
-set_target_properties(framework PROPERTIES "SOVERSION" 2)
+set_target_properties(framework PROPERTIES "SOVERSION" ${CELIX_MAJOR})
target_link_libraries(framework PUBLIC Celix::utils Celix::dfi ${CELIX_OPTIONAL_EXTRA_LIBS})
target_link_libraries(framework PUBLIC UUID::lib CURL::libcurl ZLIB::ZLIB)
-install(TARGETS framework EXPORT celix DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT framework)
-install(DIRECTORY include/ DESTINATION include/celix COMPONENT framework)
+install(TARGETS framework EXPORT celix DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT framework
+ INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix)
+install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix COMPONENT framework)
#Alias setup to match external usage
add_library(Celix::framework ALIAS framework)
diff --git a/libs/launcher/CMakeLists.txt b/libs/launcher/CMakeLists.txt
index 005de7e..52ec671 100644
--- a/libs/launcher/CMakeLists.txt
+++ b/libs/launcher/CMakeLists.txt
@@ -15,12 +15,8 @@
# specific language governing permissions and limitations
# under the License.
-celix_subproject(LAUNCHER "Option to build the launcher" "ON" DEPS UTILS FRAMEWORK)
+celix_subproject(LAUNCHER "Option to build the launcher" "ON")
if (LAUNCHER)
- find_package(CURL REQUIRED)
-
- include_directories(public/include)
-
#celix launcher linked to libc
add_executable(launcher
src/main.c
@@ -30,10 +26,7 @@ if (LAUNCHER)
target_include_directories(launcher PRIVATE src)
target_link_libraries(launcher PRIVATE Celix::framework)
- if (NOT ANDROID)
- target_link_libraries(launcher PRIVATE Celix::dfi) #note not strictly needed, but ensure libdfi is a dep for the framework, useful when create docker images
- endif()
-
+
install(TARGETS launcher EXPORT celix RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT framework)
#Setup target aliases to match external usage
add_executable(Celix::launcher ALIAS launcher)
diff --git a/libs/promises/CMakeLists.txt b/libs/promises/CMakeLists.txt
index ff715d9..d7709a6 100644
--- a/libs/promises/CMakeLists.txt
+++ b/libs/promises/CMakeLists.txt
@@ -43,7 +43,6 @@ if (PROMISES OR PROMISES_STANDALONE)
add_library(Promises INTERFACE)
target_include_directories(Promises INTERFACE
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/api>
- $<INSTALL_INTERFACE:include/celix/promises>
)
target_link_libraries(Promises INTERFACE Threads::Threads)
add_library(Celix::Promises ALIAS Promises)
@@ -55,8 +54,9 @@ if (PROMISES OR PROMISES_STANDALONE)
add_subdirectory(gtest)
endif()
- install(TARGETS Promises EXPORT celix DESTINATION ${CMAKE_INSTALL_LIBDIR})
- install(DIRECTORY api/ DESTINATION include/celix/promises)
+ install(TARGETS Promises EXPORT celix DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix/promises)
+ install(DIRECTORY api/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix/promises)
if (PROMISE_STANDALONE)
install(EXPORT celix NAMESPACE Celix:: DESTINATION share/CelixPromises/cmake FILE Targets.cmake COMPONENT cmake)
diff --git a/libs/pushstreams/CMakeLists.txt b/libs/pushstreams/CMakeLists.txt
index 363d59b..b05b121 100644
--- a/libs/pushstreams/CMakeLists.txt
+++ b/libs/pushstreams/CMakeLists.txt
@@ -16,14 +16,13 @@
# under the License.
set(PUSHSTREAMS_DEFAULT_ON ${CELIX_CXX})
-celix_subproject(PUSHSTREAMS "Option to build the PushStreams library" ${PUSHSTREAMS_DEFAULT_ON})
+celix_subproject(PUSHSTREAMS "Option to build the PushStreams library" ${PUSHSTREAMS_DEFAULT_ON} DEPS PROMISES)
if (PUSHSTREAMS)
find_package(Threads)
add_library(PushStreams INTERFACE)
target_include_directories(PushStreams INTERFACE
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/api>
- $<INSTALL_INTERFACE:include/celix/pushstreams>
)
target_link_libraries(PushStreams INTERFACE Threads::Threads)
target_link_libraries(PushStreams INTERFACE Celix::Promises)
@@ -37,6 +36,7 @@ if (PUSHSTREAMS)
add_subdirectory(gtest)
endif()
- install(TARGETS PushStreams EXPORT celix DESTINATION ${CMAKE_INSTALL_LIBDIR})
- install(DIRECTORY api/ DESTINATION include/celix/pushstreams)
+ install(TARGETS PushStreams EXPORT celix DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix/pushstreams)
+ install(DIRECTORY api/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix/pushstreams)
endif ()
diff --git a/libs/utils/CMakeLists.txt b/libs/utils/CMakeLists.txt
index f394520..01deeb9 100644
--- a/libs/utils/CMakeLists.txt
+++ b/libs/utils/CMakeLists.txt
@@ -25,7 +25,7 @@ check_function_exists(open_memstream OPEN_MEMSTREAM_EXISTS)
if (NOT OPEN_MEMSTREAM_EXISTS)
set(MEMSTREAM_SOURCES src/memstream/open_memstream.c src/memstream/fmemopen.c ${MEMSTREAM_SOURCES})
set(MEMSTREAM_INCLUDE_DIR ${CMAKE_CURRENT_LIST_DIR}/include/memstream ${MEMSTREAM_INCLUDE_DIR})
- install(DIRECTORY include/memstream/ DESTINATION include/celix/memstream COMPONENT framework)
+ install(DIRECTORY include/memstream/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix/memstream COMPONENT framework)
endif()
add_library(utils SHARED
@@ -62,7 +62,6 @@ endif ()
target_include_directories(utils PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>
$<BUILD_INTERFACE:${MEMSTREAM_INCLUDE_DIR}>
- $<INSTALL_INTERFACE:include/celix>
)
target_include_directories(utils PRIVATE src)
set_target_properties(utils PROPERTIES "SOVERSION" 2)
@@ -73,8 +72,9 @@ ELSEIF(ANDROID)
target_link_libraries(utils PRIVATE m)
ENDIF()
-install(TARGETS utils EXPORT celix DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT framework)
-install(DIRECTORY include/ DESTINATION include/celix COMPONENT framework
+install(TARGETS utils EXPORT celix DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT framework
+ INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix)
+install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix COMPONENT framework
PATTERN memstream* EXCLUDE)
#Alias setup to match external usage
diff --git a/misc/experimental/CMakeLists.txt b/misc/experimental/CMakeLists.txt
index 3a53ee6..de3b7a7 100644
--- a/misc/experimental/CMakeLists.txt
+++ b/misc/experimental/CMakeLists.txt
@@ -15,7 +15,7 @@
# specific language governing permissions and limitations
# under the License.
-celix_subproject(EXPERIMENTAL "Options to enable building the experimental - non stable - bundles/libraries. " OFF DEPS FRAMEWORK)
+celix_subproject(EXPERIMENTAL "Options to enable building the experimental - non stable - bundles/libraries. " OFF)
if (EXPERIMENTAL)
add_subdirectory(bundles)
endif ()
\ No newline at end of file