blob: 1ddb1caae45d6f98f9bcb2694afb380bac91aae2 [file] [log] [blame]
# 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.
# - 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
# CELIX_DM_STATIC_LIB - The Celix Dependency Manager static library
# CELIX_DM_CXX_STATIC_LIB - The Celix C++ Dependency Manager static library
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
)
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
)
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
)
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
)
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
)
find_library(CELIX_DM_STATIC_LIB NAMES dependency_manager_static
PATHS ${CELIX_DIR_FROM_FINDCELIX} $ENV{CELIX_DIR} ${CELIX_DIR} /usr /usr/local
PATH_SUFFIXES lib lib64
)
if (CELIX_DM_STATIC_LIB)
set(CELIX_DM_INCLUDE_DIR ${CELIX_INCLUDE_DIR}/dependency_manager)
else()
set(CELIX_DM_INCLUDE_DIR )
endif()
find_library(CELIX_DM_CXX_STATIC_LIB NAMES dependency_manager_cxx_static
PATHS ${CELIX_DIR_FROM_FINDCELIX} $ENV{CELIX_DIR} ${CELIX_DIR} /usr /usr/local
PATH_SUFFIXES lib lib64
)
if (CELIX_DM_CXX_STATIC_LIB)
set(CELIX_DM_CXX_INCLUDE_DIR ${CELIX_INCLUDE_DIR}/dependency_manager_cxx)
else()
set(CELIX_DM_CXX_INCLUDE_DIR )
endif()
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_DFI_LIBRARY CELIX_DM_STATIC_LIB CELIX_DM_CXX_STATIC_LIB 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} ${CELIX_DFI_LIBRARY})
set(CELIX_INCLUDE_DIRS ${CELIX_INCLUDE_DIR} ${CELIX_DM_INCLUDE_DIR} ${CELIX_DM_CXX_INCLUDE_DIR})
include(${CELIX_CMAKECELIX_FILE})
endif()