@@ -485,11 +485,14 @@ SET(CMAKE_MACOSX_RPATH 1)
485485#####
486486############################################################################
487487SET (LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR} /lib)
488+ add_library ( ParMmg INTERFACE )
488489
489490IF ( 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
516521ENDIF ()
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
519532SET ( pmmg_headers
520533 ${PMMG_SOURCE_DIR} /libparmmg.h
@@ -540,12 +553,45 @@ ELSE()
540553 SET (LIBPARMMG_INTERNAL OFF )
541554ENDIF ()
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+
543562install (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
0 commit comments