mirror of
https://github.com/Kitware/CMake.git
synced 2026-08-08 08:40:48 +00:00
Merge topic 'CheckSource-Fortran' into release-3.19
c4c636cef5Tests: Add cases for CheckSource{Compiles,Runs} bad arguments1e519df025CheckSource{Runs,Compiles}: Fix default Fortran source extension Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5378
This commit is contained in:
@@ -90,5 +90,7 @@ include_guard(GLOBAL)
|
||||
include(CheckSourceCompiles)
|
||||
|
||||
macro(CHECK_Fortran_SOURCE_COMPILES SOURCE VAR)
|
||||
check_source_compiles(Fortran "${SOURCE}" ${VAR} ${ARGN})
|
||||
# Pass the SRC_EXT we used by default historically.
|
||||
# A user-provided SRC_EXT argument in ARGN will override ours.
|
||||
check_source_compiles(Fortran "${SOURCE}" ${VAR} SRC_EXT "F" ${ARGN})
|
||||
endmacro()
|
||||
|
||||
@@ -86,5 +86,7 @@ include_guard(GLOBAL)
|
||||
include(CheckSourceRuns)
|
||||
|
||||
macro(CHECK_Fortran_SOURCE_RUNS SOURCE VAR)
|
||||
check_source_runs(Fortran "${SOURCE}" ${VAR} ${ARGN})
|
||||
# Pass the SRC_EXT we used by default historically.
|
||||
# A user-provided SRC_EXT argument in ARGN will override ours.
|
||||
check_source_runs(Fortran "${SOURCE}" ${VAR} SRC_EXT "F90" ${ARGN})
|
||||
endmacro()
|
||||
|
||||
@@ -94,7 +94,7 @@ function(CHECK_SOURCE_COMPILES _lang _source _var)
|
||||
set(_lang_ext "cu")
|
||||
elseif(_lang STREQUAL Fortran)
|
||||
set(_lang_textual "Fortran")
|
||||
set(_lang_ext "F")
|
||||
set(_lang_ext "F90")
|
||||
elseif(_lang STREQUAL ISPC)
|
||||
set(_lang_textual "ISPC")
|
||||
set(_lang_ext "ispc")
|
||||
@@ -121,8 +121,11 @@ function(CHECK_SOURCE_COMPILES _lang _source _var)
|
||||
foreach(arg ${ARGN})
|
||||
if("${arg}" MATCHES "^(FAIL_REGEX|SRC_EXT)$")
|
||||
set(_key "${arg}")
|
||||
elseif(_key)
|
||||
list(APPEND _${_key} "${arg}")
|
||||
elseif(_key STREQUAL "FAIL_REGEX")
|
||||
list(APPEND _FAIL_REGEX "${arg}")
|
||||
elseif(_key STREQUAL "SRC_EXT")
|
||||
set(_SRC_EXT "${arg}")
|
||||
set(_key "")
|
||||
else()
|
||||
message(FATAL_ERROR "Unknown argument:\n ${arg}\n")
|
||||
endif()
|
||||
|
||||
@@ -92,7 +92,7 @@ function(CHECK_SOURCE_RUNS _lang _source _var)
|
||||
set(_lang_ext "cu")
|
||||
elseif(_lang STREQUAL Fortran)
|
||||
set(_lang_textual "Fortran")
|
||||
set(_lang_ext "F")
|
||||
set(_lang_ext "F90")
|
||||
elseif(_lang STREQUAL OBJC)
|
||||
set(_lang_textual "Objective-C")
|
||||
set(_lang_ext "m")
|
||||
@@ -114,10 +114,13 @@ function(CHECK_SOURCE_RUNS _lang _source _var)
|
||||
set(_SRC_EXT)
|
||||
set(_key)
|
||||
foreach(arg ${ARGN})
|
||||
if("${arg}" MATCHES "^(SRC_EXT)$")
|
||||
if("${arg}" MATCHES "^(FAIL_REGEX|SRC_EXT)$")
|
||||
set(_key "${arg}")
|
||||
elseif(_key)
|
||||
list(APPEND _${_key} "${arg}")
|
||||
elseif(_key STREQUAL "FAIL_REGEX")
|
||||
list(APPEND _FAIL_REGEX "${arg}")
|
||||
elseif(_key STREQUAL "SRC_EXT")
|
||||
set(_SRC_EXT "${arg}")
|
||||
set(_key "")
|
||||
else()
|
||||
message(FATAL_ERROR "Unknown argument:\n ${arg}\n")
|
||||
endif()
|
||||
|
||||
@@ -2,6 +2,7 @@ include(RunCMake)
|
||||
|
||||
run_cmake(NotEnabledLanguage)
|
||||
run_cmake(NonExistentLanguage)
|
||||
run_cmake(UnknownArgument)
|
||||
|
||||
run_cmake(CheckCSourceCompiles)
|
||||
run_cmake(CheckCXXSourceCompiles)
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
1
|
||||
@@ -0,0 +1,9 @@
|
||||
^CMake Error at [^
|
||||
]*/Modules/CheckSourceCompiles.cmake:[0-9]+ \(message\):
|
||||
Unknown argument:
|
||||
|
||||
BAD
|
||||
|
||||
Call Stack \(most recent call first\):
|
||||
UnknownArgument.cmake:[0-9]+ \(check_source_compiles\)
|
||||
CMakeLists.txt:[0-9]+ \(include\)$
|
||||
5
Tests/RunCMake/CheckSourceCompiles/UnknownArgument.cmake
Normal file
5
Tests/RunCMake/CheckSourceCompiles/UnknownArgument.cmake
Normal file
@@ -0,0 +1,5 @@
|
||||
|
||||
enable_language (C)
|
||||
include(CheckSourceCompiles)
|
||||
|
||||
check_source_compiles(C "int main() {return 0;}" SHOULD_BUILD SRC_EXT C BAD)
|
||||
@@ -2,6 +2,7 @@ include(RunCMake)
|
||||
|
||||
run_cmake(NotEnabledLanguage)
|
||||
run_cmake(NonExistentLanguage)
|
||||
run_cmake(UnknownArgument)
|
||||
|
||||
run_cmake(CheckCSourceRuns)
|
||||
run_cmake(CheckCXXSourceRuns)
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
1
|
||||
@@ -0,0 +1,9 @@
|
||||
^CMake Error at [^
|
||||
]*/Modules/CheckSourceRuns.cmake:[0-9]+ \(message\):
|
||||
Unknown argument:
|
||||
|
||||
BAD
|
||||
|
||||
Call Stack \(most recent call first\):
|
||||
UnknownArgument.cmake:[0-9]+ \(check_source_runs\)
|
||||
CMakeLists.txt:[0-9]+ \(include\)$
|
||||
5
Tests/RunCMake/CheckSourceRuns/UnknownArgument.cmake
Normal file
5
Tests/RunCMake/CheckSourceRuns/UnknownArgument.cmake
Normal file
@@ -0,0 +1,5 @@
|
||||
|
||||
enable_language (C)
|
||||
include(CheckSourceRuns)
|
||||
|
||||
check_source_runs(C "int main() {return 0;}" SHOULD_BUILD SRC_EXT C BAD)
|
||||
Reference in New Issue
Block a user