From fabb3a1e09ce268912a1d9bf1965a7455ff671d3 Mon Sep 17 00:00:00 2001 From: ed Date: Wed, 11 Apr 2018 09:48:09 +0100 Subject: [PATCH] Projucer: Ensure that the compile engine settings are stored and recalled correctly --- .../Source/LiveBuildEngine/jucer_CompileEngineClient.cpp | 3 ++- .../Source/LiveBuildEngine/jucer_CompileEngineSettings.h | 1 + .../Source/Project/UI/jucer_ProjectContentComponent.cpp | 1 + extras/Projucer/Source/Project/jucer_Project.cpp | 5 +++++ extras/Projucer/Source/Project/jucer_Project.h | 6 +++--- 5 files changed, 12 insertions(+), 4 deletions(-) diff --git a/extras/Projucer/Source/LiveBuildEngine/jucer_CompileEngineClient.cpp b/extras/Projucer/Source/LiveBuildEngine/jucer_CompileEngineClient.cpp index a57e4fe8c2..38eef8d39e 100644 --- a/extras/Projucer/Source/LiveBuildEngine/jucer_CompileEngineClient.cpp +++ b/extras/Projucer/Source/LiveBuildEngine/jucer_CompileEngineClient.cpp @@ -35,7 +35,8 @@ #include "jucer_ProjectBuildInfo.h" #include "jucer_ClientServerMessages.h" #include "jucer_CompileEngineClient.h" -#include "../LiveBuildEngine/jucer_CompileEngineServer.h" +#include "jucer_CompileEngineServer.h" +#include "jucer_CompileEngineSettings.h" #ifndef RUN_CLANG_IN_CHILD_PROCESS #error diff --git a/extras/Projucer/Source/LiveBuildEngine/jucer_CompileEngineSettings.h b/extras/Projucer/Source/LiveBuildEngine/jucer_CompileEngineSettings.h index f197d4ecbb..fbb252864c 100644 --- a/extras/Projucer/Source/LiveBuildEngine/jucer_CompileEngineSettings.h +++ b/extras/Projucer/Source/LiveBuildEngine/jucer_CompileEngineSettings.h @@ -106,4 +106,5 @@ private: } //============================================================================== + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (CompileEngineSettings) }; diff --git a/extras/Projucer/Source/Project/UI/jucer_ProjectContentComponent.cpp b/extras/Projucer/Source/Project/UI/jucer_ProjectContentComponent.cpp index a9d36293e2..79f6cd5334 100644 --- a/extras/Projucer/Source/Project/UI/jucer_ProjectContentComponent.cpp +++ b/extras/Projucer/Source/Project/UI/jucer_ProjectContentComponent.cpp @@ -27,6 +27,7 @@ #include "../../Application/jucer_Headers.h" #include "jucer_ProjectContentComponent.h" #include "../../LiveBuildEngine/jucer_DownloadCompileEngineThread.h" +#include "../../LiveBuildEngine/jucer_CompileEngineSettings.h" #include "jucer_HeaderComponent.h" #include "Sidebar/jucer_TabComponents.h" diff --git a/extras/Projucer/Source/Project/jucer_Project.cpp b/extras/Projucer/Source/Project/jucer_Project.cpp index fa3676a73c..e28243e85a 100644 --- a/extras/Projucer/Source/Project/jucer_Project.cpp +++ b/extras/Projucer/Source/Project/jucer_Project.cpp @@ -28,6 +28,7 @@ #include "jucer_Project.h" #include "../ProjectSaving/jucer_ProjectSaver.h" #include "../Application/jucer_Application.h" +#include "../LiveBuildEngine/jucer_CompileEngineSettings.h" namespace { @@ -67,6 +68,8 @@ Project::Project (const File& f) projectRoot.addListener (this); + compileEngineSettings.reset (new CompileEngineSettings (projectRoot)); + setChangedFlag (false); modificationTime = getFile().getLastModificationTime(); } @@ -579,6 +582,8 @@ Result Project::loadDocument (const File& file) if (! ProjucerApplication::getApp().isRunningCommandLine) warnAboutOldProjucerVersion(); + compileEngineSettings.reset (new CompileEngineSettings (projectRoot)); + return Result::ok(); } diff --git a/extras/Projucer/Source/Project/jucer_Project.h b/extras/Projucer/Source/Project/jucer_Project.h index be5230462e..7e640a2a96 100644 --- a/extras/Projucer/Source/Project/jucer_Project.h +++ b/extras/Projucer/Source/Project/jucer_Project.h @@ -27,12 +27,12 @@ #pragma once #include "jucer_ProjectType.h" -#include "../LiveBuildEngine/jucer_CompileEngineSettings.h" class ProjectExporter; class LibraryModule; class EnabledModuleList; class ProjectContentComponent; +class CompileEngineSettings; //============================================================================== class Project : public FileBasedDocument, @@ -384,7 +384,7 @@ public: bool shouldSendGUIBuilderAnalyticsEvent() noexcept; //============================================================================== - CompileEngineSettings& getCompileEngineSettings() { return compileEngineSettings; } + CompileEngineSettings& getCompileEngineSettings() { return *compileEngineSettings; } private: ValueTree projectRoot { Ids::JUCERPROJECT }; @@ -398,7 +398,7 @@ private: pluginAUMainTypeValue, pluginRTASCategoryValue, pluginVSTCategoryValue, pluginVST3CategoryValue, pluginAAXCategoryValue; //============================================================================== - CompileEngineSettings compileEngineSettings { projectRoot }; + ScopedPointer compileEngineSettings; //============================================================================== bool shouldWriteLegacyPluginFormatSettings = false;