summaryrefslogtreecommitdiff
path: root/Source/cmGlobalXCodeGenerator.h
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2009-09-22 16:18:31 -0400
committerBrad King <brad.king@kitware.com>2009-09-22 16:18:31 -0400
commit61495cdaaeb5800da09513ad78ae2f4fc5e62a79 (patch)
treedfa473e37992b071fab4dc67d122cf98accb4102 /Source/cmGlobalXCodeGenerator.h
parent3fe5f8d96054b21736fca56ffdd6c94ccbcd7228 (diff)
downloadcmake-61495cdaaeb5800da09513ad78ae2f4fc5e62a79.tar.gz
Fix Xcode project references to the source tree
Xcode project source file references need to always be relative to the top of the source tree in order for SCM and debug symbols to work right. We must even allow the relative paths to cross outside of the top source or build directories. For subdirectory project() command Xcode projects we use the source directory containing the project() command as the top. Relative paths are generated accordingly for each subproject. See issue #8481.
Diffstat (limited to 'Source/cmGlobalXCodeGenerator.h')
-rw-r--r--Source/cmGlobalXCodeGenerator.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/Source/cmGlobalXCodeGenerator.h b/Source/cmGlobalXCodeGenerator.h
index 3dd105cfef..189d7fb4ad 100644
--- a/Source/cmGlobalXCodeGenerator.h
+++ b/Source/cmGlobalXCodeGenerator.h
@@ -93,6 +93,8 @@ private:
std::vector<cmLocalGenerator*>&
generators);
std::string XCodeEscapePath(const char* p);
+ std::string RelativeToSource(const char* p);
+ std::string RelativeToBinary(const char* p);
std::string ConvertToRelativeForXCode(const char* p);
std::string ConvertToRelativeForMake(const char* p);
void CreateCustomCommands(cmXCodeObject* buildPhases,
@@ -206,6 +208,7 @@ private:
std::string CurrentProject;
std::set<cmStdString> TargetDoneSet;
std::vector<std::string> CurrentOutputDirectoryComponents;
+ std::vector<std::string> ProjectSourceDirectoryComponents;
std::vector<std::string> ProjectOutputDirectoryComponents;
std::map<cmStdString, cmXCodeObject* > GroupMap;
std::map<cmStdString, cmXCodeObject* > GroupNameMap;