diff options
-rwxr-xr-x | .gitlab/ci/cmake.ps1 | 1 | ||||
-rwxr-xr-x | .gitlab/ci/ninja.ps1 | 1 | ||||
-rwxr-xr-x | .gitlab/ci/wix.ps1 | 18 | ||||
-rw-r--r-- | .gitlab/os-windows.yml | 3 | ||||
-rw-r--r-- | Help/release/dev/UseSWIG-dependencies.rst | 6 | ||||
-rw-r--r-- | Modules/CMakePlatformId.h.in | 3 | ||||
-rw-r--r-- | Modules/Platform/Windows-MSVC.cmake | 18 | ||||
-rw-r--r-- | Modules/UseSWIG.cmake | 77 | ||||
-rw-r--r-- | Source/CMakeVersion.cmake | 2 | ||||
-rw-r--r-- | Source/cmGlobalVisualStudioVersionedGenerator.cxx | 1 | ||||
-rw-r--r-- | Templates/MSBuild/FlagTables/v142_Link.json | 7 | ||||
-rw-r--r-- | Templates/MSBuild/FlagTables/v14_LIB.json | 7 | ||||
-rw-r--r-- | Tests/UseSWIG/BasicPerl/CMakeLists.txt | 2 | ||||
-rw-r--r-- | Tests/UseSWIG/BasicPython/CMakeLists.txt | 2 | ||||
-rw-r--r-- | Tests/UseSWIG/CMakeLists.txt | 24 |
15 files changed, 150 insertions, 22 deletions
diff --git a/.gitlab/ci/cmake.ps1 b/.gitlab/ci/cmake.ps1 index 9d7f317..e7b4de7 100755 --- a/.gitlab/ci/cmake.ps1 +++ b/.gitlab/ci/cmake.ps1 @@ -7,6 +7,7 @@ $tarball = "$filename.zip" $outdir = $pwd.Path $outdir = "$outdir\.gitlab" +$ProgressPreference = 'SilentlyContinue' Invoke-WebRequest -Uri "https://github.com/Kitware/CMake/releases/download/v$version/$tarball" -OutFile "$outdir\$tarball" $hash = Get-FileHash "$outdir\$tarball" -Algorithm SHA256 if ($hash.Hash -ne $sha256sum) { diff --git a/.gitlab/ci/ninja.ps1 b/.gitlab/ci/ninja.ps1 index 4cc6bcb..4c5333a 100755 --- a/.gitlab/ci/ninja.ps1 +++ b/.gitlab/ci/ninja.ps1 @@ -7,6 +7,7 @@ $tarball = "$filename.zip" $outdir = $pwd.Path $outdir = "$outdir\.gitlab" +$ProgressPreference = 'SilentlyContinue' Invoke-WebRequest -Uri "https://github.com/ninja-build/ninja/releases/download/v$version/$tarball" -OutFile "$outdir\$tarball" $hash = Get-FileHash "$outdir\$tarball" -Algorithm SHA256 if ($hash.Hash -ne $sha256sum) { diff --git a/.gitlab/ci/wix.ps1 b/.gitlab/ci/wix.ps1 new file mode 100755 index 0000000..a9322b6 --- /dev/null +++ b/.gitlab/ci/wix.ps1 @@ -0,0 +1,18 @@ +$erroractionpreference = "stop" + +$release = "wix3112rtm" +$sha256sum = "2C1888D5D1DBA377FC7FA14444CF556963747FF9A0A289A3599CF09DA03B9E2E" +$filename = "wix311-binaries" +$tarball = "$filename.zip" + +$outdir = $pwd.Path +$outdir = "$outdir\.gitlab" +$ProgressPreference = 'SilentlyContinue' +Invoke-WebRequest -Uri "https://github.com/wixtoolset/wix3/releases/download/$release/$tarball" -OutFile "$outdir\$tarball" +$hash = Get-FileHash "$outdir\$tarball" -Algorithm SHA256 +if ($hash.Hash -ne $sha256sum) { + exit 1 +} + +Add-Type -AssemblyName System.IO.Compression.FileSystem +[System.IO.Compression.ZipFile]::ExtractToDirectory("$outdir\$tarball", "$outdir\wix\bin") diff --git a/.gitlab/os-windows.yml b/.gitlab/os-windows.yml index 2e21fdf..1fff2bb 100644 --- a/.gitlab/os-windows.yml +++ b/.gitlab/os-windows.yml @@ -74,9 +74,12 @@ ## Windows-specific scripts .before_script_windows: &before_script_windows + - Invoke-Expression -Command .gitlab/ci/wix.ps1 - Invoke-Expression -Command .gitlab/ci/cmake.ps1 - Invoke-Expression -Command .gitlab/ci/ninja.ps1 - $pwdpath = $pwd.Path + - Set-Item -Force -Path "env:WIX" -Value "$pwdpath\.gitlab\wix" + - (& "$env:WIX\bin\light.exe" -help) | Select -First 1 - Set-Item -Force -Path "env:PATH" -Value "$pwdpath\.gitlab;$pwdpath\.gitlab\cmake\bin;$env:PATH" - cmake --version - ninja --version diff --git a/Help/release/dev/UseSWIG-dependencies.rst b/Help/release/dev/UseSWIG-dependencies.rst new file mode 100644 index 0000000..805ac8a --- /dev/null +++ b/Help/release/dev/UseSWIG-dependencies.rst @@ -0,0 +1,6 @@ +UseSWIG-dependencies +-------------------- + +* :module:`UseSWIG` module gained the capability, for + :ref:`Makefile <Makefile Generators>` and :ref:`Ninja <Ninja Generators>` + generators, to use ``swig`` tool to generate implicit dependencies. diff --git a/Modules/CMakePlatformId.h.in b/Modules/CMakePlatformId.h.in index 0b81c88..c0cab71 100644 --- a/Modules/CMakePlatformId.h.in +++ b/Modules/CMakePlatformId.h.in @@ -116,6 +116,9 @@ # if defined(_M_IA64) # define ARCHITECTURE_ID "IA64" +# elif defined(_M_ARM64EC) +# define ARCHITECTURE_ID "ARM64EC" + # elif defined(_M_X64) || defined(_M_AMD64) # define ARCHITECTURE_ID "x64" diff --git a/Modules/Platform/Windows-MSVC.cmake b/Modules/Platform/Windows-MSVC.cmake index 08afd61..e384af4 100644 --- a/Modules/Platform/Windows-MSVC.cmake +++ b/Modules/Platform/Windows-MSVC.cmake @@ -154,7 +154,9 @@ set(CMAKE_BUILD_TYPE_INIT Debug) # Compute an architecture family from the architecture id. foreach(lang C CXX) set(_MSVC_${lang}_ARCHITECTURE_FAMILY "${MSVC_${lang}_ARCHITECTURE_ID}") - if(_MSVC_${lang}_ARCHITECTURE_FAMILY MATCHES "^ARM64") + if(_MSVC_${lang}_ARCHITECTURE_FAMILY MATCHES "^ARM64EC") + set(_MSVC_${lang}_ARCHITECTURE_FAMILY "ARM64EC") + elseif(_MSVC_${lang}_ARCHITECTURE_FAMILY MATCHES "^ARM64") set(_MSVC_${lang}_ARCHITECTURE_FAMILY "ARM64") elseif(_MSVC_${lang}_ARCHITECTURE_FAMILY MATCHES "^ARM") set(_MSVC_${lang}_ARCHITECTURE_FAMILY "ARM") @@ -224,7 +226,9 @@ elseif(WINDOWS_PHONE OR WINDOWS_STORE) endif() else() set(_PLATFORM_DEFINES "/DWIN32") - + if((_MSVC_C_ARCHITECTURE_FAMILY STREQUAL "ARM64EC") OR (_MSVC_CXX_ARCHITECTURE_FAMILY STREQUAL "ARM64EC")) + set(_PLATFORM_DEFINES "${_PLATFORM_DEFINES} /D_AMD64_ /DAMD64 /D_ARM64EC_ /DARM64EC /D_ARM64EC_WORKAROUND_") + endif() if(_MSVC_C_ARCHITECTURE_FAMILY STREQUAL "ARM" OR _MSVC_CXX_ARCHITECTURE_FAMILY STREQUAL "ARM") set(CMAKE_C_STANDARD_LIBRARIES_INIT "kernel32.lib user32.lib") elseif(MSVC_VERSION GREATER 1310) @@ -261,6 +265,8 @@ if(MSVC_C_ARCHITECTURE_ID) set(_MACHINE_ARCH_FLAG "/machine:THUMB") elseif(_MSVC_C_ARCHITECTURE_FAMILY STREQUAL "ARM64") set(_MACHINE_ARCH_FLAG "/machine:ARM64") + elseif(_MSVC_C_ARCHITECTURE_FAMILY STREQUAL "ARM64EC") + set(_MACHINE_ARCH_FLAG "/machine:ARM64EC") elseif(_MSVC_C_ARCHITECTURE_FAMILY STREQUAL "ARM") set(_MACHINE_ARCH_FLAG "/machine:ARM") else() @@ -271,6 +277,8 @@ elseif(MSVC_CXX_ARCHITECTURE_ID) set(_MACHINE_ARCH_FLAG "/machine:THUMB") elseif(_MSVC_CXX_ARCHITECTURE_FAMILY STREQUAL "ARM64") set(_MACHINE_ARCH_FLAG "/machine:ARM64") + elseif(_MSVC_CXX_ARCHITECTURE_FAMILY STREQUAL "ARM64EC") + set(_MACHINE_ARCH_FLAG "/machine:ARM64EC") elseif(_MSVC_CXX_ARCHITECTURE_FAMILY STREQUAL "ARM") set(_MACHINE_ARCH_FLAG "/machine:ARM") else() @@ -305,7 +313,11 @@ foreach(t EXE SHARED MODULE) string(APPEND CMAKE_${t}_LINKER_FLAGS_RELEASE_INIT " /INCREMENTAL:NO") endforeach() -string(APPEND CMAKE_STATIC_LINKER_FLAGS_INIT " ${_MACHINE_ARCH_FLAG}") +if((_MSVC_C_ARCHITECTURE_FAMILY STREQUAL "ARM64EC") OR (_MSVC_CXX_ARCHITECTURE_FAMILY STREQUAL "ARM64EC")) + string(APPEND CMAKE_STATIC_LINKER_FLAGS_INIT " /machine:ARM64X") +else() + string(APPEND CMAKE_STATIC_LINKER_FLAGS_INIT " ${_MACHINE_ARCH_FLAG}") +endif() unset(_MACHINE_ARCH_FLAG) cmake_policy(GET CMP0091 __WINDOWS_MSVC_CMP0091) diff --git a/Modules/UseSWIG.cmake b/Modules/UseSWIG.cmake index 9b0025a..7d7f737 100644 --- a/Modules/UseSWIG.cmake +++ b/Modules/UseSWIG.cmake @@ -48,11 +48,12 @@ Defines the following command for use with ``SWIG``: .. note:: - For Make-based generators, ``swig_add_library`` does not track file - dependencies, so depending on the ``<name>_swig_compilation`` custom target - is required for targets which require the ``swig``-generated files to - exist. Other generators may depend on the source files that would be - generated by SWIG. + For :ref:`Makefile Generators`, if, for some sources, the + ``USE_SWIG_DEPENDENCIES`` property is ``FALSE``, ``swig_add_library`` does + not track file dependencies, so depending on the ``<name>_swig_compilation`` + custom target is required for targets which require the ``swig``-generated + files to exist. Other generators may depend on the source files that would + be generated by SWIG. ``TYPE`` ``SHARED``, ``MODULE`` and ``STATIC`` have the same semantic as for the @@ -179,6 +180,14 @@ ensure generated files will receive the required settings. Specify additional dependencies to the source file. +``USE_SWIG_DEPENDENCIES`` + .. versionadded:: 3.20 + + If set to ``TRUE``, implicit dependencies are generated by the ``swig`` tool + itself. This property is only meaningful for + :ref:`Makefile <Makefile Generators>` and + :ref:`Ninja <Ninja Generators>` generators. Default value is ``FALSE``. + ``SWIG_MODULE_NAME`` Specify the actual import name of the module in the target language. This is required if it cannot be scanned automatically from source @@ -316,6 +325,17 @@ as well as ``SWIG``: .. code-block:: cmake set(SWIG_SOURCE_FILE_EXTENSIONS ".i" ".swg") + +``SWIG_USE_SWIG_DEPENDENCIES`` + .. versionadded:: 3.20 + + If set to ``TRUE``, implicit dependencies are generated by the ``swig`` tool + itself. This property is only meaningful for + :ref:`Makefile <Makefile Generators>` and + :ref:`Ninja <Ninja Generators>` generators. Default value is ``FALSE``. + + Source file property ``USE_SWIG_DEPENDENCIES``, if not defined, will be + initialized with the value of this variable. #]=======================================================================] cmake_policy(GET CMP0078 target_name_policy) @@ -486,6 +506,14 @@ function(SWIG_ADD_SOURCE_TO_MODULE name outfiles infile) set(target_name ${name}) endif() + set (use_swig_dependencies ${SWIG_USE_SWIG_DEPENDENCIES}) + if (CMAKE_GENERATOR MATCHES "Make|Ninja") + get_property(use_swig_dependencies_set SOURCE "${infile}" PROPERTY USE_SWIG_DEPENDENCIES SET) + if (use_swig_dependencies_set) + get_property(use_swig_dependencies SOURCE "${infile}" PROPERTY USE_SWIG_DEPENDENCIES) + endif() + endif() + set (swig_source_file_flags ${CMAKE_SWIG_FLAGS}) # handle various swig compile flags properties get_source_file_property (include_directories "${infile}" INCLUDE_DIRECTORIES) @@ -591,7 +619,7 @@ function(SWIG_ADD_SOURCE_TO_MODULE name outfiles infile) list (APPEND swig_extra_flags ${SWIG_MODULE_${name}_EXTRA_FLAGS}) # dependencies - set (swig_dependencies ${SWIG_MODULE_${name}_EXTRA_DEPS} $<TARGET_PROPERTY:${target_name},SWIG_DEPENDS>) + set (swig_dependencies DEPENDS ${SWIG_MODULE_${name}_EXTRA_DEPS} $<TARGET_PROPERTY:${target_name},SWIG_DEPENDS>) get_source_file_property(file_depends "${infile}" DEPENDS) if (file_depends) list (APPEND swig_dependencies ${file_depends}) @@ -609,10 +637,11 @@ function(SWIG_ADD_SOURCE_TO_MODULE name outfiles infile) unset (swig_copy_command) endif() - # IMPLICIT_DEPENDS below can not handle situations where a dependent file is - # removed. We need an extra step with timestamp and custom target, see #16830 - # As this is needed only for Makefile generator do it conditionally - if(CMAKE_GENERATOR MATCHES "Make") + set(swig_depends_flags) + if(NOT use_swig_dependencies AND CMAKE_GENERATOR MATCHES "Make") + # IMPLICIT_DEPENDS can not handle situations where a dependent file is + # removed. We need an extra step with timestamp and custom target, see #16830 + # As this is needed only for Makefile generator do it conditionally __swig_compute_timestamp(${name} ${SWIG_MODULE_${name}_LANGUAGE} "${infile}" "${workingdir}" swig_generated_timestamp) set(swig_custom_output "${swig_generated_timestamp}") @@ -620,11 +649,19 @@ function(SWIG_ADD_SOURCE_TO_MODULE name outfiles infile) BYPRODUCTS "${swig_generated_file_fullname}" ${swig_extra_generated_files}) set(swig_timestamp_command COMMAND ${CMAKE_COMMAND} -E touch "${swig_generated_timestamp}") + list(APPEND swig_dependencies IMPLICIT_DEPENDS CXX "${swig_source_file_fullname}") else() + set(swig_generated_timestamp) set(swig_custom_output "${swig_generated_file_fullname}" ${swig_extra_generated_files}) set(swig_custom_products) set(swig_timestamp_command) + if (use_swig_dependencies) + cmake_path(GET infile FILENAME swig_depends_filename) + set(swig_depends_filename "${workingdir}/${swig_depends_filename}.d") + list(APPEND swig_dependencies DEPFILE "${swig_depends_filename}") + set(swig_depends_flags -MF "${swig_depends_filename}" -MD) + endif() endif() add_custom_command( OUTPUT ${swig_custom_output} @@ -639,13 +676,13 @@ function(SWIG_ADD_SOURCE_TO_MODULE name outfiles infile) -outdir "${swig_file_outdir}" ${swig_special_flags} ${swig_extra_flags} + ${swig_depends_flags} "${swig_include_dirs}" -o "${swig_generated_file_fullname}" "${swig_source_file_fullname}" ${swig_copy_command} MAIN_DEPENDENCY "${swig_source_file_fullname}" - DEPENDS ${swig_dependencies} - IMPLICIT_DEPENDS CXX "${swig_source_file_fullname}" + ${swig_dependencies} COMMENT "Swig compile ${infile} for ${SWIG_MODULE_${name}_SWIG_LANGUAGE_FLAG}" COMMAND_EXPAND_LISTS) set_source_files_properties("${swig_generated_file_fullname}" ${swig_extra_generated_files} @@ -666,6 +703,7 @@ function(SWIG_ADD_SOURCE_TO_MODULE name outfiles infile) endif() set(${outfiles} "${swig_generated_file_fullname}" ${swig_extra_generated_files} PARENT_SCOPE) + set(swig_timestamp "${swig_generated_timestamp}" PARENT_SCOPE) # legacy support set (swig_generated_file_fullname "${swig_generated_file_fullname}" PARENT_SCOPE) @@ -794,6 +832,15 @@ function(SWIG_ADD_LIBRARY name) set(SWIG_SOURCE_FILE_EXTENSIONS ".i") endif() + if (CMAKE_GENERATOR MATCHES "Make|Ninja") + # For Makefiles and Ninja generators, use SWIG generated dependencies + if (NOT DEFINED SWIG_USE_SWIG_DEPENDENCIES) + set (SWIG_USE_SWIG_DEPENDENCIES OFF) + endif() + else() + set (SWIG_USE_SWIG_DEPENDENCIES OFF) + endif() + # Generate a regex out of file extensions. string(REGEX REPLACE "([$^.*+?|()-])" "\\\\\\1" swig_source_ext_regex "${SWIG_SOURCE_FILE_EXTENSIONS}") list (JOIN swig_source_ext_regex "|" swig_source_ext_regex) @@ -821,9 +868,7 @@ function(SWIG_ADD_LIBRARY name) foreach(swig_it IN LISTS swig_dot_i_sources) SWIG_ADD_SOURCE_TO_MODULE(${name} swig_generated_source "${swig_it}") list (APPEND swig_generated_sources "${swig_generated_source}") - if(CMAKE_GENERATOR MATCHES "Make") - __swig_compute_timestamp(${name} ${SWIG_MODULE_${name}_LANGUAGE} "${swig_it}" - "${workingdir}" swig_timestamp) + if(swig_timestamp) list (APPEND swig_generated_timestamps "${swig_timestamp}") endif() get_source_file_property(swig_source_file_outdir "${swig_it}" OUTPUT_DIR) @@ -842,7 +887,7 @@ function(SWIG_ADD_LIBRARY name) ${_SAM_TYPE} ${swig_generated_sources} ${swig_other_sources}) - if(CMAKE_GENERATOR MATCHES "Make") + if(swig_generated_timestamps) # see IMPLICIT_DEPENDS above add_custom_target(${name}_swig_compilation DEPENDS ${swig_generated_timestamps}) add_dependencies(${target_name} ${name}_swig_compilation) diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 184fcf5..51f63fc 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -1,7 +1,7 @@ # CMake version number components. set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 19) -set(CMake_VERSION_PATCH 20210121) +set(CMake_VERSION_PATCH 20210124) #set(CMake_VERSION_RC 0) set(CMake_VERSION_IS_DIRTY 0) diff --git a/Source/cmGlobalVisualStudioVersionedGenerator.cxx b/Source/cmGlobalVisualStudioVersionedGenerator.cxx index 84f870e..e6c65bb 100644 --- a/Source/cmGlobalVisualStudioVersionedGenerator.cxx +++ b/Source/cmGlobalVisualStudioVersionedGenerator.cxx @@ -200,6 +200,7 @@ public: platforms.emplace_back("Win32"); platforms.emplace_back("ARM"); platforms.emplace_back("ARM64"); + platforms.emplace_back("ARM64EC"); return platforms; } diff --git a/Templates/MSBuild/FlagTables/v142_Link.json b/Templates/MSBuild/FlagTables/v142_Link.json index 66ee76f..110dcc2 100644 --- a/Templates/MSBuild/FlagTables/v142_Link.json +++ b/Templates/MSBuild/FlagTables/v142_Link.json @@ -352,6 +352,13 @@ }, { "name": "TargetMachine", + "switch": "MACHINE:ARM64EC", + "comment": "MachineARM64EC", + "value": "MachineARM64EC", + "flags": [] + }, + { + "name": "TargetMachine", "switch": "MACHINE:EBC", "comment": "MachineEBC", "value": "MachineEBC", diff --git a/Templates/MSBuild/FlagTables/v14_LIB.json b/Templates/MSBuild/FlagTables/v14_LIB.json index 5990ed1..a0e85b2 100644 --- a/Templates/MSBuild/FlagTables/v14_LIB.json +++ b/Templates/MSBuild/FlagTables/v14_LIB.json @@ -43,6 +43,13 @@ }, { "name": "TargetMachine", + "switch": "MACHINE:ARM64X", + "comment": "MachineARM64X", + "value": "MachineARM64X", + "flags": [] + }, + { + "name": "TargetMachine", "switch": "MACHINE:EBC", "comment": "MachineEBC", "value": "MachineEBC", diff --git a/Tests/UseSWIG/BasicPerl/CMakeLists.txt b/Tests/UseSWIG/BasicPerl/CMakeLists.txt index cf02de7..671d529 100644 --- a/Tests/UseSWIG/BasicPerl/CMakeLists.txt +++ b/Tests/UseSWIG/BasicPerl/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1...3.13) +cmake_minimum_required(VERSION 3.1...3.20) project(TestBasicPerl CXX) diff --git a/Tests/UseSWIG/BasicPython/CMakeLists.txt b/Tests/UseSWIG/BasicPython/CMakeLists.txt index 8bbd1cb..a1163a2 100644 --- a/Tests/UseSWIG/BasicPython/CMakeLists.txt +++ b/Tests/UseSWIG/BasicPython/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1...3.13) +cmake_minimum_required(VERSION 3.1...3.20) project(TestBasicPython CXX) diff --git a/Tests/UseSWIG/CMakeLists.txt b/Tests/UseSWIG/CMakeLists.txt index e150223..d08c59c 100644 --- a/Tests/UseSWIG/CMakeLists.txt +++ b/Tests/UseSWIG/CMakeLists.txt @@ -1,3 +1,5 @@ +find_package(SWIG QUIET) + add_test(NAME UseSWIG.LegacyPython COMMAND ${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION> --build-and-test @@ -64,6 +66,28 @@ add_test(NAME UseSWIG.BasicPerl COMMAND --build-options ${build_options} --test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION> ) +if(SWIG_FOUND AND NOT SWIG_VERSION VERSION_LESS "4.0.2") + add_test(NAME UseSWIG.Depfile.BasicPython COMMAND + ${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION> + --build-and-test + "${CMake_SOURCE_DIR}/Tests/UseSWIG/BasicPython" + "${CMake_BINARY_DIR}/Tests/UseSWIG/BasicPython.Depfile" + ${build_generator_args} + --build-project TestBasicPython + --build-options ${build_options} -DSWIG_USE_SWIG_DEPENDENCIES=ON + --test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION> + ) + add_test(NAME UseSWIG.Depfile.BasicPerl COMMAND + ${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION> + --build-and-test + "${CMake_SOURCE_DIR}/Tests/UseSWIG/BasicPerl" + "${CMake_BINARY_DIR}/Tests/UseSWIG/BasicPerl.Depfile" + ${build_generator_args} + --build-project TestBasicPerl + --build-options ${build_options} -DSWIG_USE_SWIG_DEPENDENCIES=ON + --test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION> + ) +endif() if (CMake_TEST_UseSWIG_Fortran) check_language(Fortran) |