Merge topic 'ninja-include-dir'
144cc6f1
Ninja: Add source location as include directory for preprocessed files
This commit is contained in:
commit
4207aa4724
|
@ -841,6 +841,18 @@ void cmNinjaTargetGenerator::WriteObjectBuildStatement(
|
||||||
// directive.
|
// directive.
|
||||||
ppVars["INCLUDES"] = vars["INCLUDES"];
|
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.
|
// Explicit preprocessing always uses a depfile.
|
||||||
ppVars["DEP_FILE"] =
|
ppVars["DEP_FILE"] =
|
||||||
cmGlobalNinjaGenerator::EncodeDepfileSpace(ppFileName + ".d");
|
cmGlobalNinjaGenerator::EncodeDepfileSpace(ppFileName + ".d");
|
||||||
|
|
|
@ -52,6 +52,8 @@ add_definitions(-DFOO -DBAR=1)
|
||||||
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
|
||||||
add_executable(test_preprocess test_preprocess.F90 test_preprocess_module.F90)
|
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.
|
# Build the external project separately using a custom target.
|
||||||
# Make sure it uses the same build configuration as this test.
|
# Make sure it uses the same build configuration as this test.
|
||||||
if(CMAKE_CONFIGURATION_TYPES)
|
if(CMAKE_CONFIGURATION_TYPES)
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
SUBROUTINE NON_PP_INCLUDE_SUBROUTINE
|
||||||
|
PRINT *, "Hello World!"
|
||||||
|
END SUBROUTINE NON_PP_INCLUDE_SUBROUTINE
|
|
@ -0,0 +1,5 @@
|
||||||
|
INCLUDE "non_pp_include.f90"
|
||||||
|
|
||||||
|
PROGRAM MAINF90
|
||||||
|
CALL NON_PP_INCLUDE_SUBROUTINE
|
||||||
|
END PROGRAM MAINF90
|
Loading…
Reference in New Issue