Skip to content

Commit 2036c81

Browse files
committed
Modernize the Config.cmake export
Signed-off-by: Cristian Le <git@lecris.dev>
1 parent afbc20a commit 2036c81

5 files changed

+53
-36
lines changed

CMAKE/scalapack-config-build.cmake.in

Lines changed: 0 additions & 1 deletion
This file was deleted.

CMAKE/scalapack-config-install.cmake.in

Lines changed: 0 additions & 2 deletions
This file was deleted.

CMAKE/scalapack-config-version.cmake.in

Lines changed: 0 additions & 8 deletions
This file was deleted.

CMAKE/scalapackConfig.cmake.in

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
cmake_minimum_required(VERSION 3.17...4.0)
2+
3+
@PACKAGE_INIT@
4+
5+
include(${CMAKE_CURRENT_LIST_DIR}/scalapackTargets.cmake)
6+
7+
# Deprecated compatibility shims
8+
if(TARGET scalapack::scalapack)
9+
add_library(scalapack INTERFACE IMPORTED)
10+
target_link_libraries(scalapack INTERFACE scalapack::scalapack)
11+
set_target_properties(scalapack PROPERTIES
12+
DEPRECATION "Target scalapack is deprecated, use scalapack::scalapack instead."
13+
)
14+
endif()
15+
if(TARGET scalapack::scalapack-F)
16+
add_library(scalapack-F INTERFACE IMPORTED)
17+
target_link_libraries(scalapack-F INTERFACE scalapack::scalapack-F)
18+
set_target_properties(scalapack-F PROPERTIES
19+
DEPRECATION "Target scalapack-F is deprecated, use scalapack::scalapack-F instead."
20+
)
21+
endif()

CMakeLists.txt

Lines changed: 32 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,11 @@ if (UNIX)
7070
endif ()
7171
endif ()
7272

73+
# TODO: Remove this macro
7374
macro(SCALAPACK_install_library lib)
74-
install(TARGETS ${lib} EXPORT scalapack-targets
75-
RUNTIME DESTINATION Testing
76-
)
75+
install(TARGETS ${lib}
76+
EXPORT scalapackTargets
77+
)
7778
endmacro()
7879

7980
# --------------------------------------------------
@@ -228,6 +229,7 @@ append_subdir_files(src-C "SRC")
228229

229230
if (NOT MSVC)
230231
add_library(scalapack ${blacs} ${tools} ${tools-C} ${extra_lapack} ${pblas} ${pblas-F} ${ptzblas} ${ptools} ${pbblas} ${redist} ${src} ${src-C})
232+
add_library(scalapack::scalapack ALIAS scalapack)
231233
set_target_properties(scalapack PROPERTIES
232234
VERSION ${SCALAPACK_VERSION}
233235
SOVERSION ${SCALAPACK_VERSION_MAJOR}.${SCALAPACK_VERSION_MINOR})
@@ -236,11 +238,13 @@ if (NOT MSVC)
236238
else () # Need to separate Fortran and C Code
237239
OPTION(BUILD_SHARED_LIBS "Build shared libraries" ON )
238240
add_library(scalapack ${blacs} ${tools-C} ${pblas} ${ptools} ${redist} ${src-C})
241+
add_library(scalapack::scalapack ALIAS scalapack)
239242
set_target_properties(scalapack PROPERTIES
240243
VERSION ${SCALAPACK_VERSION}
241244
SOVERSION ${SCALAPACK_VERSION_MAJOR}.${SCALAPACK_VERSION_MINOR})
242245
target_link_libraries( scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} MPI::MPI_C)
243246
add_library(scalapack-F ${pblas-F} ${pbblas} ${ptzblas} ${tools} ${src} ${extra_lapack} )
247+
add_library(scalapack::scalapack-F ALIAS scalapack-F)
244248
set_target_properties(scalapack-F PROPERTIES
245249
VERSION ${SCALAPACK_VERSION}
246250
SOVERSION ${SCALAPACK_VERSION_MAJOR}.${SCALAPACK_VERSION_MINOR})
@@ -290,33 +294,36 @@ INCLUDE(CPack)
290294
# --------------------------------------------------
291295

292296

293-
export(TARGETS scalapack FILE scalapack-targets.cmake)
294-
295297
if( NOT LAPACK_FOUND )
296298
install(FILES
297299
${BLAS_LIBRARIES} ${LAPACK_LIBRARIES}
298300
DESTINATION ${CMAKE_INSTALL_LIBDIR}
299301
)
300302
endif( NOT LAPACK_FOUND )
301303

302-
configure_file(${SCALAPACK_SOURCE_DIR}/CMAKE/scalapack-config-version.cmake.in
303-
${SCALAPACK_BINARY_DIR}/scalapack-config-version.cmake @ONLY)
304-
configure_file(${SCALAPACK_SOURCE_DIR}/CMAKE/scalapack-config-build.cmake.in
305-
${SCALAPACK_BINARY_DIR}/scalapack-config.cmake @ONLY)
306-
307-
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scalapack.pc.in ${CMAKE_CURRENT_BINARY_DIR}/scalapack.pc)
308-
install(FILES
309-
${CMAKE_CURRENT_BINARY_DIR}/scalapack.pc
310-
DESTINATION ${PKG_CONFIG_DIR}
311-
)
312-
313-
configure_file(${SCALAPACK_SOURCE_DIR}/CMAKE/scalapack-config-install.cmake.in
314-
${SCALAPACK_BINARY_DIR}/CMakeFiles/scalapack-config.cmake @ONLY)
304+
include(CMakePackageConfigHelpers)
305+
configure_package_config_file(
306+
CMAKE/scalapackConfig.cmake.in
307+
scalapackConfig.cmake
308+
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/scalapack
309+
)
310+
write_basic_package_version_file(
311+
scalapackConfigVersion.cmake
312+
COMPATIBILITY SameMajorVersion
313+
)
314+
315+
install(EXPORT scalapackTargets
316+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/scalapack
317+
NAMESPACE scalapack
318+
)
319+
320+
configure_file(scalapack.pc.in scalapack.pc @ONLY)
315321
install(FILES
316-
${SCALAPACK_BINARY_DIR}/CMakeFiles/scalapack-config.cmake
317-
${SCALAPACK_BINARY_DIR}/scalapack-config-version.cmake
318-
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/scalapack-${SCALAPACK_VERSION}
319-
)
320-
321-
install(EXPORT scalapack-targets
322-
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/scalapack-${SCALAPACK_VERSION})
322+
${CMAKE_CURRENT_BINARY_DIR}/scalapack.pc
323+
DESTINATION ${PKG_CONFIG_DIR}
324+
)
325+
install(FILES
326+
${CMAKE_CURRENT_BINARY_DIR}/scalapackConfig.cmake
327+
${CMAKE_CURRENT_BINARY_DIR}/scalapackConfigVersion.cmake
328+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/scalapack
329+
)

0 commit comments

Comments
 (0)