Author: pnoltes Date: Tue Sep 9 20:03:56 2014 New Revision: 1623876 URL: http://svn.apache.org/r1623876 Log: CELIX-144: Changed FindCelix, additional include(..) not needed anymore. assuming celix binaries/headers are findable relative form FindCELIX.cmake. Also exports CELIX_BUNDLES_DIR for use in the deploy.cmake files. Packinging now regonizes bunles with a full path (e.g. using CELIX_BUNDLES_DIR) and add those bundles to the deployment.
Modified: celix/trunk/cmake/FindCELIX.cmake celix/trunk/cmake/cmake_celix/Packaging.cmake Modified: celix/trunk/cmake/FindCELIX.cmake URL: http://svn.apache.org/viewvc/celix/trunk/cmake/FindCELIX.cmake?rev=1623876&r1=1623875&r2=1623876&view=diff ============================================================================== --- celix/trunk/cmake/FindCELIX.cmake (original) +++ celix/trunk/cmake/FindCELIX.cmake Tue Sep 9 20:03:56 2014 @@ -16,39 +16,55 @@ # under the License. -# - Try to find Celix +# - Try to find Celix define the variables for the binaries/headers and include +# the Celix cmake modules needed to build bundles +# # Once done this will define # CELIX_FOUND - System has Apache Celix # CELIX_INCLUDE_DIRS - The Apache Celix include directories # CELIX_LIBRARIES - The libraries needed to use Apache Celix -## # CELIX_LAUNCHER - The path to the celix launcher +# CELIX_BUNDLES_DIR - The path where the Celix provided bundles are installed + +set(CELIX_DIR_FROM_FINDCELIX "${CMAKE_CURRENT_LIST_DIR}/../../../..") + find_path(CELIX_INCLUDE_DIR celix_errno.h - PATHS $ENV{CELIX_DIR} ${CELIX_DIR} /usr /usr/local + PATHS ${CELIX_DIR_FROM_FINDCELIX} $ENV{CELIX_DIR} ${CELIX_DIR} /usr /usr/local PATH_SUFFIXES include include/celix) find_library(CELIX_FRAMEWORK_LIBRARY NAMES celix_framework - PATHS $ENV{CELIX_DIR} ${CELIX_DIR} /usr /usr/local + PATHS ${CELIX_DIR_FROM_FINDCELIX} $ENV{CELIX_DIR} ${CELIX_DIR} /usr /usr/local PATH_SUFFIXES lib lib64) find_library(CELIX_UTILS_LIBRARY NAMES celix_utils - PATHS $ENV{CELIX_DIR} ${CELIX_DIR} /usr /usr/local + PATHS ${CELIX_DIR_FROM_FINDCELIX} $ENV{CELIX_DIR} ${CELIX_DIR} /usr /usr/local PATH_SUFFIXES lib lib64) find_program(CELIX_LAUNCHER NAMES celix - PATHS $ENV{CELIX_DIR} ${CELIX_DIR} /usr /usr/local + PATHS ${CELIX_DIR_FROM_FINDCELIX} $ENV{CELIX_DIR} ${CELIX_DIR} /usr /usr/local 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) + +#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) + + include(FindPackageHandleStandardArgs) # handle the QUIETLY and REQUIRED arguments and set CELIX_FOUND to TRUE # if all listed variables are TRUE find_package_handle_standard_args(CELIX DEFAULT_MSG - CELIX_FRAMEWORK_LIBRARY CELIX_UTILS_LIBRARY CELIX_INCLUDE_DIR CELIX_LAUNCHER) -mark_as_advanced(CELIX_INCLUDE_DIR CELIX_FRAMEWORK_LIBRARY CELIX_UTILS_LIBRARY CELIX_LAUNCHER) + CELIX_FRAMEWORK_LIBRARY CELIX_UTILS_LIBRARY CELIX_INCLUDE_DIR CELIX_LAUNCHER CELIX_CMAKECELIX_FILE) +mark_as_advanced(CELIX_INCLUDE_DIR CELIX_FRAMEWORK_LIBRARY CELIX_UTILS_LIBRARY CELIX_LAUNCHER CELIX_CMAKECELIX_FILE) if(CELIX_FOUND) set(CELIX_LIBRARIES ${CELIX_FRAMEWORK_LIBRARY} ${CELIX_UTILS_LIBRARY}) set(CELIX_INCLUDE_DIRS ${CELIX_INCLUDE_DIR}) + include(${CELIX_CMAKECELIX_FILE}) endif() Modified: celix/trunk/cmake/cmake_celix/Packaging.cmake URL: http://svn.apache.org/viewvc/celix/trunk/cmake/cmake_celix/Packaging.cmake?rev=1623876&r1=1623875&r2=1623876&view=diff ============================================================================== --- celix/trunk/cmake/cmake_celix/Packaging.cmake (original) +++ celix/trunk/cmake/cmake_celix/Packaging.cmake Tue Sep 9 20:03:56 2014 @@ -336,15 +336,25 @@ MACRO(deploy) FOREACH(BUNDLE ${DEPLOY_BUNDLES}) SET(DEP_NAME ${DEPLOY_NAME}_${BUNDLE}) - get_property(bundle_file TARGET ${BUNDLE} PROPERTY BUNDLE) - add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/deploy/${DEPLOY_NAME}/bundles/${BUNDLE}.zip - COMMAND ${CMAKE_COMMAND} -E copy ${bundle_file} - ${CMAKE_CURRENT_BINARY_DIR}/deploy/${DEPLOY_NAME}/bundles/${BUNDLE}.zip - DEPENDS ${BUNDLE} - COMMENT "Deploying ${BUNDLE} to ${DEPLOY_NAME}" - ) - SET(BUNDLES "${BUNDLES} bundles/${BUNDLE}.zip") - SET(DEPS ${DEPS};${CMAKE_CURRENT_BINARY_DIR}/deploy/${DEPLOY_NAME}/bundles/${BUNDLE}.zip) + IF(EXISTS ${BUNDLE}) #it is a full path not a bundle name (e.g. a target) + get_filename_component(BUNDLE_NAME ${BUNDLE} NAME_WE) + add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/deploy/${DEPLOY_NAME}/bundles/${BUNDLE_NAME}.zip + COMMAND ${CMAKE_COMMAND} -E copy ${BUNDLE} + ${CMAKE_CURRENT_BINARY_DIR}/deploy/${DEPLOY_NAME}/bundles/${BUNDLE_NAME}.zip + COMMENT "Deploying ${BUNDLE} to ${DEPLOY_NAME}" + ) + ELSE() + set(BUNDLE_NAME ${BUNDLE}) + get_property(bundle_file TARGET ${BUNDLE} PROPERTY BUNDLE) + add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/deploy/${DEPLOY_NAME}/bundles/${BUNDLE}.zip + COMMAND ${CMAKE_COMMAND} -E copy ${bundle_file} + ${CMAKE_CURRENT_BINARY_DIR}/deploy/${DEPLOY_NAME}/bundles/${BUNDLE}.zip + DEPENDS ${BUNDLE} + COMMENT "Deploying ${BUNDLE} to ${DEPLOY_NAME}" + ) + ENDIF() + SET(BUNDLES "${BUNDLES} bundles/${BUNDLE_NAME}.zip") + SET(DEPS ${DEPS};${CMAKE_CURRENT_BINARY_DIR}/deploy/${DEPLOY_NAME}/bundles/${BUNDLE_NAME}.zip) ENDFOREACH(BUNDLE) FOREACH(BUNDLE ${DEPLOY_DRIVERS})