cmake_minimum_required(VERSION 2.8.3)
project(hos_celix)


## Find catkin macros and libraries
find_package(catkin REQUIRED)


###################################
## catkin specific configuration ##
###################################

catkin_package(
	INCLUDE_DIRS include/${PROJECT_NAME}/
	LIBRARIES celix_framework celix_utils dependency_manager2
	CFG_EXTRAS celix-extras.cmake
)


###########
## Build ##
###########

include(ExternalProject)

ExternalProject_Add( celix_project
	SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src
	CONFIGURE_COMMAND cmake ${CMAKE_CURRENT_SOURCE_DIR}/src
		-DCMAKE_INSTALL_PREFIX=${CATKIN_DEVEL_PREFIX}
		-DBUILD_SHARED_LIBS=TRUE
		-DBUILD_FRAMEWORK=TRUE
		-DBUILD_LAUNCHER=TRUE
		-DBUILD_UTILS=TRUE
		-DBUILD_DEPENDENCY_MANAGER2=TRUE
		-DBUILD_DEPLOYMENT_ADMIN=TRUE
		-DBUILD_DEVICE_ACCESS=TRUE
		-DBUILD_EVENT_ADMIN=TRUE
		-DBUILD_LOG_SERVICE=TRUE
		-DBUILD_LOG_WRITER=TRUE
		-DBUILD_LOG_WRITER_SYSLOG=TRUE
		-DBUILD_SHELL=TRUE
		-DBUILD_SHELL_TUI=TRUE
	BUILD_COMMAND make all
	INSTALL_COMMAND make install
)

add_library( celix_framework SHARED IMPORTED )
set_property( TARGET celix_framework PROPERTY IMPORTED_LOCATION "${CATKIN_DEVEL_PREFIX}/lib/libcelix_framework.so")
add_dependencies( celix_framework celix_project )

add_library( celix_utils SHARED IMPORTED )
set_property( TARGET celix_utils PROPERTY IMPORTED_LOCATION "${CATKIN_DEVEL_PREFIX}/lib/libcelix_utils.so")
add_dependencies( celix_utils celix_project )

add_library( dependency_manager2 STATIC IMPORTED )
set_property( TARGET dependency_manager2 PROPERTY IMPORTED_LOCATION "${CATKIN_DEVEL_PREFIX}/lib/libdependency_manager2.a")
add_dependencies( dependency_manager2 celix_project )


#############
## Install ##
#############

install(DIRECTORY include/${PROJECT_NAME}/
	DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
)
install(DIRECTORY ${CATKIN_DEVEL_PREFIX}/lib/
	DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
)
install(DIRECTORY ${CATKIN_DEVEL_PREFIX}/share/celix/
	DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
)
install(DIRECTORY ${CATKIN_DEVEL_PREFIX}/bin/
	DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
	USE_SOURCE_PERMISSIONS
) 
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/cmake/
	DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/cmake
#	FILES_MATCHING PATTERN "*.cmake"
)


###################
## Documentation ##
###################

# We have no documentation, so we create an empty target
find_package(Doxygen)
if(DOXYGEN_FOUND)
	add_custom_target(doc)
endif(DOXYGEN_FOUND)

