mirror of
https://gitlab.kitware.com/cmake/cmake.git
synced 2026-10-09 23:44:00 +03:00
Tests: Split Fortran module testing into separate FortranModules test
The main Fortran test is not granular enough. Split some into another test.
This commit is contained in:
1 parent
a41c8724d1
commit
eb8cd35684
23 files changed
+91
-86
No files matched your search
+13
-1
@@ -3097,10 +3097,22 @@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=dev -P ${CMake_SOURCE_DIR}/Utilities/Release
|
||||
--build-project testf
|
||||
--build-two-config
|
||||
--build-options ${build_options}
|
||||
-DCMake_TEST_NESTED_MAKE_PROGRAM:FILEPATH=${CMake_TEST_EXPLICIT_MAKE_PROGRAM}
|
||||
--test-command testf)
|
||||
list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/Fortran")
|
||||
|
||||
if(CMAKE_Fortran_COMPILER_SUPPORTS_F90)
|
||||
add_test(FortranModules ${CMAKE_CTEST_COMMAND}
|
||||
--build-and-test
|
||||
"${CMake_SOURCE_DIR}/Tests/FortranModules"
|
||||
"${CMake_BINARY_DIR}/Tests/FortranModules"
|
||||
${build_generator_args}
|
||||
--build-project FortranModules
|
||||
--build-options ${build_options}
|
||||
-DCMake_TEST_NESTED_MAKE_PROGRAM:FILEPATH=${CMake_TEST_EXPLICIT_MAKE_PROGRAM}
|
||||
)
|
||||
list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/FortranModules")
|
||||
endif()
|
||||
|
||||
# FortranCInterface tests.
|
||||
if(UNIX)
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/FortranC/Flags.cmake.in
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
cmake_minimum_required (VERSION 3.1)
|
||||
project(testf C CXX Fortran)
|
||||
if(NOT DEFINED CMake_TEST_NESTED_MAKE_PROGRAM AND NOT CMAKE_GENERATOR MATCHES "Visual Studio")
|
||||
set(CMake_TEST_NESTED_MAKE_PROGRAM "${CMAKE_MAKE_PROGRAM}")
|
||||
endif()
|
||||
|
||||
message("CTEST_FULL_OUTPUT ")
|
||||
set(CMAKE_VERBOSE_MAKEFILE 1)
|
||||
@@ -144,85 +141,3 @@ else()
|
||||
endif()
|
||||
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
|
||||
set(TEST_MODULE_DEPENDS 0)
|
||||
if(CMAKE_Fortran_COMPILER_SUPPORTS_F90)
|
||||
add_executable(test_module
|
||||
test_module_main.f90
|
||||
test_module_implementation.f90
|
||||
test_module_interface.f90)
|
||||
|
||||
add_executable(test_use_in_comment_fixedform
|
||||
test_use_in_comment_fixedform.f)
|
||||
set_property(SOURCE test_use_in_comment_fixedform.f PROPERTY Fortran_FORMAT FIXED)
|
||||
add_executable(test_use_in_comment_freeform
|
||||
test_use_in_comment_freeform.f90)
|
||||
set_property(SOURCE test_use_in_comment_freeform.f90 PROPERTY Fortran_FORMAT FREE)
|
||||
|
||||
add_executable(test_in_interface
|
||||
in_interface/main.f90
|
||||
in_interface/module.f90)
|
||||
|
||||
add_definitions(-DFOO -DBAR=1)
|
||||
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
|
||||
add_executable(test_preprocess test_preprocess.F90 test_preprocess_module.F90)
|
||||
|
||||
set(TEST_MODULE_DEPENDS 1)
|
||||
endif()
|
||||
|
||||
if(TEST_MODULE_DEPENDS)
|
||||
# Build the external project separately using a custom target.
|
||||
# Make sure it uses the same build configuration as this test.
|
||||
if(CMAKE_CONFIGURATION_TYPES)
|
||||
set(External_CONFIG_TYPE -C "${CMAKE_CFG_INTDIR}")
|
||||
set(External_BUILD_TYPE)
|
||||
else()
|
||||
set(External_CONFIG_TYPE)
|
||||
set(External_BUILD_TYPE -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE})
|
||||
endif()
|
||||
set(External_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/External")
|
||||
set(External_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/External")
|
||||
if("${CMAKE_CURRENT_BINARY_DIR}" MATCHES " ")
|
||||
# Our build tree has a space, so the build tool supports spaces.
|
||||
# Test using modules from a path with spaces.
|
||||
string(APPEND External_BINARY_DIR " Build")
|
||||
endif()
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ExternalProject
|
||||
COMMAND ${CMAKE_CTEST_COMMAND}
|
||||
ARGS ${External_CONFIG_TYPE}
|
||||
--build-and-test
|
||||
${External_SOURCE_DIR}
|
||||
${External_BINARY_DIR}
|
||||
--build-noclean
|
||||
--build-two-config
|
||||
--build-project ExtFort
|
||||
--build-generator ${CMAKE_GENERATOR}
|
||||
--build-generator-platform "${CMAKE_GENERATOR_PLATFORM}"
|
||||
--build-generator-toolset "${CMAKE_GENERATOR_TOOLSET}"
|
||||
--build-options -DCMAKE_Fortran_COMPILER:STRING=${CMAKE_Fortran_COMPILER}
|
||||
-DCMAKE_Fortran_FLAGS:STRING=${CMAKE_Fortran_FLAGS}
|
||||
-DCMAKE_Fortran_FLAGS_DEBUG:STRING=${CMAKE_Fortran_FLAGS_DEBUG}
|
||||
-DCMAKE_Fortran_FLAGS_RELEASE:STRING=${CMAKE_Fortran_FLAGS_RELEASE}
|
||||
-DCMAKE_Fortran_FLAGS_MINSIZEREL:STRING=${CMAKE_Fortran_FLAGS_MINSIZEREL}
|
||||
-DCMAKE_Fortran_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_Fortran_FLAGS_RELWITHDEBINFO}
|
||||
-DCMAKE_MAKE_PROGRAM:FILEPATH=${CMake_TEST_NESTED_MAKE_PROGRAM}
|
||||
${External_BUILD_TYPE}
|
||||
VERBATIM
|
||||
)
|
||||
add_custom_target(ExternalTarget ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/ExternalProject)
|
||||
|
||||
# Test module output directory if available.
|
||||
if(CMAKE_Fortran_MODDIR_FLAG)
|
||||
set(Library_MODDIR "${CMAKE_CURRENT_BINARY_DIR}/Library/modules")
|
||||
else()
|
||||
set(Library_MODDIR "${CMAKE_CURRENT_BINARY_DIR}/Library")
|
||||
endif()
|
||||
|
||||
add_subdirectory(Library)
|
||||
add_subdirectory(Subdir)
|
||||
add_subdirectory(Executable)
|
||||
endif()
|
||||
@@ -0,0 +1,78 @@
|
||||
cmake_minimum_required (VERSION 3.1)
|
||||
project(FortranModules Fortran)
|
||||
|
||||
if(NOT DEFINED CMake_TEST_NESTED_MAKE_PROGRAM AND NOT CMAKE_GENERATOR MATCHES "Visual Studio")
|
||||
set(CMake_TEST_NESTED_MAKE_PROGRAM "${CMAKE_MAKE_PROGRAM}")
|
||||
endif()
|
||||
|
||||
add_executable(test_module
|
||||
test_module_main.f90
|
||||
test_module_implementation.f90
|
||||
test_module_interface.f90)
|
||||
|
||||
add_executable(test_use_in_comment_fixedform
|
||||
test_use_in_comment_fixedform.f)
|
||||
set_property(SOURCE test_use_in_comment_fixedform.f PROPERTY Fortran_FORMAT FIXED)
|
||||
add_executable(test_use_in_comment_freeform
|
||||
test_use_in_comment_freeform.f90)
|
||||
set_property(SOURCE test_use_in_comment_freeform.f90 PROPERTY Fortran_FORMAT FREE)
|
||||
|
||||
add_executable(test_in_interface
|
||||
in_interface/main.f90
|
||||
in_interface/module.f90)
|
||||
|
||||
add_definitions(-DFOO -DBAR=1)
|
||||
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
|
||||
add_executable(test_preprocess test_preprocess.F90 test_preprocess_module.F90)
|
||||
|
||||
# Build the external project separately using a custom target.
|
||||
# Make sure it uses the same build configuration as this test.
|
||||
if(CMAKE_CONFIGURATION_TYPES)
|
||||
set(External_CONFIG_TYPE -C "${CMAKE_CFG_INTDIR}")
|
||||
set(External_BUILD_TYPE)
|
||||
else()
|
||||
set(External_CONFIG_TYPE)
|
||||
set(External_BUILD_TYPE -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE})
|
||||
endif()
|
||||
set(External_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/External")
|
||||
set(External_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/External")
|
||||
if("${CMAKE_CURRENT_BINARY_DIR}" MATCHES " ")
|
||||
# Our build tree has a space, so the build tool supports spaces.
|
||||
# Test using modules from a path with spaces.
|
||||
string(APPEND External_BINARY_DIR " Build")
|
||||
endif()
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ExternalProject
|
||||
COMMAND ${CMAKE_CTEST_COMMAND}
|
||||
ARGS ${External_CONFIG_TYPE}
|
||||
--build-and-test
|
||||
${External_SOURCE_DIR}
|
||||
${External_BINARY_DIR}
|
||||
--build-noclean
|
||||
--build-two-config
|
||||
--build-project ExtFort
|
||||
--build-generator ${CMAKE_GENERATOR}
|
||||
--build-generator-platform "${CMAKE_GENERATOR_PLATFORM}"
|
||||
--build-generator-toolset "${CMAKE_GENERATOR_TOOLSET}"
|
||||
--build-options -DCMAKE_Fortran_COMPILER:STRING=${CMAKE_Fortran_COMPILER}
|
||||
-DCMAKE_Fortran_FLAGS:STRING=${CMAKE_Fortran_FLAGS}
|
||||
-DCMAKE_Fortran_FLAGS_DEBUG:STRING=${CMAKE_Fortran_FLAGS_DEBUG}
|
||||
-DCMAKE_Fortran_FLAGS_RELEASE:STRING=${CMAKE_Fortran_FLAGS_RELEASE}
|
||||
-DCMAKE_Fortran_FLAGS_MINSIZEREL:STRING=${CMAKE_Fortran_FLAGS_MINSIZEREL}
|
||||
-DCMAKE_Fortran_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_Fortran_FLAGS_RELWITHDEBINFO}
|
||||
-DCMAKE_MAKE_PROGRAM:FILEPATH=${CMake_TEST_NESTED_MAKE_PROGRAM}
|
||||
${External_BUILD_TYPE}
|
||||
VERBATIM
|
||||
)
|
||||
add_custom_target(ExternalTarget ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/ExternalProject)
|
||||
|
||||
# Test module output directory if available.
|
||||
if(CMAKE_Fortran_MODDIR_FLAG)
|
||||
set(Library_MODDIR "${CMAKE_CURRENT_BINARY_DIR}/Library/modules")
|
||||
else()
|
||||
set(Library_MODDIR "${CMAKE_CURRENT_BINARY_DIR}/Library")
|
||||
endif()
|
||||
|
||||
add_subdirectory(Library)
|
||||
add_subdirectory(Subdir)
|
||||
add_subdirectory(Executable)
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Reference in new issue
Block a user