mirror of
https://github.com/Kitware/CMake.git
synced 2025-12-31 19:00:54 -06:00
Fortran: Add support for NAG Fortran submodules
They use a `.sub` extension. Fixes: #20220
This commit is contained in:
@@ -28,6 +28,8 @@ if(NOT CMAKE_Fortran_COMPILER_WORKS AND NOT CMAKE_Fortran_COMPILER_FORCED)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(CMAKE_Fortran_SUBMODULE_SEP ".")
|
||||
set(CMAKE_Fortran_SUBMODULE_EXT ".sub")
|
||||
set(CMAKE_Fortran_MODDIR_FLAG "-mdir ")
|
||||
set(CMAKE_SHARED_LIBRARY_Fortran_FLAGS "-PIC")
|
||||
set(CMAKE_Fortran_FORMAT_FIXED_FLAG "-fixed")
|
||||
|
||||
@@ -33,6 +33,8 @@ static void cmFortranModuleAppendUpperLower(std::string const& mod,
|
||||
ext_len = 4;
|
||||
} else if (cmHasLiteralSuffix(mod, ".smod")) {
|
||||
ext_len = 5;
|
||||
} else if (cmHasLiteralSuffix(mod, ".sub")) {
|
||||
ext_len = 4;
|
||||
}
|
||||
std::string const& name = mod.substr(0, mod.size() - ext_len);
|
||||
std::string const& ext = mod.substr(mod.size() - ext_len);
|
||||
@@ -284,7 +286,8 @@ void cmDependsFortran::MatchRemoteModules(std::istream& fin,
|
||||
if (doing_provides) {
|
||||
std::string mod = line;
|
||||
if (!cmHasLiteralSuffix(mod, ".mod") &&
|
||||
!cmHasLiteralSuffix(mod, ".smod")) {
|
||||
!cmHasLiteralSuffix(mod, ".smod") &&
|
||||
!cmHasLiteralSuffix(mod, ".sub")) {
|
||||
// Support fortran.internal files left by older versions of CMake.
|
||||
// They do not include the ".mod" extension.
|
||||
mod += ".mod";
|
||||
@@ -470,7 +473,8 @@ bool cmDependsFortran::CopyModule(const std::vector<std::string>& args)
|
||||
if (args.size() >= 5) {
|
||||
compilerId = args[4];
|
||||
}
|
||||
if (!cmHasLiteralSuffix(mod, ".mod") && !cmHasLiteralSuffix(mod, ".smod")) {
|
||||
if (!cmHasLiteralSuffix(mod, ".mod") && !cmHasLiteralSuffix(mod, ".smod") &&
|
||||
!cmHasLiteralSuffix(mod, ".sub")) {
|
||||
// Support depend.make files left by older versions of CMake.
|
||||
// They do not include the ".mod" extension.
|
||||
mod += ".mod";
|
||||
|
||||
Reference in New Issue
Block a user