From 0a203db5dc4c654a488777acd785337dd24137e2 Mon Sep 17 00:00:00 2001 From: Brad King Date: Mon, 6 Jul 2015 10:21:25 -0400 Subject: [PATCH] Fortran: Fix passing of preprocessor definitions to dependency scanner In commit v3.3.0-rc1~352^2~3 (Genex: Allow COMPILE_LANGUAGE when processing compile definitions, 2015-03-04) the name of the variable used to pass preprocessor definitions to the Fortran dependency scanner was changed to be per-language, but the actual dependency scanning code was not updated accordingly. Update the code and add a test case. Reported-by: Radovan Bast --- Source/cmDependsFortran.cxx | 2 +- Tests/Fortran/CMakeLists.txt | 2 +- Tests/Fortran/test_preprocess.F90 | 2 ++ Tests/Fortran/test_preprocess_module.F90 | 5 +++++ 4 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 Tests/Fortran/test_preprocess_module.F90 diff --git a/Source/cmDependsFortran.cxx b/Source/cmDependsFortran.cxx index f12116eba..1b2586c23 100644 --- a/Source/cmDependsFortran.cxx +++ b/Source/cmDependsFortran.cxx @@ -143,7 +143,7 @@ cmDependsFortran std::vector definitions; cmMakefile* mf = this->LocalGenerator->GetMakefile(); if(const char* c_defines = - mf->GetDefinition("CMAKE_TARGET_DEFINITIONS")) + mf->GetDefinition("CMAKE_TARGET_DEFINITIONS_Fortran")) { cmSystemTools::ExpandListArgument(c_defines, definitions); } diff --git a/Tests/Fortran/CMakeLists.txt b/Tests/Fortran/CMakeLists.txt index 8700c9466..753ce2796 100644 --- a/Tests/Fortran/CMakeLists.txt +++ b/Tests/Fortran/CMakeLists.txt @@ -168,7 +168,7 @@ if(CMAKE_Fortran_COMPILER_SUPPORTS_F90) add_definitions(-DFOO -DBAR=1) include_directories(${testf_SOURCE_DIR}/include) - add_executable(test_preprocess test_preprocess.F90) + add_executable(test_preprocess test_preprocess.F90 test_preprocess_module.F90) set(TEST_MODULE_DEPENDS 1) endif() diff --git a/Tests/Fortran/test_preprocess.F90 b/Tests/Fortran/test_preprocess.F90 index e4f1fbe76..3a09976c5 100644 --- a/Tests/Fortran/test_preprocess.F90 +++ b/Tests/Fortran/test_preprocess.F90 @@ -46,6 +46,8 @@ PROGRAM PPTEST #endif ! 0 ; +USE PPAvailable + #include "test_preprocess.h" END PROGRAM diff --git a/Tests/Fortran/test_preprocess_module.F90 b/Tests/Fortran/test_preprocess_module.F90 new file mode 100644 index 000000000..5849b62b4 --- /dev/null +++ b/Tests/Fortran/test_preprocess_module.F90 @@ -0,0 +1,5 @@ +#ifdef FOO +MODULE PPAvailable +! no conent +END MODULE +#endif