Skip to content

Commit d2eddc5

Browse files
authored
Merge pull request #137 from feelpp/1-add-cmake-target-and-config-export-for-parmmg-to-support-find_package
add cmake target and config export for parmmg to support find package
2 parents cd8a6e3 + a9551c5 commit d2eddc5

File tree

3 files changed

+51
-1
lines changed

3 files changed

+51
-1
lines changed

CMakeLists.txt

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -485,11 +485,14 @@ SET(CMAKE_MACOSX_RPATH 1)
485485
#####
486486
############################################################################
487487
SET(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib)
488+
add_library( ParMmg INTERFACE )
488489

489490
IF ( LIBPARMMG_STATIC )
490491
ADD_AND_INSTALL_LIBRARY ( lib${PROJECT_NAME}_a STATIC
491492
"${pmmg_library_files}" ${PROJECT_NAME} )
492493

494+
target_link_libraries( ParMmg INTERFACE lib${PROJECT_NAME}_a )
495+
493496
IF ( DOWNLOAD_MMG )
494497
Add_Dependencies(lib${PROJECT_NAME}_a Mmg)
495498
ENDIF ( )
@@ -505,6 +508,8 @@ IF ( LIBPARMMG_SHARED )
505508
ADD_AND_INSTALL_LIBRARY ( lib${PROJECT_NAME}_so SHARED
506509
"${pmmg_library_files}" ${PROJECT_NAME} )
507510

511+
target_link_libraries( ParMmg INTERFACE lib${PROJECT_NAME}_so )
512+
508513
IF ( DOWNLOAD_MMG )
509514
Add_Dependencies(lib${PROJECT_NAME}_so Mmg)
510515
ENDIF ( )
@@ -515,6 +520,14 @@ IF ( LIBPARMMG_SHARED )
515520

516521
ENDIF()
517522

523+
add_library(ParMmg::ParMmg ALIAS ParMmg)
524+
install(TARGETS ParMmg EXPORT ParMmgTargets
525+
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
526+
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
527+
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
528+
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/parmmg
529+
)
530+
518531
# parmmg header files needed for library
519532
SET( pmmg_headers
520533
${PMMG_SOURCE_DIR}/libparmmg.h
@@ -540,12 +553,45 @@ ELSE()
540553
SET(LIBPARMMG_INTERNAL OFF )
541554
ENDIF()
542555

556+
if ( BUILD_SHARED_LIBS )
557+
set(LIBPARMMG lib${PROJECT_NAME}_so)
558+
else()
559+
set(LIBPARMMG lib${PROJECT_NAME}_a)
560+
endif()
561+
543562
install(EXPORT ParMmgTargets
544563
FILE ParMmgTargets.cmake
545564
NAMESPACE ParMmg::
546565
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/parmmg
547566
)
548567

568+
569+
include(CMakePackageConfigHelpers)
570+
571+
configure_package_config_file(
572+
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/ParMmgConfig.cmake.in"
573+
"${CMAKE_CURRENT_BINARY_DIR}/ParMmgConfig.cmake"
574+
INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/parmmg"
575+
)
576+
577+
# Install ParMmgConfig.cmake and ParMmgConfigVersion.cmake
578+
install(
579+
FILES "${CMAKE_CURRENT_BINARY_DIR}/ParMmgConfig.cmake"
580+
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/parmmg"
581+
)
582+
583+
# Install ParMmgConfigVersion.cmake for version tracking
584+
write_basic_package_version_file(
585+
"${CMAKE_CURRENT_BINARY_DIR}/ParMmgConfigVersion.cmake"
586+
VERSION ${CMAKE_RELEASE_VERSION}
587+
COMPATIBILITY AnyNewerVersion
588+
)
589+
590+
install(
591+
FILES "${CMAKE_CURRENT_BINARY_DIR}/ParMmgConfigVersion.cmake"
592+
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/parmmg"
593+
)
594+
549595
###############################################################################
550596
#####
551597
##### Compile PMMG executable
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
@PACKAGE_INIT@
2+
3+
include(CMakeFindDependencyMacro)
4+
5+
include("${CMAKE_CURRENT_LIST_DIR}/ParMmgTargets.cmake")

cmake/modules/macros.cmake

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,6 @@ MACRO ( ADD_AND_INSTALL_LIBRARY
156156
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
157157
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
158158
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
159-
Component lib
160159
)
161160
ENDMACRO ( )
162161

0 commit comments

Comments
 (0)