export FairMQ targets and install headers hierarchically

This commit is contained in:
Dennis Klein 2017-04-05 13:51:31 +02:00 committed by Mohammad Al-Turany
parent 608e34f26d
commit c41cf318bd

View File

@ -68,6 +68,8 @@ set(FAIRMQ_HEADER_FILES
devices/FairMQProxy.h devices/FairMQProxy.h
devices/FairMQSink.h devices/FairMQSink.h
devices/FairMQSplitter.h devices/FairMQSplitter.h
logger/logger.h
logger/logger_def.h
options/FairMQEventManager.h options/FairMQEventManager.h
options/FairMQParser.h options/FairMQParser.h
options/FairMQProgOptions.h options/FairMQProgOptions.h
@ -98,12 +100,6 @@ if(NANOMSG_FOUND)
) )
endif() endif()
# TODO only for transition to namespaces
set(FAIRMQ_HEADER_FILES_NAMESPACED
logger/logger.h
logger/logger_def.h
)
if("${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}" VERSION_LESS "1.56") if("${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}" VERSION_LESS "1.56")
set(FAIRMQ_HEADER_FILES_NAMESPACED ${FAIRMQ_HEADER_FILES_NAMESPACED} set(FAIRMQ_HEADER_FILES_NAMESPACED ${FAIRMQ_HEADER_FILES_NAMESPACED}
logger/fairroot_null_deleter.h logger/fairroot_null_deleter.h
@ -273,6 +269,8 @@ install(
TARGETS # FairMQFull, tests are not installed TARGETS # FairMQFull, tests are not installed
${FAIRMQ_FULL_TARGETS} ${FAIRMQ_FULL_TARGETS}
EXPORT FairMQ
LIBRARY LIBRARY
DESTINATION lib DESTINATION lib
COMPONENT fairmq COMPONENT fairmq
@ -282,14 +280,8 @@ install(
COMPONENT fairmq COMPONENT fairmq
) )
# TODO only during transition to namespaces
install(FILES ${FAIRMQ_HEADER_FILES}
DESTINATION include
COMPONENT fairmq
)
# preserve relative path and prepend fairmq # preserve relative path and prepend fairmq
foreach(HEADER ${FAIRMQ_HEADER_FILES_NAMESPACED}) foreach(HEADER ${FAIRMQ_HEADER_FILES})
get_filename_component(_path ${HEADER} DIRECTORY) get_filename_component(_path ${HEADER} DIRECTORY)
file(TO_CMAKE_PATH include/fairmq/${_path} _destination) file(TO_CMAKE_PATH include/fairmq/${_path} _destination)
if("${_path}" STREQUAL "logger") if("${_path}" STREQUAL "logger")
@ -305,6 +297,15 @@ foreach(HEADER ${FAIRMQ_HEADER_FILES_NAMESPACED})
endif() endif()
endforeach() endforeach()
# export FairMQ targets
install(
EXPORT FairMQ
DESTINATION include/cmake
NAMESPACE FairRoot::
EXPORT_LINK_INTERFACE_LIBRARIES
COMPONENT fairmq
)
# use the following target to only install the fairmq component # use the following target to only install the fairmq component
add_custom_target(FairMQInstall add_custom_target(FairMQInstall
DEPENDS FairMQFull DEPENDS FairMQFull