Skip to content

Cmake naming patterns for Fortran submodules inconsistent with cce/19 and cce/20 in buildtools EasyConfig #215

@gregordecristoforo

Description

@gregordecristoforo

The EasyConfig for the buildtools module downloads Cmake source code that doesn't have the correct filename extension for Fortran submodules with cce/19.0.0 and cce/20.0.0 compilers.

The problem is likely in '/appl/lumi/SW/LUMI-25.03/common/EB/buildtools/25.03/share/cmake-3.31/Modules/Compiler/Cray-Fortran.cmake', lines 7-8 with
'set(CMAKE_Fortran_SUBMODULE_SEP "")' and
'set(CMAKE_Fortran_SUBMODULE_EXT ".mod")'.
These settings work with cce/17.0.1, where submodules are named '.mod'.
In cce19 and 20 however, the naming convention is changed to '..smod'.

See ticket #7697 for more details.

Providing a patch file with something like the following might work:

--- Modules/Compiler/Cray-Fortran.cmake.orig   2023-10-01 12:00:00.000000000 +0000
+++ Modules/Compiler/Cray-Fortran.cmake        2023-10-01 12:00:00.000000000 +0000
@@ -6,8 +6,14 @@
 # Cray Fortran Compiler
 set(CMAKE_Fortran_COMPILER_ID_RUN 1)
 set(CMAKE_Fortran_SUBMODULE_SEP "")
-set(CMAKE_Fortran_SUBMODULE_EXT ".mod")
+set(CMAKE_Fortran_SUBMODULE_EXT ".mod") # Default for older versions
+# Adjust for CCE 19.0.0 and above
+if(CMAKE_Fortran_COMPILER_VERSION VERSION_GREATER_EQUAL 19.0.0)
+  set(CMAKE_Fortran_SUBMODULE_SEP "." CACHE STRING "submodule separator" FORCE)
+  set(CMAKE_Fortran_SUBMODULE_EXT ".smod" CACHE STRING "submodule extension" FORCE)
+endif()
+
 set(CMAKE_Fortran_FORMAT_FIXED_FLAG "-ffixed-form")
 set(CMAKE_Fortran_FORMAT_FREE_FLAG "-ffree-form")

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions