find_package (Boost OPTIONAL_COMPONENTS iostreams) if (Boost_iostreams_FOUND) set ( files source/Interface.boost.cc ) else (Boost_iostreams_FOUND) message (STATUS "Boost::iostreams not found, data tables need to be unpacked with bunzip2 manually!") set ( files source/Interface.dummy.cc ) endif (Boost_iostreams_FOUND) add_library (CorsikaData STATIC ${files}) if (Boost_iostreams_FOUND) target_link_libraries (CorsikaData PUBLIC Boost::iostreams) endif (Boost_iostreams_FOUND) set_target_properties ( CorsikaData PROPERTIES PUBLIC_HEADER corsika_data/Interface.h ) target_include_directories ( CorsikaData PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> $<INSTALL_INTERFACE:include/> ) install ( TARGETS CorsikaData LIBRARY DESTINATION lib ARCHIVE DESTINATION lib PUBLIC_HEADER DESTINATION include/corsika_data ) # add unit test, if run inside CORSIKA if (COMMAND CORSIKA_ADD_TEST) CORSIKA_ADD_TEST (testData SOURCES source/testData.cc) set (TEST_WITH_BOOST "") if (Boost_iostreams_FOUND) set (TEST_WITH_BOOST "TEST_WITH_BOOST") endif (Boost_iostreams_FOUND) target_compile_definitions ( testData PRIVATE TESTDATA="${CMAKE_CURRENT_SOURCE_DIR}/source/test.data" ${TEST_WITH_BOOST} ) target_link_libraries ( testData CorsikaData CORSIKAtesting ) endif (COMMAND CORSIKA_ADD_TEST)