New upstream version 3.27.6

ci/unstable
Timo Röhling 1 year ago
parent 70c5390bb2
commit d8bb5ae4fe

@ -285,8 +285,8 @@ Changes made since CMake 3.27.0 include the following.
to select the Windows 8.1 SDK. In CMake 3.27.[0-1] the ``version=`` field to select the Windows 8.1 SDK. In CMake 3.27.[0-1] the ``version=`` field
was limited to selecting Windows 10 SDKs. was limited to selecting Windows 10 SDKs.
3.27.3, 3.27.4, 3.27.5 3.27.3, 3.27.4, 3.27.5, 3.27.6
---------------------- ------------------------------
* These versions made no changes to documented features or interfaces. * These versions made no changes to documented features or interfaces.
Some implementation updates were made to support ecosystem changes Some implementation updates were made to support ecosystem changes

@ -1,7 +1,7 @@
# CMake version number components. # CMake version number components.
set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MAJOR 3)
set(CMake_VERSION_MINOR 27) set(CMake_VERSION_MINOR 27)
set(CMake_VERSION_PATCH 5) set(CMake_VERSION_PATCH 6)
#set(CMake_VERSION_RC 0) #set(CMake_VERSION_RC 0)
set(CMake_VERSION_IS_DIRTY 0) set(CMake_VERSION_IS_DIRTY 0)
@ -21,7 +21,7 @@ endif()
if(NOT CMake_VERSION_NO_GIT) if(NOT CMake_VERSION_NO_GIT)
# If this source was exported by 'git archive', use its commit info. # If this source was exported by 'git archive', use its commit info.
set(git_info [==[7d3b4868d0 CMake 3.27.5]==]) set(git_info [==[51b34a5483 CMake 3.27.6]==])
# Otherwise, try to identify the current development source version. # Otherwise, try to identify the current development source version.
if(NOT git_info MATCHES "^([0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]?[0-9a-f]?)[0-9a-f]* " if(NOT git_info MATCHES "^([0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]?[0-9a-f]?)[0-9a-f]* "

@ -539,8 +539,9 @@ bool cmComputeLinkInformation::Compute()
this->Target->GetType() == cmStateEnums::SHARED_LIBRARY || this->Target->GetType() == cmStateEnums::SHARED_LIBRARY ||
this->Target->GetType() == cmStateEnums::MODULE_LIBRARY || this->Target->GetType() == cmStateEnums::MODULE_LIBRARY ||
this->Target->GetType() == cmStateEnums::STATIC_LIBRARY || this->Target->GetType() == cmStateEnums::STATIC_LIBRARY ||
this->Target->HaveCxx20ModuleSources() || (this->Target->CanCompileSources() &&
this->Target->HaveFortranSources())) { (this->Target->HaveCxx20ModuleSources() ||
this->Target->HaveFortranSources())))) {
return false; return false;
} }

@ -125,3 +125,12 @@ add_subdirectory(Executable)
if(CMake_TEST_Fortran_SUBMODULES) if(CMake_TEST_Fortran_SUBMODULES)
add_subdirectory(Submodules) add_subdirectory(Submodules)
endif() endif()
add_subdirectory(Issue25112)
add_subdirectory(Issue25223)
if( # Intel Fortran VS Integration breaks on custom targets with Fortran sources
NOT CMAKE_GENERATOR MATCHES "Visual Studio")
add_subdirectory(Issue25252)
add_subdirectory(Issue25252-iface-target)
endif()
add_subdirectory(Issue25252-iface-sources)

@ -0,0 +1,4 @@
set(CMAKE_Fortran_MODULE_DIRECTORY "${PROJECT_BINARY_DIR}/include")
add_library(objmod OBJECT objmod.f90)
add_executable(objmain objmain.f90)
target_link_libraries(objmain PRIVATE objmod)

