[Cmake-commits] CMake branch, next, updated. v3.6.2-2524-gf144c2a

Brad King brad.king at kitware.com
Tue Sep 27 08:13:19 EDT 2016


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, next has been updated
       via  f144c2a7497a44235b24f20c246dec1f3bb3911a (commit)
       via  144cc6f1f9020433cb4a94f072fc74f1202ce1f3 (commit)
      from  cdaf32edb833a9cdfd71b99e2a013206c2a5bc42 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f144c2a7497a44235b24f20c246dec1f3bb3911a
commit f144c2a7497a44235b24f20c246dec1f3bb3911a
Merge: cdaf32e 144cc6f
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Tue Sep 27 08:13:18 2016 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Tue Sep 27 08:13:18 2016 -0400

    Merge topic 'ninja-include-dir' into next
    
    144cc6f1 Ninja: Add source location as include directory for preprocessed files


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=144cc6f1f9020433cb4a94f072fc74f1202ce1f3
commit 144cc6f1f9020433cb4a94f072fc74f1202ce1f3
Author:     Nils Gladitz <nilsgladitz at gmail.com>
AuthorDate: Fri Sep 23 22:59:37 2016 +0200
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Tue Sep 27 08:11:08 2016 -0400

    Ninja: Add source location as include directory for preprocessed files
    
    Fortran INCLUDE statements are not handled by the preprocessor.
    
    Since the location of the preprocessed file is distinct from the
    original source file explicitly add the source file's directory
    as an include path in the actual compile step (not the preprocessing step)
    so INCLUDE can find it.
    
    Closes: #16332

diff --git a/Source/cmNinjaTargetGenerator.cxx b/Source/cmNinjaTargetGenerator.cxx
index b418ce3..f88eb7b 100644
--- a/Source/cmNinjaTargetGenerator.cxx
+++ b/Source/cmNinjaTargetGenerator.cxx
@@ -841,6 +841,18 @@ void cmNinjaTargetGenerator::WriteObjectBuildStatement(
     // directive.
     ppVars["INCLUDES"] = vars["INCLUDES"];
 
+    // Prepend source file's original directory as an include directory
+    // so e.g. Fortran INCLUDE statements can look for files in it.
+    std::vector<std::string> sourceDirectory;
+    sourceDirectory.push_back(
+      cmSystemTools::GetParentDirectory(source->GetFullPath()));
+
+    std::string sourceDirectoryFlag = this->LocalGenerator->GetIncludeFlags(
+      sourceDirectory, this->GeneratorTarget, language, false, false,
+      this->GetConfigName());
+
+    vars["INCLUDES"] = sourceDirectoryFlag + " " + vars["INCLUDES"];
+
     // Explicit preprocessing always uses a depfile.
     ppVars["DEP_FILE"] =
       cmGlobalNinjaGenerator::EncodeDepfileSpace(ppFileName + ".d");
diff --git a/Tests/FortranModules/CMakeLists.txt b/Tests/FortranModules/CMakeLists.txt
index ff12771..3996600 100644
--- a/Tests/FortranModules/CMakeLists.txt
+++ b/Tests/FortranModules/CMakeLists.txt
@@ -52,6 +52,8 @@ add_definitions(-DFOO -DBAR=1)
 include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
 add_executable(test_preprocess test_preprocess.F90 test_preprocess_module.F90)
 
+add_executable(test_non_pp_include test_non_pp_include_main.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)
diff --git a/Tests/FortranModules/non_pp_include.f90 b/Tests/FortranModules/non_pp_include.f90
new file mode 100644
index 0000000..7eb1725
--- /dev/null
+++ b/Tests/FortranModules/non_pp_include.f90
@@ -0,0 +1,3 @@
+SUBROUTINE NON_PP_INCLUDE_SUBROUTINE
+   PRINT *, "Hello World!"
+END SUBROUTINE NON_PP_INCLUDE_SUBROUTINE
diff --git a/Tests/FortranModules/test_non_pp_include_main.f90 b/Tests/FortranModules/test_non_pp_include_main.f90
new file mode 100644
index 0000000..8a04fbd
--- /dev/null
+++ b/Tests/FortranModules/test_non_pp_include_main.f90
@@ -0,0 +1,5 @@
+INCLUDE "non_pp_include.f90"
+
+PROGRAM MAINF90
+   CALL NON_PP_INCLUDE_SUBROUTINE
+END PROGRAM MAINF90

-----------------------------------------------------------------------

Summary of changes:


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list