CELIX-335: Fix run.sh generated. Generation now also works for celix based projects.
Project: http://git-wip-us.apache.org/repos/asf/celix/repo Commit: http://git-wip-us.apache.org/repos/asf/celix/commit/b19a8f6b Tree: http://git-wip-us.apache.org/repos/asf/celix/tree/b19a8f6b Diff: http://git-wip-us.apache.org/repos/asf/celix/diff/b19a8f6b Branch: refs/heads/develop Commit: b19a8f6beda1054bf0fac831124b8ff6519762f2 Parents: da797a0 Author: Pepijn Noltes <pepijnnol...@gmail.com> Authored: Fri Feb 5 11:30:46 2016 +0100 Committer: Pepijn Noltes <pepijnnol...@gmail.com> Committed: Fri Feb 5 11:30:46 2016 +0100 ---------------------------------------------------------------------- cmake/FindCELIX.cmake | 23 +++++++++++++++++------ cmake/cmake_celix/Packaging.cmake | 33 +++++++++++++++++++-------------- 2 files changed, 36 insertions(+), 20 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/celix/blob/b19a8f6b/cmake/FindCELIX.cmake ---------------------------------------------------------------------- diff --git a/cmake/FindCELIX.cmake b/cmake/FindCELIX.cmake index 9f91e5a..b2789df 100644 --- a/cmake/FindCELIX.cmake +++ b/cmake/FindCELIX.cmake @@ -31,28 +31,39 @@ set(CELIX_DIR_FROM_FINDCELIX "${CMAKE_CURRENT_LIST_DIR}/../../../..") find_path(CELIX_INCLUDE_DIR celix_errno.h PATHS ${CELIX_DIR_FROM_FINDCELIX} $ENV{CELIX_DIR} ${CELIX_DIR} /usr /usr/local - PATH_SUFFIXES include include/celix) + PATH_SUFFIXES include include/celix +) find_library(CELIX_FRAMEWORK_LIBRARY NAMES celix_framework PATHS ${CELIX_DIR_FROM_FINDCELIX} $ENV{CELIX_DIR} ${CELIX_DIR} /usr /usr/local - PATH_SUFFIXES lib lib64) + PATH_SUFFIXES lib lib64 +) find_library(CELIX_UTILS_LIBRARY NAMES celix_utils PATHS ${CELIX_DIR_FROM_FINDCELIX} $ENV{CELIX_DIR} ${CELIX_DIR} /usr /usr/local - PATH_SUFFIXES lib lib64) + PATH_SUFFIXES lib lib64 +) + +find_library(CELIX_DFI_LIBRARY NAMES celix_dfi + PATHS ${CELIX_DIR_FROM_FINDCELIX} $ENV{CELIX_DIR} ${CELIX_DIR} /usr /usr/local + PATH_SUFFIXES lib lib64 +) find_program(CELIX_LAUNCHER NAMES celix PATHS ${CELIX_DIR_FROM_FINDCELIX} $ENV{CELIX_DIR} ${CELIX_DIR} /usr /usr/local - PATH_SUFFIXES bin) + PATH_SUFFIXES bin +) find_file(CELIX_CMAKECELIX_FILE CMakeCelix.cmake PATHS ${CELIX_DIR_FROM_FINDCELIX} $ENV{CELIX_DIR} ${CELIX_DIR} /usr /usr/local - PATH_SUFFIXES share/celix/cmake/modules) + PATH_SUFFIXES share/celix/cmake/modules +) #NOTE assuming shell.zip is always installed. find_path(CELIX_BUNDLES_DIR shell.zip PATHS ${CELIX_DIR_FROM_FINDCELIX} $ENV{CELIX_DIR} ${CELIX_DIR} /usr /usr/local - PATH_SUFFIXES share/celix/bundles) + PATH_SUFFIXES share/celix/bundles +) http://git-wip-us.apache.org/repos/asf/celix/blob/b19a8f6b/cmake/cmake_celix/Packaging.cmake ---------------------------------------------------------------------- diff --git a/cmake/cmake_celix/Packaging.cmake b/cmake/cmake_celix/Packaging.cmake index ccdc33c..0521261 100644 --- a/cmake/cmake_celix/Packaging.cmake +++ b/cmake/cmake_celix/Packaging.cmake @@ -496,23 +496,28 @@ $<JOIN:$<TARGET_PROPERTY:${DEPLOY_TARGET},DEPLOY_PROPERTIES>, set(PATHS "${CMAKE_BIN_DIRECTORY}/framework:${CMAKE_BIN_DIRECTORY}/utils:${CMAKE_BIN_DIRECTORY}/dfi") configure_file("${CELIX_CMAKE_DIRECTORY}/cmake_celix/RunConfig.in" "${DEPLOY_LOCATION}/${DEPLOY_NAME}") + if(APPLE) + set(LIB_PATH_NAME "DYLD_LIBRARY_PATH") + else() + set(LIB_PATH_NAME "LD_LIBRARY_PATH") + endif() - if(APPLE) - file(GENERATE - OUTPUT ${DEPLOY_LOCATION}/run.sh - CONTENT "export DYLD_LIBRARY_PATH=$<TARGET_FILE_DIR:celix_framework>:$<TARGET_FILE_DIR:celix_utils>:$<TARGET_FILE_DIR:celix_dfi>:\${DYLD_LIBRARY_PATH} -$<TARGET_FILE:celix> $@ -" - ) - else() - file(GENERATE - OUTPUT ${DEPLOY_LOCATION}/run.sh - CONTENT "export LD_LIBRARY_PATH=$<TARGET_FILE_DIR:celix_framework>:$<TARGET_FILE_DIR:celix_utils>:$<TARGET_FILE_DIR:celix_dfi>:\${LD_LIBRARY_PATH} -$<TARGET_FILE:celix> $@ -" - ) + if (EXISTS ${CELIX_FRAMEWORK_LIBRARY}) + #Celix Based Project + get_filename_component(CELIX_LIB_DIR ${CELIX_FRAMEWORK_LIBRARY} DIRECTORY) #Note assuming all celix libs are in the same dir + set(RUN_CONTENT "export ${LIB_PATH_NAME}=${CELIX_LIB_DIR}:\${${LIB_PATH_NAME}} +${CELIX_LAUNCHER} $@") + else() + #Celix Main Project + set(RUN_CONTENT "export ${LIB_PATH_NAME}=$<TARGET_FILE_DIR:celix_framework>:$<TARGET_FILE_DIR:celix_utils>:$<TARGET_FILE_DIR:celix_dfi>:\${${LIB_PATH_NAME}} +$<TARGET_FILE:celix> $@") endif() + file(GENERATE + OUTPUT ${DEPLOY_LOCATION}/run.sh + CONTENT ${RUN_CONTENT} + ) + #TODO eclipse launcher file #####