1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-28 02:30:05 +00:00

Projucer: Avoid hitting some assertions in File::parseAbsolutePath() when searching for the DemoRunner on Windows

This commit is contained in:
ed 2018-10-25 16:47:22 +01:00
parent 98def04379
commit 9684de485c

View file

@ -733,11 +733,13 @@ static String getPlatformSpecificFileExtension()
static File getPlatformSpecificProjectFolder()
{
auto buildsFolder = getJUCEExamplesDirectoryPathFromGlobal().getChildFile ("DemoRunner").getChildFile ("Builds");
auto examplesDir = getJUCEExamplesDirectoryPathFromGlobal();
if (! buildsFolder.exists())
if (examplesDir == File())
return {};
auto buildsFolder = examplesDir.getChildFile ("DemoRunner").getChildFile ("Builds");
#if JUCE_MAC
return buildsFolder.getChildFile ("MacOSX");
#elif JUCE_WINDOWS
@ -754,6 +756,9 @@ static File tryToFindDemoRunnerExecutableInBuilds()
{
auto projectFolder = getPlatformSpecificProjectFolder();
if (projectFolder == File())
return {};
#if JUCE_MAC
projectFolder = projectFolder.getChildFile ("build");
auto demoRunnerExecutable = projectFolder.getChildFile ("Release").getChildFile ("DemoRunner.app");
@ -822,12 +827,13 @@ File ProjucerApplication::tryToFindDemoRunnerExecutable()
if (hasScannedForDemoRunnerExecutable)
return lastDemoRunnerExectuableFile;
hasScannedForDemoRunnerExecutable = true;
auto demoRunnerExecutable = tryToFindDemoRunnerExecutableInBuilds();
if (demoRunnerExecutable == File())
demoRunnerExecutable = tryToFindPrebuiltDemoRunnerExecutable();
hasScannedForDemoRunnerExecutable = true;
lastDemoRunnerExectuableFile = demoRunnerExecutable;
return demoRunnerExecutable;
@ -840,8 +846,16 @@ File ProjucerApplication::tryToFindDemoRunnerProject()
if (hasScannedForDemoRunnerProject)
return lastDemoRunnerProjectFile;
hasScannedForDemoRunnerProject = true;
auto projectFolder = getPlatformSpecificProjectFolder();
if (projectFolder == File())
{
lastDemoRunnerProjectFile = {};
return {};
}
#if JUCE_MAC
auto demoRunnerProjectFile = projectFolder.getChildFile ("DemoRunner.xcodeproj");
#elif JUCE_WINDOWS
@ -857,7 +871,6 @@ File ProjucerApplication::tryToFindDemoRunnerProject()
#endif
demoRunnerProjectFile = File();
hasScannedForDemoRunnerProject = true;
lastDemoRunnerProjectFile = demoRunnerProjectFile;
return demoRunnerProjectFile;