Merge branch 'release/2.1.0' into feature/CELIX-417-cmake-refactor
Project: http://git-wip-us.apache.org/repos/asf/celix/repo Commit: http://git-wip-us.apache.org/repos/asf/celix/commit/0ea8de64 Tree: http://git-wip-us.apache.org/repos/asf/celix/tree/0ea8de64 Diff: http://git-wip-us.apache.org/repos/asf/celix/diff/0ea8de64 Branch: refs/heads/develop Commit: 0ea8de64a3aab5a1ee4e2a11edfad1c1ac3e0d84 Parents: 81804e0 353ac0d Author: Pepijn Noltes <[email protected]> Authored: Wed Jan 24 22:06:37 2018 +0100 Committer: Pepijn Noltes <[email protected]> Committed: Wed Jan 24 22:06:37 2018 +0100 ---------------------------------------------------------------------- CHANGES | 215 ---------------- CHANGES.md | 252 +++++++++++++++++++ README.md | 17 ++ RELEASE_NOTES | 24 +- cmake/cmake_celix/BundlePackaging.cmake | 26 +- cmake/cmake_celix/DeployPackaging.cmake | 8 +- config_admin/CMakeLists.txt | 2 +- .../example_test/CMakeLists.txt | 2 +- .../example_test2/CMakeLists.txt | 2 +- config_admin/example/CMakeLists.txt | 2 +- config_admin/readme.md | 17 ++ config_admin/service/CMakeLists.txt | 2 +- dependency_manager/CMakeLists.txt | 34 ++- dependency_manager/readme.md | 17 ++ dependency_manager_cxx/CMakeLists.txt | 17 +- dependency_manager_cxx/readme.md | 17 ++ deployment_admin/CMakeLists.txt | 6 +- deployment_admin/README.md | 17 ++ device_access/README.md | 17 ++ device_access/device_access/CMakeLists.txt | 4 +- device_access/driver_locator/CMakeLists.txt | 4 +- device_access/example/CMakeLists.txt | 4 +- .../example/base_driver/CMakeLists.txt | 2 +- .../example/consuming_driver/CMakeLists.txt | 2 +- .../example/refining_driver/CMakeLists.txt | 2 +- dfi/CMakeLists.txt | 45 ++-- documents/building/readme.md | 31 ++- documents/cmake_commands/readme.md | 23 +- .../getting_started/creating_a_simple_bundle.md | 128 ++++++---- .../getting_started/getting_started_img3.png | Bin 127686 -> 0 bytes documents/getting_started/readme.md | 22 +- .../getting_started/using_services_with_c.md | 125 +++++---- .../getting_started/using_services_with_cxx.md | 17 ++ documents/intro/readme.md | 17 ++ documents/roadmap/api_v3/readme.md | 19 +- documents/roadmap/improvement_ideas.md | 19 +- documents/roadmap/roadmap.md | 17 ++ documents/subprojects/readme.md | 17 ++ etcdlib/README.md | 17 ++ event_admin/CMakeLists.txt | 6 +- event_admin/event_admin/CMakeLists.txt | 4 +- event_admin/event_handler/CMakeLists.txt | 4 +- event_admin/event_publisher/CMakeLists.txt | 4 +- examples/dm_example/CMakeLists.txt | 2 +- examples/dm_example/api/CMakeLists.txt | 2 +- examples/dm_example/phase1/CMakeLists.txt | 2 +- examples/dm_example/phase2a/CMakeLists.txt | 2 +- examples/dm_example/phase2b/CMakeLists.txt | 2 +- examples/dm_example/phase3/CMakeLists.txt | 2 +- examples/dm_example_cxx/phase1/CMakeLists.txt | 2 +- examples/dm_example_cxx/phase2/CMakeLists.txt | 4 +- examples/dm_example_cxx/phase3/CMakeLists.txt | 2 +- .../phase3_locking/CMakeLists.txt | 2 +- examples/hello_world/CMakeLists.txt | 10 +- examples/hello_world_test/CMakeLists.txt | 18 +- examples/log_service_example/CMakeLists.txt | 4 +- examples/mongoose/CMakeLists.txt | 6 +- examples/service_hook_example/CMakeLists.txt | 6 +- examples/services_example_c/CMakeLists.txt | 2 +- examples/services_example_c/bar/CMakeLists.txt | 2 +- examples/services_example_c/foo1/CMakeLists.txt | 2 +- examples/services_example_c/foo2/CMakeLists.txt | 2 +- examples/services_example_cxx/CMakeLists.txt | 2 +- .../services_example_cxx/bar/CMakeLists.txt | 2 +- .../services_example_cxx/baz/CMakeLists.txt | 2 +- .../services_example_cxx/foo/CMakeLists.txt | 2 +- .../test_bundle1/CMakeLists.txt | 2 +- framework/src/celix_launcher.c | 12 +- launcher/README.md | 17 ++ log_service/CMakeLists.txt | 5 +- log_writer/log_writer/CMakeLists.txt | 2 +- log_writer/log_writer_stdout/CMakeLists.txt | 6 +- log_writer/log_writer_syslog/CMakeLists.txt | 4 +- pubsub/CMakeLists.txt | 2 +- pubsub/README.md | 17 ++ pubsub/examples/CMakeLists.txt | 26 +- pubsub/examples/keys/README.md | 17 ++ .../examples/mp_pubsub/publisher/CMakeLists.txt | 8 +- .../mp_pubsub/subscriber/CMakeLists.txt | 10 +- pubsub/examples/pubsub/publisher/CMakeLists.txt | 10 +- .../examples/pubsub/publisher2/CMakeLists.txt | 10 +- .../examples/pubsub/subscriber/CMakeLists.txt | 12 +- pubsub/mock/CMakeLists.txt | 8 +- pubsub/pubsub_admin_udp_mc/CMakeLists.txt | 4 +- pubsub/pubsub_admin_udp_mc/README.md | 17 ++ pubsub/pubsub_admin_zmq/CMakeLists.txt | 4 +- pubsub/pubsub_admin_zmq/src/pubsub_admin_impl.c | 2 +- pubsub/pubsub_admin_zmq/src/topic_publication.c | 2 +- pubsub/pubsub_admin_zmq/src/topic_publication.h | 2 +- .../pubsub_admin_zmq/src/topic_subscription.c | 4 +- pubsub/pubsub_discovery/CMakeLists.txt | 4 +- pubsub/pubsub_serializer_json/CMakeLists.txt | 4 +- pubsub/pubsub_spi/CMakeLists.txt | 13 +- pubsub/pubsub_topology_manager/CMakeLists.txt | 6 +- pubsub/test/CMakeLists.txt | 16 +- rat-excludes.txt | 7 +- remote_services/README.md | 17 ++ remote_services/civetweb/CMakeLists.txt | 2 +- remote_services/discovery_common/CMakeLists.txt | 2 +- .../discovery_configured/CMakeLists.txt | 4 +- remote_services/discovery_etcd/CMakeLists.txt | 4 +- remote_services/discovery_etcd/README.md | 17 ++ remote_services/discovery_shm/CMakeLists.txt | 4 +- remote_services/examples/CMakeLists.txt | 12 +- .../examples/calculator_service/CMakeLists.txt | 4 +- .../examples/calculator_shell/CMakeLists.txt | 4 +- .../remote_service_admin_dfi/CMakeLists.txt | 4 +- .../test/CMakeLists.txt | 4 +- .../remote_service_admin_shm/CMakeLists.txt | 4 +- .../remote_services_api/CMakeLists.txt | 8 +- remote_services/rsa_common/CMakeLists.txt | 11 +- remote_services/topology_manager/CMakeLists.txt | 4 +- remote_services/topology_manager/README.md | 17 ++ .../tms_tst/bundle/CMakeLists.txt | 4 +- .../tms_tst/disc_mock/CMakeLists.txt | 2 +- remote_shell/CMakeLists.txt | 6 +- remote_shell/README.md | 17 ++ shell/CMakeLists.txt | 4 +- shell/README.md | 17 ++ shell_bonjour/CMakeLists.txt | 4 +- shell_tui/CMakeLists.txt | 4 +- shell_tui/README.md | 17 ++ utils/README.md | 17 ++ 123 files changed, 1162 insertions(+), 614 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/cmake/cmake_celix/BundlePackaging.cmake ---------------------------------------------------------------------- diff --cc cmake/cmake_celix/BundlePackaging.cmake index 8e1755c,e336dbb..44e7382 --- a/cmake/cmake_celix/BundlePackaging.cmake +++ b/cmake/cmake_celix/BundlePackaging.cmake @@@ -88,9 -88,8 +88,9 @@@ function(check_bundle BUNDLE endif() endfunction() + function(add_bundle) - #message(DEPRECATION"add_bundle is DEPRECATION, use add_celix_bundle instead.") - message(DEPRECATION "add_bundle is DEPRECATION, use add_celix_bundle instead.") ++ message(DEPRECATION "add_bundle is deprecated, use add_celix_bundle instead.") add_celix_bundle(${ARGN}) endfunction() function(add_celix_bundle) @@@ -278,7 -261,7 +278,7 @@@ endfunction() function(bundle_export_libs) - #message(DEPRECATION"bundle_export_libs is DEPRECATION, use celix_bundle_export_libs instead.") - message(DEPRECATION "bundle_export_libs is DEPRECATION, use celix_bundle_export_libs instead.") ++ message(DEPRECATION "bundle_export_libs is deprecated, use celix_bundle_export_libs instead.") celix_bundle_export_libs(${ARGN}) endfunction() function(celix_bundle_export_libs) @@@ -288,7 -271,7 +288,7 @@@ endfunction() function(bundle_private_libs) - #message(DEPRECATION"bundle_private_libs is DEPRECATION, use celix_bundle_private_libs instead.") - message(DEPRECATION "bundle_private_libs is DEPRECATION, use celix_bundle_private_libs instead.") ++ message(DEPRECATION "bundle_private_libs is deprecated, use celix_bundle_private_libs instead.") celix_bundle_private_libs(${ARGN}) endfunction() function(celix_bundle_private_libs) @@@ -298,7 -281,7 +298,7 @@@ endfunction() function(bundle_libs) - #message(DEPRECATION"bundle_libs is DEPRECATION, use celix_bundle_libs instead.") - message(DEPRECATION "bundle_libs is DEPRECATION, use celix_bundle_libs instead.") ++ message(DEPRECATION "bundle_libs is deprecated, use celix_bundle_libs instead.") celix_bundle_libs(${ARGN}) endfunction() function(celix_bundle_libs) @@@ -365,7 -348,7 +365,7 @@@ endfunction() function(bundle_import_libs) - #message(DEPRECATION"bundle_import_libs is DEPRECATION, use celix_bundle_import_libs instead.") - message(DEPRECATION "bundle_import_libs is DEPRECATION, use celix_bundle_import_libs instead.") ++ message(DEPRECATION "bundle_import_libs is deprecated, use celix_bundle_import_libs instead.") celix_bundle_import_libs(${ARGN}) endfunction() function(celix_bundle_import_libs) @@@ -395,7 -378,7 +395,7 @@@ endfunction() function(bundle_files) - #message(DEPRECATION"bundle_files is DEPRECATION, use celix_bundle_files instead.") - message(DEPRECATION "bundle_files is DEPRECATION, use celix_bundle_files instead.") ++ message(DEPRECATION "bundle_files is deprecated, use celix_bundle_files instead.") celix_bundle_files(${ARGN}) endfunction() function(celix_bundle_files) @@@ -422,7 -405,7 +422,7 @@@ endfunction() function(bundle_headers) - #message(DEPRECATION"bundle_headers is DEPRECATION, use celix_bundle_headers instead.") - message(DEPRECATION "bundle_headers is DEPRECATION, use celix_bundle_headers instead.") ++ message(DEPRECATION "bundle_headers is deprecated, use celix_bundle_headers instead.") celix_bundle_headers(${ARGN}) endfunction() function(celix_bundle_headers) @@@ -441,7 -424,7 +441,7 @@@ endfunction() function(bundle_symbolic_name) - #message(DEPRECATION"bundle_symbolic_name is DEPRECATION, use celix_bundle_symbolic_name instead.") - message(DEPRECATION "bundle_symbolic_name is DEPRECATION, use celix_bundle_symbolic_name instead.") ++ message(DEPRECATION "bundle_symbolic_name is deprecated, use celix_bundle_symbolic_name instead.") celix_bundle_symbolic_name(${ARGN}) endfunction() function(celix_bundle_symbolic_name BUNDLE SYMBOLIC_NAME) @@@ -449,7 -432,7 +449,7 @@@ endfunction() function(bundle_name) - #message(DEPRECATION"bundle_name is DEPRECATION, use celix_bundle_name instead.") - message(DEPRECATION "bundle_name is DEPRECATION, use celix_bundle_name instead.") ++ message(DEPRECATION "bundle_name is deprecated, use celix_bundle_name instead.") celix_bundle_symbolic_name(${ARGN}) endfunction() function(celix_bundle_name BUNDLE NAME) @@@ -457,7 -440,7 +457,7 @@@ endfunction() function(bundle_version) - #message(DEPRECATION"bundle_version is DEPRECATION, use celix_bundle_version instead.") - message(DEPRECATION "bundle_version is DEPRECATION, use celix_bundle_version instead.") ++ message(DEPRECATION "bundle_version is deprecated, use celix_bundle_version instead.") celix_bundle_symbolic_name(${ARGN}) endfunction() function(celix_bundle_version BUNDLE VERSION) @@@ -465,7 -448,7 +465,7 @@@ endfunction() function(bundle_description) - #message(DEPRECATION"bundle_description is DEPRECATION, use celix_bundle_description instead.") - message(DEPRECATION "bundle_description is DEPRECATION, use celix_bundle_description instead.") ++ message(DEPRECATION "bundle_description is deprecated, use celix_bundle_description instead.") celix_bundle_symbolic_name(${ARGN}) endfunction() function(celix_bundle_description BUNDLE DESC) @@@ -473,7 -456,7 +473,7 @@@ endfunction() function(install_bundle) - #message(DEPRECATION"install_bundle is DEPRECATION, use install_celix_bundle instead.") - message(DEPRECATION "install_bundle is DEPRECATION, use install_celix_bundle instead.") ++ message(DEPRECATION "install_bundle is deprecated, use install_celix_bundle instead.") install_celix_bundle(${ARGN}) endfunction() function(install_celix_bundle) http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/cmake/cmake_celix/DeployPackaging.cmake ---------------------------------------------------------------------- diff --cc cmake/cmake_celix/DeployPackaging.cmake index 2065b47,707201f..b7880f4 --- a/cmake/cmake_celix/DeployPackaging.cmake +++ b/cmake/cmake_celix/DeployPackaging.cmake @@@ -28,9 -28,10 +28,9 @@@ set_directory_properties(PROPERTIES ADD ##### function(add_deploy) - #message(DEPRECATION "deploy_bundles_dir is depecrated, use celix_container_bundles_dir instead.") - message(DEPRECATION "add_deploy is depecrated, use add_celix_container instead.") ++ message(DEPRECATION "deploy_bundles_dir is depecrated, use celix_container_bundles_dir instead.") add_celix_container(${ARGN}) endfunction() - function(add_celix_container) list(GET ARGN 0 CONTAINER_TARGET) list(REMOVE_AT ARGN 0) @@@ -212,8 -219,9 +212,8 @@@ endfunction( #NOTE can be used for drivers/proxies/endpoints bundle dirs - function(deploy_bundles_dir) - #message(DEPRECATION "deploy_bundles_dir is depecrated, use celix_container_bundles_dir instead.") + message(DEPRECATION "deploy_bundles_dir is depecrated, use celix_container_bundles_dir instead.") celix_container_bundles_dir(${ARGN}) endfunction() function(celix_container_bundles_dir) http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/config_admin/CMakeLists.txt ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/config_admin/config_admin_tst/example_test/CMakeLists.txt ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/config_admin/config_admin_tst/example_test2/CMakeLists.txt ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/config_admin/example/CMakeLists.txt ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/config_admin/service/CMakeLists.txt ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/dependency_manager/CMakeLists.txt ---------------------------------------------------------------------- diff --cc dependency_manager/CMakeLists.txt index 477a163,952cfe7..f98701e --- a/dependency_manager/CMakeLists.txt +++ b/dependency_manager/CMakeLists.txt @@@ -30,70 -30,63 +30,64 @@@ if (DEPENDENCY_MANAGER endif(CMAKE_UNAME) endif(UNIX AND NOT WIN32) - add_celix_bundle(dm_shell - SYMBOLIC_NAME "apache_celix_dm_shell" - VERSION "1.0.0" - NAME "Apache Celix DM Shell Commands" - SOURCES - private/src/dm_shell_activator - private/src/dm_shell_list_command - ) - target_link_libraries(dm_shell celix_framework celix_utils) - - add_library(dependency_manager_static STATIC - private/src/dm_component_impl - private/src/dm_service_dependency - private/src/dm_event - private/src/dm_dependency_manager_impl - private/src/dm_activator + src/dm_component_impl + src/dm_service_dependency + src/dm_event + src/dm_dependency_manager_impl + src/dm_activator ) - set_target_properties(dependency_manager_static PROPERTIES SOVERSION 1) - set_target_properties(dependency_manager_static PROPERTIES VERSION 1.1.0) ++ set_target_properties(dependency_manager_static PROPERTIES OUTPUT_NAME "celix_dependency_manager_static") + target_link_libraries(dependency_manager_static Celix::framework) + target_compile_options(dependency_manager_static PRIVATE ${DM_COMP_OPT}) add_library(dependency_manager_so SHARED - private/src/dm_component_impl - private/src/dm_service_dependency - private/src/dm_event - private/src/dm_dependency_manager_impl - private/src/dm_activator + src/dm_component_impl + src/dm_service_dependency + src/dm_event + src/dm_dependency_manager_impl + src/dm_activator ) ++ set_target_properties(dependency_manager_so PROPERTIES OUTPUT_NAME "celix_dependency_manager_so") set_target_properties(dependency_manager_so PROPERTIES SOVERSION 1) if (APPLE) - target_link_libraries(dependency_manager_so celix_framework "-undefined dynamic_lookup") + target_link_libraries(dependency_manager_so Celix::framework "-undefined dynamic_lookup") else() - target_link_libraries(dependency_manager_so celix_framework) + target_link_libraries(dependency_manager_so Celix::framework) endif() - target_include_directories(dependency_manager_static PUBLIC api) - include_directories("public/include") - include_directories("private/include") - include_directories("${PROJECT_SOURCE_DIR}/shell/public/include") - include_directories("${PROJECT_SOURCE_DIR}/utils/public/include") - target_link_libraries(dependency_manager_static celix_framework) - - install( - FILES - public/include/dm_activator.h - private/src/dm_activator.c - public/include/dm_component.h - public/include/dm_dependency_manager.h - public/include/dm_service_dependency.h - public/include/dm_info.h - DESTINATION - include/celix/dependency_manager - COMPONENT - dependency_manager - ) ++ target_include_directories(dependency_manager_static PUBLIC ++ $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/api> ++ $<INSTALL_INTERFACE:include/celix/dependency_manager> ++ ) + target_include_directories(dependency_manager_static PRIVATE src) - target_include_directories(dependency_manager_so PUBLIC api) ++ target_include_directories(dependency_manager_so PUBLIC ++ $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/api> ++ $<INSTALL_INTERFACE:include/celix/dependency_manager> ++ ) + target_include_directories(dependency_manager_so PRIVATE src) + - add_bundle(dm_shell ++ add_celix_bundle(dm_shell + SYMBOLIC_NAME "apache_celix_dm_shell" + VERSION "1.0.0" + NAME "Apache Celix DM Shell Commands" + SOURCES + src/dm_shell_activator + src/dm_shell_list_command + ) + target_include_directories(dm_shell PRIVATE api src) + target_link_libraries(dm_shell PRIVATE Celix::shell_api) + - #TODO check - # install( - # FILES - # api/dm_activator.h - # src/dm_activator.c - # api/dm_component.h - # api/dm_dependency_manager.h - # apidm_service_dependency.h - # apidm_info.h - # DESTINATION - # include/celix/dependency_manager - # COMPONENT - # dependency_manager - # ) - install_bundle(dm_shell) - install(TARGETS dependency_manager_static DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT dependency_manager) - install(TARGETS dependency_manager_so DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT dependency_manager) + install_celix_bundle(dm_shell) - install(TARGETS dependency_manager_static DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT dependency_manager) - install(TARGETS dependency_manager_so DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT dependency_manager) ++ install(TARGETS dependency_manager_so dependency_manager_static DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT dependency_manager) ++ install(DIRECTORY api/ DESTINATION include/celix/dependency_manager COMPONENT dependency_manager) + + unset(DM_COMP_OPT) + + #Setup target aliases to match external usage + add_library(Celix::dm_shell ALIAS dm_shell) + add_library(Celix::dependency_manager_static ALIAS dependency_manager_static) + add_library(Celix::dependency_manager_so ALIAS dependency_manager_so) endif (DEPENDENCY_MANAGER) http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/dependency_manager/readme.md ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/dependency_manager_cxx/CMakeLists.txt ---------------------------------------------------------------------- diff --cc dependency_manager_cxx/CMakeLists.txt index 65c158d,55b02ca..5b7580a --- a/dependency_manager_cxx/CMakeLists.txt +++ b/dependency_manager_cxx/CMakeLists.txt @@@ -29,36 -29,37 +29,35 @@@ if (DEPENDENCY_MANAGER_CXX endif(CMAKE_UNAME) endif(UNIX AND NOT WIN32) - include_directories( - include - ${PROJECT_SOURCE_DIR}/dependency_manager/public/include - ${PROJECT_SOURCE_DIR}/dependency_manager/private/include - ${PROJECT_SOURCE_DIR}/utils/public/include - ) - add_library(dependency_manager_cxx_static STATIC - ${CMAKE_SOURCE_DIR}/dependency_manager/private/src/dm_component_impl - ${CMAKE_SOURCE_DIR}/dependency_manager/private/src/dm_service_dependency - ${CMAKE_SOURCE_DIR}/dependency_manager/private/src/dm_event - ${CMAKE_SOURCE_DIR}/dependency_manager/private/src/dm_dependency_manager_impl + ${CMAKE_SOURCE_DIR}/dependency_manager/src/dm_component_impl + ${CMAKE_SOURCE_DIR}/dependency_manager/src/dm_service_dependency + ${CMAKE_SOURCE_DIR}/dependency_manager/src/dm_event + ${CMAKE_SOURCE_DIR}/dependency_manager/src/dm_dependency_manager_impl src/dm_activator.cc ) - target_include_directories(dependency_manager_cxx_static PUBLIC include ${CMAKE_SOURCE_DIR}/dependency_manager/api) - set_target_properties(dependency_manager_cxx_static PROPERTIES SOVERSION 1) - set_target_properties(dependency_manager_cxx_static PROPERTIES VERSION 2.0.0) ++ set_target_properties(dependency_manager_cxx_static PROPERTIES OUTPUT_NAME "celix_dependency_manager_cxx_static") ++ target_include_directories(dependency_manager_cxx_static PUBLIC ++ $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include> ++ $<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/dependency_manager/api> ++ $<INSTALL_INTERFACE:include/celix/dependency_manager_cxx> ++ $<INSTALL_INTERFACE:include/celix/dependency_manager> ++ ) + target_include_directories(dependency_manager_cxx_static PRIVATE src) + target_compile_options(dependency_manager_cxx_static PRIVATE ${DM_COMP_OPT}) if (APPLE) - target_link_libraries(dependency_manager_cxx_static celix_framework "-undefined dynamic_lookup") + target_link_libraries(dependency_manager_cxx_static Celix::framework "-undefined dynamic_lookup") else() - target_link_libraries(dependency_manager_cxx_static celix_framework) + target_link_libraries(dependency_manager_cxx_static Celix::framework) endif() -- install( -- DIRECTORY -- include/celix -- DESTINATION -- include/celix/dependency_manager_cxx -- COMPONENT -- dependency_manager_cxx -- ) install(TARGETS dependency_manager_cxx_static DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT dependency_manager_cxx) ++ install(DIRECTORY include DESTINATION include/celix/dependency_manager_cxx COMPONENT dependency_manager_cxx) + + unset(DM_COMP_OPT) + + #Setup target aliases to match external usage + add_library(Celix::dependency_manager_cxx_static ALIAS dependency_manager_cxx_static) endif (DEPENDENCY_MANAGER_CXX) http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/dependency_manager_cxx/readme.md ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/deployment_admin/CMakeLists.txt ---------------------------------------------------------------------- diff --cc deployment_admin/CMakeLists.txt index 3eb38ec,51fe2ba..8d74b1f --- a/deployment_admin/CMakeLists.txt +++ b/deployment_admin/CMakeLists.txt @@@ -20,44 -20,52 +20,44 @@@ if (DEPLOYMENT_ADMIN find_package(CURL REQUIRED) find_package(UUID REQUIRED) + find_package(ZLIB REQUIRED) - add_definitions(-DUSE_FILE32API) + add_library(deployment_admin_api INTERFACE) + target_include_directories(deployment_admin_api INTERFACE api) - add_bundle(deployment_admin - include_directories("${CURL_INCLUDE_DIR}") - include_directories("${UUID_INCLUDE_DIR}") - include_directories("${PROJECT_SOURCE_DIR}/utils/public/include") - include_directories("${PROJECT_SOURCE_DIR}/deployment_admin/private/include") - include_directories("${PROJECT_SOURCE_DIR}/deployment_admin/public/include") - + add_celix_bundle(deployment_admin SYMBOLIC_NAME "apache_celix_deployment_admin" VERSION "0.0.2" NAME "Apache Celix Deployment Admin" SOURCES - private/src/deployment_package - private/src/deployment_admin - private/src/deployment_admin_activator - private/src/ioapi - private/src/miniunz - private/src/unzip - private/src/log - private/src/log_store - private/src/log_sync + src/deployment_package + src/deployment_admin + src/deployment_admin_activator + src/ioapi + src/miniunz + src/unzip + src/log + src/log_store + src/log_sync + ) - private/include/deployment_admin.h - private/include/deployment_package.h - private/include/ioapi.h - private/include/log.h - private/include/log_event.h - private/include/log_store.h - private/include/log_sync.h - private/include/miniunz.h - private/include/unzip.h + target_compile_definitions(deployment_admin PRIVATE -DUSE_FILE32API) + target_include_directories(deployment_admin PRIVATE + src + ${CURL_INCLUDE_DIRS} + ${UUID_INCLUDE_DIRS} + ${ZLIB_INCLUDE_DIRS} ) + target_link_libraries(deployment_admin PRIVATE ${CURL_LIBRARIES} ${UUID_LIBRARIES} ${ZLIB_LIBRARIES} deployment_admin_api) - install_bundle(deployment_admin) - - install_celix_bundle(deployment_admin - HEADERS - public/include/resource_processor.h - ) - - target_link_libraries(deployment_admin celix_framework ${CURL_LIBRARIES}) ++ install_celix_bundle(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_deploy(deployment-admin + add_celix_container(deployment-admin - BUNDLES deployment_admin shell shell_tui log_service log_writer + BUNDLES Celix::deployment_admin Celix::shell Celix::shell_tui Celix::log_service Celix::log_writer_stdout PROPERTIES "deployment_admin_url=http://localhost:8080" "deployment_admin_identification=celix" http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/deployment_admin/README.md ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/device_access/README.md ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/device_access/device_access/CMakeLists.txt ---------------------------------------------------------------------- diff --cc device_access/device_access/CMakeLists.txt index 5f19293,52b8694..c39eb9b --- a/device_access/device_access/CMakeLists.txt +++ b/device_access/device_access/CMakeLists.txt @@@ -15,37 -15,39 +15,37 @@@ # specific language governing permissions and limitations # under the License. + +add_library(device_access_api INTERFACE) +target_include_directories(device_access_api INTERFACE include) + - add_bundle(device_manager + add_celix_bundle(device_manager SYMBOLIC_NAME "apache_celix_device_manager" VERSION "0.0.2" NAME "Apache Celix Device Access Device Manager" SOURCES - private/src/activator - private/src/driver_attributes - private/src/device_manager - private/src/driver_loader - private/src/driver_matcher - - ${PROJECT_SOURCE_DIR}/log_service/public/src/log_helper.c - - private/include/device_manager.h - private/include/driver_attributes.h - private/include/driver_loader.h - private/include/driver_matcher.h + src/activator + src/driver_attributes + src/device_manager + src/driver_loader + src/driver_matcher ) +target_link_libraries(device_manager PRIVATE Celix::log_helper) - install_bundle(device_manager + install_celix_bundle(device_manager HEADERS - public/include/device.h - public/include/driver_locator.h - public/include/driver_selector.h - public/include/driver.h - public/include/match.h + include/device.h + include/driver_locator.h + include/driver_selector.h + include/driver.h + include/match.h ) +target_include_directories(device_manager PRIVATE src) +target_link_libraries(device_manager PRIVATE device_access_api) -include_directories("${PROJECT_SOURCE_DIR}/framework/public/include") -include_directories("${PROJECT_SOURCE_DIR}/utils/public/include") include_directories("${PROJECT_SOURCE_DIR}/log_service/public/include") -include_directories("public/include") -include_directories("private/include") +#Setup target aliases to match external usage +add_library(Celix::device_access_api ALIAS device_access_api) +add_library(Celix::device_manager ALIAS device_manager) -target_link_libraries(device_manager celix_framework celix_utils) http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/device_access/driver_locator/CMakeLists.txt ---------------------------------------------------------------------- diff --cc device_access/driver_locator/CMakeLists.txt index 2e0dde2,88c1fed..f7c679a --- a/device_access/driver_locator/CMakeLists.txt +++ b/device_access/driver_locator/CMakeLists.txt @@@ -20,13 -20,15 +20,13 @@@ add_celix_bundle(driver_locato VERSION "0.0.2" NAME "Apache Celix Device Access Driver Locator" SOURCES - private/src/activator - private/src/driver_locator + src/activator + src/driver_locator ) - install_bundle(driver_locator) + install_celix_bundle(driver_locator) +target_include_directories(driver_locator PRIVATE src) +target_link_libraries(driver_locator PRIVATE Celix::device_access_api) -include_directories(${PROJECT_SOURCE_DIR}/device_access/device_access/public/include) -include_directories(private/include) -include_directories("${PROJECT_SOURCE_DIR}/framework/public/include") -include_directories("${PROJECT_SOURCE_DIR}/utils/public/include") - -target_link_libraries(driver_locator celix_utils celix_framework) +#Setup target aliases to match external usage +add_library(Celix::driver_locator ALIAS driver_locator) http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/device_access/example/CMakeLists.txt ---------------------------------------------------------------------- diff --cc device_access/example/CMakeLists.txt index e21e5e0,f7062b4..5deaf85 --- a/device_access/example/CMakeLists.txt +++ b/device_access/example/CMakeLists.txt @@@ -21,11 -21,11 +21,11 @@@ if(DEVICE_ACCESS_EXAMPLE add_subdirectory(consuming_driver) add_subdirectory(refining_driver) - add_deploy(device_access_example + add_celix_container(device_access_example - BUNDLES device_manager driver_locator shell shell_tui log_service base_driver + BUNDLES Celix::device_manager Celix::driver_locator Celix::shell Celix::shell_tui log_service base_driver ) - deploy_bundles_dir(device_access_example + celix_container_bundles_dir(device_access_example DIR_NAME "drivers" BUNDLES word_consumingdriver char_refiningdriver ) http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/device_access/example/base_driver/CMakeLists.txt ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/device_access/example/consuming_driver/CMakeLists.txt ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/device_access/example/refining_driver/CMakeLists.txt ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/dfi/CMakeLists.txt ---------------------------------------------------------------------- diff --cc dfi/CMakeLists.txt index 950aaa5,676277c..39ed784 --- a/dfi/CMakeLists.txt +++ b/dfi/CMakeLists.txt @@@ -18,40 -18,49 +18,45 @@@ find_package(FFI REQUIRED) find_package(Jansson REQUIRED) -include_directories( - ${FFI_INCLUDE_DIRS} - ${JANSSON_INCLUDE_DIRS} - private/include - public/include - ${PROJECT_SOURCE_DIR}/utils/public/include +set(SOURCES + src/dyn_common.c + src/dyn_type.c + src/dyn_function.c + src/dyn_interface.c + src/dyn_message.c + src/json_serializer.c + src/json_rpc.c ) - add_library(celix_dfi SHARED ${SOURCES}) - set_target_properties(celix_dfi PROPERTIES OUTPUT_NAME "celix_dfi") - target_include_directories(celix_dfi PUBLIC include ${JANSSON_INCLUDE_DIRS}) - target_include_directories(celix_dfi PRIVATE src ${FFI_INCLUDE_DIRS}) - target_link_libraries(celix_dfi PUBLIC ${JANSSON_LIBRARY}) - target_link_libraries(celix_dfi PRIVATE Celix::utils ${FFI_LIBRARIES}) - set_target_properties(celix_dfi PROPERTIES "SOVERSION" 1) -set(MEMSTREAM_SOURCES ) -set(MEMSTREAM_INCLUDES ) -if (APPLE OR ANDROID) - set(MEMSTREAM_SOURCES ${PROJECT_SOURCE_DIR}/utils/private/src/memstream/open_memstream.c ${PROJECT_SOURCE_DIR}/utils/private/src/memstream/fmemopen.c) - set(MEMSTREAM_INCLUDES ${PROJECT_SOURCE_DIR}/utils/public/include/memstream/open_memstream.h ${PROJECT_SOURCE_DIR}/utils/public/include/memstream/fmemopen.h) - include_directories(${PROJECT_SOURCE_DIR}/utils/public/include/memstream) -endif() -- - add_library(celix_dfi_static STATIC ${SOURCES}) - set_target_properties(celix_dfi_static PROPERTIES OUTPUT_NAME "celix_dfi_static") - target_include_directories(celix_dfi_static PUBLIC include ${JANSSON_INCLUDE_DIRS}) - target_include_directories(celix_dfi_static PRIVATE src ${FFI_INCLUDE_DIRS}) - target_link_libraries(celix_dfi_static PUBLIC ${JANSSON_LIBRARY}) - target_link_libraries(celix_dfi_static PRIVATE Celix::utils ${FFI_LIBRARIES}) -add_library(celix_dfi SHARED - private/src/dyn_common.c - private/src/dyn_type.c - private/src/dyn_function.c - private/src/dyn_interface.c - private/src/dyn_message.c - private/src/json_serializer.c - private/src/json_rpc.c - ${MEMSTREAM_SOURCES} ++add_library(dfi SHARED ${SOURCES}) ++set_target_properties(dfi PROPERTIES OUTPUT_NAME "celix_dfi") ++target_include_directories(dfi PUBLIC ++ $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include> ++ $<INSTALL_INTERFACE:include/celix/dfi> ++ ${JANSSON_INCLUDE_DIRS} ++) ++target_include_directories(dfi PRIVATE src ${FFI_INCLUDE_DIRS}) ++target_link_libraries(dfi PUBLIC ${JANSSON_LIBRARY}) ++target_link_libraries(dfi PRIVATE Celix::utils ${FFI_LIBRARIES}) ++set_target_properties(dfi PROPERTIES "SOVERSION" 1) - install(TARGETS celix_dfi celix_dfi_static DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT framework) - public/include/dyn_common.h - public/include/dyn_type.h - public/include/dyn_function.h - public/include/dyn_interface.h - public/include/dyn_message.h - public/include/json_serializer.h - public/include/json_rpc.h - ${MEMSTREAM_INCLUDES} ++add_library(dfi_static STATIC ${SOURCES}) ++set_target_properties(dfi_static PROPERTIES OUTPUT_NAME "celix_dfi_static") ++target_include_directories(dfi_static PUBLIC ++ $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include> ++ $<INSTALL_INTERFACE:include/celix/dfi> ++ ${JANSSON_INCLUDE_DIRS} + ) -set_target_properties(celix_dfi PROPERTIES "SOVERSION" 1) -set_target_properties(celix_dfi PROPERTIES "VERSION" 1.1.0) -target_link_libraries(celix_dfi celix_utils ${FFI_LIBRARIES} ${JANSSON_LIBRARY}) ++target_include_directories(dfi_static PRIVATE src ${FFI_INCLUDE_DIRS}) ++target_link_libraries(dfi_static PUBLIC ${JANSSON_LIBRARY}) ++target_link_libraries(dfi_static PRIVATE Celix::utils ${FFI_LIBRARIES}) --install(TARGETS celix_dfi DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT framework) - FILE(GLOB files "include/*.h") -FILE(GLOB files "public/include/*.h" ${MEMSTREAM_INCLUDES}) --INSTALL(FILES ${files} DESTINATION include/celix/dfi COMPONENT framework) ++install(TARGETS dfi dfi_static EXPORT celix DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT dfi) ++install(DIRECTORY include/ DESTINATION include/celix/dfi COMPONENT dfi) +#Alias setup to match external usage - add_library(Celix::dfi ALIAS celix_dfi) - add_library(Celix::dfi_static ALIAS celix_dfi_static) ++add_library(Celix::dfi ALIAS dfi) ++add_library(Celix::dfi_static ALIAS dfi_static) if (ENABLE_TESTING) find_package(CppUTest REQUIRED) http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/event_admin/event_admin/CMakeLists.txt ---------------------------------------------------------------------- diff --cc event_admin/event_admin/CMakeLists.txt index 4a0f687,52b1120..87b6e62 --- a/event_admin/event_admin/CMakeLists.txt +++ b/event_admin/event_admin/CMakeLists.txt @@@ -34,6 -34,6 +34,6 @@@ add_celix_bundle(event_admi ${PROJECT_SOURCE_DIR}/log_service/public/src/log_helper.c ) - install_bundle(event_admin) + install_celix_bundle(event_admin) -target_link_libraries(event_admin celix_framework celix_utils) +target_link_libraries(event_admin Celix::framework) http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/event_admin/event_handler/CMakeLists.txt ---------------------------------------------------------------------- diff --cc event_admin/event_handler/CMakeLists.txt index 2843122,fe2609c..92813a7 --- a/event_admin/event_handler/CMakeLists.txt +++ b/event_admin/event_handler/CMakeLists.txt @@@ -30,6 -30,6 +30,6 @@@ add_celix_bundle(event_handle ${PROJECT_SOURCE_DIR}/log_service/public/src/log_helper.c ) - install_bundle(event_handler) + install_celix_bundle(event_handler) -target_link_libraries(event_handler celix_framework celix_utils) +target_link_libraries(event_handler Celix::framework) http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/event_admin/event_publisher/CMakeLists.txt ---------------------------------------------------------------------- diff --cc event_admin/event_publisher/CMakeLists.txt index dc9e516,01b7b10..4dd314a --- a/event_admin/event_publisher/CMakeLists.txt +++ b/event_admin/event_publisher/CMakeLists.txt @@@ -29,6 -29,6 +29,6 @@@ add_celix_bundle(event_publishe ${PROJECT_SOURCE_DIR}/log_service/public/src/log_helper.c ) - install_bundle(event_publisher) + install_celix_bundle(event_publisher) -target_link_libraries(event_publisher celix_framework celix_utils) +target_link_libraries(event_publisher Celix::framework) http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/examples/dm_example/CMakeLists.txt ---------------------------------------------------------------------- diff --cc examples/dm_example/CMakeLists.txt index a18a675,16a8ce1..a2a2143 --- a/examples/dm_example/CMakeLists.txt +++ b/examples/dm_example/CMakeLists.txt @@@ -24,16 -27,16 +24,16 @@@ if (BUILD_DEPENDENCY_MANAGER add_subdirectory(phase3) - add_deploy(dm_example - add_celix_container("dm_example" ++ add_celix_container(dm_example COPY BUNDLES - shell - shell_tui - dm_shell - phase1 - phase2a - phase2b - phase3 + Celix::shell + Celix::shell_tui + Celix::dm_shell + dm_example_phase1 + dm_example_phase2a + dm_example_phase2b + dm_example_phase3 PROPERTIES LOGHELPER_ENABLE_STDOUT_FALLBACK=true ) http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/examples/dm_example/api/CMakeLists.txt ---------------------------------------------------------------------- diff --cc examples/dm_example/api/CMakeLists.txt index 900c8fb,0000000..edbb643 mode 100644,000000..100644 --- a/examples/dm_example/api/CMakeLists.txt +++ b/examples/dm_example/api/CMakeLists.txt @@@ -1,19 -1,0 +1,19 @@@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +add_library(dm_example_api INTERFACE) - target_include_directories(dm_example_api INTERFACE include) ++target_include_directories(dm_example_api INTERFACE include) http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/examples/dm_example/phase1/CMakeLists.txt ---------------------------------------------------------------------- diff --cc examples/dm_example/phase1/CMakeLists.txt index 5263bab,dabb88f..09402ea --- a/examples/dm_example/phase1/CMakeLists.txt +++ b/examples/dm_example/phase1/CMakeLists.txt @@@ -15,8 -15,12 +15,8 @@@ # specific language governing permissions and limitations # under the License. -include_directories( - private/include - ../services -) - add_bundle(dm_example_phase1 -add_celix_bundle(phase1 ++add_celix_bundle(dm_example_phase1 SYMBOLIC_NAME phase1 VERSION 0.0.1 SOURCES http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/examples/dm_example/phase2a/CMakeLists.txt ---------------------------------------------------------------------- diff --cc examples/dm_example/phase2a/CMakeLists.txt index cda4971,0bd8e7e..82a6fb5 --- a/examples/dm_example/phase2a/CMakeLists.txt +++ b/examples/dm_example/phase2a/CMakeLists.txt @@@ -15,7 -15,12 +15,7 @@@ # specific language governing permissions and limitations # under the License. - add_bundle(dm_example_phase2a -include_directories( - private/include - ../services -) - -add_celix_bundle(phase2a ++add_celix_bundle(dm_example_phase2a SYMBOLIC_NAME phase2a VERSION 0.0.1 SOURCES http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/examples/dm_example/phase2b/CMakeLists.txt ---------------------------------------------------------------------- diff --cc examples/dm_example/phase2b/CMakeLists.txt index 9afb6c7,775e786..9172ad8 --- a/examples/dm_example/phase2b/CMakeLists.txt +++ b/examples/dm_example/phase2b/CMakeLists.txt @@@ -15,7 -15,12 +15,7 @@@ # specific language governing permissions and limitations # under the License. - add_bundle(dm_example_phase2b -include_directories( - private/include - ../services -) - -add_celix_bundle(phase2b ++add_celix_bundle(dm_example_phase2b SYMBOLIC_NAME phase2b VERSION 0.0.1 SOURCES http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/examples/dm_example/phase3/CMakeLists.txt ---------------------------------------------------------------------- diff --cc examples/dm_example/phase3/CMakeLists.txt index 1784057,163980f..7cad101 --- a/examples/dm_example/phase3/CMakeLists.txt +++ b/examples/dm_example/phase3/CMakeLists.txt @@@ -15,7 -15,12 +15,7 @@@ # specific language governing permissions and limitations # under the License. - add_bundle(dm_example_phase3 -include_directories( - private/include - ../services -) - -add_celix_bundle(phase3 ++add_celix_bundle(dm_example_phase3 SYMBOLIC_NAME phase3 VERSION 0.0.1 SOURCES http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/examples/dm_example_cxx/phase1/CMakeLists.txt ---------------------------------------------------------------------- diff --cc examples/dm_example_cxx/phase1/CMakeLists.txt index 0832816,1a5d049..5007e77 --- a/examples/dm_example_cxx/phase1/CMakeLists.txt +++ b/examples/dm_example_cxx/phase1/CMakeLists.txt @@@ -15,7 -15,12 +15,7 @@@ # specific language governing permissions and limitations # under the License. - add_bundle(dm_example_cxx_phase1 -include_directories( - include - ../api -) - -add_celix_bundle(phase1_cxx ++add_celix_bundle(dm_example_cxx_phase1 SYMBOLIC_NAME phase1_cxx VERSION 0.0.1 SOURCES http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/examples/dm_example_cxx/phase2/CMakeLists.txt ---------------------------------------------------------------------- diff --cc examples/dm_example_cxx/phase2/CMakeLists.txt index 66f4ddd,0000000..f2b3813 mode 100644,000000..100644 --- a/examples/dm_example_cxx/phase2/CMakeLists.txt +++ b/examples/dm_example_cxx/phase2/CMakeLists.txt @@@ -1,51 -1,0 +1,51 @@@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + - add_bundle(dm_example_cxx_phase2a ++add_celix_bundle(dm_example_cxx_phase2a + SYMBOLIC_NAME phase2a_cxx + VERSION 0.0.1 + SOURCES + src/Phase2aActivator.cc + src/Phase2aCmp.cc +) +target_include_directories(dm_example_cxx_phase2a PRIVATE src) +target_link_libraries(dm_example_cxx_phase2a PRIVATE Celix::log_service_api dm_example_cxx_api) + - add_bundle(dm_example_cxx_phase2b ++add_celix_bundle(dm_example_cxx_phase2b + SYMBOLIC_NAME phase2b_cxx + VERSION 0.0.1 + SOURCES + src/Phase2bActivator.cc + src/Phase2bCmp.cc + ) +target_include_directories(dm_example_cxx_phase2b PRIVATE src) +target_link_libraries(dm_example_cxx_phase2b PRIVATE Celix::log_service_api dm_example_cxx_api) + +IF(APPLE) + target_link_libraries(dm_example_cxx_phase2a PRIVATE -Wl,-all_load Celix::dependency_manager_cxx_static) + target_link_libraries(dm_example_cxx_phase2b PRIVATE -Wl,-all_load Celix::dependency_manager_cxx_static) +else() + if(ENABLE_ADDRESS_SANITIZER) + #With asan there can be undefined symbols + target_link_libraries(dm_example_cxx_phase2a PRIVATE -Wl,--whole-archive Celix::dependency_manager_cxx_static -Wl,--no-whole-archive) + target_link_libraries(dm_example_cxx_phase2b PRIVATE -Wl,--whole-archive Celix::dependency_manager_cxx_static -Wl,--no-whole-archive) + else() + target_link_libraries(dm_example_cxx_phase2a PRIVATE -Wl,--whole-archive Celix::dependency_manager_cxx_static -Wl,--no-whole-archive) + target_link_libraries(dm_example_cxx_phase2b PRIVATE -Wl,--whole-archive Celix::dependency_manager_cxx_static -Wl,--no-whole-archive) + + endif() +endif() http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/examples/dm_example_cxx/phase3/CMakeLists.txt ---------------------------------------------------------------------- diff --cc examples/dm_example_cxx/phase3/CMakeLists.txt index 2a62cbb,3c23582..3728abc --- a/examples/dm_example_cxx/phase3/CMakeLists.txt +++ b/examples/dm_example_cxx/phase3/CMakeLists.txt @@@ -15,7 -15,12 +15,7 @@@ # specific language governing permissions and limitations # under the License. - add_bundle(dm_example_cxx_phase3 -include_directories( - include - ../api -) - -add_celix_bundle(phase3_cxx ++add_celix_bundle(dm_example_cxx_phase3 SYMBOLIC_NAME phase3_cxx VERSION 0.0.1 SOURCES http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/examples/dm_example_cxx/phase3_locking/CMakeLists.txt ---------------------------------------------------------------------- diff --cc examples/dm_example_cxx/phase3_locking/CMakeLists.txt index 2ea1eb4,ef10a33..35ca3c9 --- a/examples/dm_example_cxx/phase3_locking/CMakeLists.txt +++ b/examples/dm_example_cxx/phase3_locking/CMakeLists.txt @@@ -15,8 -15,12 +15,8 @@@ # specific language governing permissions and limitations # under the License. -include_directories( - include - ../api -) - add_bundle(dm_example_cxx_phase3_locking -add_celix_bundle(phase3_locking_cxx ++add_celix_bundle(dm_example_cxx_phase3_locking SYMBOLIC_NAME phase3_locking_cxx VERSION 0.0.1 SOURCES http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/examples/hello_world/CMakeLists.txt ---------------------------------------------------------------------- diff --cc examples/hello_world/CMakeLists.txt index ca72eec,e90149e..130cef0 --- a/examples/hello_world/CMakeLists.txt +++ b/examples/hello_world/CMakeLists.txt @@@ -32,7 -32,7 +32,7 @@@ add_library(hello_test2lib SHARE ) set_library_version(hello_test2lib "3.3.3") - add_bundle(hello_bundle -add_celix_bundle(hello ++add_celix_bundle(hello_bundle VERSION "1.2" SOURCES private/src/activator.c @@@ -45,19 -45,19 +45,19 @@@ add_celix_bundle(hello_expor EXPORT_LIBRARIES hello_test2lib ) - bundle_private_libs(hello_bundle -celix_bundle_private_libs(hello ++celix_bundle_private_libs(hello_bundle hello_testlib ) - add_deploy(helloworld_byref + add_celix_container(helloworld_byref GROUP hello - BUNDLES hello_export hello shell shell_tui + BUNDLES hello_export hello_bundle ${CELIX_SHELL_BUNDLE} ${CELIX_SHELL_TUI_BUNDLE} ) - add_deploy(helloworld_withcopy + add_celix_container(helloworld_withcopy GROUP hello COPY #Ensures that bundles are copied in the deploy location - BUNDLES hello_export hello shell shell_tui + BUNDLES hello_export hello_bundle ${SHELL_BUNDLE} ${SHELL_TUI_BUNDLE} ) endif() http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/examples/hello_world_test/CMakeLists.txt ---------------------------------------------------------------------- diff --cc examples/hello_world_test/CMakeLists.txt index 08053e5,2d146fc..41045b2 --- a/examples/hello_world_test/CMakeLists.txt +++ b/examples/hello_world_test/CMakeLists.txt @@@ -16,22 -16,19 +16,22 @@@ # under the License. ############################################################################# - ## NOTE Examples of using add_bundle and add_deploy and assorted commands ## + ## NOTE Examples of using add_celix_bundle and add_celix_container and assorted commands ## ############################################################################# - add_bundle(hellotest1 -include_directories("${PROJECT_SOURCE_DIR}/utils/public/include") -include_directories(public/include) - + add_celix_bundle(hellotest1 VERSION "1.2" SOURCES private/src/activator ) +target_include_directories(hellotest1 PRIVATE + ${PROJECT_SOURCE_DIR}/utils/public/include + public/include +) + + - bundle_headers(hellotest1 + celix_bundle_headers(hellotest1 "X-WebContent: web" "X-MediaType: application/json" ) @@@ -41,7 -38,7 +41,7 @@@ add_library(tlib SHARE ) set_library_version(tlib "4.3.2") # sets target propery VERSION to 4.3.2 and SOVERSION to 4 --#bundle_private_libs(hellotest1 ++#celix_bundle_private_libs(hellotest1 # #/usr/local/lib/libjansson.4.dylib # /usr/lib64/libjansson.so.4 #) @@@ -75,8 -72,7 +75,8 @@@ add_library(hello2act SHARE private/src/activator ) set_library_version(hello2act "3.2.4") #sets VERSION prop to 3.2.4 and SOVERSION to 3 +target_link_libraries(hello2act PRIVATE Celix::framework ) - add_bundle(hellotest2 + add_celix_bundle(hellotest2 VERSION "1.0.0" #can be the same as activator lib, but does not have to be ACTIVATOR hello2act ) http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/examples/log_service_example/CMakeLists.txt ---------------------------------------------------------------------- diff --cc examples/log_service_example/CMakeLists.txt index 1326a0f,fffa68f..31f6fc8 --- a/examples/log_service_example/CMakeLists.txt +++ b/examples/log_service_example/CMakeLists.txt @@@ -17,15 -17,20 +17,15 @@@ #Importing and exporting libraries not (yet) work under OSX. - add_bundle(log_service_example -include_directories("${PROJECT_SOURCE_DIR}/utils/public/include") -include_directories("public/include") -include_directories("${CMAKE_SOURCE_DIR}/log_service/public/include") - + add_celix_bundle(log_service_example VERSION "1.0" SOURCES - private/src/activator.c - ${CMAKE_SOURCE_DIR}/log_service/public/src/log_helper.c + src/activator.c ) +target_include_directories(log_service_example PRIVATE src) +target_link_libraries(log_service_example PRIVATE Celix::log_service_api Celix::log_helper) - add_deploy(log_example + add_celix_container(log_example GROUP log_service - BUNDLES log_service_example log_service shell shell_tui + BUNDLES log_service_example Celix::log_service Celix::shell Celix::shell_tui ) - -target_link_libraries(log_service_example celix_framework celix_utils) http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/examples/mongoose/CMakeLists.txt ---------------------------------------------------------------------- diff --cc examples/mongoose/CMakeLists.txt index 118d923,2de051f..7119aa7 --- a/examples/mongoose/CMakeLists.txt +++ b/examples/mongoose/CMakeLists.txt @@@ -35,8 -35,8 +35,8 @@@ add_celix_bundle(mongoos private/include/mongoose.h ) - bundle_files(mongoose ${CMAKE_CURRENT_LIST_DIR}/root) + celix_bundle_files(mongoose ${CMAKE_CURRENT_LIST_DIR}/root) -target_link_libraries(mongoose celix_framework mongooselib ${LIBS}) +target_link_libraries(mongoose PRIVATE mongooselib ${LIBS}) - add_deploy("mongoose_deploy" BUNDLES Celix::shell Celix::shell_tui log_service mongoose) -add_celix_container("mongoose_deploy" BUNDLES shell shell_tui log_service mongoose) ++add_celix_container("mongoose_deploy" BUNDLES Celix::shell Celix::shell_tui log_service mongoose) http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/examples/service_hook_example/CMakeLists.txt ---------------------------------------------------------------------- diff --cc examples/service_hook_example/CMakeLists.txt index 99e9b2a,8348059..9dbe7c0 --- a/examples/service_hook_example/CMakeLists.txt +++ b/examples/service_hook_example/CMakeLists.txt @@@ -15,16 -15,23 +15,16 @@@ # specific language governing permissions and limitations # under the License. - add_bundle(hook_example -if(NOT APPLE) -#Importing and exporting libraries not (yet) work under OSX. - -include_directories("${PROJECT_SOURCE_DIR}/utils/public/include") -include_directories("public/include") - + add_celix_bundle(hook_example - BUNDLE_SYMBOLICNAME "Hook_Example" - VERSION "1.0.0" - SOURCES - private/src/activator + BUNDLE_SYMBOLICNAME "Hook_Example" + VERSION "1.0.0" + SOURCES + src/activator ) - add_deploy(hook_service_example -add_celix_container("hook_service_example" - BUNDLES - shell - shell_tui - hook_example ++add_celix_container(hook_service_example + BUNDLES + Celix::shell + Celix::shell_tui + hook_example - ) + ) -endif() http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/examples/services_example_c/CMakeLists.txt ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/examples/services_example_c/bar/CMakeLists.txt ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/examples/services_example_c/foo1/CMakeLists.txt ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/examples/services_example_c/foo2/CMakeLists.txt ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/examples/services_example_cxx/CMakeLists.txt ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/examples/services_example_cxx/bar/CMakeLists.txt ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/examples/services_example_cxx/baz/CMakeLists.txt ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/examples/services_example_cxx/foo/CMakeLists.txt ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/framework/src/celix_launcher.c ---------------------------------------------------------------------- diff --cc framework/src/celix_launcher.c index fe5d0c0,0000000..8a14e9b mode 100644,000000..100644 --- a/framework/src/celix_launcher.c +++ b/framework/src/celix_launcher.c @@@ -1,315 -1,0 +1,317 @@@ +/** + *Licensed to the Apache Software Foundation (ASF) under one + *or more contributor license agreements. See the NOTICE file + *distributed with this work for additional information + *regarding copyright ownership. The ASF licenses this file + *to you under the Apache License, Version 2.0 (the + *"License"); you may not use this file except in compliance + *with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + *Unless required by applicable law or agreed to in writing, + *software distributed under the License is distributed on an + *"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + *specific language governing permissions and limitations + *under the License. + */ +/* + * celix_launcher.c + * + * \date Mar 23, 2010 + * \author <a href="mailto:[email protected]">Apache Celix Project Team</a> + * \copyright Apache License, Version 2.0 + */ + +#include "celix_launcher.h" + +#include <stdio.h> +#include <string.h> +#include <stdlib.h> +#include <libgen.h> +#include <signal.h> + +#ifndef CELIX_NO_CURLINIT +#include <curl/curl.h> +#endif + +#include <string.h> +#include <curl/curl.h> +#include <signal.h> +#include <libgen.h> +#include "celix_launcher.h" +#include "framework.h" +#include "linked_list_iterator.h" + +static void show_usage(char* prog_name); +static void shutdown_framework(int signal); +static void ignore(int signal); + +static int celixLauncher_launchWithConfigAndProps(const char *configFile, framework_pt *framework, properties_pt packedConfig); +static int celixLauncher_launchWithStreamAndProps(FILE *stream, framework_pt *framework, properties_pt packedConfig); + +#define DEFAULT_CONFIG_FILE "config.properties" + +static framework_pt framework = NULL; + +/** + * Method kept because of usage in examples & unit tests + */ +int celixLauncher_launchWithArgs(int argc, char *argv[]) { + return celixLauncher_launchWithArgsAndProps(argc, argv, NULL); +} + +int celixLauncher_launchWithArgsAndProps(int argc, char *argv[], properties_pt packedConfig) { + // Perform some minimal command-line option parsing... + char *opt = NULL; + if (argc > 1) { + opt = argv[1]; + } + + char *config_file = NULL; + + if (opt) { + // Check whether the user wants some help... + if (strcmp("-h", opt) == 0 || strcmp("-help", opt) == 0) { + show_usage(argv[0]); + return 0; + } else { + config_file = opt; + } + } else { + config_file = DEFAULT_CONFIG_FILE; + } + + struct sigaction sigact; + memset(&sigact, 0, sizeof(sigact)); + sigact.sa_handler = shutdown_framework; + sigaction(SIGINT, &sigact, NULL); + sigaction(SIGTERM, &sigact, NULL); + + memset(&sigact, 0, sizeof(sigact)); + sigact.sa_handler = ignore; + sigaction(SIGUSR1, &sigact, NULL); + sigaction(SIGUSR2, &sigact, NULL); + + int rc = celixLauncher_launchWithConfigAndProps(config_file, &framework, packedConfig); + if (rc == 0) { + celixLauncher_waitForShutdown(framework); + celixLauncher_destroy(framework); + } + return rc; +} + +static void show_usage(char* prog_name) { + printf("Usage:\n %s [path/to/config.properties]\n\n", basename(prog_name)); +} + +static void shutdown_framework(int signal) { + if (framework != NULL) { + celixLauncher_stop(framework); //NOTE main thread will destroy + } +} + +static void ignore(int signal) { + //ignoring for signal SIGUSR1, SIGUSR2. Can be used on threads +} + +int celixLauncher_launch(const char *configFile, framework_pt *framework) { + return celixLauncher_launchWithConfigAndProps(configFile, framework, NULL); +} + +static int celixLauncher_launchWithConfigAndProps(const char *configFile, framework_pt *framework, properties_pt packedConfig){ + int status = 0; + FILE *config = fopen(configFile, "r"); + + if (config != NULL && packedConfig != NULL) { + status = celixLauncher_launchWithStreamAndProps(config, framework, packedConfig); + } else if (config != NULL) { + status = celixLauncher_launchWithStream(config, framework); + } else if (packedConfig != NULL) { + status = celixLauncher_launchWithProperties(packedConfig, framework); + } else { + fprintf(stderr, "Error: invalid or non-existing configuration file: '%s'.", configFile); + perror(""); + status = 1; + } + + return status; +} + +int celixLauncher_launchWithStream(FILE *stream, framework_pt *framework) { + int status = 0; + + properties_pt config = properties_loadWithStream(stream); + fclose(stream); + // Make sure we've read it and that nothing went wrong with the file access... + if (config == NULL) { + fprintf(stderr, "Error: invalid configuration file"); + perror(NULL); + status = 1; + } + else { + status = celixLauncher_launchWithProperties(config, framework); + } + + return status; +} + +static int celixLauncher_launchWithStreamAndProps(FILE *stream, framework_pt *framework, properties_pt packedConfig){ + int status = 0; + + properties_pt runtimeConfig = properties_loadWithStream(stream); + fclose(stream); + + // Make sure we've read it and that nothing went wrong with the file access... + // If there is no runtimeConfig, the packedConfig can be stored as global config + if (runtimeConfig == NULL){ + runtimeConfig = packedConfig; + } + + if (runtimeConfig == NULL) { + fprintf(stderr, "Error: invalid configuration file"); + perror(NULL); + status = 1; + } else { + // Check if there's a pre-compiled config available + if (packedConfig != NULL){ + // runtimeConfig and packedConfig must be merged + // when a duplicate of a key is available, the runtimeConfig must be prioritized + + hash_map_iterator_t iter = hashMapIterator_construct(packedConfig); + + hash_map_entry_pt entry = hashMapIterator_nextEntry(&iter); + + while (entry != NULL) { + const char * key = (const char *) hashMapEntry_getKey(entry); + const char * value = (const char *) hashMapEntry_getValue(entry); + + // Check existence of key in runtimeConfig + if (!hashMap_containsKey(runtimeConfig, key)) { + properties_set(runtimeConfig, key, value); + } + + entry = hashMapIterator_nextEntry(&iter); + if (entry != NULL) { + key = (const char *) hashMapEntry_getKey(entry); + value = (const char *) hashMapEntry_getValue(entry); + } + } + + // normally, the framework_destroy will clean up the properties_pt + // since there are 2 properties_pt available (runtimeConfig and packedConfig) + // the packedConfig must be destroyed + properties_destroy(packedConfig); + } + + status = celixLauncher_launchWithProperties(runtimeConfig, framework); + } + + return status; +} + +int celixLauncher_launchWithProperties(properties_pt config, framework_pt *framework) { + celix_status_t status; +#ifndef CELIX_NO_CURLINIT + // Before doing anything else, let's setup Curl + curl_global_init(CURL_GLOBAL_NOTHING); +#endif + + const char* autoStartProp = properties_get(config, "cosgi.auto.start.1"); + char* autoStart = NULL; + if (autoStartProp != NULL) { + autoStart = strndup(autoStartProp, 1024*10); + } + + status = framework_create(framework, config); + bundle_pt fwBundle = NULL; + if (status == CELIX_SUCCESS) { + status = fw_init(*framework); + if (status == CELIX_SUCCESS) { + // Start the system bundle + status = framework_getFrameworkBundle(*framework, &fwBundle); + + if(status == CELIX_SUCCESS){ + bundle_start(fwBundle); + + char delims[] = " "; + char *result = NULL; + char *save_ptr = NULL; + linked_list_pt bundles; + array_list_pt installed = NULL; + bundle_context_pt context = NULL; + linked_list_iterator_pt iter = NULL; + unsigned int i; + + linkedList_create(&bundles); - result = strtok_r(autoStart, delims, &save_ptr); - while (result != NULL) { - char *location = strdup(result); - linkedList_addElement(bundles, location); - result = strtok_r(NULL, delims, &save_ptr); ++ if (autoStart != NULL) { ++ result = strtok_r(autoStart, delims, &save_ptr); ++ while (result != NULL) { ++ char *location = strdup(result); ++ linkedList_addElement(bundles, location); ++ result = strtok_r(NULL, delims, &save_ptr); ++ } + } + // First install all bundles + // Afterwards start them + arrayList_create(&installed); + bundle_getContext(fwBundle, &context); + iter = linkedListIterator_create(bundles, 0); + while (linkedListIterator_hasNext(iter)) { + bundle_pt current = NULL; + char *location = (char *) linkedListIterator_next(iter); + if (bundleContext_installBundle(context, location, ¤t) == CELIX_SUCCESS) { + // Only add bundle if it is installed correctly + arrayList_add(installed, current); + } else { + printf("Could not install bundle from %s\n", location); + } + linkedListIterator_remove(iter); + free(location); + } + linkedListIterator_destroy(iter); + linkedList_destroy(bundles); + + for (i = 0; i < arrayList_size(installed); i++) { + bundle_pt installedBundle = (bundle_pt) arrayList_get(installed, i); + bundle_startWithOptions(installedBundle, 0); + } + + arrayList_destroy(installed); + } + } + } + + if (status != CELIX_SUCCESS) { + printf("Problem creating framework\n"); + } + + printf("Launcher: Framework Started\n"); + + free(autoStart); + + return status; +} + +void celixLauncher_waitForShutdown(framework_pt framework) { + framework_waitForStop(framework); +} + +void celixLauncher_destroy(framework_pt framework) { + framework_destroy(framework); + +#ifndef CELIX_NO_CURLINIT + // Cleanup Curl + curl_global_cleanup(); +#endif + + printf("Launcher: Exit\n"); +} + +void celixLauncher_stop(framework_pt framework) { + bundle_pt fwBundle = NULL; + if( framework_getFrameworkBundle(framework, &fwBundle) == CELIX_SUCCESS){ + bundle_stop(fwBundle); + } +} http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/log_service/CMakeLists.txt ---------------------------------------------------------------------- diff --cc log_service/CMakeLists.txt index 70afb0e,856e21d..bd59961 --- a/log_service/CMakeLists.txt +++ b/log_service/CMakeLists.txt @@@ -18,49 -18,37 +18,50 @@@ celix_subproject(LOG_SERVICE "Option to enable building the Log Service bundles" ON DEPS framework) if (LOG_SERVICE) + 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> + ) + install(TARGETS log_service_api EXPORT celix) + install(DIRECTORY include/ DESTINATION include/celix/log_service) + + add_library(log_helper STATIC src/log_helper.c) ++ set_target_properties(log_helper PROPERTIES OUTPUT_NAME "celix_log_helper") + target_include_directories(log_helper PUBLIC + $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/loghelper_include> + $<INSTALL_INTERFACE:include/celix/log_helper> + ) + target_link_libraries(log_helper PUBLIC Celix::framework log_service_api) + install(TARGETS log_helper EXPORT celix DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT log_service) + install(DIRECTORY loghelper_include/ DESTINATION include/celix/log_helper COMPONENT log_service) + - add_bundle(log_service + add_celix_bundle(log_service SYMBOLIC_NAME "apache_celix_log_service" NAME "Apache Celix Log Service" VERSION "1.1.0" SOURCES - private/src/log - private/src/log_entry - private/src/log_factory - private/src/log_service_impl - private/src/log_service_activator - private/src/log_reader_service_impl - - private/include/log.h - private/include/log_factory.h - private/include/log_reader_service_impl.h - private/include/log_service_impl.h + src/log + src/log_entry + src/log_factory + src/log_service_impl + src/log_service_activator + src/log_reader_service_impl ) - install_bundle(log_service + install_celix_bundle(log_service HEADERS - public/include/log_service.h - public/include/log_reader_service.h - public/include/log_listener.h - public/include/log_entry.h - public/include/log_helper.h - RESOURCES - public/src/log_helper.c + include/log_service.h + include/log_reader_service.h + include/log_listener.h + include/log_entry.h ) - - include_directories("${PROJECT_SOURCE_DIR}/utils/public/include") - include_directories("${PROJECT_SOURCE_DIR}/log_service/public/include") - include_directories("${PROJECT_SOURCE_DIR}/log_service/private/include") - target_link_libraries(log_service celix_framework) + + target_include_directories(log_service PRIVATE src) + target_link_libraries(log_service PRIVATE log_service_api) + + #Setup target aliases to match external usage + add_library(Celix::log_service_api ALIAS log_service_api) + add_library(Celix::log_service ALIAS log_service) + add_library(Celix::log_helper ALIAS log_helper) endif (LOG_SERVICE) http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/log_writer/log_writer/CMakeLists.txt ---------------------------------------------------------------------- diff --cc log_writer/log_writer/CMakeLists.txt index 09aa9cf,0000000..cc6b8eb mode 100644,000000..100644 --- a/log_writer/log_writer/CMakeLists.txt +++ b/log_writer/log_writer/CMakeLists.txt @@@ -1,24 -1,0 +1,24 @@@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +add_library(log_writer_common STATIC + src/log_writer.c + src/log_writer_activator.c +) +target_include_directories(log_writer_common PRIVATE src) +target_include_directories(log_writer_common PUBLIC include) - target_link_libraries(log_writer_common PUBLIC Celix::log_service_api Celix::framework) ++target_link_libraries(log_writer_common PUBLIC Celix::log_service_api Celix::framework) http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/log_writer/log_writer_stdout/CMakeLists.txt ---------------------------------------------------------------------- diff --cc log_writer/log_writer_stdout/CMakeLists.txt index 6070b2e,6502792..94effae --- a/log_writer/log_writer_stdout/CMakeLists.txt +++ b/log_writer/log_writer_stdout/CMakeLists.txt @@@ -15,14 -15,22 +15,14 @@@ # specific language governing permissions and limitations # under the License. - add_bundle(log_writer_stdout -add_celix_bundle(log_writer ++add_celix_bundle(log_writer_stdout SYMBOLIC_NAME "apache_celix_log_writer" VERSION "1.1.0" NAME "Apache Celix Log Writer" SOURCES - ${PROJECT_SOURCE_DIR}/log_writer/log_writer/private/src/log_writer_activator - ${PROJECT_SOURCE_DIR}/log_writer/log_writer/private/src/log_writer - ${PROJECT_SOURCE_DIR}/log_writer/log_writer/private/include/log_writer.h - - private/src/log_writer_stdout + src/log_writer_stdout ) - install_bundle(log_writer_stdout) -install_celix_bundle(log_writer) - -target_link_libraries(log_writer celix_framework) - -include_directories("${PROJECT_SOURCE_DIR}/utils/public/include") -include_directories("${PROJECT_SOURCE_DIR}/log_service/public/include") -include_directories("${PROJECT_SOURCE_DIR}/log_writer/log_writer/private/include") ++install_celix_bundle(log_writer_stdout) + - target_link_libraries(log_writer_stdout PRIVATE Celix::log_service_api log_writer_common) ++target_link_libraries(log_writer_stdout PRIVATE Celix::log_service_api log_writer_common) http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/log_writer/log_writer_syslog/CMakeLists.txt ---------------------------------------------------------------------- diff --cc log_writer/log_writer_syslog/CMakeLists.txt index b98b914,faa7905..e2003d5 --- a/log_writer/log_writer_syslog/CMakeLists.txt +++ b/log_writer/log_writer_syslog/CMakeLists.txt @@@ -23,10 -23,18 +23,10 @@@ if (LOG_WRITER_SYSLOG SYMBOLIC_NAME "apache_celix_log_writer_syslog" NAME "Apache Celix Log Writer Syslog" SOURCES - ${PROJECT_SOURCE_DIR}/log_writer/log_writer/private/src/log_writer_activator - ${PROJECT_SOURCE_DIR}/log_writer/log_writer/private/src/log_writer - ${PROJECT_SOURCE_DIR}/log_writer/log_writer/private/include/log_writer.h - - private/src/log_writer_syslog + private/src/log_writer_syslog ) - install_bundle(log_writer_syslog) + install_celix_bundle(log_writer_syslog) - - target_link_libraries(log_writer_syslog celix_framework) - - include_directories("${PROJECT_SOURCE_DIR}/utils/public/include") - include_directories("${PROJECT_SOURCE_DIR}/log_service/public/include") - include_directories("${PROJECT_SOURCE_DIR}/log_writer/log_writer/private/include") + + target_link_libraries(log_writer_syslog PRIVATE log_writer_common) endif (LOG_WRITER_SYSLOG) http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/pubsub/CMakeLists.txt ---------------------------------------------------------------------- diff --cc pubsub/CMakeLists.txt index 79f8168,5afc296..e3db995 --- a/pubsub/CMakeLists.txt +++ b/pubsub/CMakeLists.txt @@@ -34,12 -35,13 +34,12 @@@ if (PUBSUB add_subdirectory(keygen) add_subdirectory(mock) + add_subdirectory(examples) if (ENABLE_TESTING) - option(BUILD_PUBSUB_TESTS "Enable Tests for PUBSUB" OFF) + option(BUILD_PUBSUB_TESTS "Enable Tests for PUBSUB" OFF) endif() - if (ENABLE_TESTING AND BUILD_PUBSUB_TESTS) + if (ENABLE_TESTING AND BUILD_PUBSUB_TESTS AND BUILD_PUBSUB_PSA_ZMQ) add_subdirectory(test) endif() http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/pubsub/examples/CMakeLists.txt ---------------------------------------------------------------------- diff --cc pubsub/examples/CMakeLists.txt index b79b101,22ca5ca..6703324 --- a/pubsub/examples/CMakeLists.txt +++ b/pubsub/examples/CMakeLists.txt @@@ -17,216 -17,3 +17,216 @@@ add_subdirectory(pubsub) add_subdirectory(mp_pubsub) + +find_program(ETCD_CMD NAMES etcd) +find_program(XTERM_CMD NAMES xterm) + +# UDP Multicast - add_deploy(pubsub_publisher_udp_mc ++add_celix_container(pubsub_publisher_udp_mc + GROUP pubsub + BUNDLES + Celix::shell + Celix::shell_tui + Celix::pubsub_serializer_json + Celix::pubsub_discovery_etcd + Celix::pubsub_topology_manager + Celix::pubsub_admin_udp_multicast + celix_pubsub_poi_publisher + celix_pubsub_poi_publisher2 + ) + - add_deploy("pubsub_subscriber_udp_mc" ++add_celix_container("pubsub_subscriber_udp_mc" + GROUP "pubsub" + BUNDLES + Celix::shell + Celix::shell_tui + Celix::pubsub_serializer_json + Celix::pubsub_discovery_etcd + Celix::pubsub_topology_manager + Celix::pubsub_admin_udp_multicast + celix_pubsub_poi_subscriber + ) + - add_deploy("pubsub_subscriber2_udp_mc" ++add_celix_container("pubsub_subscriber2_udp_mc" + GROUP "pubsub" + BUNDLES + Celix::shell + Celix::shell_tui + Celix::pubsub_serializer_json + Celix::pubsub_discovery_etcd + Celix::pubsub_topology_manager + Celix::pubsub_admin_udp_multicast + celix_pubsub_poi_subscriber + ) + +if (ETCD_CMD AND XTERM_CMD) + #Runtime starting a publish and subscriber for udp mc + add_runtime(pubsub_rt_upd_mc + NAME udp_mc + GROUP pubsub + DEPLOYMENTS + pubsub_publisher_udp_mc + pubsub_subscriber_udp_mc + pubsub_subscriber2_udp_mc + COMMANDS + etcd + USE_TERM + ) +endif () + +if (BUILD_PUBSUB_PSA_ZMQ) + + # Dynamic ZMQ / UDP admin - add_deploy("pubsub_publisher" ++ add_celix_container("pubsub_publisher" + GROUP "pubsub" + BUNDLES + Celix::shell + Celix::shell_tui + Celix::pubsub_serializer_json + Celix::pubsub_discovery_etcd + Celix::pubsub_topology_manager + Celix::pubsub_admin_zmq + Celix::pubsub_admin_udp_multicast + celix_pubsub_poi_publisher + celix_pubsub_poi_publisher2 + PROPERTIES + poi1.psa=zmq + poi2.psa=udp + ) + - add_deploy("pubsub_subscriber" ++ add_celix_container("pubsub_subscriber" + GROUP "pubsub" + BUNDLES + Celix::shell + Celix::shell_tui + Celix::pubsub_serializer_json + Celix::pubsub_discovery_etcd + Celix::pubsub_topology_manager + Celix::pubsub_admin_zmq + Celix::pubsub_admin_udp_multicast + celix_pubsub_poi_subscriber + PROPERTIES + poi1.psa=zmq + poi2.psa=udp + ) + + # ZMQ - add_deploy("pubsub_zmq" ++ add_celix_container("pubsub_zmq" + GROUP "pubsub" + BUNDLES + Celix::shell + Celix::shell_tui + Celix::pubsub_serializer_json + Celix::pubsub_discovery_etcd + Celix::pubsub_topology_manager - org.apache.celix.pubsub_admin.PubSubAdminZmq ++ Celix::pubsub_admin_zmq + celix_pubsub_poi_publisher + celix_pubsub_poi_subscriber + ) + - add_deploy("pubsub_publisher_zmq" ++ add_celix_container("pubsub_publisher_zmq" + GROUP "pubsub" + BUNDLES + Celix::shell + Celix::shell_tui + Celix::pubsub_serializer_json + Celix::pubsub_discovery_etcd + Celix::pubsub_topology_manager + Celix::pubsub_admin_zmq + celix_pubsub_poi_publisher + celix_pubsub_poi_publisher2 + PROPERTIES + pubsub.scope=my_small_scope + ) + - add_deploy("pubsub_subscriber_zmq" ++ add_celix_container("pubsub_subscriber_zmq" + GROUP "pubsub" + BUNDLES + Celix::shell + Celix::shell_tui + Celix::pubsub_serializer_json + Celix::pubsub_discovery_etcd + Celix::pubsub_topology_manager - org.apache.celix.pubsub_admin.PubSubAdminZmq ++ Celix::pubsub_admin_zmq + celix_pubsub_poi_subscriber + ) + - add_deploy("pubsub_subscriber2_zmq" ++ add_celix_container("pubsub_subscriber2_zmq" + GROUP "pubsub" + BUNDLES + Celix::shell + Celix::shell_tui + Celix::pubsub_serializer_json + Celix::pubsub_discovery_etcd + Celix::pubsub_topology_manager + Celix::pubsub_admin_zmq + celix_pubsub_poi_subscriber + + ) + + # ZMQ Multipart - add_deploy("pubsub_mp_subscriber_zmq" ++ add_celix_container("pubsub_mp_subscriber_zmq" + GROUP "pubsub" + BUNDLES + Celix::shell + Celix::shell_tui + Celix::pubsub_serializer_json + Celix::pubsub_discovery_etcd + Celix::pubsub_topology_manager + Celix::pubsub_admin_zmq + org.apache.celix.pubsub_subscriber.MpSubscriber + ) + - add_deploy("pubsub_mp_publisher_zmq" ++ add_celix_container("pubsub_mp_publisher_zmq" + GROUP "pubsub" + BUNDLES + Celix::shell + Celix::shell_tui + Celix::pubsub_serializer_json + Celix::pubsub_discovery_etcd + Celix::pubsub_topology_manager + Celix::pubsub_admin_zmq + org.apache.celix.pubsub_publisher.MpPublisher + ) + + if (ETCD_CMD AND XTERM_CMD) + #Runtime starting two bundles using both zmq and upd mc pubsub + add_runtime(pubsub_rt_zmq_udpmc_combi + NAME combi + GROUP pubsub + DEPLOYMENTS + pubsub_publisher_zmq + pubsub_subscriber_zmq + pubsub_subscriber_zmq + COMMANDS + etcd + USE_TERM + ) + + #Runtime starting a publish and 2 subscribers for zmq + add_runtime(pubsub_rt_zmq + NAME zmq + GROUP pubsub + DEPLOYMENTS + pubsub_publisher + pubsub_subscriber_zmq + pubsub_subscriber2_zmq + COMMANDS + etcd + USE_TERM + ) + + #Runtime starting a multipart (multiple message in one send) publish and subscriber for zmq + add_runtime(pubsub_rt_multipart_zmq + NAME zmq_multipart + GROUP pubsub + DEPLOYMENTS + pubsub_mp_subscriber_zmq + pubsub_mp_publisher_zmq + COMMANDS + etcd + USE_TERM + ) + endif () + +endif() http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/pubsub/examples/mp_pubsub/publisher/CMakeLists.txt ---------------------------------------------------------------------- diff --cc pubsub/examples/mp_pubsub/publisher/CMakeLists.txt index e837d7f,fef69e4..653387e --- a/pubsub/examples/mp_pubsub/publisher/CMakeLists.txt +++ b/pubsub/examples/mp_pubsub/publisher/CMakeLists.txt @@@ -15,17 -15,22 +15,17 @@@ # specific language governing permissions and limitations # under the License. - add_bundle(org.apache.celix.pubsub_publisher.MpPublisher -include_directories("private/include") -include_directories("${PROJECT_SOURCE_DIR}/framework/public/include") -include_directories("${PROJECT_SOURCE_DIR}/pubsub/pubsub_common/public/include") -include_directories("${PROJECT_SOURCE_DIR}/pubsub/api/pubsub") -include_directories("${PROJECT_SOURCE_DIR}/pubsub/examples/mp_pubsub/common/include") - + add_celix_bundle(org.apache.celix.pubsub_publisher.MpPublisher SYMBOLIC_NAME "apache_celix_pubsub_mp_publisher" VERSION "1.0.0" SOURCES private/src/mp_pub_activator.c private/src/mp_publisher.c - ${PROJECT_SOURCE_DIR}/pubsub/pubsub_common/public/src/pubsub_utils.c ) +target_link_libraries(org.apache.celix.pubsub_publisher.MpPublisher PRIVATE Celix::framework Celix::pubsub_api) +target_include_directories(org.apache.celix.pubsub_publisher.MpPublisher PRIVATE private/include) - bundle_files(org.apache.celix.pubsub_publisher.MpPublisher + celix_bundle_files(org.apache.celix.pubsub_publisher.MpPublisher ${PROJECT_SOURCE_DIR}/pubsub/examples/mp_pubsub/msg_descriptors/msg_ew.descriptor ${PROJECT_SOURCE_DIR}/pubsub/examples/mp_pubsub/msg_descriptors/msg_ide.descriptor ${PROJECT_SOURCE_DIR}/pubsub/examples/mp_pubsub/msg_descriptors/msg_kinematics.descriptor
