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.
|
||||
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");
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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