Skip to content

Commit

Permalink
modernize/flatten install
Browse files Browse the repository at this point in the history
  • Loading branch information
scivision committed Nov 3, 2021
1 parent cb5adab commit edcbc93
Show file tree
Hide file tree
Showing 7 changed files with 44 additions and 37 deletions.
13 changes: 7 additions & 6 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -86,12 +86,13 @@ endif()
list(APPEND ORDERING_LIBS pord)

install(FILES
${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules/FindLAPACK.cmake
${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules/FindSCALAPACK.cmake
${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules/FindMETIS.cmake
${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules/FindScotch.cmake
${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules/FindMUMPS.cmake
DESTINATION lib/cmake/${PROJECT_NAME}/Modules)
${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules/FindLAPACK.cmake
${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules/FindSCALAPACK.cmake
${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules/FindMETIS.cmake
${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules/FindScotch.cmake
${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules/FindMUMPS.cmake
DESTINATION cmake
)


# --- MUMPS build
Expand Down
2 changes: 1 addition & 1 deletion PORD/lib/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,4 @@ LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}
ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}
)

install(TARGETS pord EXPORT ${PROJECT_NAME}Targets)
install(TARGETS pord EXPORT ${PROJECT_NAME}-targets)
5 changes: 3 additions & 2 deletions cmake/Config.cmake.in → cmake/config.cmake.in
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,11 @@ include(CMakeFindDependencyMacro)

find_dependency(MPI COMPONENTS C Fortran)

list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/Modules)
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR})

find_dependency(LAPACK)

include(${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@-targets.cmake)

foreach(a s d c z)
string(TOUPPER ${a} aup)
Expand Down
28 changes: 16 additions & 12 deletions cmake/install.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,25 @@

include(CMakePackageConfigHelpers)

configure_package_config_file(${CMAKE_CURRENT_LIST_DIR}/Config.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${PROJECT_NAME}Config.cmake
INSTALL_DESTINATION lib)
configure_package_config_file(${CMAKE_CURRENT_LIST_DIR}/config.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${PROJECT_NAME}-config.cmake
INSTALL_DESTINATION cmake
)

write_basic_package_version_file(
${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${PROJECT_NAME}ConfigVersion.cmake
COMPATIBILITY SameMinorVersion)
${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${PROJECT_NAME}-config-version.cmake
COMPATIBILITY SameMinorVersion
)

install(EXPORT ${PROJECT_NAME}Targets
NAMESPACE ${PROJECT_NAME}::
DESTINATION lib/cmake/${PROJECT_NAME})
install(EXPORT ${PROJECT_NAME}-targets
NAMESPACE ${PROJECT_NAME}::
DESTINATION cmake)

install(FILES
${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${PROJECT_NAME}Config.cmake
${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${PROJECT_NAME}ConfigVersion.cmake
DESTINATION lib/cmake/${PROJECT_NAME})
${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${PROJECT_NAME}-config.cmake
${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${PROJECT_NAME}-config-version.cmake
DESTINATION cmake
)

# --- CPack

Expand All @@ -37,6 +40,7 @@ string(REGEX REPLACE "\n" ";" _cpack_ignore ${_cpack_ignore})
set(CPACK_SOURCE_IGNORE_FILES "${_cpack_ignore}")

install(FILES ${CPACK_RESOURCE_FILE_README} ${CPACK_RESOURCE_FILE_LICENSE}
DESTINATION share/docs/${PROJECT_NAME})
DESTINATION share/docs/${PROJECT_NAME}
)

include(CPack)
3 changes: 1 addition & 2 deletions cmake/libraries.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ file(READ ${CMAKE_CURRENT_LIST_DIR}/libraries.json _libj)

foreach(n ${names})
foreach(t git tag)
string(JSON m GET ${_libj} ${n} ${t})
set(${n}_${t} ${m})
string(JSON ${n}_${t} GET ${_libj} ${n} ${t})
endforeach()
endforeach()
11 changes: 6 additions & 5 deletions libseq/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,14 @@ set_target_properties(mpiseq PROPERTIES
add_library(MUMPS::MPISEQ INTERFACE IMPORTED GLOBAL)
target_link_libraries(MUMPS::MPISEQ INTERFACE mpiseq)

install(TARGETS mpiseq EXPORT ${PROJECT_NAME}Targets)
install(TARGETS mpiseq EXPORT ${PROJECT_NAME}-targets)

install(FILES
${CMAKE_CURRENT_SOURCE_DIR}/elapse.h
${CMAKE_CURRENT_SOURCE_DIR}/mpi.h
${CMAKE_CURRENT_SOURCE_DIR}/mpif.h
TYPE INCLUDE)
${CMAKE_CURRENT_SOURCE_DIR}/elapse.h
${CMAKE_CURRENT_SOURCE_DIR}/mpi.h
${CMAKE_CURRENT_SOURCE_DIR}/mpif.h
TYPE INCLUDE
)

# so that tests/examples work
add_library(MPI::MPI_C ALIAS MUMPS::MPISEQ)
Expand Down
19 changes: 10 additions & 9 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ EXPORT_NAME COMMON
VERSION ${MUMPS_VERSION}
)

install(TARGETS mumps_common EXPORT ${PROJECT_NAME}Targets)
install(TARGETS mumps_common EXPORT ${PROJECT_NAME}-targets)

# -- Mumps
set(_ifc_libs)
Expand Down Expand Up @@ -134,14 +134,15 @@ set_target_properties(${a}mumps PROPERTIES
EXPORT_NAME ${aup}MUMPS
VERSION ${MUMPS_VERSION})

install(TARGETS ${a}mumps EXPORT ${PROJECT_NAME}Targets)
install(TARGETS ${a}mumps EXPORT ${PROJECT_NAME}-targets)

install(FILES
${mumps_SOURCE_DIR}/include/${a}mumps_c.h
${mumps_SOURCE_DIR}/include/${a}mumps_root.h
${mumps_SOURCE_DIR}/include/${a}mumps_struc.h
${mumps_SOURCE_DIR}/include/mumps_int_def.h
TYPE INCLUDE)
${mumps_SOURCE_DIR}/include/${a}mumps_c.h
${mumps_SOURCE_DIR}/include/${a}mumps_root.h
${mumps_SOURCE_DIR}/include/${a}mumps_struc.h
${mumps_SOURCE_DIR}/include/mumps_int_def.h
TYPE INCLUDE
)

endforeach()

Expand All @@ -152,7 +153,7 @@ TYPE INCLUDE
)

# We do not need the .mod files due to the way MUMPS is interfaced
# install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/ DESTINATION include)
# install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/ TYPE INCLUDE)

# --- MUMPS::MUMPS exported target
# MUMPS::MUMPS is the target most users will link to.
Expand All @@ -163,7 +164,7 @@ target_link_libraries(MUMPS INTERFACE ${_ifc_libs} mumps_common pord
$<$<NOT:$<BOOL:${parallel}>>:mpiseq>
)

install(TARGETS MUMPS EXPORT ${PROJECT_NAME}Targets)
install(TARGETS MUMPS EXPORT ${PROJECT_NAME}-targets)

# target for FetchContent
# this must NOT be an ALIAS or linking in other packages breaks.
Expand Down

0 comments on commit edcbc93

Please sign in to comment.