diff options
author | Brad King <brad.king@kitware.com> | 2015-07-29 12:55:58 -0400 |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2015-07-29 13:20:03 -0400 |
commit | 70c21301b274a28dde75b4f2adb141f9b170eb80 (patch) | |
tree | b847e901967286b5aada86ce5353848d29984644 /Source | |
parent | 7371d8f3b49c020a14f6324ba5264d17c7dbbaee (diff) | |
download | cmake-70c21301b274a28dde75b4f2adb141f9b170eb80.tar.gz |
cmCommonTargetGenerator: Store working directory for relative paths
The Makefile generators run tools with the current working directory set
to the subdirectory of the build tree for the each target. The Ninja
generator runs tools with the current working directory set to the top
of the build tree. Tell cmCommonTargetGenerator where the working
directory will be so it can compute proper relative paths.
Diffstat (limited to 'Source')
-rw-r--r-- | Source/cmCommonTargetGenerator.cxx | 10 | ||||
-rw-r--r-- | Source/cmCommonTargetGenerator.h | 4 | ||||
-rw-r--r-- | Source/cmMakefileTargetGenerator.cxx | 2 | ||||
-rw-r--r-- | Source/cmNinjaTargetGenerator.cxx | 2 |
4 files changed, 12 insertions, 6 deletions
diff --git a/Source/cmCommonTargetGenerator.cxx b/Source/cmCommonTargetGenerator.cxx index eb93ebcb65..8a5746ae33 100644 --- a/Source/cmCommonTargetGenerator.cxx +++ b/Source/cmCommonTargetGenerator.cxx @@ -20,8 +20,12 @@ #include "cmSystemTools.h" #include "cmTarget.h" -cmCommonTargetGenerator::cmCommonTargetGenerator(cmGeneratorTarget* gt) - : GeneratorTarget(gt) +cmCommonTargetGenerator::cmCommonTargetGenerator( + cmOutputConverter::RelativeRoot wd, + cmGeneratorTarget* gt + ) + : WorkingDirectory(wd) + , GeneratorTarget(gt) , Target(gt->Target) , Makefile(gt->Makefile) , LocalGenerator(static_cast<cmLocalCommonGenerator*>(gt->LocalGenerator)) @@ -152,7 +156,7 @@ void cmCommonTargetGenerator::AddFortranFlags(std::string& flags) if (!mod_dir.empty()) { mod_dir = this->Convert(mod_dir, - cmLocalGenerator::START_OUTPUT, + this->WorkingDirectory, cmLocalGenerator::SHELL); } else diff --git a/Source/cmCommonTargetGenerator.h b/Source/cmCommonTargetGenerator.h index aec3148a97..5fd976d5ea 100644 --- a/Source/cmCommonTargetGenerator.h +++ b/Source/cmCommonTargetGenerator.h @@ -29,7 +29,8 @@ class cmTarget; class cmCommonTargetGenerator { public: - cmCommonTargetGenerator(cmGeneratorTarget* gt); + cmCommonTargetGenerator(cmOutputConverter::RelativeRoot wd, + cmGeneratorTarget* gt); virtual ~cmCommonTargetGenerator(); std::string const& GetConfigName() const; @@ -46,6 +47,7 @@ protected: // Helper to add flag for windows .def file. void AddModuleDefinitionFlag(std::string& flags); + cmOutputConverter::RelativeRoot WorkingDirectory; cmGeneratorTarget* GeneratorTarget; cmTarget* Target; cmMakefile* Makefile; diff --git a/Source/cmMakefileTargetGenerator.cxx b/Source/cmMakefileTargetGenerator.cxx index 5a2333d72e..1304258afa 100644 --- a/Source/cmMakefileTargetGenerator.cxx +++ b/Source/cmMakefileTargetGenerator.cxx @@ -33,7 +33,7 @@ #include <ctype.h> cmMakefileTargetGenerator::cmMakefileTargetGenerator(cmGeneratorTarget* target) - : cmCommonTargetGenerator(target) + : cmCommonTargetGenerator(cmOutputConverter::START_OUTPUT, target) , OSXBundleGenerator(0) , MacOSXContentGenerator(0) { diff --git a/Source/cmNinjaTargetGenerator.cxx b/Source/cmNinjaTargetGenerator.cxx index addf2929a9..4e4dc3f157 100644 --- a/Source/cmNinjaTargetGenerator.cxx +++ b/Source/cmNinjaTargetGenerator.cxx @@ -58,7 +58,7 @@ cmNinjaTargetGenerator::New(cmGeneratorTarget* target) } cmNinjaTargetGenerator::cmNinjaTargetGenerator(cmGeneratorTarget* target) - : cmCommonTargetGenerator(target), + : cmCommonTargetGenerator(cmOutputConverter::HOME_OUTPUT, target), MacOSXContentGenerator(0), OSXBundleGenerator(0), MacContentFolders(), |