diff --git a/CMakeLists.txt b/CMakeLists.txt index 729755c606391c846a3c4d3c039861926e5e5225..d3d01f81a530f1f8bdde6966a13e29b73fc02334 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -53,6 +53,8 @@ project(ALL DESCRIPTION "A Loadbalacing Library" HOMEPAGE_URL "http://slms.pages.jsc.fz-juelich.de/websites/all-website/") +include(GNUInstallDirs) + # add custom find-scripts to module path set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH}) @@ -149,13 +151,13 @@ endif(CM_ALL_AUTO_DOC) install(EXPORT ALLTargets NAMESPACE ALL:: FILE ALLTargets.cmake - DESTINATION lib/cmake/ALL + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/ALL ) include(CMakePackageConfigHelpers) configure_package_config_file(${CMAKE_CURRENT_BINARY_DIR}/Config.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/ALLConfig.cmake" - INSTALL_DESTINATION lib/cmake/ALL + INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/ALL ) write_basic_package_version_file( "${CMAKE_CURRENT_BINARY_DIR}/ALLConfigVersion.cmake" @@ -164,7 +166,7 @@ write_basic_package_version_file( install(FILES "${CMAKE_CURRENT_BINARY_DIR}/ALLConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/ALLConfigVersion.cmake" - DESTINATION lib/cmake/ALL) + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/ALL) # Create Makefile.libALL.in for inclusion in external Makefile projects # todo(s.schulz): The include directories and libraries should be auto @@ -175,15 +177,15 @@ get_target_property(_liball_defines ALL INTERFACE_COMPILE_DEFINITIONS) list(TRANSFORM _liball_defines PREPEND " -D") list(JOIN _liball_defines " " _liball_defines_string) file(WRITE ${ALL_MAKEFILE_INC} "LIBALL_DEFINES := ${_liball_defines_string}\n") -file(APPEND ${ALL_MAKEFILE_INC} "LIBALL_INCLUDE := -I\$(ALL_DIR)/include\n") +file(APPEND ${ALL_MAKEFILE_INC} "LIBALL_INCLUDE := -I\$(ALL_DIR)/${CMAKE_INSTALL_INCLUDEDIR}\n") file(APPEND ${ALL_MAKEFILE_INC} "LIBALL_LIB :=\n") if(CM_ALL_FORTRAN) - file(APPEND ${ALL_MAKEFILE_INC} "LIBALL_LIB += \$(ALL_DIR)/lib/libALL_fortran.a \$(ALL_DIR)/lib/libALL.a -lstdc++\n") - file(APPEND ${ALL_MAKEFILE_INC} "LIBALL_INCLUDE += -I\$(ALL_DIR)/lib\n") + file(APPEND ${ALL_MAKEFILE_INC} "LIBALL_LIB += \$(ALL_DIR)/${CMAKE_INSTALL_LIBDIR}/libALL_fortran.a \$(ALL_DIR)/${CMAKE_INSTALL_LIBDIR}/libALL.a -lstdc++\n") + file(APPEND ${ALL_MAKEFILE_INC} "LIBALL_INCLUDE += -I\$(ALL_DIR)/${CMAKE_INSTALL_LIBDIR}\n") endif() if(CM_ALL_VORONOI) - file(APPEND ${ALL_MAKEFILE_INC} "LIBALL_LIB += \$(ALL_DIR)/lib/libvoro.a\n") + file(APPEND ${ALL_MAKEFILE_INC} "LIBALL_LIB += \$(ALL_DIR)/${CMAKE_INSTALL_LIBDIR}/libvoro.a\n") endif() -install(FILES ${ALL_MAKEFILE_INC} DESTINATION lib/make) +install(FILES ${ALL_MAKEFILE_INC} DESTINATION ${CMAKE_INSTALL_LIBDIR}/make) # vim: sw=4 ts=4 et diff --git a/contrib/voro++/CMakeLists.txt b/contrib/voro++/CMakeLists.txt index 5f1637d9d6e5ae0e51816900755afadd6750e857..1debf8159e32a8418e8c1fe38d1817ecda4801b7 100644 --- a/contrib/voro++/CMakeLists.txt +++ b/contrib/voro++/CMakeLists.txt @@ -1,7 +1,8 @@ project(voro) cmake_minimum_required(VERSION 2.8) +include(GNUInstallDirs) include_directories (include) add_subdirectory (src) -install (DIRECTORY include/ DESTINATION include FILES_MATCHING PATTERN "*.hh") \ No newline at end of file +install (DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} FILES_MATCHING PATTERN "*.hh") diff --git a/contrib/voro++/src/CMakeLists.txt b/contrib/voro++/src/CMakeLists.txt index daf286a6f5aab5321407093f67961bf5a521ab23..7fd194cff9d45431ecf695fbfd948d39b9cf689f 100644 --- a/contrib/voro++/src/CMakeLists.txt +++ b/contrib/voro++/src/CMakeLists.txt @@ -10,9 +10,9 @@ add_library (${MODULE_NAME} ${${MODULE_NAME}_SRCS}) target_include_directories(${MODULE_NAME} INTERFACE "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../include>" - "$<INSTALL_INTERFACE:include>") + "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>") install (TARGETS ${MODULE_NAME} EXPORT ALLTargets - ARCHIVE DESTINATION lib - LIBRARY DESTINATION lib) + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) diff --git a/example/CMakeLists.txt b/example/CMakeLists.txt index ac05ee34cab74000dc230dc46066c3d26468ebdc..bdb14d05e72c188f2c3a26cb93e25b5427685bd1 100644 --- a/example/CMakeLists.txt +++ b/example/CMakeLists.txt @@ -12,9 +12,9 @@ endif(CM_ALL_VTK_OUTPUT) target_link_libraries (ALL_test LINK_PUBLIC ALL) install(TARGETS ALL_test - RUNTIME DESTINATION bin - LIBRARY DESTINATION lib - INCLUDES DESTINATION include) + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) # helper program to convert ascii input to mpi binary input add_executable(ASCII2MPIBIN ascii2mpibin.cpp) @@ -22,25 +22,25 @@ add_executable(ASCII2MPIBIN ascii2mpibin.cpp) target_link_libraries(ASCII2MPIBIN LINK_PUBLIC ALL) install(TARGETS ASCII2MPIBIN - RUNTIME DESTINATION bin - LIBRARY DESTINATION lib - INCLUDES DESTINATION include) + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) add_executable(create_logo create_logo.cpp) install(TARGETS create_logo - RUNTIME DESTINATION bin - LIBRARY DESTINATION lib - INCLUDES DESTINATION include) + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) add_executable(read_binary_output read_output.cpp) target_link_libraries(read_binary_output LINK_PUBLIC ALL) install(TARGETS read_binary_output - RUNTIME DESTINATION bin - LIBRARY DESTINATION lib - INCLUDES DESTINATION include) + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) add_executable(ALL_Staggered ALL_Staggered.cpp) if(CM_ALL_VTK_OUTPUT) @@ -50,9 +50,9 @@ if(CM_ALL_VTK_OUTPUT) endif(CM_ALL_VTK_OUTPUT) target_link_libraries (ALL_Staggered LINK_PUBLIC ALL) install(TARGETS ALL_Staggered - RUNTIME DESTINATION bin - LIBRARY DESTINATION lib - INCLUDES DESTINATION include) + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) add_executable(ALL_Tensor ALL_Tensor.cpp) if(CM_ALL_VTK_OUTPUT) @@ -62,9 +62,9 @@ if(CM_ALL_VTK_OUTPUT) endif(CM_ALL_VTK_OUTPUT) target_link_libraries (ALL_Tensor LINK_PUBLIC ALL) install(TARGETS ALL_Tensor - RUNTIME DESTINATION bin - LIBRARY DESTINATION lib - INCLUDES DESTINATION include) + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) if(CM_ALL_VORONOI) add_executable(ALL_Voronoi ALL_Voronoi.cpp) @@ -74,9 +74,9 @@ if(CM_ALL_VORONOI) endif(CM_ALL_VTK_OUTPUT) target_link_libraries (ALL_Voronoi LINK_PUBLIC ALL) install(TARGETS ALL_Voronoi - RUNTIME DESTINATION bin - LIBRARY DESTINATION lib - INCLUDES DESTINATION include) + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) endif() if(CM_ALL_FORTRAN) @@ -97,9 +97,9 @@ if(CM_ALL_FORTRAN) set_property(TARGET ALL_test_f PROPERTY LINKER_LANGUAGE Fortran) install(TARGETS ALL_test_f - RUNTIME DESTINATION bin - LIBRARY DESTINATION lib - INCLUDES DESTINATION include) + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) add_executable(ALL_test_f_obj ALL_test_f_obj.F90) if(CM_ALL_VTK_OUTPUT) @@ -118,9 +118,9 @@ if(CM_ALL_FORTRAN) set_property(TARGET ALL_test_f_obj PROPERTY LINKER_LANGUAGE Fortran) install(TARGETS ALL_test_f_obj - RUNTIME DESTINATION bin - LIBRARY DESTINATION lib - INCLUDES DESTINATION include) + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) add_executable(ALL_Staggered_f ALL_Staggered_f.F90) if(CM_ALL_VTK_OUTPUT) @@ -134,9 +134,9 @@ if(CM_ALL_FORTRAN) list(APPEND CMAKE_MODULE_PATH ${CMAKE_BINARY_DIR}/modules) set_property(TARGET ALL_Staggered_f PROPERTY LINKER_LANGUAGE Fortran) install(TARGETS ALL_Staggered_f - RUNTIME DESTINATION bin - LIBRARY DESTINATION lib - INCLUDES DESTINATION include) + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) add_executable(ALL_Tensor_f ALL_Tensor_f.F90) if(CM_ALL_VTK_OUTPUT) @@ -150,7 +150,7 @@ if(CM_ALL_FORTRAN) list(APPEND CMAKE_MODULE_PATH ${CMAKE_BINARY_DIR}/modules) set_property(TARGET ALL_Tensor_f PROPERTY LINKER_LANGUAGE Fortran) install(TARGETS ALL_Tensor_f - RUNTIME DESTINATION bin - LIBRARY DESTINATION lib - INCLUDES DESTINATION include) + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) endif(CM_ALL_FORTRAN) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 676a105ae0302b16bd60c45f3d3ec05a6b884871..f467699f8ef123120a6ec0d4a20fc0fa3bb3cef8 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -29,7 +29,7 @@ target_link_libraries(ALL PUBLIC ${MPI_CXX_LINK_FLAGS} ${MPI_CXX_LIBRARIES}) target_include_directories (ALL PUBLIC "$<BUILD_INTERFACE:${ALL_INCLUDE_DIR}>" - "$<INSTALL_INTERFACE:include>") + "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>") # For inclusion in Fortran code, explicit linking against the C++ standard # library is necessary. @@ -37,13 +37,13 @@ target_link_libraries(ALL INTERFACE stdc++) install(TARGETS ALL EXPORT ALLTargets - RUNTIME DESTINATION bin - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib - INCLUDES DESTINATION include) + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) install(FILES ${ALL_HEADER_FILES} - DESTINATION include) + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) if (CM_ALL_FORTRAN) set(CMAKE_Fortran_MODULE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/../modules) @@ -54,18 +54,18 @@ if (CM_ALL_FORTRAN) target_include_directories(ALL_fortran INTERFACE "$<BUILD_INTERFACE:${CMAKE_Fortran_MODULE_DIRECTORY}>" - "$<INSTALL_INTERFACE:lib>") + "$<INSTALL_INTERFACE:${CMAKE_INSTALL_LIBDIR}>") target_link_libraries(ALL_fortran PUBLIC ${MPI_Fortran_LINK_FLAGS} ${MPI_Fortran_LIBRARIES}) target_link_libraries(ALL_fortran PUBLIC ALL) install(TARGETS ALL_fortran EXPORT ALLTargets - RUNTIME DESTINATION bin - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib - INCLUDES DESTINATION include) + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) - install(DIRECTORY ${CMAKE_BINARY_DIR}/modules/ DESTINATION lib) + install(DIRECTORY ${CMAKE_BINARY_DIR}/modules/ DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif(CM_ALL_FORTRAN) add_executable(Amalgamate Amalgamate.c)