Repository: celix Updated Branches: refs/heads/feature/CELIX-335_deploy_refactoring 9ba259e91 -> 40bf19301
CElIX-335: Revert to static depenency manager ussage Project: http://git-wip-us.apache.org/repos/asf/celix/repo Commit: http://git-wip-us.apache.org/repos/asf/celix/commit/9c7892b0 Tree: http://git-wip-us.apache.org/repos/asf/celix/tree/9c7892b0 Diff: http://git-wip-us.apache.org/repos/asf/celix/diff/9c7892b0 Branch: refs/heads/feature/CELIX-335_deploy_refactoring Commit: 9c7892b0bbdf9a1e03915df495ea39af8b2077cf Parents: 9ba259e Author: Pepijn Noltes <[email protected]> Authored: Mon Jan 11 20:06:34 2016 +0100 Committer: Pepijn Noltes <[email protected]> Committed: Mon Jan 11 20:06:34 2016 +0100 ---------------------------------------------------------------------- .travis.yml | 2 +- dependency_manager/CMakeLists.txt | 22 +++++----- .../private/src/dm_activator_base.c | 45 -------------------- examples/dm_example/phase1/CMakeLists.txt | 20 ++++++--- examples/dm_example/phase2a/CMakeLists.txt | 12 +++--- examples/dm_example/phase2b/CMakeLists.txt | 17 +++++--- examples/dm_example/phase3/CMakeLists.txt | 17 +++++--- .../whiteboard/tracker_depman/CMakeLists.txt | 4 +- 8 files changed, 56 insertions(+), 83 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/celix/blob/9c7892b0/.travis.yml ---------------------------------------------------------------------- diff --git a/.travis.yml b/.travis.yml index 13f37aa..da5f3f0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,7 +18,7 @@ allow_failures: before_install: - if [ "$TRAVIS_OS_NAME" = "linux" ]; then sudo apt-get -qq update && sudo apt-get install -y uuid-dev libxml2-dev lcov libffi-dev; fi - - if [ "$TRAVIS_OS_NAME" = "osx" ]; then brew update && brew install lcov libffi && brew link --force libffi; fi + - if [ "$TRAVIS_OS_NAME" = "osx" ]; then brew update && brew install lcov libffi cmake && brew link --force libffi; fi before_script: - cmake -version http://git-wip-us.apache.org/repos/asf/celix/blob/9c7892b0/dependency_manager/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/dependency_manager/CMakeLists.txt b/dependency_manager/CMakeLists.txt index efd3be7..7a2761b 100644 --- a/dependency_manager/CMakeLists.txt +++ b/dependency_manager/CMakeLists.txt @@ -49,21 +49,20 @@ if (DEPENDENCY_MANAGER) private/src/dm_dependency_manager_impl ) - add_library(dependency_manager SHARED - private/src/dm_activator_base - private/src/dm_component_impl - private/src/dm_service_dependency - private/src/dm_event - private/src/dm_dependency_manager_impl - ) - set_target_properties(dependency_manager PROPERTIES SOVERSION 1) - target_compile_definitions(dependency_manager PRIVATE DM_USE_WEAK_DEFAULT_FUNCTIONS) + #add_library(dependency_manager SHARED + # private/src/dm_activator_base + # private/src/dm_component_impl + # private/src/dm_service_dependency + # private/src/dm_event + # private/src/dm_dependency_manager_impl + #) + #set_target_properties(dependency_manager PROPERTIES SOVERSION 1) + #target_link_libraries(dependency_manager celix_framework -undefined dynamic_load) include_directories("public/include") include_directories("private/include") include_directories("../shell/public/include") include_directories("${PROJECT_SOURCE_DIR}/utils/public/include") - target_link_libraries(dependency_manager celix_framework) target_link_libraries(dependency_manager_static celix_framework) install( @@ -79,5 +78,6 @@ if (DEPENDENCY_MANAGER) dependency_manager ) install_bundle(dm_shell) - install(TARGETS dependency_manager dependency_manager_static DESTINATION lib COMPONENT dependency_manager) + #install(TARGETS dependency_manager dependency_manager_static DESTINATION lib COMPONENT dependency_manager) + install(TARGETS dependency_manager_static DESTINATION lib COMPONENT dependency_manager) endif (DEPENDENCY_MANAGER) http://git-wip-us.apache.org/repos/asf/celix/blob/9c7892b0/dependency_manager/private/src/dm_activator_base.c ---------------------------------------------------------------------- diff --git a/dependency_manager/private/src/dm_activator_base.c b/dependency_manager/private/src/dm_activator_base.c index 2f86707..c636364 100644 --- a/dependency_manager/private/src/dm_activator_base.c +++ b/dependency_manager/private/src/dm_activator_base.c @@ -34,13 +34,7 @@ #include "bundle_activator.h" #include "dm_info.h" -#ifdef DM_USE_WEAK_DEFAULT_FUNCTIONS -celix_status_t dm_create(bundle_context_pt context, void ** userData) __attribute__((weak)); -celix_status_t dm_init(void * userData, bundle_context_pt context, dm_dependency_manager_pt manager) __attribute__((weak)); -celix_status_t dm_destroy(void * userData, bundle_context_pt context, dm_dependency_manager_pt manager) __attribute__((weak)); -#else #include "dm_activator.h" -#endif struct dm_dependency_activator_base { dm_dependency_manager_pt manager; @@ -135,42 +129,3 @@ celix_status_t bundleActivator_destroy(void * userData, bundle_context_pt contex return status; } - -#ifdef DM_USE_WEAK_DEFAULT_FUNCTIONS - -static char * dm_getSymbolicNameFromContext(bundle_context_pt context) { - celix_status_t status = CELIX_SUCCESS; - bundle_pt bundle = NULL; - module_pt module = NULL; - char *name = NULL; - if (context != NULL) { - status = bundleContext_getBundle(context, &bundle); - } - if (status == CELIX_SUCCESS) { - status = bundle_getCurrentModule(bundle, &module); - } - if (status == CELIX_SUCCESS) { - status = module_getSymbolicName(module, &name); - } - return name; -} - -celix_status_t dm_create(bundle_context_pt context, void ** userData) { - //NOTE weak version - printf("Error: Bundle '%s' should implement the dm_create function\n", dm_getSymbolicNameFromContext(context)); - *userData = NULL; - return CELIX_SUCCESS; -} - -celix_status_t dm_init(void * userData, bundle_context_pt context, dm_dependency_manager_pt manager) { - //NOTE weak version - printf("Error: Bundle '%s' should implement the dm_init function\n", dm_getSymbolicNameFromContext(context)); - return CELIX_SUCCESS; -} - -celix_status_t dm_destroy(void * userData, bundle_context_pt context, dm_dependency_manager_pt manager) { - //NOTE weak version - printf("Error: Bundle '%s' should implement the dm_destroy function\n", dm_getSymbolicNameFromContext(context)); - return CELIX_SUCCESS; -} -#endif http://git-wip-us.apache.org/repos/asf/celix/blob/9c7892b0/examples/dm_example/phase1/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/examples/dm_example/phase1/CMakeLists.txt b/examples/dm_example/phase1/CMakeLists.txt index b746200..d61fc77 100644 --- a/examples/dm_example/phase1/CMakeLists.txt +++ b/examples/dm_example/phase1/CMakeLists.txt @@ -15,18 +15,24 @@ # specific language governing permissions and limitations # under the License. +include_directories( + private/include + ../services +) + add_bundle(phase1 - SYMBOLIC_NAME phase2 + SYMBOLIC_NAME phase1 VERSION 0.0.1 SOURCES private/src/phase1_activator private/src/phase1_cmp.c ) -bundle_private_libs(phase1 dependency_manager) - -include_directories( - private/include - ../services -) +#Not possbile yet. +#bundle_private_libs(phase1 dependency_manager) +IF(APPLE) +target_link_libraries(phase1 celix_framework -Wl,-all_load dependency_manager_static) +else() +target_link_libraries(phase1 -Wl,--whole-archive dependency_manager_static -Wl,--no-whole-archive celix_framework) +ENDIF() http://git-wip-us.apache.org/repos/asf/celix/blob/9c7892b0/examples/dm_example/phase2a/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/examples/dm_example/phase2a/CMakeLists.txt b/examples/dm_example/phase2a/CMakeLists.txt index d540dc5..0884250 100644 --- a/examples/dm_example/phase2a/CMakeLists.txt +++ b/examples/dm_example/phase2a/CMakeLists.txt @@ -15,6 +15,11 @@ # specific language governing permissions and limitations # under the License. +include_directories( + private/include + ../services +) + add_bundle(phase2a SYMBOLIC_NAME phase2a VERSION 0.0.1 @@ -23,13 +28,6 @@ add_bundle(phase2a private/src/phase2a_cmp ) -include_directories( - private/include - ../services -) - -# Note as example the phase2a uses the dependency manager as static library. -# Some additional linking argument magic is needed to make this work IF(APPLE) target_link_libraries(phase2a celix_framework -Wl,-all_load dependency_manager_static) else() http://git-wip-us.apache.org/repos/asf/celix/blob/9c7892b0/examples/dm_example/phase2b/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/examples/dm_example/phase2b/CMakeLists.txt b/examples/dm_example/phase2b/CMakeLists.txt index d2d6a2f..5bd2a6e 100644 --- a/examples/dm_example/phase2b/CMakeLists.txt +++ b/examples/dm_example/phase2b/CMakeLists.txt @@ -15,6 +15,11 @@ # specific language governing permissions and limitations # under the License. +include_directories( + private/include + ../services +) + add_bundle(phase2b SYMBOLIC_NAME phase2b VERSION 0.0.1 @@ -22,9 +27,11 @@ add_bundle(phase2b private/src/phase2b_activator private/src/phase2b_cmp ) -bundle_private_libs(phase2b dependency_manager) -include_directories( - private/include - ../services -) +#bundle_private_libs(phase2b dependency_manager) + +IF(APPLE) +target_link_libraries(phase2b celix_framework -Wl,-all_load dependency_manager_static) +else() +target_link_libraries(phase2b -Wl,--whole-archive dependency_manager_static -Wl,--no-whole-archive celix_framework) +ENDIF() http://git-wip-us.apache.org/repos/asf/celix/blob/9c7892b0/examples/dm_example/phase3/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/examples/dm_example/phase3/CMakeLists.txt b/examples/dm_example/phase3/CMakeLists.txt index 496a67f..ba195cd 100644 --- a/examples/dm_example/phase3/CMakeLists.txt +++ b/examples/dm_example/phase3/CMakeLists.txt @@ -15,6 +15,11 @@ # specific language governing permissions and limitations # under the License. +include_directories( + private/include + ../services +) + add_bundle(phase3 SYMBOLIC_NAME phase3 VERSION 0.0.1 @@ -22,9 +27,11 @@ add_bundle(phase3 private/src/phase3_activator private/src/phase3_cmp ) -bundle_private_libs(phase3 dependency_manager) -include_directories( - private/include - ../services -) +#bundle_private_libs(phase3 dependency_manager) + +IF(APPLE) +target_link_libraries(phase3 celix_framework -Wl,-all_load dependency_manager_static) +else() +target_link_libraries(phase3 -Wl,--whole-archive dependency_manager_static -Wl,--no-whole-archive celix_framework) +ENDIF() http://git-wip-us.apache.org/repos/asf/celix/blob/9c7892b0/examples/whiteboard/tracker_depman/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/examples/whiteboard/tracker_depman/CMakeLists.txt b/examples/whiteboard/tracker_depman/CMakeLists.txt index 895da6c..a2d6287 100644 --- a/examples/whiteboard/tracker_depman/CMakeLists.txt +++ b/examples/whiteboard/tracker_depman/CMakeLists.txt @@ -30,7 +30,7 @@ include_directories("${PROJECT_SOURCE_DIR}/log_service/public/include") # Use some magic to include all symbols of the static library IF(APPLE) -target_link_libraries(tracker_depman celix_framework -Wl,-all_load dependency_manager) +target_link_libraries(tracker_depman celix_framework -Wl,-all_load dependency_manager_static) else() -target_link_libraries(tracker_depman -Wl,--whole-archive dependency_manager -Wl,--no-whole-archive celix_framework) +target_link_libraries(tracker_depman -Wl,--whole-archive dependency_manager -Wl,--no-whole-archive celix_framework_static) ENDIF()
