cmake_minimum_required(VERSION 2.8.3)
project(hos_cpp_utils)

## Find catkin macros and libraries
find_package(catkin REQUIRED COMPONENTS
  roscpp
  hos_deps
)

## System dependencies are found with CMake's conventions
find_package(libvariant REQUIRED)


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

catkin_package(
	INCLUDE_DIRS include/${PROJECT_NAME}/
	LIBRARIES hos_cpp_utils
)

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

add_definitions(
	-std=c++11
	-fPIC
)

include_directories(
	include/${PROJECT_NAME}/
	${catkin_INCLUDE_DIRS}
	${libvariant_INCLUDE_DIR}
)

## Declare a cpp library
add_library(hos_cpp_utils STATIC
   src/hos/utils/SchemaLoader.cpp
)

target_link_libraries(hos_cpp_utils
   ${catkin_LIBRARIES}
   ${libvariant_LIBRARY}
)


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

## Mark executables and/or libraries for installation
install(TARGETS hos_cpp_utils
   ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
   LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
   RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)

## Mark cpp header files for installation
install(DIRECTORY include/${PROJECT_NAME}/
   DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
   FILES_MATCHING PATTERN "*.h"
)

install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doc
   DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
   OPTIONAL
)


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

find_package(Doxygen)
if(DOXYGEN_FOUND)
	configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY)
	add_custom_target(doc
		${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
		WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
	)
endif(DOXYGEN_FOUND)

