1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
# Add to install includes only if outside build dir
function(add_include_dir)
unset(publics)
unset(privates)
foreach(dir ${ARGN})
file(RELATIVE_PATH rel "${PROJECT_BINARY_DIR}" "${dir}" )
if("${rel}" MATCHES "^\\.\\./")
list(APPEND publics "${dir}")
endif()
endforeach()
if(public)
target_include_directories(libpurify SYSTEM PUBLIC ${publics})
endif()
endfunction()
configure_file(config.in.h "${PROJECT_BINARY_DIR}/include/purify/config.h")
set(HEADERS
RMOperator.h logging.h FFTOperator.h kernels.h
pfitsio.h MeasurementOperator.h clean.h logging.disabled.h types.h PSFOperator.h
logging.enabled.h utilities.h "${PROJECT_BINARY_DIR}/include/purify/config.h")
set(SOURCES MeasurementOperator.cc FFTOperator.cc clean.cc utilities.cc pfitsio.cc
kernels.cc RMOperator.cc PSFOperator.cc)
if(TARGET casacore::ms)
list(APPEND SOURCES casacore.cc)
list(APPEND HEADERS casacore.h)
endif()
add_library(libpurify SHARED ${SOURCES})
set(version "${Purify_VERSION_MAJOR}.${Purify_VERSION_MINOR}.${Purify_VERSION_PATCH}")
set_target_properties(libpurify PROPERTIES VERSION ${version}
SOVERSION ${Purify_VERSION_MAJOR}.${Purify_VERSION_MINOR}
OUTPUT_NAME purify)
target_include_directories(libpurify PUBLIC
$<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/include>
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/cpp>
$<INSTALL_INTERFACE:include/>)
add_include_dir(
${Boost_INCLUDE_DIR}
${CFitsIO_INCLUDE_DIR}
${CCFits_INCLUDE_DIR}/..
)
target_link_libraries(libpurify
${FFTW3_DOUBLE_LIBRARY} ${CCFits_LIBRARY} ${CFitsIO_LIBRARY} ${Sopt_CPP_LIBRARY})
if(TARGET casacore::casa)
target_link_libraries(libpurify casacore::ms)
endif()
if(TARGET openmp::openmp)
target_link_libraries(libpurify openmp::openmp)
endif()
add_dependencies(libpurify lookup_dependencies)
install(FILES ${HEADERS} DESTINATION include/purify)
install(TARGETS libpurify
EXPORT PurifyTargets
DESTINATION share/cmake/Purify
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib/${DEB_BUILD_MULTIARCH}
ARCHIVE DESTINATION lib/${DEB_BUILD_MULTIARCH}
INCLUDES DESTINATION include
)
|