From 89ded4532092f63bc4d3aceed4dedb41f167f95a Mon Sep 17 00:00:00 2001 From: SY Wang Date: Mon, 12 Oct 2026 01:50:36 +0800 Subject: [PATCH 1/2] CMake: Add SDFTD3_INSTALL_FMODDIR --- CMakeLists.txt | 4 ++-- config/CMakeLists.txt | 14 +++++++++----- config/template.pc | 3 ++- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 41ceaad6c..e58e2b556 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -108,7 +108,7 @@ target_include_directories( $ $ $ - $ + $ ) # Add example application @@ -153,7 +153,7 @@ install( install( DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/include/" - DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/${module-dir}" + DESTINATION "${SDFTD3_INSTALL_FMODDIR}" ) if(SDFTD3_WITH_API) enable_language("C") diff --git a/config/CMakeLists.txt b/config/CMakeLists.txt index 1ec8b6c2d..aa4960ed0 100644 --- a/config/CMakeLists.txt +++ b/config/CMakeLists.txt @@ -41,11 +41,9 @@ if(NOT DEFINED "${PROJECT_NAME}-dependency-method") ) endif() -set( - module-dir - "${PROJECT_NAME}/${CMAKE_Fortran_COMPILER_ID}-${CMAKE_Fortran_COMPILER_VERSION}" -) -set(module-dir "${module-dir}" PARENT_SCOPE) +set(SDFTD3_INSTALL_FMODDIR + "${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}/${CMAKE_Fortran_COMPILER_ID}-${CMAKE_Fortran_COMPILER_VERSION}" + CACHE STRING "Installation directory for Fortran modules") # Set build type as CMake does not provide defaults if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) @@ -86,6 +84,12 @@ install( DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}" ) +if(IS_ABSOLUTE "${SDFTD3_INSTALL_FMODDIR}") + set(pkgconfig_fmoddir "${SDFTD3_INSTALL_FMODDIR}") +else() + set(pkgconfig_fmoddir "\${prefix}/${SDFTD3_INSTALL_FMODDIR}") +endif() + configure_file( "${CMAKE_CURRENT_SOURCE_DIR}/template.pc" "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc" diff --git a/config/template.pc b/config/template.pc index 3d6efbb5e..a6af557df 100644 --- a/config/template.pc +++ b/config/template.pc @@ -1,9 +1,10 @@ prefix=@CMAKE_INSTALL_PREFIX@ libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@ includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@ +fmoddir=@pkgconfig_fmoddir@ Name: @PROJECT_NAME@ Description: @PROJECT_DESCRIPTION@ Version: @PROJECT_VERSION@ Libs: -L${libdir} -l@PROJECT_NAME@ -Cflags: -I${includedir} -I${includedir}/@module-dir@ +Cflags: -I${includedir} -I${fmoddir} From 0b843172d59335345476809de698455354a0b4d2 Mon Sep 17 00:00:00 2001 From: Sebastian Ehlert <28669218+awvwgk@users.noreply.github.com> Date: Thu, 22 Oct 2026 15:54:08 +0200 Subject: [PATCH 2/2] Format --- config/CMakeLists.txt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/config/CMakeLists.txt b/config/CMakeLists.txt index aa4960ed0..a72e47540 100644 --- a/config/CMakeLists.txt +++ b/config/CMakeLists.txt @@ -41,9 +41,11 @@ if(NOT DEFINED "${PROJECT_NAME}-dependency-method") ) endif() -set(SDFTD3_INSTALL_FMODDIR - "${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}/${CMAKE_Fortran_COMPILER_ID}-${CMAKE_Fortran_COMPILER_VERSION}" - CACHE STRING "Installation directory for Fortran modules") +set( + SDFTD3_INSTALL_FMODDIR + "${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}/${CMAKE_Fortran_COMPILER_ID}-${CMAKE_Fortran_COMPILER_VERSION}" + CACHE STRING "Installation directory for Fortran modules" +) # Set build type as CMake does not provide defaults if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)