1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00

Projucer: Changed the Xcode subproject paths to be relative to the build directory rather than the project directory

This commit is contained in:
Tom Poole 2020-02-11 18:45:49 +00:00
parent 1c3128fc50
commit 2650458e1f
2 changed files with 30 additions and 16 deletions

View file

@ -1,6 +1,30 @@
JUCE breaking changes
=====================
Develop
=======
Change
------
Relative Xcode subproject paths specified in the Projucer are now relative to
the build directory rather than the project directory.
Possible Issues
---------------
After being re-saved in the Projucer existing Xcode projects will fail to find
any subprojects specified using a relative path.
Workaround
----------
Update the subproject path in the Projucer.
Rationale
---------
Most other Xcode specific paths are specified reltive to the build directory.
This change brings the Xcode subproject path in line with the rest of the
configuration.
Version 5.4.6
=============

View file

@ -497,6 +497,7 @@ public:
props.add (new TextPropertyComponent (subprojectsValue, "Xcode Subprojects", 8192, true),
"Paths to Xcode projects that should be added to the build (one per line). "
"These can be absolute or relative to the build directory. "
"The names of the required build products can be specified after a colon, comma separated, "
"e.g. \"path/to/MySubProject.xcodeproj: MySubProject, OtherTarget\". "
"If no build products are specified, all build products associated with a subproject will be added.");
@ -2782,19 +2783,8 @@ private:
if (! subprojectPath.endsWith (".xcodeproj"))
subprojectPath += ".xcodeproj";
File subprojectFile;
if (File::isAbsolutePath (subprojectPath))
{
subprojectFile = subprojectPath;
}
else
{
subprojectFile = getProject().getProjectFolder().getChildFile (subprojectPath);
RelativePath p (subprojectPath, RelativePath::projectFolder);
subprojectPath = p.rebased (getProject().getProjectFolder(), getTargetFolder(), RelativePath::buildTargetFolder).toUnixStyle();
}
File subprojectFile = File::isAbsolutePath (subprojectPath) ? subprojectPath
: getTargetFolder().getChildFile (subprojectPath);
if (! subprojectFile.isDirectory())
continue;
@ -2815,8 +2805,8 @@ private:
if (availableBuildProducts.empty())
continue;
auto subprojectFileType = getFileType (RelativePath (subprojectPath, RelativePath::projectFolder));
auto subprojectFileID = addFileOrFolderReference (subprojectPath, "<group>", subprojectFileType);
auto subprojectFileType = getFileType (RelativePath (subprojectFile.getFullPathName(), RelativePath::buildTargetFolder));
auto subprojectFileID = addFileOrFolderReference (subprojectFile.getFullPathName(), "<group>", subprojectFileType);
subprojectFileIDs.add (subprojectFileID);
StringArray proxyIDs;
@ -2851,7 +2841,7 @@ private:
}
}
auto productGroupID = createFileRefID (subprojectPath + "_products");
auto productGroupID = createFileRefID (subprojectFile.getFullPathName() + "_products");
addGroup (productGroupID, "Products", proxyIDs);
subprojectReferences.add ({ productGroupID, subprojectFileID });