summaryrefslogtreecommitdiffstats
path: root/Tests/FortranOnly
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2019-08-30 19:30:51 (GMT)
committerBrad King <brad.king@kitware.com>2019-09-03 18:20:26 (GMT)
commitfb9da8e6f421263e8904e8d12586bf7b068ed3b4 (patch)
tree70e48754291416be101a0e839331d134ff8772af /Tests/FortranOnly
parent711e1c3ada26d952fa6360e671379b7bf1be2f17 (diff)
downloadCMake-fb9da8e6f421263e8904e8d12586bf7b068ed3b4.zip
CMake-fb9da8e6f421263e8904e8d12586bf7b068ed3b4.tar.gz
CMake-fb9da8e6f421263e8904e8d12586bf7b068ed3b4.tar.bz2
Ninja: Pass preprocessor definitions when compiling with Intel Fortran
The Intel Fortran compiler supports an extension that allows conditional compilation based on preprocessor definitions specified on the command line even when not preprocessing. Fixes: #19664
Diffstat (limited to 'Tests/FortranOnly')
-rw-r--r--Tests/FortranOnly/CMakeLists.txt8
-rw-r--r--Tests/FortranOnly/IntelIfDef.f3
-rw-r--r--Tests/FortranOnly/IntelIfDef.inc3
3 files changed, 14 insertions, 0 deletions
diff --git a/Tests/FortranOnly/CMakeLists.txt b/Tests/FortranOnly/CMakeLists.txt
index 45372dd..de887fa 100644
--- a/Tests/FortranOnly/CMakeLists.txt
+++ b/Tests/FortranOnly/CMakeLists.txt
@@ -112,3 +112,11 @@ if("${CMAKE_GENERATOR}" MATCHES "Makefile" AND CMAKE_MAKE_PROGRAM)
)
endif()
endif()
+
+# Test that with Intel Fortran we always compile with preprocessor
+# defines even if splitting the preprocessing and compilation steps.
+if(CMAKE_Fortran_COMPILER_ID STREQUAL "Intel")
+ add_executable(IntelIfDef IntelIfDef.f)
+ set_property(TARGET IntelIfDef PROPERTY Fortran_FORMAT FIXED)
+ target_compile_definitions(IntelIfDef PRIVATE SOME_DEF)
+endif()
diff --git a/Tests/FortranOnly/IntelIfDef.f b/Tests/FortranOnly/IntelIfDef.f
new file mode 100644
index 0000000..d7a73d1
--- /dev/null
+++ b/Tests/FortranOnly/IntelIfDef.f
@@ -0,0 +1,3 @@
+ INCLUDE 'IntelIfDef.inc'
+ PROGRAM IntelIfDef
+ END
diff --git a/Tests/FortranOnly/IntelIfDef.inc b/Tests/FortranOnly/IntelIfDef.inc
new file mode 100644
index 0000000..52edafa
--- /dev/null
+++ b/Tests/FortranOnly/IntelIfDef.inc
@@ -0,0 +1,3 @@
+CDEC$ IF .NOT. DEFINED(SOME_DEF)
+CDEC$ INCLUDE 'SOME_DEF not defined'
+CDEC$ END IF