diff --git a/CMakeLists.txt b/CMakeLists.txt index 0010fee0f0d0f9e2777c46e4ff34e2e1e4cb589c..b69b8aa9438d381d504664db0804967513a4ef12 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -117,4 +117,14 @@ if(CM_ALL_AUTO_DOC) add_subdirectory("docs") endif(CM_ALL_AUTO_DOC) +# ProjectConfig + +install(EXPORT ALLTargets + NAMESPACE ALL:: + FILE ALLTargets.cmake + DESTINATION lib/cmake/ALL + ) + +#export(PACKAGE ALL) + # vim: sw=4 ts=4 et diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 283e2ceda34219ea46a2329e62030ce9215a6b0a..f0812449539e2f195e1ecbd345ff8e2ffd5774df 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,15 +1,18 @@ set(ALL_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/include) -set(ALL_HEADER_FILES ${ALL_INCLUDE_DIR}/ALL.hpp - ${ALL_INCLUDE_DIR}/ALL_LB.hpp - ${ALL_INCLUDE_DIR}/ALL_Functions.hpp - ${ALL_INCLUDE_DIR}/ALL_Histogram.hpp - ${ALL_INCLUDE_DIR}/ALL_Staggered.hpp - ${ALL_INCLUDE_DIR}/ALL_Tensor.hpp - ${ALL_INCLUDE_DIR}/ALL_ForceBased.hpp - ${ALL_INCLUDE_DIR}/ALL_Voronoi.hpp - ${ALL_INCLUDE_DIR}/ALL_Point.hpp - ${ALL_INCLUDE_DIR}/ALL_CustomExceptions.hpp) +set(ALL_HEADER_FILES + ${ALL_INCLUDE_DIR}/ALL.hpp + ${ALL_INCLUDE_DIR}/ALL_LB.hpp + ${ALL_INCLUDE_DIR}/ALL_Functions.hpp + ${ALL_INCLUDE_DIR}/ALL_Histogram.hpp + ${ALL_INCLUDE_DIR}/ALL_Staggered.hpp + ${ALL_INCLUDE_DIR}/ALL_Tensor.hpp + ${ALL_INCLUDE_DIR}/ALL_ForceBased.hpp + ${ALL_INCLUDE_DIR}/ALL_Voronoi.hpp + ${ALL_INCLUDE_DIR}/ALL_Point.hpp + ${ALL_INCLUDE_DIR}/ALL_CustomExceptions.hpp) +# todo(s.schulz): Should these be installed explicitly? +# install(FILES ${ALL_HEADER_FILES} DESTINATION include) add_library (ALL ALL.cpp ALL_fortran.cpp ${ALL_HEADER_FILES}) @@ -23,17 +26,21 @@ if(CM_ALL_VORONOI) endif(CM_ALL_VORONOI) target_include_directories(ALL PUBLIC ${MPI_CXX_INCLUDE_PATH}) -target_include_directories (ALL PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ${ALL_INCLUDE_DIR}) +target_include_directories (ALL + PUBLIC + "$<BUILD_INTERFACE:${ALL_INCLUDE_DIR}>" + "$<INSTALL_INTERFACE:include>") target_link_libraries(ALL PUBLIC ${MPI_CXX_LINK_FLAGS} ${MPI_CXX_LIBRARIES}) -install(TARGETS ALL - RUNTIME DESTINATION bin - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib - INCLUDES DESTINATION include) +install(TARGETS ALL + EXPORT ALLTargets + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + INCLUDES DESTINATION include) install(FILES ${ALL_HEADER_FILES} - DESTINATION include) + DESTINATION include) if (CM_ALL_FORTRAN) set(CMAKE_Fortran_MODULE_DIRECTORY ${CMAKE_BINARY_DIR}/modules) @@ -41,8 +48,8 @@ if (CM_ALL_FORTRAN) set_property(TARGET ALL_fortran PROPERTY LINKER_LANGUAGE Fortran) if(CM_ALL_VTK_OUTPUT) - target_include_directories(ALL_fortran PUBLIC ${VTK_INCLUDE_DIRS}) - target_link_libraries(ALL_fortran PUBLIC ${VTK_LIBRARIES}) + target_include_directories(ALL_fortran PRIVATE ${VTK_INCLUDE_DIRS}) + target_link_libraries(ALL_fortran PRIVATE ${VTK_LIBRARIES}) endif(CM_ALL_VTK_OUTPUT) #if(CM_ALL_VORONOI) # target_include_directories(ALL_fortran PUBLIC ${CM_ALL_VORO_INC}) @@ -50,10 +57,15 @@ if (CM_ALL_FORTRAN) #endif(CM_ALL_VORONOI) target_include_directories(ALL_fortran PUBLIC ${MPI_Fortran_INCLUDE_PATH}) - target_include_directories(ALL_fortran PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ${ALL_INCLUDE_DIR}) + target_include_directories(ALL_fortran + PUBLIC + "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>" + "$<INSTALL_INTERFACE:src>") + target_include_directories(ALL_fortran PRIVATE ${ALL_INCLUDE_DIR}) target_link_libraries(ALL_fortran PUBLIC ${MPI_Fortran_LINK_FLAGS} ${MPI_Fortran_LIBRARIES} ALL) - install(TARGETS ALL_fortran + install(TARGETS ALL_fortran + EXPORT ALLTargets RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib @@ -66,11 +78,12 @@ add_executable(Amalgamate Amalgamate.c) target_include_directories(Amalgamate PRIVATE ${STB_INCLUDE_DIR}) set(AMALGAMATED_FILENAME ALL_Amalgamated.hpp) add_custom_command( - TARGET ALL - POST_BUILD - COMMAND $<TARGET_FILE:Amalgamate> ${ALL_INCLUDE_DIR}/ALL.hpp ${ALL_INCLUDE_DIR} > ${AMALGAMATED_FILENAME} - ) + TARGET ALL + POST_BUILD + COMMAND $<TARGET_FILE:Amalgamate> ${ALL_INCLUDE_DIR}/ALL.hpp ${ALL_INCLUDE_DIR} > ${AMALGAMATED_FILENAME} + ) install( - FILES ${CMAKE_CURRENT_BINARY_DIR}/${AMALGAMATED_FILENAME} - TYPE INCLUDE - ) + FILES ${CMAKE_CURRENT_BINARY_DIR}/${AMALGAMATED_FILENAME} + TYPE INCLUDE + ) +# vim: sw=4 ts=4 et