mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-21 06:25:30 -04:00
Modernize CMake packaging (#3653)
Co-authored-by: Paul Romano <paul.k.romano@gmail.com>
This commit is contained in:
parent
7d09a12606
commit
dfb6c5699c
3 changed files with 40 additions and 29 deletions
|
|
@ -611,9 +611,7 @@ add_custom_command(TARGET libopenmc POST_BUILD
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
# Install executable, scripts, manpage, license
|
# Install executable, scripts, manpage, license
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
|
include(CMakePackageConfigHelpers)
|
||||||
configure_file(cmake/OpenMCConfig.cmake.in "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/OpenMCConfig.cmake" @ONLY)
|
|
||||||
configure_file(cmake/OpenMCConfigVersion.cmake.in "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/OpenMCConfigVersion.cmake" @ONLY)
|
|
||||||
|
|
||||||
set(INSTALL_CONFIGDIR ${CMAKE_INSTALL_LIBDIR}/cmake/OpenMC)
|
set(INSTALL_CONFIGDIR ${CMAKE_INSTALL_LIBDIR}/cmake/OpenMC)
|
||||||
install(TARGETS openmc libopenmc
|
install(TARGETS openmc libopenmc
|
||||||
|
|
@ -627,10 +625,24 @@ install(EXPORT openmc-targets
|
||||||
NAMESPACE OpenMC::
|
NAMESPACE OpenMC::
|
||||||
DESTINATION ${INSTALL_CONFIGDIR})
|
DESTINATION ${INSTALL_CONFIGDIR})
|
||||||
|
|
||||||
|
configure_package_config_file(
|
||||||
|
"cmake/OpenMCConfig.cmake.in"
|
||||||
|
"${CMAKE_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/OpenMCConfig.cmake"
|
||||||
|
INSTALL_DESTINATION ${INSTALL_CONFIGDIR}
|
||||||
|
)
|
||||||
|
|
||||||
|
write_basic_package_version_file(
|
||||||
|
"${CMAKE_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/OpenMCConfigVersion.cmake"
|
||||||
|
VERSION ${OPENMC_VERSION}
|
||||||
|
COMPATIBILITY AnyNewerVersion
|
||||||
|
)
|
||||||
|
|
||||||
install(FILES
|
install(FILES
|
||||||
"${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/OpenMCConfig.cmake"
|
"${CMAKE_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/OpenMCConfig.cmake"
|
||||||
"${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/OpenMCConfigVersion.cmake"
|
"${CMAKE_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/OpenMCConfigVersion.cmake"
|
||||||
DESTINATION ${INSTALL_CONFIGDIR})
|
DESTINATION "${INSTALL_CONFIGDIR}"
|
||||||
|
)
|
||||||
|
|
||||||
install(FILES man/man1/openmc.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
|
install(FILES man/man1/openmc.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
|
||||||
install(FILES LICENSE DESTINATION "${CMAKE_INSTALL_DOCDIR}" RENAME copyright)
|
install(FILES LICENSE DESTINATION "${CMAKE_INSTALL_DOCDIR}" RENAME copyright)
|
||||||
install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,18 @@
|
||||||
get_filename_component(OpenMC_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" DIRECTORY)
|
@PACKAGE_INIT@
|
||||||
|
|
||||||
# Compute the install prefix from this file's location
|
include("${CMAKE_CURRENT_LIST_DIR}/OpenMCConfigVersion.cmake")
|
||||||
get_filename_component(_OPENMC_PREFIX "${OpenMC_CMAKE_DIR}/../../.." ABSOLUTE)
|
include(CMakeFindDependencyMacro)
|
||||||
|
|
||||||
|
# Explicitly calculate prefix if it was not generated above
|
||||||
|
if(NOT DEFINED PACKAGE_PREFIX_DIR)
|
||||||
|
get_filename_component(PACKAGE_PREFIX_DIR "${CMAKE_CURRENT_LIST_DIR}/../../.." ABSOLUTE)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
find_dependency(fmt CONFIG REQUIRED HINTS ${PACKAGE_PREFIX_DIR})
|
||||||
|
find_dependency(pugixml CONFIG REQUIRED HINTS ${PACKAGE_PREFIX_DIR})
|
||||||
|
|
||||||
find_package(fmt CONFIG REQUIRED HINTS ${_OPENMC_PREFIX})
|
|
||||||
find_package(pugixml CONFIG REQUIRED HINTS ${_OPENMC_PREFIX})
|
|
||||||
if(@OPENMC_USE_DAGMC@)
|
if(@OPENMC_USE_DAGMC@)
|
||||||
find_package(DAGMC REQUIRED HINTS @DAGMC_DIR@)
|
find_dependency(DAGMC REQUIRED HINTS @DAGMC_DIR@)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(@OPENMC_USE_LIBMESH@)
|
if(@OPENMC_USE_LIBMESH@)
|
||||||
|
|
@ -16,20 +22,24 @@ if(@OPENMC_USE_LIBMESH@)
|
||||||
pkg_check_modules(LIBMESH REQUIRED @LIBMESH_PC_FILE@>=1.7.0 IMPORTED_TARGET)
|
pkg_check_modules(LIBMESH REQUIRED @LIBMESH_PC_FILE@>=1.7.0 IMPORTED_TARGET)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
find_package(PNG)
|
if("@PNG_FOUND@")
|
||||||
|
find_dependency(PNG)
|
||||||
if(NOT TARGET OpenMC::libopenmc)
|
|
||||||
include("${OpenMC_CMAKE_DIR}/OpenMCTargets.cmake")
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(@OPENMC_USE_MPI@)
|
if(@OPENMC_USE_MPI@)
|
||||||
find_package(MPI REQUIRED)
|
find_dependency(MPI REQUIRED)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(@OPENMC_USE_OPENMP@)
|
if(@OPENMC_USE_OPENMP@)
|
||||||
find_package(OpenMP REQUIRED)
|
find_dependency(OpenMP REQUIRED)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(@OPENMC_USE_UWUW@ AND NOT ${DAGMC_BUILD_UWUW})
|
if(@OPENMC_USE_UWUW@ AND NOT ${DAGMC_BUILD_UWUW})
|
||||||
message(FATAL_ERROR "UWUW is enabled in OpenMC but the DAGMC installation discovered was not configured with UWUW.")
|
message(FATAL_ERROR "UWUW is enabled in OpenMC but the DAGMC installation discovered was not configured with UWUW.")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
include("${CMAKE_CURRENT_LIST_DIR}/OpenMCTargets.cmake")
|
||||||
|
|
||||||
|
if(NOT OpenMC_FIND_QUIETLY)
|
||||||
|
message(STATUS "Found OpenMC: ${PACKAGE_VERSION} (found in ${PACKAGE_PREFIX_DIR})")
|
||||||
|
endif()
|
||||||
|
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
set(PACKAGE_VERSION "@OPENMC_VERSION@")
|
|
||||||
|
|
||||||
# Check whether the requested PACKAGE_FIND_VERSION is compatible
|
|
||||||
if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}")
|
|
||||||
set(PACKAGE_VERSION_COMPATIBLE FALSE)
|
|
||||||
else()
|
|
||||||
set(PACKAGE_VERSION_COMPATIBLE TRUE)
|
|
||||||
if ("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}")
|
|
||||||
set(PACKAGE_VERSION_EXACT TRUE)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue