summaryrefslogtreecommitdiffstats
path: root/Source/cmLocalUnixMakefileGenerator2.h
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2005-01-04 22:41:19 (GMT)
committerBrad King <brad.king@kitware.com>2005-01-04 22:41:19 (GMT)
commit79c67a6dfa0f864734859a0ab08fe7c22bcfbf24 (patch)
treeb12973e300f98c19a6aa9f51caa7b296356c4138 /Source/cmLocalUnixMakefileGenerator2.h
parent524769aebc2356b89a021fc9229fb7ed548a46a9 (diff)
downloadCMake-79c67a6dfa0f864734859a0ab08fe7c22bcfbf24.zip
CMake-79c67a6dfa0f864734859a0ab08fe7c22bcfbf24.tar.gz
CMake-79c67a6dfa0f864734859a0ab08fe7c22bcfbf24.tar.bz2
ENH: Added relative path support (mostly done). Many paths are written relative even if CMAKE_USE_RELATIVE_PATHS is not on just to keep makefiles short.
Diffstat (limited to 'Source/cmLocalUnixMakefileGenerator2.h')
-rw-r--r--Source/cmLocalUnixMakefileGenerator2.h14
1 files changed, 13 insertions, 1 deletions
diff --git a/Source/cmLocalUnixMakefileGenerator2.h b/Source/cmLocalUnixMakefileGenerator2.h
index 9d2bd07..64b3b80 100644
--- a/Source/cmLocalUnixMakefileGenerator2.h
+++ b/Source/cmLocalUnixMakefileGenerator2.h
@@ -95,7 +95,7 @@ protected:
const char* order, const std::string& last);
void WriteConvenienceRules(std::ostream& ruleFileStream,
const cmTarget& target,
- const char* targetFullPath);
+ const char* targetOutPath);
void WriteConvenienceRule(std::ostream& ruleFileStream,
const char* realTarget,
const char* helpTarget);
@@ -138,6 +138,11 @@ protected:
std::string GetCustomBaseName(const cmCustomCommand& cc);
const char* GetSourceFileLanguage(const cmSourceFile& source);
std::string ConvertToFullPath(const std::string& localPath);
+ std::string ConvertToRelativePath(const char* p);
+ std::string ConvertToRelativeOutputPath(const char* p);
+ virtual void ConfigureOutputPaths();
+ void SplitFullPath(const char* p, std::vector<std::string>& components);
+ bool ComparePath(const char* c1, const char* c2);
void AddLanguageFlags(std::string& flags, const char* lang);
void AddSharedFlags(std::string& flags, const char* lang, bool shared);
@@ -191,6 +196,13 @@ private:
std::vector<std::string> m_BuildTargets;
std::vector<std::string> m_InstallTargets;
std::vector<std::string> m_CleanTargets;
+
+ // The prefix required of a path to be converted to a relative path.
+ // No sequence of ../.. will ever go past this path.
+ std::string m_RelativePathTop;
+
+ // The pre-split current output directory.
+ std::vector<std::string> m_CurrentOutputDirectoryComponents;
};
#endif