@ -0,0 +1,15 @@
# See https://gist.github.com/scivision/8e3070319f0577f7d3efcba863638cae
set(CMAKE_Fortran_MODULE_DIRECTORY "${PROJECT_BINARY_DIR}/include")
add_library(m1 OBJECT m1.f90)
add_library(m2 OBJECT m2.f90)
target_link_libraries(m2 PRIVATE m1)
add_library(m3 OBJECT m3.f90)
target_link_libraries(m3 PRIVATE m2)
add_library(m4 OBJECT m4.f90)
target_link_libraries(m4 PRIVATE m3)
add_executable(main25223 main.f90)
target_link_libraries(main25223 PRIVATE m4 m3 m2 m1)

@ -0,0 +1,11 @@
module m1
implicit none
contains
pure real function pi()
pi = 4*atan(1.)
end function
end module m1

@ -0,0 +1,13 @@
module m2
use m1, only : pi
implicit none
contains
pure real function twopi()
twopi = 2*pi()
end function
end module

@ -0,0 +1,13 @@
module m3
use m2, only : twopi
implicit none
contains
pure real function fourpi()
fourpi = 2*twopi()
end function
end module

@ -0,0 +1,13 @@
module m4
use m3, only : fourpi
implicit none
contains
pure real function halfpi()
halfpi = fourpi() / 8.0
end function
end module

@ -0,0 +1,15 @@
program main
use m1, only : pi
use m4, only : halfpi
implicit none
real :: rpi, rhalfpi
rpi = pi() / 2
rhalfpi = halfpi()
print '(a,ES15.8)', 'floating point precision loss: ', rpi - rhalfpi
end program

@ -0,0 +1,9 @@
enable_language(C)
add_library(fortran_source_iface_sources STATIC lib.c)
target_sources(fortran_source_iface_sources
INTERFACE
"${CMAKE_CURRENT_SOURCE_DIR}/iface.f90")
add_library(lib25252-iface-sources lib.f90)
target_link_libraries(lib25252-iface-sources PRIVATE fortran_source_iface_sources)

@ -0,0 +1,11 @@
module m1
implicit none
contains
pure real function pi()
pi = 4*atan(1.)
end function
end module m1

@ -0,0 +1,13 @@
module lib
use m1, only : pi
implicit none
contains
pure real function func()
func = pi()
end function
end module

@ -0,0 +1,5 @@
add_library(fortran_source_iface INTERFACE
iface.f90)
add_library(lib25252-iface-target lib.f90)
add_dependencies(lib25252-iface-target fortran_source_iface)

@ -0,0 +1,5 @@
program main
implicit none
end program

@ -0,0 +1,11 @@
module lib
implicit none
contains
pure real function func()
func = 1.0
end function
end module

@ -0,0 +1,6 @@
add_custom_target(custom_target_with_fortran
COMMAND "${CMAKE_COMMAND}" -E echo "custom target with fortran sources"
SOURCES custom_target.f90)
add_library(lib25252 lib.f90)
add_dependencies(lib25252 custom_target_with_fortran)

@ -0,0 +1,5 @@
program main
implicit none
end program

@ -0,0 +1,11 @@
module lib
implicit none
contains
pure real function func()
func = 1.0
end function
end module

@ -186,9 +186,3 @@ if(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_OFF AND
set_property(SOURCE no_preprocess_source_upper.F no_preprocess_source_fpp.fpp PROPERTY Fortran_PREPROCESS OFF) set_property(SOURCE no_preprocess_source_upper.F no_preprocess_source_fpp.fpp PROPERTY Fortran_PREPROCESS OFF)
endif() endif()
# Issue 25112
set(CMAKE_Fortran_MODULE_DIRECTORY "${PROJECT_BINARY_DIR}/include")
add_library(objmod OBJECT objmod.f90)
add_executable(objmain objmain.f90)
target_link_libraries(objmain PRIVATE objmod)

Loading…
Cancel
Save