summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2014-02-14 11:24:13 (GMT)
committerStephen Kelly <steveire@gmail.com>2014-02-24 15:45:25 (GMT)
commitf9d5b1fd0fe1e1c5a0083c6518c7da6c36776042 (patch)
treed20e37c8c88b66f48d0638de814615ad4ae04cff /Source
parent64d398416ad678c1c57fbd3a7981623e28d69bca (diff)
downloadCMake-f9d5b1fd0fe1e1c5a0083c6518c7da6c36776042.zip
CMake-f9d5b1fd0fe1e1c5a0083c6518c7da6c36776042.tar.gz
CMake-f9d5b1fd0fe1e1c5a0083c6518c7da6c36776042.tar.bz2
Handle Mac OSX source flags for individual files lazily.
The actual list of files will become config dependent in a follow-up commit.
Diffstat (limited to 'Source')
-rw-r--r--Source/cmGeneratorTarget.cxx43
1 files changed, 17 insertions, 26 deletions
diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx
index 4cb1904..a7b2fb6 100644
--- a/Source/cmGeneratorTarget.cxx
+++ b/Source/cmGeneratorTarget.cxx
@@ -1009,6 +1009,23 @@ cmGeneratorTarget::GetTargetSourceFileFlags(const cmSourceFile* sf) const
{
flags = si->second;
}
+ else
+ {
+ // Handle the MACOSX_PACKAGE_LOCATION property on source files that
+ // were not listed in one of the other lists.
+ if(const char* location = sf->GetProperty("MACOSX_PACKAGE_LOCATION"))
+ {
+ flags.MacFolder = location;
+ if(strcmp(location, "Resources") == 0)
+ {
+ flags.Type = cmGeneratorTarget::SourceFileTypeResource;
+ }
+ else
+ {
+ flags.Type = cmGeneratorTarget::SourceFileTypeMacContent;
+ }
+ }
+ }
return flags;
}
@@ -1072,30 +1089,4 @@ void cmGeneratorTarget::ConstructSourceFileFlags() const
}
}
}
-
- // Handle the MACOSX_PACKAGE_LOCATION property on source files that
- // were not listed in one of the other lists.
- std::vector<cmSourceFile*> sources;
- this->GetSourceFiles(sources);
- for(std::vector<cmSourceFile*>::const_iterator si = sources.begin();
- si != sources.end(); ++si)
- {
- cmSourceFile* sf = *si;
- if(const char* location = sf->GetProperty("MACOSX_PACKAGE_LOCATION"))
- {
- SourceFileFlags& flags = this->SourceFlagsMap[sf];
- if(flags.Type == cmGeneratorTarget::SourceFileTypeNormal)
- {
- flags.MacFolder = location;
- if(strcmp(location, "Resources") == 0)
- {
- flags.Type = cmGeneratorTarget::SourceFileTypeResource;
- }
- else
- {
- flags.Type = cmGeneratorTarget::SourceFileTypeMacContent;
- }
- }
- }
- }
}