diff --git a/extras/Projucer/Builds/MacOSX/Projucer.xcodeproj/project.pbxproj b/extras/Projucer/Builds/MacOSX/Projucer.xcodeproj/project.pbxproj
index 11d1c65690..f1564b75ce 100644
--- a/extras/Projucer/Builds/MacOSX/Projucer.xcodeproj/project.pbxproj
+++ b/extras/Projucer/Builds/MacOSX/Projucer.xcodeproj/project.pbxproj
@@ -294,6 +294,7 @@
9F01BA9942D038EA8B5289A8 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QTKit.framework; path = System/Library/Frameworks/QTKit.framework; sourceTree = SDKROOT; };
9F2D3E5FC10F7C3270908E97 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ButtonDocument.h"; path = "../../Source/ComponentEditor/Documents/jucer_ButtonDocument.h"; sourceTree = "SOURCE_ROOT"; };
9F959ECF8CD9B7314AE604A9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_LabelHandler.h"; path = "../../Source/ComponentEditor/Components/jucer_LabelHandler.h"; sourceTree = "SOURCE_ROOT"; };
+ A081306A9E95CA114B81910F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_CompileEngineSettings.h"; path = "../../Source/LiveBuildEngine/jucer_CompileEngineSettings.h"; sourceTree = "SOURCE_ROOT"; };
A085174413736ACC8D7D42A2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ProjectWizard_openGL.h"; path = "../../Source/Wizards/jucer_ProjectWizard_openGL.h"; sourceTree = "SOURCE_ROOT"; };
A0BBBFBA13A1308B3CD725D5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ComponentLayoutPanel.h"; path = "../../Source/ComponentEditor/UI/jucer_ComponentLayoutPanel.h"; sourceTree = "SOURCE_ROOT"; };
A160AEF56553A658E6EA6A8E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_MainTemplate_Window.cpp"; path = "../../Source/BinaryData/Templates/jucer_MainTemplate_Window.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -629,6 +630,7 @@
A978DFE87D9BB5EFE5B3DAAC,
D2FE76E4CF003856278343CC,
BA186B51EE4884CD8E3F2741,
+ A081306A9E95CA114B81910F,
ADD6A3CF5D7DE55E57E8E38B,
A9954DC7F876A7006743ACB6,
ADA538034910F52FDD2DC88D,
diff --git a/extras/Projucer/Builds/VisualStudio2013/Projucer_App.vcxproj b/extras/Projucer/Builds/VisualStudio2013/Projucer_App.vcxproj
index 4b89de711e..41f6e454d8 100644
--- a/extras/Projucer/Builds/VisualStudio2013/Projucer_App.vcxproj
+++ b/extras/Projucer/Builds/VisualStudio2013/Projucer_App.vcxproj
@@ -1561,6 +1561,7 @@
+
diff --git a/extras/Projucer/Builds/VisualStudio2013/Projucer_App.vcxproj.filters b/extras/Projucer/Builds/VisualStudio2013/Projucer_App.vcxproj.filters
index 7eaf44b8bf..695f3e93aa 100644
--- a/extras/Projucer/Builds/VisualStudio2013/Projucer_App.vcxproj.filters
+++ b/extras/Projucer/Builds/VisualStudio2013/Projucer_App.vcxproj.filters
@@ -2160,6 +2160,9 @@
Projucer\LiveBuildEngine
+
+ Projucer\LiveBuildEngine
+
Projucer\LiveBuildEngine
diff --git a/extras/Projucer/Builds/VisualStudio2015/Projucer_App.vcxproj b/extras/Projucer/Builds/VisualStudio2015/Projucer_App.vcxproj
index 493948875d..612348f4da 100644
--- a/extras/Projucer/Builds/VisualStudio2015/Projucer_App.vcxproj
+++ b/extras/Projucer/Builds/VisualStudio2015/Projucer_App.vcxproj
@@ -1561,6 +1561,7 @@
+
diff --git a/extras/Projucer/Builds/VisualStudio2015/Projucer_App.vcxproj.filters b/extras/Projucer/Builds/VisualStudio2015/Projucer_App.vcxproj.filters
index 45f5c8cd7d..22073c7afb 100644
--- a/extras/Projucer/Builds/VisualStudio2015/Projucer_App.vcxproj.filters
+++ b/extras/Projucer/Builds/VisualStudio2015/Projucer_App.vcxproj.filters
@@ -2160,6 +2160,9 @@
Projucer\LiveBuildEngine
+
+ Projucer\LiveBuildEngine
+
Projucer\LiveBuildEngine
diff --git a/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj b/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj
index 0246ce0cc9..0bfef28875 100644
--- a/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj
+++ b/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj
@@ -1561,6 +1561,7 @@
+
diff --git a/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj.filters b/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj.filters
index 06812923d2..ecaaaa4f75 100644
--- a/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj.filters
+++ b/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj.filters
@@ -2160,6 +2160,9 @@
Projucer\LiveBuildEngine
+
+ Projucer\LiveBuildEngine
+
Projucer\LiveBuildEngine
diff --git a/extras/Projucer/Projucer.jucer b/extras/Projucer/Projucer.jucer
index 41e48d9147..db9bc2c9c3 100644
--- a/extras/Projucer/Projucer.jucer
+++ b/extras/Projucer/Projucer.jucer
@@ -516,6 +516,8 @@
resource="0" file="Source/LiveBuildEngine/jucer_CompileEngineServer.cpp"/>
+
canLaunchProject())
defs.add (exporter->getExporterIdentifierMacro() + "=1");
@@ -422,7 +349,7 @@ private:
if (projectItem.shouldBeCompiled())
{
- const File f (projectItem.getFile());
+ auto f = projectItem.getFile();
if (f.exists())
compileUnits.add (f);
@@ -430,7 +357,7 @@ private:
if (projectItem.shouldBeAddedToTargetProject() && ! projectItem.shouldBeAddedToBinaryResources())
{
- const File f (projectItem.getFile());
+ auto f = projectItem.getFile();
if (f.exists())
userFiles.add (f);
@@ -455,11 +382,11 @@ private:
{
if (exporter->canLaunchProject())
{
- for (const LibraryModule* m : modules)
+ for (auto* m : modules)
{
- const File localModuleFolder = proj.getModules().shouldCopyModuleFilesLocally (m->moduleInfo.getID()).getValue()
- ? proj.getLocalModuleFolder (m->moduleInfo.getID())
- : m->moduleInfo.getFolder();
+ auto localModuleFolder = proj.getModules().shouldCopyModuleFilesLocally (m->moduleInfo.getID()).getValue()
+ ? proj.getLocalModuleFolder (m->moduleInfo.getID())
+ : m->moduleInfo.getFolder();
m->findAndAddCompiledUnits (*exporter, nullptr, compileUnits,
@@ -477,14 +404,14 @@ private:
for (int i = 0; ; ++i)
{
- const File binaryDataCpp (proj.getBinaryDataCppFile (i));
+ auto binaryDataCpp = proj.getBinaryDataCppFile (i);
if (! binaryDataCpp.exists())
break;
compileUnits.add (binaryDataCpp);
}
- for (int i = compileUnits.size(); --i >= 0;)
+ for (auto i = compileUnits.size(); --i >= 0;)
if (compileUnits.getReference(i).hasFileExtension (".r"))
compileUnits.remove (i);
@@ -493,14 +420,14 @@ private:
static bool doesProjectMatchSavedHeaderState (Project& project)
{
- ValueTree liveModules (project.getProjectRoot().getChildWithName (Ids::MODULES));
+ auto liveModules = project.getProjectRoot().getChildWithName (Ids::MODULES);
ScopedPointer xml (XmlDocument::parse (project.getFile()));
if (xml == nullptr || ! xml->hasTagName (Ids::JUCERPROJECT.toString()))
return false;
- ValueTree diskModules (ValueTree::fromXml (*xml).getChildWithName (Ids::MODULES));
+ auto diskModules = ValueTree::fromXml (*xml).getChildWithName (Ids::MODULES);
return liveModules.isEquivalentTo (diskModules);
}
@@ -521,14 +448,15 @@ private:
{
StringArray paths;
paths.add (project.getGeneratedCodeFolder().getFullPathName());
- paths.addArray (getSearchPathsFromString (ProjectProperties::getUserHeaderPathValue (project).get().toString()));
+ paths.addArray (getSearchPathsFromString (project.getCompileEngineSettings().getUserHeaderPathString()));
+
return convertSearchPathsToAbsolute (paths);
}
StringArray getSystemIncludePaths()
{
StringArray paths;
- paths.addArray (getSearchPathsFromString (ProjectProperties::getSystemHeaderPathValue (project).get().toString()));
+ paths.addArray (getSearchPathsFromString (project.getCompileEngineSettings().getSystemHeaderPathString()));
auto isVST3Host = project.getModules().isModuleEnabled ("juce_audio_processors")
&& project.isConfigFlagEnabled ("JUCE_PLUGINHOST_VST3");
@@ -558,10 +486,10 @@ private:
StringArray getExtraDLLs()
{
- StringArray dlls;
- dlls.addTokens (ProjectProperties::getExtraDLLsValue (project).get().toString(), "\n\r,", StringRef());
+ auto dlls = StringArray::fromTokens (project.getCompileEngineSettings().getExtraDLLsString(), "\n\r,", {});
dlls.trim();
dlls.removeEmptyStrings();
+
return dlls;
}
@@ -570,14 +498,11 @@ private:
//==============================================================================
CompileEngineChildProcess::CompileEngineChildProcess (Project& p)
- : project (p),
- continuousRebuild (false)
+ : project (p)
{
ProjucerApplication::getApp().openDocumentManager.addListener (this);
-
createProcess();
-
- errorList.setWarningsEnabled (! LiveBuildProjectSettings::areWarningsDisabled (project));
+ errorList.setWarningsEnabled (project.getCompileEngineSettings().areWarningsEnabled());
}
CompileEngineChildProcess::~CompileEngineChildProcess()
@@ -773,7 +698,7 @@ private:
void timerCallback() override
{
- if (owner.continuousRebuild)
+ if (owner.project.getCompileEngineSettings().isContinuousRebuildEnabled())
flushEditorChanges();
else
stopTimer();
@@ -911,11 +836,6 @@ void CompileEngineChildProcess::handlePing()
}
//==============================================================================
-void CompileEngineChildProcess::setContinuousRebuild (bool b)
-{
- continuousRebuild = b;
-}
-
void CompileEngineChildProcess::flushEditorChanges()
{
for (Editor* ed : editors)
@@ -967,7 +887,7 @@ void CompileEngineChildProcess::handleHighlightCode (const SourceCodeRange& loca
void CompileEngineChildProcess::cleanAllCachedFilesForProject (Project& p)
{
- File cacheFolder (ProjectProperties::getCacheLocation (p));
+ File cacheFolder (getCacheLocationForProject (p));
if (cacheFolder.isDirectory())
cacheFolder.deleteRecursively();
diff --git a/extras/Projucer/Source/LiveBuildEngine/jucer_CompileEngineClient.h b/extras/Projucer/Source/LiveBuildEngine/jucer_CompileEngineClient.h
index 4e59717001..0ca0a35897 100644
--- a/extras/Projucer/Source/LiveBuildEngine/jucer_CompileEngineClient.h
+++ b/extras/Projucer/Source/LiveBuildEngine/jucer_CompileEngineClient.h
@@ -38,33 +38,38 @@ public:
CompileEngineChildProcess (Project&);
~CompileEngineChildProcess();
+ //==============================================================================
bool openedOk() const { return process != nullptr; }
void editorOpened (const File& file, CodeDocument& document);
bool documentAboutToClose (OpenDocumentManager::Document*) override;
+ //==============================================================================
void cleanAll();
void openPreview (const ClassDatabase::Class&);
void reinstantiatePreviews();
void processActivationChanged (bool isForeground);
+ //==============================================================================
bool canLaunchApp() const;
void launchApp();
bool canKillApp() const;
void killApp();
bool isAppRunning() const noexcept;
+ //==============================================================================
const ClassDatabase::ClassList& getComponentList() const { return lastComponentList; }
- void setContinuousRebuild (bool continuousBuild);
+ //==============================================================================
void flushEditorChanges();
-
static void cleanAllCachedFilesForProject (Project&);
+ //==============================================================================
Project& project;
ActivityList activityList;
ErrorList errorList;
+ //==============================================================================
std::function crashHandler;
//==============================================================================
@@ -93,7 +98,6 @@ private:
class ChildProcess;
ScopedPointer process, runningAppProcess;
ClassDatabase::ClassList lastComponentList;
- bool continuousRebuild;
struct Editor;
OwnedArray editors;
@@ -153,16 +157,3 @@ private:
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ChildProcessCache)
};
-
-//==============================================================================
-struct LiveBuildProjectSettings
-{
- static void getLiveSettings (Project&, PropertyListBuilder&);
- static void updateNewlyOpenedProject (Project& p);
-
- static bool isBuildDisabled (Project&);
- static void setBuildDisabled (Project&, bool);
-
- static bool areWarningsDisabled (Project&);
- static void setWarningsDisabled (Project&, bool);
-};
diff --git a/extras/Projucer/Source/LiveBuildEngine/jucer_CompileEngineSettings.h b/extras/Projucer/Source/LiveBuildEngine/jucer_CompileEngineSettings.h
new file mode 100644
index 0000000000..1374bee87d
--- /dev/null
+++ b/extras/Projucer/Source/LiveBuildEngine/jucer_CompileEngineSettings.h
@@ -0,0 +1,110 @@
+/*
+ ==============================================================================
+
+ This file is part of the JUCE library.
+ Copyright (c) 2017 - ROLI Ltd.
+
+ JUCE is an open source library subject to commercial or open-source
+ licensing.
+
+ By using JUCE, you agree to the terms of both the JUCE 5 End-User License
+ Agreement and JUCE 5 Privacy Policy (both updated and effective as of the
+ 27th April 2017).
+
+ End User License Agreement: www.juce.com/juce-5-licence
+ Privacy Policy: www.juce.com/juce-5-privacy-policy
+
+ Or: You may also use this code under the terms of the GPL v3 (see
+ www.gnu.org/licenses).
+
+ JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
+ EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
+ DISCLAIMED.
+
+ ==============================================================================
+*/
+
+#pragma once
+
+
+//==============================================================================
+class CompileEngineSettings
+{
+public:
+ CompileEngineSettings (ValueTree& projectRoot)
+ : tree (projectRoot.getOrCreateChildWithName ("LIVE_SETTINGS", nullptr)
+ .getOrCreateChildWithName (getLiveSettingsSubType(), nullptr)),
+ buildEnabledValue (tree, Ids::buildEnabled, nullptr, false),
+ continuousRebuildEnabledValue (tree, Ids::continuousRebuildEnabled, nullptr, false),
+ warningsEnabledValue (tree, Ids::warningsEnabled, nullptr, true),
+ userHeaderPathValue (tree, Ids::headerPath, nullptr),
+ systemHeaderPathValue (tree, Ids::systemHeaderPath, nullptr),
+ extraDLLsValue (tree, Ids::extraDLLs, nullptr),
+ extraCompilerFlagsValue (tree, Ids::extraCompilerFlags, nullptr),
+ extraPreprocessorDefsValue (tree, Ids::defines, nullptr),
+ windowsTargetPlatformValue (tree, Ids::windowsTargetPlatformVersion, nullptr, "10.0.16299.0")
+ {
+ }
+
+ //==============================================================================
+ void setBuildEnabled (bool enabled) noexcept { buildEnabledValue = enabled; }
+ void setContinuousRebuildEnabled (bool enabled) noexcept { continuousRebuildEnabledValue = enabled; }
+ void setWarningsEnabled (bool enabled) { warningsEnabledValue = enabled; }
+
+ bool isBuildEnabled() const noexcept { return buildEnabledValue.get(); }
+ bool isContinuousRebuildEnabled() const noexcept { return continuousRebuildEnabledValue.get(); }
+ bool areWarningsEnabled() const noexcept { return warningsEnabledValue.get(); }
+
+ String getUserHeaderPathString() const noexcept { return userHeaderPathValue.get(); }
+ String getSystemHeaderPathString() const noexcept { return systemHeaderPathValue.get(); }
+ String getExtraDLLsString() const noexcept { return extraDLLsValue.get(); }
+ String getExtraCompilerFlagsString() const noexcept { return extraCompilerFlagsValue.get(); }
+ String getExtraPreprocessorDefsString() const noexcept { return extraPreprocessorDefsValue.get(); }
+ String getWindowsTargetPlatformVersionString() const noexcept { return windowsTargetPlatformValue.get(); }
+
+ //==============================================================================
+ void getLiveSettings (PropertyListBuilder& props)
+ {
+ props.addSearchPathProperty (userHeaderPathValue, "User Header Paths", "User header search paths.");
+ props.addSearchPathProperty (systemHeaderPathValue, "System Header Paths", "System header search paths.");
+
+ props.add (new TextPropertyComponent (extraPreprocessorDefsValue, "Preprocessor Definitions", 32768, true),
+ "Extra preprocessor definitions. Use the form \"NAME1=value NAME2=value\", using whitespace or commas "
+ "to separate the items - to include a space or comma in a definition, precede it with a backslash.");
+
+ props.add (new TextPropertyComponent (extraCompilerFlagsValue, "Extra Compiler Flags", 2048, true),
+ "Extra command-line flags to be passed to the compiler. This string can contain references to preprocessor"
+ " definitions in the form ${NAME_OF_DEFINITION}, which will be replaced with their values.");
+
+ props.add (new TextPropertyComponent (extraDLLsValue, "Extra Dynamic Libraries", 2048, true),
+ "Extra dynamic libs that the running code may require. Use new-lines or commas to separate the items.");
+
+ props.add (new TextPropertyComponent (windowsTargetPlatformValue, "Windows Target Platform", 256, false),
+ "The Windows target platform to use.");
+ }
+
+private:
+ ValueTree tree;
+
+ ValueWithDefault buildEnabledValue, continuousRebuildEnabledValue, warningsEnabledValue, userHeaderPathValue, systemHeaderPathValue,
+ extraDLLsValue, extraCompilerFlagsValue, extraPreprocessorDefsValue, windowsTargetPlatformValue;
+
+ //==============================================================================
+ String getLiveSettingsSubType() const noexcept
+ {
+ #if JUCE_MAC
+ return "OSX";
+ #elif JUCE_WINDOWS
+ return "WINDOWS";
+ #elif JUCE_LINUX
+ return "LINUX";
+ #endif
+
+ // unknown platform?!
+ jassertfalse;
+
+ return {};
+ }
+
+ //==============================================================================
+};
diff --git a/extras/Projucer/Source/Project/UI/Sidebar/jucer_LiveBuildTab.h b/extras/Projucer/Source/Project/UI/Sidebar/jucer_LiveBuildTab.h
index 4e8d0c54a3..c4e6064fe2 100644
--- a/extras/Projucer/Source/Project/UI/Sidebar/jucer_LiveBuildTab.h
+++ b/extras/Projucer/Source/Project/UI/Sidebar/jucer_LiveBuildTab.h
@@ -35,7 +35,7 @@ struct LiveBuildSettingsComponent : public Component
addAndMakeVisible (&group);
PropertyListBuilder props;
- LiveBuildProjectSettings::getLiveSettings (p, props);
+ p.getCompileEngineSettings().getLiveSettings (props);
group.setProperties (props);
group.setName ("Live Build Settings");
diff --git a/extras/Projucer/Source/Project/UI/jucer_ProjectContentComponent.cpp b/extras/Projucer/Source/Project/UI/jucer_ProjectContentComponent.cpp
index 1f0ce9363e..1179e1c373 100644
--- a/extras/Projucer/Source/Project/UI/jucer_ProjectContentComponent.cpp
+++ b/extras/Projucer/Source/Project/UI/jucer_ProjectContentComponent.cpp
@@ -1168,7 +1168,7 @@ void ProjectContentComponent::setBuildEnabled (bool isEnabled, bool displayError
if (! displayError)
lastCrashMessage = {};
- LiveBuildProjectSettings::setBuildDisabled (*project, ! isEnabled);
+ project->getCompileEngineSettings().setBuildEnabled (isEnabled);
killChildProcess();
refreshTabsIfBuildStatusChanged();
@@ -1208,7 +1208,7 @@ void ProjectContentComponent::handleCrash (const String& message)
bool ProjectContentComponent::isBuildEnabled() const
{
- return project != nullptr && ! LiveBuildProjectSettings::isBuildDisabled (*project)
+ return project != nullptr && project->getCompileEngineSettings().isBuildEnabled()
&& CompileEngineDLL::getInstance()->isLoaded();
}
@@ -1222,7 +1222,7 @@ void ProjectContentComponent::refreshTabsIfBuildStatusChanged()
bool ProjectContentComponent::areWarningsEnabled() const
{
- return project != nullptr && ! LiveBuildProjectSettings::areWarningsDisabled (*project);
+ return project != nullptr && project->getCompileEngineSettings().areWarningsEnabled();
}
void ProjectContentComponent::updateWarningState()
@@ -1235,7 +1235,7 @@ void ProjectContentComponent::toggleWarnings()
{
if (project != nullptr)
{
- LiveBuildProjectSettings::setWarningsDisabled (*project, areWarningsEnabled());
+ project->getCompileEngineSettings().setWarningsEnabled (! areWarningsEnabled());
updateWarningState();
}
}
@@ -1314,16 +1314,14 @@ void ProjectContentComponent::timerCallback()
bool ProjectContentComponent::isContinuousRebuildEnabled()
{
- return getAppSettings().getGlobalProperties().getBoolValue ("continuousRebuild", true);
+ return project != nullptr && project->getCompileEngineSettings().isContinuousRebuildEnabled();
}
void ProjectContentComponent::setContinuousRebuildEnabled (bool b)
{
- if (childProcess != nullptr)
+ if (project != nullptr && childProcess != nullptr)
{
- childProcess->setContinuousRebuild (b);
-
- getAppSettings().getGlobalProperties().setValue ("continuousRebuild", b);
+ project->getCompileEngineSettings().setContinuousRebuildEnabled (b);
ProjucerApplication::getCommandManager().commandStatusChanged();
}
}
@@ -1331,13 +1329,8 @@ void ProjectContentComponent::setContinuousRebuildEnabled (bool b)
ReferenceCountedObjectPtr ProjectContentComponent::getChildProcess()
{
if (childProcess == nullptr && isBuildEnabled())
- {
childProcess = ProjucerApplication::getApp().childProcessCache->getOrCreate (*project);
- if (childProcess != nullptr)
- childProcess->setContinuousRebuild (isContinuousRebuildEnabled());
- }
-
return childProcess;
}
diff --git a/extras/Projucer/Source/Project/jucer_Project.h b/extras/Projucer/Source/Project/jucer_Project.h
index c94be38d1d..445235a764 100644
--- a/extras/Projucer/Source/Project/jucer_Project.h
+++ b/extras/Projucer/Source/Project/jucer_Project.h
@@ -27,6 +27,7 @@
#pragma once
#include "jucer_ProjectType.h"
+#include "../LiveBuildEngine/jucer_CompileEngineSettings.h"
class ProjectExporter;
class LibraryModule;
@@ -347,6 +348,9 @@ public:
//==============================================================================
bool shouldSendGUIBuilderAnalyticsEvent() noexcept;
+ //==============================================================================
+ CompileEngineSettings& getCompileEngineSettings() { return compileEngineSettings; }
+
private:
ValueTree projectRoot { Ids::JUCERPROJECT };
@@ -361,6 +365,9 @@ private:
pluginAUMainTypeValue, pluginRTASCategoryValue, pluginRTASBypassDisabledValue, pluginRTASMultiMonoDisabledValue,
pluginAAXIdentifierValue, pluginAAXCategoryValue, pluginAAXBypassDisabledValue, pluginAAXMultiMonoDisabledValue;
+ //==============================================================================
+ CompileEngineSettings compileEngineSettings { projectRoot };
+
//==============================================================================
File tempDirectory = {};
bool openInIDEAfterSaving = false;
diff --git a/extras/Projucer/Source/Utility/Helpers/jucer_PresetIDs.h b/extras/Projucer/Source/Utility/Helpers/jucer_PresetIDs.h
index deeb2012e1..045e9cf92d 100644
--- a/extras/Projucer/Source/Utility/Helpers/jucer_PresetIDs.h
+++ b/extras/Projucer/Source/Utility/Helpers/jucer_PresetIDs.h
@@ -321,6 +321,9 @@ namespace Ids
DECLARE_ID (website);
DECLARE_ID (mainClass);
DECLARE_ID (moduleFlags);
+ DECLARE_ID (buildEnabled);
+ DECLARE_ID (continuousRebuildEnabled);
+ DECLARE_ID (warningsEnabled);
const Identifier ID ("id");
const Identifier ID_uppercase ("ID");