55 lines
1.4 KiB
CMake
55 lines
1.4 KiB
CMake
|
cmake_minimum_required(VERSION 3.13)
|
||
|
project(quickfast CXX)
|
||
|
|
||
|
option(BUILD_SHARED_LIBS "Build shared instead of static library" ON)
|
||
|
|
||
|
find_package(Boost REQUIRED COMPONENTS thread)
|
||
|
find_package(XercesC REQUIRED)
|
||
|
|
||
|
file(GLOB SOURCES
|
||
|
quickfast/Application/*.cpp
|
||
|
quickfast/Common/*.cpp
|
||
|
quickfast/Codecs/*.cpp
|
||
|
quickfast/Communication/*.cpp
|
||
|
quickfast/Messages/*.cpp
|
||
|
)
|
||
|
|
||
|
file(GLOB HEADERS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
|
||
|
quickfast/Application/*.h
|
||
|
quickfast/Common/*.h
|
||
|
quickfast/Codecs/*.h
|
||
|
quickfast/Communication/*.h
|
||
|
quickfast/Messages/*.h
|
||
|
)
|
||
|
|
||
|
if(BUILD_SHARED_LIBS)
|
||
|
add_library(quickfast SHARED ${HEADERS} ${SOURCES})
|
||
|
target_compile_definitions(quickfast PRIVATE -DQUICKFAST_BUILD_DLL)
|
||
|
else()
|
||
|
add_library(quickfast STATIC ${HEADERS} ${SOURCES})
|
||
|
target_compile_definitions(quickfast PUBLIC -DQUICKFAST_HAS_DLL=0)
|
||
|
endif()
|
||
|
|
||
|
target_include_directories(quickfast PUBLIC
|
||
|
$<INSTALL_INTERFACE:include>
|
||
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
|
||
|
$<BUILD_INTERFACE:${Boost_INCLUDE_DIRS}>
|
||
|
)
|
||
|
|
||
|
target_link_libraries(quickfast PRIVATE
|
||
|
${Boost_LIBRARIES}
|
||
|
XercesC::XercesC
|
||
|
)
|
||
|
|
||
|
install(TARGETS quickfast EXPORT quickfast-config
|
||
|
RUNTIME DESTINATION bin
|
||
|
ARCHIVE DESTINATION lib
|
||
|
LIBRARY DESTINATION lib
|
||
|
)
|
||
|
install(EXPORT quickfast-config DESTINATION share/cmake/quickfast)
|
||
|
|
||
|
foreach (HEADER ${HEADERS} )
|
||
|
get_filename_component(HEADER_DIR ${HEADER} DIRECTORY)
|
||
|
install(FILES ${HEADER} DESTINATION include/${HEADER_DIR})
|
||
|
endforeach()
|