Browse Source

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

tags/2021-05-28
ed 7 years ago
parent
commit
9684de485c
1 changed files with 17 additions and 4 deletions
  1. +17
    -4
      extras/Projucer/Source/Application/jucer_Application.cpp

+ 17
- 4
extras/Projucer/Source/Application/jucer_Application.cpp 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;


Loading…
Cancel
Save