diff --git a/BREAKING_CHANGES.md b/BREAKING_CHANGES.md
index b76268fd1e..2225a9ee5d 100644
--- a/BREAKING_CHANGES.md
+++ b/BREAKING_CHANGES.md
@@ -2,6 +2,31 @@
# develop
+## Change
+
+The Code::Blocks exporter has been removed from the Projucer.
+
+**Possible Issues**
+
+It will no longer be possible to generate Code::Blocks projects using the
+Projucer.
+
+**Workaround**
+
+Use a different exporter, such as the Makefile exporter on Linux, or one of the
+Visual Studio exporters on Windows.
+
+**Rationale**
+
+The Code::Blocks IDE does not seem to be actively maintained. Other projects
+are dropping support, with the Code::Blocks generator deprecated in CMake 3.27.
+Additionally, the Code::Blocks exporter did not provide a good user experience,
+especially for new users on Windows, as it defaulted to using the MinGW
+toolchain. This toolchain tends to be slow to build and link, and is not fully
+supported by JUCE, missing support for some audio and video backends, and
+plugin formats.
+
+
## Change
The tab width when rendering text with the GlyphArrangement and TextLayout
@@ -615,7 +640,6 @@ fixed white colour was inappropriate for most user interfaces.
## Change
->>>>>>> c74b2b1058 (CIDevice: Improve robustness of subscription API)
ProfileHost::enableProfile and ProfileHost::disableProfile have been combined
into a single function, ProfileHost::setProfileEnablement.
diff --git a/extras/Projucer/Builds/MacOSX/Projucer.xcodeproj/project.pbxproj b/extras/Projucer/Builds/MacOSX/Projucer.xcodeproj/project.pbxproj
index 30df52c367..4839ce5e9d 100644
--- a/extras/Projucer/Builds/MacOSX/Projucer.xcodeproj/project.pbxproj
+++ b/extras/Projucer/Builds/MacOSX/Projucer.xcodeproj/project.pbxproj
@@ -151,7 +151,6 @@
3F9D4C7F6E5779D4E4AE655D /* jucer_ComponentLayout.h */ /* jucer_ComponentLayout.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jucer_ComponentLayout.h; path = ../../Source/ComponentEditor/jucer_ComponentLayout.h; sourceTree = SOURCE_ROOT; };
409C636B96A9AC1D732B96F8 /* jucer_ComboBoxHandler.h */ /* jucer_ComboBoxHandler.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jucer_ComboBoxHandler.h; path = ../../Source/ComponentEditor/Components/jucer_ComboBoxHandler.h; sourceTree = SOURCE_ROOT; };
41105E536155E394E54BDD35 /* colourscheme_dark.xml */ /* colourscheme_dark.xml */ = {isa = PBXFileReference; lastKnownFileType = file.xml; name = colourscheme_dark.xml; path = ../../Source/BinaryData/colourscheme_dark.xml; sourceTree = SOURCE_ROOT; };
- 42F4AA3EF0883D506987CA99 /* export_codeBlocks.svg */ /* export_codeBlocks.svg */ = {isa = PBXFileReference; lastKnownFileType = file.svg; name = export_codeBlocks.svg; path = ../../Source/BinaryData/Icons/export_codeBlocks.svg; sourceTree = SOURCE_ROOT; };
463C8CF42FAA00014198B71B /* PIPComponent.cpp.in */ /* PIPComponent.cpp.in */ = {isa = PBXFileReference; lastKnownFileType = file.in; name = PIPComponent.cpp.in; path = ../../../Build/CMake/PIPComponent.cpp.in; sourceTree = SOURCE_ROOT; };
472F9A90F685220D730EBF6C /* BinaryData.cpp */ /* BinaryData.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = BinaryData.cpp; path = ../../JuceLibraryCode/BinaryData.cpp; sourceTree = SOURCE_ROOT; };
486E8D02DAD2A0BF54A901C0 /* jucer_MiscUtilities.cpp */ /* jucer_MiscUtilities.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = jucer_MiscUtilities.cpp; path = ../../Source/Utility/Helpers/jucer_MiscUtilities.cpp; sourceTree = SOURCE_ROOT; };
@@ -359,7 +358,6 @@
F8A38C0C7C45F2DB6A5FB812 /* wizard_Highlight.svg */ /* wizard_Highlight.svg */ = {isa = PBXFileReference; lastKnownFileType = file.svg; name = wizard_Highlight.svg; path = ../../Source/BinaryData/Icons/wizard_Highlight.svg; sourceTree = SOURCE_ROOT; };
F9111E150CFF155329D44853 /* jucer_OpenDocumentManager.cpp */ /* jucer_OpenDocumentManager.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = jucer_OpenDocumentManager.cpp; path = ../../Source/CodeEditor/jucer_OpenDocumentManager.cpp; sourceTree = SOURCE_ROOT; };
F9A363BFBB6B1143C2E967C3 /* jucer_ModuleDescription.h */ /* jucer_ModuleDescription.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jucer_ModuleDescription.h; path = ../../Source/Project/Modules/jucer_ModuleDescription.h; sourceTree = SOURCE_ROOT; };
- FA790C59A304579F660F112F /* jucer_ProjectExport_CodeBlocks.h */ /* jucer_ProjectExport_CodeBlocks.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jucer_ProjectExport_CodeBlocks.h; path = ../../Source/ProjectSaving/jucer_ProjectExport_CodeBlocks.h; sourceTree = SOURCE_ROOT; };
FB80347407261BF6CCEFDE91 /* jucer_ComponentTemplate.cpp */ /* jucer_ComponentTemplate.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = jucer_ComponentTemplate.cpp; path = ../../Source/BinaryData/Templates/jucer_ComponentTemplate.cpp; sourceTree = SOURCE_ROOT; };
FCEBE24EA79A13713D7CBF26 /* jucer_ComponentColourProperty.h */ /* jucer_ComponentColourProperty.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jucer_ComponentColourProperty.h; path = ../../Source/ComponentEditor/Properties/jucer_ComponentColourProperty.h; sourceTree = SOURCE_ROOT; };
FD6A6FA8BDBDDD441BCD33F9 /* juce_SimpleBinaryBuilder.cpp */ /* juce_SimpleBinaryBuilder.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_SimpleBinaryBuilder.cpp; path = ../../Source/BinaryData/juce_SimpleBinaryBuilder.cpp; sourceTree = SOURCE_ROOT; };
@@ -584,7 +582,6 @@
isa = PBXGroup;
children = (
CCD62DB0A19A985A4B9D7F32,
- FA790C59A304579F660F112F,
59520B8137E6A2E483074399,
FF68231DE2B395461009116C,
20075A86A4D0E8A5B973D9DB,
@@ -778,7 +775,6 @@
children = (
514F2FAFDBF535AC03FA2E6C,
807049CA2D5B6DE18EA078F2,
- 42F4AA3EF0883D506987CA99,
69B478C992FA0B8C885946A6,
EAC1731150A7F79D59BAA0B6,
8F4D281E98808204E2846A7D,
diff --git a/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj b/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj
index 83b7d8a7ce..2a1b81c4e1 100644
--- a/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj
+++ b/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj
@@ -2880,7 +2880,6 @@
-
diff --git a/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj.filters b/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj.filters
index bb910a3782..0ea11c2375 100644
--- a/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj.filters
+++ b/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj.filters
@@ -5294,9 +5294,6 @@
Projucer\BinaryData\Icons
-
- Projucer\BinaryData\Icons
-
Projucer\BinaryData\Icons
diff --git a/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj b/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj
index 45bafaad01..96d172d30a 100644
--- a/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj
+++ b/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj
@@ -2037,7 +2037,6 @@
-
@@ -2880,7 +2879,6 @@
-
diff --git a/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj.filters b/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj.filters
index 3add68e662..eb40509515 100644
--- a/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj.filters
+++ b/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj.filters
@@ -2769,9 +2769,6 @@
Projucer\ProjectSaving
-
- Projucer\ProjectSaving
-
Projucer\ProjectSaving
@@ -5294,9 +5291,6 @@
Projucer\BinaryData\Icons
-
- Projucer\BinaryData\Icons
-
Projucer\BinaryData\Icons
diff --git a/extras/Projucer/Builds/VisualStudio2022/Projucer_App.vcxproj b/extras/Projucer/Builds/VisualStudio2022/Projucer_App.vcxproj
index 6ce9d1a159..fd6f7fe7dc 100644
--- a/extras/Projucer/Builds/VisualStudio2022/Projucer_App.vcxproj
+++ b/extras/Projucer/Builds/VisualStudio2022/Projucer_App.vcxproj
@@ -2037,7 +2037,6 @@
-
@@ -2880,7 +2879,6 @@
-
diff --git a/extras/Projucer/Builds/VisualStudio2022/Projucer_App.vcxproj.filters b/extras/Projucer/Builds/VisualStudio2022/Projucer_App.vcxproj.filters
index d095bb722a..e742ef864e 100644
--- a/extras/Projucer/Builds/VisualStudio2022/Projucer_App.vcxproj.filters
+++ b/extras/Projucer/Builds/VisualStudio2022/Projucer_App.vcxproj.filters
@@ -2769,9 +2769,6 @@
Projucer\ProjectSaving
-
- Projucer\ProjectSaving
-
Projucer\ProjectSaving
@@ -5294,9 +5291,6 @@
Projucer\BinaryData\Icons
-
- Projucer\BinaryData\Icons
-
Projucer\BinaryData\Icons
diff --git a/extras/Projucer/CMakeLists.txt b/extras/Projucer/CMakeLists.txt
index 35448e7b55..f7a9c0e9b6 100644
--- a/extras/Projucer/CMakeLists.txt
+++ b/extras/Projucer/CMakeLists.txt
@@ -105,7 +105,6 @@ target_compile_definitions(Projucer PRIVATE
juce_add_binary_data(ProjucerData SOURCES
Source/BinaryData/Icons/background_logo.svg
Source/BinaryData/Icons/export_android.svg
- Source/BinaryData/Icons/export_codeBlocks.svg
Source/BinaryData/Icons/export_linux.svg
Source/BinaryData/Icons/export_visualStudio.svg
Source/BinaryData/Icons/export_xcode.svg
diff --git a/extras/Projucer/JuceLibraryCode/BinaryData.cpp b/extras/Projucer/JuceLibraryCode/BinaryData.cpp
index d0bbd58279..85dd275a28 100644
--- a/extras/Projucer/JuceLibraryCode/BinaryData.cpp
+++ b/extras/Projucer/JuceLibraryCode/BinaryData.cpp
@@ -1682,33 +1682,8 @@ static const unsigned char temp_binary_data_13[] =
const char* export_android_svg = (const char*) temp_binary_data_13;
-//================== export_codeBlocks.svg ==================
-static const unsigned char temp_binary_data_14[] =
-"\n"
-"";
-
-const char* export_codeBlocks_svg = (const char*) temp_binary_data_14;
-
//================== export_linux.svg ==================
-static const unsigned char temp_binary_data_15[] =
+static const unsigned char temp_binary_data_14[] =
"\n"
"";
-const char* export_linux_svg = (const char*) temp_binary_data_15;
+const char* export_linux_svg = (const char*) temp_binary_data_14;
//================== export_visualStudio.svg ==================
-static const unsigned char temp_binary_data_16[] =
+static const unsigned char temp_binary_data_15[] =
"\n"
"";
-const char* export_visualStudio_svg = (const char*) temp_binary_data_16;
+const char* export_visualStudio_svg = (const char*) temp_binary_data_15;
//================== export_xcode.svg ==================
-static const unsigned char temp_binary_data_17[] =
+static const unsigned char temp_binary_data_16[] =
"\n"
"";
-const char* export_xcode_svg = (const char*) temp_binary_data_17;
+const char* export_xcode_svg = (const char*) temp_binary_data_16;
//================== juce_icon.png ==================
-static const unsigned char temp_binary_data_18[] =
+static const unsigned char temp_binary_data_17[] =
{ 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,2,0,0,0,2,0,8,6,0,0,0,244,120,212,250,0,0,0,1,115,82,71,66,0,174,206,28,233,0,0,0,132,101,88,73,102,77,77,0,42,0,0,0,8,0,5,1,18,0,3,0,0,0,1,0,1,0,0,1,26,0,5,0,0,0,1,0,0,0,74,1,27,0,5,0,0,0,1,0,0,0,82,
1,40,0,3,0,0,0,1,0,2,0,0,135,105,0,4,0,0,0,1,0,0,0,90,0,0,0,0,0,0,0,144,0,0,0,1,0,0,0,144,0,0,0,1,0,3,160,1,0,3,0,0,0,1,0,1,0,0,160,2,0,4,0,0,0,1,0,0,2,0,160,3,0,4,0,0,0,1,0,0,2,0,0,0,0,0,25,192,84,16,0,0,0,9,112,72,89,115,0,0,22,37,0,0,22,37,1,73,82,
36,240,0,0,1,89,105,84,88,116,88,77,76,58,99,111,109,46,97,100,111,98,101,46,120,109,112,0,0,0,0,0,60,120,58,120,109,112,109,101,116,97,32,120,109,108,110,115,58,120,61,34,97,100,111,98,101,58,110,115,58,109,101,116,97,47,34,32,120,58,120,109,112,116,
@@ -3458,10 +3433,10 @@ static const unsigned char temp_binary_data_18[] =
246,44,212,239,33,44,75,155,114,119,199,74,182,59,225,163,230,56,187,0,203,253,163,244,158,144,61,194,134,54,75,89,109,30,70,120,118,29,207,206,219,205,104,221,216,184,128,155,196,214,68,235,181,92,180,4,225,231,230,249,31,56,76,178,107,226,240,74,169,
60,174,167,167,149,58,7,146,87,83,147,170,92,246,47,193,107,255,83,221,119,125,168,20,16,4,4,1,245,55,199,228,93,104,231,183,98,169,0,0,0,0,73,69,78,68,174,66,96,130,0,0 };
-const char* juce_icon_png = (const char*) temp_binary_data_18;
+const char* juce_icon_png = (const char*) temp_binary_data_17;
//================== wizard_AnimatedApp.svg ==================
-static const unsigned char temp_binary_data_19[] =
+static const unsigned char temp_binary_data_18[] =
"\n"
"\n"
"\n"
@@ -3638,10 +3613,10 @@ static const unsigned char temp_binary_data_19[] =
" id=\"line44\"\n"
" style=\"stroke:#a45c94;stroke-opacity:0.94117647\" />";
-const char* wizard_AnimatedApp_svg = (const char*) temp_binary_data_19;
+const char* wizard_AnimatedApp_svg = (const char*) temp_binary_data_18;
//================== wizard_AudioApp.svg ==================
-static const unsigned char temp_binary_data_20[] =
+static const unsigned char temp_binary_data_19[] =
"\n"
"\n"
"\n"
@@ -4395,10 +4370,10 @@ static const unsigned char temp_binary_data_20[] =
" id=\"line131\"\n"
" style=\"stroke:#a45c94;stroke-opacity:1\" />";
-const char* wizard_AudioApp_svg = (const char*) temp_binary_data_20;
+const char* wizard_AudioApp_svg = (const char*) temp_binary_data_19;
//================== wizard_AudioPlugin.svg ==================
-static const unsigned char temp_binary_data_21[] =
+static const unsigned char temp_binary_data_20[] =
"\n"
"\n"
"\n"
@@ -5254,10 +5229,10 @@ static const unsigned char temp_binary_data_21[] =
" id=\"circle175\"\n"
" style=\"stroke:#a45c94;stroke-opacity:1;fill:#a45c94;fill-opacity:1\" />";
-const char* wizard_AudioPlugin_svg = (const char*) temp_binary_data_21;
+const char* wizard_AudioPlugin_svg = (const char*) temp_binary_data_20;
//================== wizard_ConsoleApp.svg ==================
-static const unsigned char temp_binary_data_22[] =
+static const unsigned char temp_binary_data_21[] =
"\n"
"\n"
"\n"
@@ -5344,10 +5319,10 @@ static const unsigned char temp_binary_data_22[] =
" id=\"path19\"\n"
" style=\"stroke:#a45c94;stroke-opacity:1;fill:#a45c94;fill-opacity:1\" />";
-const char* wizard_ConsoleApp_svg = (const char*) temp_binary_data_22;
+const char* wizard_ConsoleApp_svg = (const char*) temp_binary_data_21;
//================== wizard_DLL.svg ==================
-static const unsigned char temp_binary_data_23[] =
+static const unsigned char temp_binary_data_22[] =
"\n"
"\n"
"\n"
@@ -5618,10 +5593,10 @@ static const unsigned char temp_binary_data_23[] =
" id=\"path54\"\n"
" style=\"stroke:#a45c94;stroke-opacity:1\" />";
-const char* wizard_DLL_svg = (const char*) temp_binary_data_23;
+const char* wizard_DLL_svg = (const char*) temp_binary_data_22;
//================== wizard_GUI.svg ==================
-static const unsigned char temp_binary_data_24[] =
+static const unsigned char temp_binary_data_23[] =
"\n"
"\n"
"\n"
@@ -5791,10 +5766,10 @@ static const unsigned char temp_binary_data_24[] =
" id=\"path47\"\n"
" style=\"stroke:#a45c94;stroke-opacity:1\" />";
-const char* wizard_GUI_svg = (const char*) temp_binary_data_24;
+const char* wizard_GUI_svg = (const char*) temp_binary_data_23;
//================== wizard_Highlight.svg ==================
-static const unsigned char temp_binary_data_25[] =
+static const unsigned char temp_binary_data_24[] =
"\n"
"\n"
"\n"
@@ -5844,10 +5819,10 @@ static const unsigned char temp_binary_data_25[] =
" id=\"path3\"\n"
" style=\"fill:#a45c94;fill-opacity:1\" />";
-const char* wizard_Highlight_svg = (const char*) temp_binary_data_25;
+const char* wizard_Highlight_svg = (const char*) temp_binary_data_24;
//================== wizard_Openfile.svg ==================
-static const unsigned char temp_binary_data_26[] =
+static const unsigned char temp_binary_data_25[] =
"\n"
"\n"
"\n"
@@ -5899,10 +5874,10 @@ static const unsigned char temp_binary_data_26[] =
" id=\"path3\"\n"
" style=\"stroke:#a45c94;stroke-opacity:1\" />";
-const char* wizard_Openfile_svg = (const char*) temp_binary_data_26;
+const char* wizard_Openfile_svg = (const char*) temp_binary_data_25;
//================== wizard_OpenGL.svg ==================
-static const unsigned char temp_binary_data_27[] =
+static const unsigned char temp_binary_data_26[] =
"\n"
"\n"
"\n"
@@ -6030,10 +6005,10 @@ static const unsigned char temp_binary_data_27[] =
" id=\"path23\"\n"
" style=\"stroke:#a45c94;stroke-opacity:1\" />";
-const char* wizard_OpenGL_svg = (const char*) temp_binary_data_27;
+const char* wizard_OpenGL_svg = (const char*) temp_binary_data_26;
//================== wizard_StaticLibrary.svg ==================
-static const unsigned char temp_binary_data_28[] =
+static const unsigned char temp_binary_data_27[] =
"\n"
"\n"
"\n"
@@ -6304,10 +6279,10 @@ static const unsigned char temp_binary_data_28[] =
" id=\"path54\"\n"
" style=\"stroke:#a45c94;stroke-opacity:1\" />";
-const char* wizard_StaticLibrary_svg = (const char*) temp_binary_data_28;
+const char* wizard_StaticLibrary_svg = (const char*) temp_binary_data_27;
//================== jucer_AnimatedComponentSimpleTemplate.h ==================
-static const unsigned char temp_binary_data_29[] =
+static const unsigned char temp_binary_data_28[] =
"#pragma once\r\n"
"\r\n"
"%%include_juce%%\r\n"
@@ -6365,10 +6340,10 @@ static const unsigned char temp_binary_data_29[] =
" JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (%%content_component_class%%)\r\n"
"};\r\n";
-const char* jucer_AnimatedComponentSimpleTemplate_h = (const char*) temp_binary_data_29;
+const char* jucer_AnimatedComponentSimpleTemplate_h = (const char*) temp_binary_data_28;
//================== jucer_AnimatedComponentTemplate.cpp ==================
-static const unsigned char temp_binary_data_30[] =
+static const unsigned char temp_binary_data_29[] =
"%%include_corresponding_header%%\r\n"
"\r\n"
"//==============================================================================\r\n"
@@ -6407,10 +6382,10 @@ static const unsigned char temp_binary_data_30[] =
" // update their positions.\r\n"
"}\r\n";
-const char* jucer_AnimatedComponentTemplate_cpp = (const char*) temp_binary_data_30;
+const char* jucer_AnimatedComponentTemplate_cpp = (const char*) temp_binary_data_29;
//================== jucer_AnimatedComponentTemplate.h ==================
-static const unsigned char temp_binary_data_31[] =
+static const unsigned char temp_binary_data_30[] =
"#pragma once\r\n"
"\r\n"
"%%include_juce%%\r\n"
@@ -6442,10 +6417,10 @@ static const unsigned char temp_binary_data_31[] =
" JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (%%content_component_class%%)\r\n"
"};\r\n";
-const char* jucer_AnimatedComponentTemplate_h = (const char*) temp_binary_data_31;
+const char* jucer_AnimatedComponentTemplate_h = (const char*) temp_binary_data_30;
//================== jucer_AudioComponentSimpleTemplate.h ==================
-static const unsigned char temp_binary_data_32[] =
+static const unsigned char temp_binary_data_31[] =
"#pragma once\r\n"
"\r\n"
"%%include_juce%%\r\n"
@@ -6541,10 +6516,10 @@ static const unsigned char temp_binary_data_32[] =
" JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (%%content_component_class%%)\r\n"
"};\r\n";
-const char* jucer_AudioComponentSimpleTemplate_h = (const char*) temp_binary_data_32;
+const char* jucer_AudioComponentSimpleTemplate_h = (const char*) temp_binary_data_31;
//================== jucer_AudioComponentTemplate.cpp ==================
-static const unsigned char temp_binary_data_33[] =
+static const unsigned char temp_binary_data_32[] =
"%%include_corresponding_header%%\r\n"
"\r\n"
"//==============================================================================\r\n"
@@ -6621,10 +6596,10 @@ static const unsigned char temp_binary_data_33[] =
" // update their positions.\r\n"
"}\r\n";
-const char* jucer_AudioComponentTemplate_cpp = (const char*) temp_binary_data_33;
+const char* jucer_AudioComponentTemplate_cpp = (const char*) temp_binary_data_32;
//================== jucer_AudioComponentTemplate.h ==================
-static const unsigned char temp_binary_data_34[] =
+static const unsigned char temp_binary_data_33[] =
"#pragma once\r\n"
"\r\n"
"%%include_juce%%\r\n"
@@ -6658,10 +6633,10 @@ static const unsigned char temp_binary_data_34[] =
" JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (%%content_component_class%%)\r\n"
"};\r\n";
-const char* jucer_AudioComponentTemplate_h = (const char*) temp_binary_data_34;
+const char* jucer_AudioComponentTemplate_h = (const char*) temp_binary_data_33;
//================== jucer_AudioPluginARADocumentControllerTemplate.cpp ==================
-static const unsigned char temp_binary_data_35[] =
+static const unsigned char temp_binary_data_34[] =
"/*\r\n"
" ==============================================================================\r\n"
"\r\n"
@@ -6705,10 +6680,10 @@ static const unsigned char temp_binary_data_35[] =
" return juce::ARADocumentControllerSpecialisation::createARAFactory<%%aradocumentcontroller_class_name%%>();\r\n"
"}\r\n";
-const char* jucer_AudioPluginARADocumentControllerTemplate_cpp = (const char*) temp_binary_data_35;
+const char* jucer_AudioPluginARADocumentControllerTemplate_cpp = (const char*) temp_binary_data_34;
//================== jucer_AudioPluginARADocumentControllerTemplate.h ==================
-static const unsigned char temp_binary_data_36[] =
+static const unsigned char temp_binary_data_35[] =
"/*\r\n"
" ==============================================================================\r\n"
"\r\n"
@@ -6746,10 +6721,10 @@ static const unsigned char temp_binary_data_36[] =
" JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (%%aradocumentcontroller_class_name%%)\r\n"
"};\r\n";
-const char* jucer_AudioPluginARADocumentControllerTemplate_h = (const char*) temp_binary_data_36;
+const char* jucer_AudioPluginARADocumentControllerTemplate_h = (const char*) temp_binary_data_35;
//================== jucer_AudioPluginARAEditorTemplate.cpp ==================
-static const unsigned char temp_binary_data_37[] =
+static const unsigned char temp_binary_data_36[] =
"/*\r\n"
" ==============================================================================\r\n"
"\r\n"
@@ -6799,10 +6774,10 @@ static const unsigned char temp_binary_data_37[] =
" // subcomponents in your editor..\r\n"
"}\r\n";
-const char* jucer_AudioPluginARAEditorTemplate_cpp = (const char*) temp_binary_data_37;
+const char* jucer_AudioPluginARAEditorTemplate_cpp = (const char*) temp_binary_data_36;
//================== jucer_AudioPluginARAEditorTemplate.h ==================
-static const unsigned char temp_binary_data_38[] =
+static const unsigned char temp_binary_data_37[] =
"/*\r\n"
" ==============================================================================\r\n"
"\r\n"
@@ -6839,10 +6814,10 @@ static const unsigned char temp_binary_data_38[] =
" JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (%%editor_class_name%%)\r\n"
"};\r\n";
-const char* jucer_AudioPluginARAEditorTemplate_h = (const char*) temp_binary_data_38;
+const char* jucer_AudioPluginARAEditorTemplate_h = (const char*) temp_binary_data_37;
//================== jucer_AudioPluginARAFilterTemplate.h ==================
-static const unsigned char temp_binary_data_39[] =
+static const unsigned char temp_binary_data_38[] =
"/*\r\n"
" ==============================================================================\r\n"
"\r\n"
@@ -6906,10 +6881,10 @@ static const unsigned char temp_binary_data_39[] =
" JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (%%filter_class_name%%)\r\n"
"};\r\n";
-const char* jucer_AudioPluginARAFilterTemplate_h = (const char*) temp_binary_data_39;
+const char* jucer_AudioPluginARAFilterTemplate_h = (const char*) temp_binary_data_38;
//================== jucer_AudioPluginARAPlaybackRendererTemplate.cpp ==================
-static const unsigned char temp_binary_data_40[] =
+static const unsigned char temp_binary_data_39[] =
"/*\r\n"
" ==============================================================================\r\n"
"\r\n"
@@ -7025,10 +7000,10 @@ static const unsigned char temp_binary_data_40[] =
" return success;\r\n"
"}\r\n";
-const char* jucer_AudioPluginARAPlaybackRendererTemplate_cpp = (const char*) temp_binary_data_40;
+const char* jucer_AudioPluginARAPlaybackRendererTemplate_cpp = (const char*) temp_binary_data_39;
//================== jucer_AudioPluginARAPlaybackRendererTemplate.h ==================
-static const unsigned char temp_binary_data_41[] =
+static const unsigned char temp_binary_data_40[] =
"/*\r\n"
" ==============================================================================\r\n"
"\r\n"
@@ -7075,10 +7050,10 @@ static const unsigned char temp_binary_data_41[] =
" JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (%%araplaybackrenderer_class_name%%)\r\n"
"};\r\n";
-const char* jucer_AudioPluginARAPlaybackRendererTemplate_h = (const char*) temp_binary_data_41;
+const char* jucer_AudioPluginARAPlaybackRendererTemplate_h = (const char*) temp_binary_data_40;
//================== jucer_AudioPluginEditorTemplate.cpp ==================
-static const unsigned char temp_binary_data_42[] =
+static const unsigned char temp_binary_data_41[] =
"/*\r\n"
" ==============================================================================\r\n"
"\r\n"
@@ -7119,10 +7094,10 @@ static const unsigned char temp_binary_data_42[] =
" // subcomponents in your editor..\r\n"
"}\r\n";
-const char* jucer_AudioPluginEditorTemplate_cpp = (const char*) temp_binary_data_42;
+const char* jucer_AudioPluginEditorTemplate_cpp = (const char*) temp_binary_data_41;
//================== jucer_AudioPluginEditorTemplate.h ==================
-static const unsigned char temp_binary_data_43[] =
+static const unsigned char temp_binary_data_42[] =
"/*\r\n"
" ==============================================================================\r\n"
"\r\n"
@@ -7156,10 +7131,10 @@ static const unsigned char temp_binary_data_43[] =
" JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (%%editor_class_name%%)\r\n"
"};\r\n";
-const char* jucer_AudioPluginEditorTemplate_h = (const char*) temp_binary_data_43;
+const char* jucer_AudioPluginEditorTemplate_h = (const char*) temp_binary_data_42;
//================== jucer_AudioPluginFilterTemplate.cpp ==================
-static const unsigned char temp_binary_data_44[] =
+static const unsigned char temp_binary_data_43[] =
"/*\r\n"
" ==============================================================================\r\n"
"\r\n"
@@ -7351,10 +7326,10 @@ static const unsigned char temp_binary_data_44[] =
" return new %%filter_class_name%%();\r\n"
"}\r\n";
-const char* jucer_AudioPluginFilterTemplate_cpp = (const char*) temp_binary_data_44;
+const char* jucer_AudioPluginFilterTemplate_cpp = (const char*) temp_binary_data_43;
//================== jucer_AudioPluginFilterTemplate.h ==================
-static const unsigned char temp_binary_data_45[] =
+static const unsigned char temp_binary_data_44[] =
"/*\r\n"
" ==============================================================================\r\n"
"\r\n"
@@ -7415,10 +7390,10 @@ static const unsigned char temp_binary_data_45[] =
" JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (%%filter_class_name%%)\r\n"
"};\r\n";
-const char* jucer_AudioPluginFilterTemplate_h = (const char*) temp_binary_data_45;
+const char* jucer_AudioPluginFilterTemplate_h = (const char*) temp_binary_data_44;
//================== jucer_ComponentTemplate.cpp ==================
-static const unsigned char temp_binary_data_46[] =
+static const unsigned char temp_binary_data_45[] =
"/*\r\n"
" ==============================================================================\r\n"
"\r\n"
@@ -7494,10 +7469,10 @@ static const unsigned char temp_binary_data_46[] =
"//[EndFile] You can add extra defines here...\r\n"
"//[/EndFile]\r\n";
-const char* jucer_ComponentTemplate_cpp = (const char*) temp_binary_data_46;
+const char* jucer_ComponentTemplate_cpp = (const char*) temp_binary_data_45;
//================== jucer_ComponentTemplate.h ==================
-static const unsigned char temp_binary_data_47[] =
+static const unsigned char temp_binary_data_46[] =
"/*\r\n"
" ==============================================================================\r\n"
"\r\n"
@@ -7560,10 +7535,10 @@ static const unsigned char temp_binary_data_47[] =
"//[EndFile] You can add extra defines here...\r\n"
"//[/EndFile]\r\n";
-const char* jucer_ComponentTemplate_h = (const char*) temp_binary_data_47;
+const char* jucer_ComponentTemplate_h = (const char*) temp_binary_data_46;
//================== jucer_ContentCompSimpleTemplate.h ==================
-static const unsigned char temp_binary_data_48[] =
+static const unsigned char temp_binary_data_47[] =
"#pragma once\r\n"
"\r\n"
"%%include_juce%%\r\n"
@@ -7613,10 +7588,10 @@ static const unsigned char temp_binary_data_48[] =
" JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (%%content_component_class%%)\r\n"
"};\r\n";
-const char* jucer_ContentCompSimpleTemplate_h = (const char*) temp_binary_data_48;
+const char* jucer_ContentCompSimpleTemplate_h = (const char*) temp_binary_data_47;
//================== jucer_ContentCompTemplate.cpp ==================
-static const unsigned char temp_binary_data_49[] =
+static const unsigned char temp_binary_data_48[] =
"%%include_corresponding_header%%\r\n"
"\r\n"
"//==============================================================================\r\n"
@@ -7647,10 +7622,10 @@ static const unsigned char temp_binary_data_49[] =
" // update their positions.\r\n"
"}\r\n";
-const char* jucer_ContentCompTemplate_cpp = (const char*) temp_binary_data_49;
+const char* jucer_ContentCompTemplate_cpp = (const char*) temp_binary_data_48;
//================== jucer_ContentCompTemplate.h ==================
-static const unsigned char temp_binary_data_50[] =
+static const unsigned char temp_binary_data_49[] =
"#pragma once\r\n"
"\r\n"
"%%include_juce%%\r\n"
@@ -7679,10 +7654,10 @@ static const unsigned char temp_binary_data_50[] =
" JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (%%content_component_class%%)\r\n"
"};\r\n";
-const char* jucer_ContentCompTemplate_h = (const char*) temp_binary_data_50;
+const char* jucer_ContentCompTemplate_h = (const char*) temp_binary_data_49;
//================== jucer_InlineComponentTemplate.h ==================
-static const unsigned char temp_binary_data_51[] =
+static const unsigned char temp_binary_data_50[] =
"//==============================================================================\r\n"
"class %%component_class%% : public juce::Component\r\n"
"{\r\n"
@@ -7724,10 +7699,10 @@ static const unsigned char temp_binary_data_51[] =
" JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (%%component_class%%)\r\n"
"};\r\n";
-const char* jucer_InlineComponentTemplate_h = (const char*) temp_binary_data_51;
+const char* jucer_InlineComponentTemplate_h = (const char*) temp_binary_data_50;
//================== jucer_MainConsoleAppTemplate.cpp ==================
-static const unsigned char temp_binary_data_52[] =
+static const unsigned char temp_binary_data_51[] =
"/*\r\n"
" ==============================================================================\r\n"
"\r\n"
@@ -7748,10 +7723,10 @@ static const unsigned char temp_binary_data_52[] =
" return 0;\r\n"
"}\r\n";
-const char* jucer_MainConsoleAppTemplate_cpp = (const char*) temp_binary_data_52;
+const char* jucer_MainConsoleAppTemplate_cpp = (const char*) temp_binary_data_51;
//================== jucer_MainTemplate_NoWindow.cpp ==================
-static const unsigned char temp_binary_data_53[] =
+static const unsigned char temp_binary_data_52[] =
"/*\r\n"
" ==============================================================================\r\n"
"\r\n"
@@ -7804,10 +7779,10 @@ static const unsigned char temp_binary_data_53[] =
"// This macro generates the main() routine that launches the app.\r\n"
"START_JUCE_APPLICATION (%%app_class_name%%)\r\n";
-const char* jucer_MainTemplate_NoWindow_cpp = (const char*) temp_binary_data_53;
+const char* jucer_MainTemplate_NoWindow_cpp = (const char*) temp_binary_data_52;
//================== jucer_MainTemplate_Window.cpp ==================
-static const unsigned char temp_binary_data_54[] =
+static const unsigned char temp_binary_data_53[] =
"/*\r\n"
" ==============================================================================\r\n"
"\r\n"
@@ -7913,10 +7888,10 @@ static const unsigned char temp_binary_data_54[] =
"// This macro generates the main() routine that launches the app.\r\n"
"START_JUCE_APPLICATION (%%app_class_name%%)\r\n";
-const char* jucer_MainTemplate_Window_cpp = (const char*) temp_binary_data_54;
+const char* jucer_MainTemplate_Window_cpp = (const char*) temp_binary_data_53;
//================== jucer_NewComponentTemplate.cpp ==================
-static const unsigned char temp_binary_data_55[] =
+static const unsigned char temp_binary_data_54[] =
"/*\r\n"
" ==============================================================================\r\n"
"\r\n"
@@ -7969,10 +7944,10 @@ static const unsigned char temp_binary_data_55[] =
"\r\n"
"}\r\n";
-const char* jucer_NewComponentTemplate_cpp = (const char*) temp_binary_data_55;
+const char* jucer_NewComponentTemplate_cpp = (const char*) temp_binary_data_54;
//================== jucer_NewComponentTemplate.h ==================
-static const unsigned char temp_binary_data_56[] =
+static const unsigned char temp_binary_data_55[] =
"/*\r\n"
" ==============================================================================\r\n"
"\r\n"
@@ -8003,10 +7978,10 @@ static const unsigned char temp_binary_data_56[] =
" JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (%%component_class%%)\r\n"
"};\r\n";
-const char* jucer_NewComponentTemplate_h = (const char*) temp_binary_data_56;
+const char* jucer_NewComponentTemplate_h = (const char*) temp_binary_data_55;
//================== jucer_NewCppFileTemplate.cpp ==================
-static const unsigned char temp_binary_data_57[] =
+static const unsigned char temp_binary_data_56[] =
"/*\r\n"
" ==============================================================================\r\n"
"\r\n"
@@ -8019,10 +7994,10 @@ static const unsigned char temp_binary_data_57[] =
"\r\n"
"%%include_corresponding_header%%\r\n";
-const char* jucer_NewCppFileTemplate_cpp = (const char*) temp_binary_data_57;
+const char* jucer_NewCppFileTemplate_cpp = (const char*) temp_binary_data_56;
//================== jucer_NewCppFileTemplate.h ==================
-static const unsigned char temp_binary_data_58[] =
+static const unsigned char temp_binary_data_57[] =
"/*\r\n"
" ==============================================================================\r\n"
"\r\n"
@@ -8035,10 +8010,10 @@ static const unsigned char temp_binary_data_58[] =
"\r\n"
"#pragma once\r\n";
-const char* jucer_NewCppFileTemplate_h = (const char*) temp_binary_data_58;
+const char* jucer_NewCppFileTemplate_h = (const char*) temp_binary_data_57;
//================== jucer_NewInlineComponentTemplate.h ==================
-static const unsigned char temp_binary_data_59[] =
+static const unsigned char temp_binary_data_58[] =
"/*\r\n"
" ==============================================================================\r\n"
"\r\n"
@@ -8101,10 +8076,10 @@ static const unsigned char temp_binary_data_59[] =
" JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (%%component_class%%)\r\n"
"};\r\n";
-const char* jucer_NewInlineComponentTemplate_h = (const char*) temp_binary_data_59;
+const char* jucer_NewInlineComponentTemplate_h = (const char*) temp_binary_data_58;
//================== jucer_OpenGLComponentSimpleTemplate.h ==================
-static const unsigned char temp_binary_data_60[] =
+static const unsigned char temp_binary_data_59[] =
"#pragma once\r\n"
"\r\n"
"%%include_juce%%\r\n"
@@ -8173,10 +8148,10 @@ static const unsigned char temp_binary_data_60[] =
" JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (%%content_component_class%%)\r\n"
"};\r\n";
-const char* jucer_OpenGLComponentSimpleTemplate_h = (const char*) temp_binary_data_60;
+const char* jucer_OpenGLComponentSimpleTemplate_h = (const char*) temp_binary_data_59;
//================== jucer_OpenGLComponentTemplate.cpp ==================
-static const unsigned char temp_binary_data_61[] =
+static const unsigned char temp_binary_data_60[] =
"%%include_corresponding_header%%\r\n"
"\r\n"
"//==============================================================================\r\n"
@@ -8226,10 +8201,10 @@ static const unsigned char temp_binary_data_61[] =
" // update their positions.\r\n"
"}\r\n";
-const char* jucer_OpenGLComponentTemplate_cpp = (const char*) temp_binary_data_61;
+const char* jucer_OpenGLComponentTemplate_cpp = (const char*) temp_binary_data_60;
//================== jucer_OpenGLComponentTemplate.h ==================
-static const unsigned char temp_binary_data_62[] =
+static const unsigned char temp_binary_data_61[] =
"#pragma once\r\n"
"\r\n"
"%%include_juce%%\r\n"
@@ -8263,10 +8238,10 @@ static const unsigned char temp_binary_data_62[] =
" JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (%%content_component_class%%)\r\n"
"};\r\n";
-const char* jucer_OpenGLComponentTemplate_h = (const char*) temp_binary_data_62;
+const char* jucer_OpenGLComponentTemplate_h = (const char*) temp_binary_data_61;
//================== jucer_PIPAudioProcessorTemplate.h ==================
-static const unsigned char temp_binary_data_63[] =
+static const unsigned char temp_binary_data_62[] =
"class %%class_name%% : public juce::AudioProcessor\r\n"
"{\r\n"
"public:\r\n"
@@ -8375,10 +8350,10 @@ static const unsigned char temp_binary_data_63[] =
" JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (%%class_name%%)\r\n"
"};\r\n";
-const char* jucer_PIPAudioProcessorTemplate_h = (const char*) temp_binary_data_63;
+const char* jucer_PIPAudioProcessorTemplate_h = (const char*) temp_binary_data_62;
//================== jucer_PIPTemplate.h ==================
-static const unsigned char temp_binary_data_64[] =
+static const unsigned char temp_binary_data_63[] =
"/*******************************************************************************\r\n"
" The block below describes the properties of this PIP. A PIP is a short snippet\r\n"
" of code that can be read by the Projucer and used to generate a JUCE project.\r\n"
@@ -8397,10 +8372,10 @@ static const unsigned char temp_binary_data_64[] =
"//==============================================================================\r\n"
"%%pip_code%%\r\n";
-const char* jucer_PIPTemplate_h = (const char*) temp_binary_data_64;
+const char* jucer_PIPTemplate_h = (const char*) temp_binary_data_63;
//================== colourscheme_dark.xml ==================
-static const unsigned char temp_binary_data_65[] =
+static const unsigned char temp_binary_data_64[] =
"\r\n"
"\r\n"
"\r\n"
@@ -8425,10 +8400,10 @@ static const unsigned char temp_binary_data_65[] =
" \r\n"
"\r\n";
-const char* colourscheme_dark_xml = (const char*) temp_binary_data_65;
+const char* colourscheme_dark_xml = (const char*) temp_binary_data_64;
//================== colourscheme_light.xml ==================
-static const unsigned char temp_binary_data_66[] =
+static const unsigned char temp_binary_data_65[] =
"\r\n"
"\r\n"
"\r\n"
@@ -8453,10 +8428,10 @@ static const unsigned char temp_binary_data_66[] =
" \r\n"
"\r\n";
-const char* colourscheme_light_xml = (const char*) temp_binary_data_66;
+const char* colourscheme_light_xml = (const char*) temp_binary_data_65;
//================== juce_runtime_arch_detection.cpp ==================
-static const unsigned char temp_binary_data_67[] =
+static const unsigned char temp_binary_data_66[] =
"/*\r\n"
" ==============================================================================\r\n"
"\r\n"
@@ -8551,10 +8526,10 @@ static const unsigned char temp_binary_data_67[] =
"\r\n"
"#endif\r\n";
-const char* juce_runtime_arch_detection_cpp = (const char*) temp_binary_data_67;
+const char* juce_runtime_arch_detection_cpp = (const char*) temp_binary_data_66;
//================== juce_LinuxSubprocessHelper.cpp ==================
-static const unsigned char temp_binary_data_68[] =
+static const unsigned char temp_binary_data_67[] =
"/*\r\n"
" ==============================================================================\r\n"
"\r\n"
@@ -8601,10 +8576,10 @@ static const unsigned char temp_binary_data_68[] =
" return 1;\r\n"
"}\r\n";
-const char* juce_LinuxSubprocessHelper_cpp = (const char*) temp_binary_data_68;
+const char* juce_LinuxSubprocessHelper_cpp = (const char*) temp_binary_data_67;
//================== juce_SimpleBinaryBuilder.cpp ==================
-static const unsigned char temp_binary_data_69[] =
+static const unsigned char temp_binary_data_68[] =
"/*\r\n"
" ==============================================================================\r\n"
"\r\n"
@@ -8996,7 +8971,7 @@ static const unsigned char temp_binary_data_69[] =
" return 0;\r\n"
"}\r\n";
-const char* juce_SimpleBinaryBuilder_cpp = (const char*) temp_binary_data_69;
+const char* juce_SimpleBinaryBuilder_cpp = (const char*) temp_binary_data_68;
const char* getNamedResource (const char* resourceNameUTF8, int& numBytes);
@@ -9024,7 +8999,6 @@ const char* getNamedResource (const char* resourceNameUTF8, int& numBytes)
case 0x34bc1021: numBytes = 11325; return LICENSE;
case 0x406db5c1: numBytes = 3249; return background_logo_svg;
case 0xbe17d889: numBytes = 3586; return export_android_svg;
- case 0x83f049e3: numBytes = 1726; return export_codeBlocks_svg;
case 0x96d2a1ce: numBytes = 28184; return export_linux_svg;
case 0x2505bd06: numBytes = 1706; return export_visualStudio_svg;
case 0x3198e2bf: numBytes = 12295; return export_xcode_svg;
@@ -9103,7 +9077,6 @@ const char* namedResourceList[] =
"LICENSE",
"background_logo_svg",
"export_android_svg",
- "export_codeBlocks_svg",
"export_linux_svg",
"export_visualStudio_svg",
"export_xcode_svg",
@@ -9177,7 +9150,6 @@ const char* originalFilenames[] =
"LICENSE",
"background_logo.svg",
"export_android.svg",
- "export_codeBlocks.svg",
"export_linux.svg",
"export_visualStudio.svg",
"export_xcode.svg",
diff --git a/extras/Projucer/JuceLibraryCode/BinaryData.h b/extras/Projucer/JuceLibraryCode/BinaryData.h
index de1d62dd16..41e185b02e 100644
--- a/extras/Projucer/JuceLibraryCode/BinaryData.h
+++ b/extras/Projucer/JuceLibraryCode/BinaryData.h
@@ -50,9 +50,6 @@ namespace BinaryData
extern const char* export_android_svg;
const int export_android_svgSize = 3586;
- extern const char* export_codeBlocks_svg;
- const int export_codeBlocks_svgSize = 1726;
-
extern const char* export_linux_svg;
const int export_linux_svgSize = 28184;
@@ -219,7 +216,7 @@ namespace BinaryData
const int juce_SimpleBinaryBuilder_cppSize = 12997;
// Number of elements in the namedResourceList and originalFileNames arrays.
- const int namedResourceListSize = 70;
+ const int namedResourceListSize = 69;
// Points to the start of a list of resource names.
extern const char* namedResourceList[];
diff --git a/extras/Projucer/Projucer.jucer b/extras/Projucer/Projucer.jucer
index 7a2c1f77ac..521d321a44 100644
--- a/extras/Projucer/Projucer.jucer
+++ b/extras/Projucer/Projucer.jucer
@@ -185,8 +185,6 @@
file="Source/BinaryData/Icons/background_logo.svg"/>
-
-
-
\ No newline at end of file
diff --git a/extras/Projucer/Source/Project/Modules/jucer_Modules.cpp b/extras/Projucer/Source/Project/Modules/jucer_Modules.cpp
index ac58ca281d..f63ced05d4 100644
--- a/extras/Projucer/Source/Project/Modules/jucer_Modules.cpp
+++ b/extras/Projucer/Source/Project/Modules/jucer_Modules.cpp
@@ -75,9 +75,6 @@ void LibraryModule::addSearchPathsToExporter (ProjectExporter& exporter) const
if (exporter.isLinux())
return "Linux";
- if (exporter.isCodeBlocks() && exporter.isWindows())
- return "MinGW";
-
return exporter.getTypeInfoForExporter (exporter.getExporterIdentifier()).targetFolder;
}();
@@ -163,10 +160,7 @@ void LibraryModule::addLibsToExporter (ProjectExporter& exporter) const
}
else if (exporter.isWindows())
{
- if (exporter.isCodeBlocks())
- parseAndAddLibsToList (exporter.mingwLibs, moduleInfo["mingwLibs"].toString());
- else
- parseAndAddLibsToList (exporter.windowsLibs, moduleInfo["windowsLibs"].toString());
+ parseAndAddLibsToList (exporter.windowsLibs, moduleInfo["windowsLibs"].toString());
}
else if (exporter.isAndroid())
{
diff --git a/extras/Projucer/Source/Project/UI/Sidebar/jucer_ExporterTreeItems.h b/extras/Projucer/Source/Project/UI/Sidebar/jucer_ExporterTreeItems.h
index 0fc5096fc8..0666b498ea 100644
--- a/extras/Projucer/Source/Project/UI/Sidebar/jucer_ExporterTreeItems.h
+++ b/extras/Projucer/Source/Project/UI/Sidebar/jucer_ExporterTreeItems.h
@@ -67,7 +67,6 @@ public:
if (e->isXcode()) return Icon (getIcons().xcode, Colours::transparentBlack);
else if (e->isVisualStudio()) return Icon (getIcons().visualStudio, Colours::transparentBlack);
else if (e->isAndroid()) return Icon (getIcons().android, Colours::transparentBlack);
- else if (e->isCodeBlocks()) return Icon (getIcons().codeBlocks, Colours::transparentBlack);
else if (e->isMakefile()) return Icon (getIcons().linux, Colours::transparentBlack);
}
diff --git a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Android.h b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Android.h
index a0730102d9..65d56b87fc 100644
--- a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Android.h
+++ b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Android.h
@@ -42,7 +42,6 @@ public:
//==============================================================================
bool isXcode() const override { return false; }
bool isVisualStudio() const override { return false; }
- bool isCodeBlocks() const override { return false; }
bool isMakefile() const override { return false; }
bool isAndroidStudio() const override { return true; }
diff --git a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_CodeBlocks.h b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_CodeBlocks.h
deleted file mode 100644
index 6551794f39..0000000000
--- a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_CodeBlocks.h
+++ /dev/null
@@ -1,1001 +0,0 @@
-/*
- ==============================================================================
-
- This file is part of the JUCE framework.
- Copyright (c) Raw Material Software Limited
-
- JUCE is an open source framework subject to commercial or open source
- licensing.
-
- By downloading, installing, or using the JUCE framework, or combining the
- JUCE framework with any other source code, object code, content or any other
- copyrightable work, you agree to the terms of the JUCE End User Licence
- Agreement, and all incorporated terms including the JUCE Privacy Policy and
- the JUCE Website Terms of Service, as applicable, which will bind you. If you
- do not agree to the terms of these agreements, we will not license the JUCE
- framework to you, and you must discontinue the installation or download
- process and cease use of the JUCE framework.
-
- JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/
- JUCE Privacy Policy: https://juce.com/juce-privacy-policy
- JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/
-
- Or:
-
- You may also use this code under the terms of the AGPLv3:
- https://www.gnu.org/licenses/agpl-3.0.en.html
-
- THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL
- WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF
- MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED.
-
- ==============================================================================
-*/
-
-#pragma once
-
-#include "jucer_ProjectExport_MSVC.h"
-
-//==============================================================================
-class CodeBlocksProjectExporter final : public ProjectExporter
-{
-public:
- enum CodeBlocksOS
- {
- windowsTarget,
- linuxTarget
- };
-
- //==============================================================================
- static String getDisplayNameWindows() { return "[Deprecated] Code::Blocks (Windows)"; }
- static String getDisplayNameLinux() { return "[Deprecated] Code::Blocks (Linux)"; }
-
- static String getValueTreeTypeNameWindows() { return "CODEBLOCKS_WINDOWS"; }
- static String getValueTreeTypeNameLinux() { return "CODEBLOCKS_LINUX"; }
-
- static String getTargetFolderNameWindows() { return "CodeBlocksWindows"; }
- static String getTargetFolderNameLinux() { return "CodeBlocksLinux"; }
-
- //==============================================================================
- static CodeBlocksProjectExporter* createForSettings (Project& projectToUse, const ValueTree& settingsToUse)
- {
- // this will also import legacy jucer files where CodeBlocks only worked for Windows,
- // had valueTreetTypeName "CODEBLOCKS", and there was no OS distinction
- if (settingsToUse.hasType (getValueTreeTypeNameWindows()) || settingsToUse.hasType ("CODEBLOCKS"))
- return new CodeBlocksProjectExporter (projectToUse, settingsToUse, windowsTarget);
-
- if (settingsToUse.hasType (getValueTreeTypeNameLinux()))
- return new CodeBlocksProjectExporter (projectToUse, settingsToUse, linuxTarget);
-
- return nullptr;
- }
-
- //==============================================================================
- CodeBlocksProjectExporter (Project& p, const ValueTree& t, CodeBlocksOS codeBlocksOs)
- : ProjectExporter (p, t), os (codeBlocksOs)
- {
- if (isWindowsExporter())
- {
- name = getDisplayNameWindows();
- targetLocationValue.setDefault (getDefaultBuildsRootFolder() + getTargetFolderNameWindows());
- targetPlatformValue.referTo (settings, Ids::codeBlocksWindowsTarget, getUndoManager());
- }
- else
- {
- name = getDisplayNameLinux();
- targetLocationValue.setDefault (getDefaultBuildsRootFolder() + getTargetFolderNameLinux());
- }
- }
-
- //==============================================================================
- bool canLaunchProject() override { return false; }
- bool launchProject() override { return false; }
- bool usesMMFiles() const override { return false; }
- bool canCopeWithDuplicateFiles() override { return false; }
- bool supportsUserDefinedConfigurations() const override { return true; }
-
- bool isXcode() const override { return false; }
- bool isVisualStudio() const override { return false; }
- bool isCodeBlocks() const override { return true; }
- bool isMakefile() const override { return false; }
- bool isAndroidStudio() const override { return false; }
-
- bool isAndroid() const override { return false; }
- bool isWindows() const override { return isWindowsExporter(); }
- bool isLinux() const override { return os == linuxTarget; }
- bool isOSX() const override { return false; }
- bool isiOS() const override { return false; }
-
- Identifier getExporterIdentifier() const override
- {
- return isLinux() ? getValueTreeTypeNameLinux() : getValueTreeTypeNameWindows();
- }
-
- String getNewLineString() const override { return isWindows() ? "\r\n" : "\n"; }
-
- bool supportsTargetType (build_tools::ProjectType::Target::Type type) const override
- {
- using Target = build_tools::ProjectType::Target;
-
- switch (type)
- {
- case Target::StandalonePlugIn:
- case Target::GUIApp:
- case Target::ConsoleApp:
- case Target::StaticLibrary:
- case Target::SharedCodeTarget:
- case Target::AggregateTarget:
- case Target::VSTPlugIn:
- case Target::DynamicLibrary:
- return true;
- case Target::AAXPlugIn:
- case Target::UnityPlugIn:
- case Target::LV2PlugIn:
- case Target::LV2Helper:
- case Target::VST3PlugIn:
- case Target::VST3Helper:
- case Target::AudioUnitPlugIn:
- case Target::AudioUnitv3PlugIn:
- case Target::unspecified:
- default:
- break;
- }
-
- return false;
- }
-
- void createExporterProperties (PropertyListBuilder& props) override
- {
- if (isWindows())
- {
- props.add (new ChoicePropertyComponent (targetPlatformValue, "Target platform",
- { "Windows Vista", "Windows Server 2008", "Windows 7", "Windows 8", "Windows 8.1", "Windows 10" },
- { "0x0600", "0x0600", "0x0601", "0x0602", "0x0603", "0x0A00" }),
- "This sets the preprocessor macro WINVER to an appropriate value for the corresponding platform.");
- }
- }
-
- //==============================================================================
- void create (const OwnedArray&) const override
- {
- auto cbpFile = getTargetFolder().getChildFile (project.getProjectFilenameRootString())
- .withFileExtension (".cbp");
-
- XmlElement xml ("CodeBlocks_project_file");
- addVersion (xml);
- createProject (*xml.createNewChildElement ("Project"));
- writeXmlOrThrow (xml, cbpFile, "UTF-8", 10, true);
-
- linuxSubprocessHelperProperties.deployLinuxSubprocessHelperSourceFilesIfNecessary();
- }
-
- //==============================================================================
- void addPlatformSpecificSettingsForProjectType (const build_tools::ProjectType&) override
- {
- linuxSubprocessHelperProperties.addToExtraSearchPathsIfNecessary();
-
- // add shared code target first as order matters for Codeblocks
- if (shouldBuildTargetType (build_tools::ProjectType::Target::SharedCodeTarget))
- targets.add (new CodeBlocksTarget (*this, build_tools::ProjectType::Target::SharedCodeTarget));
-
- //resource::ProjectType::Target::SharedCodeTarget
- callForAllSupportedTargets ([this] (build_tools::ProjectType::Target::Type targetType)
- {
- if (targetType == build_tools::ProjectType::Target::SharedCodeTarget)
- return;
-
- targets.insert (targetType == build_tools::ProjectType::Target::AggregateTarget ? 0 : -1,
- new CodeBlocksTarget (*this, targetType));
- });
-
- // If you hit this assert, you tried to generate a project for an exporter
- // that does not support any of your targets!
- jassert (targets.size() > 0);
- }
-
- void initialiseDependencyPathValues() override
- {
- auto targetOS = isWindows() ? TargetOS::windows : TargetOS::linux;
-
- vstLegacyPathValueWrapper.init ({ settings, Ids::vstLegacyFolder, nullptr },
- getAppSettings().getStoredPath (Ids::vstLegacyPath, targetOS), targetOS);
- }
-
-private:
- ValueTreePropertyWithDefault targetPlatformValue;
-
- bool isWindowsExporter() const { return os == windowsTarget; }
- String getTargetPlatformString() const { return targetPlatformValue.get(); }
-
- //==============================================================================
- class CodeBlocksBuildConfiguration final : public BuildConfiguration
- {
- public:
- CodeBlocksBuildConfiguration (Project& p, const ValueTree& settings, const ProjectExporter& e)
- : BuildConfiguration (p, settings, e),
- architectureTypeValue (config, exporter.isWindows() ? Ids::windowsCodeBlocksArchitecture
- : Ids::linuxCodeBlocksArchitecture, getUndoManager(), "-m64")
- {
- linkTimeOptimisationValue.setDefault (false);
- optimisationLevelValue.setDefault (isDebug() ? gccO0 : gccO3);
- }
-
- void createConfigProperties (PropertyListBuilder& props) override
- {
- addRecommendedLinuxCompilerWarningsProperty (props);
- addGCCOptimisationProperty (props);
-
- props.add (new ChoicePropertyComponent (architectureTypeValue, "Architecture",
- { "32-bit (-m32)", "64-bit (-m64)", "ARM v6", "ARM v7" },
- { "-m32", "-m64", "-march=armv6", "-march=armv7" }),
- "Specifies the 32/64-bit architecture to use.");
- }
-
- String getModuleLibraryArchName() const override
- {
- auto archFlag = getArchitectureTypeString();
- String prefix ("-march=");
-
- if (archFlag.startsWith (prefix))
- return archFlag.substring (prefix.length());
- if (archFlag == "-m64")
- return "x86_64";
- if (archFlag == "-m32")
- return "i386";
-
- jassertfalse;
- return {};
- }
-
- String getArchitectureTypeString() const { return architectureTypeValue.get(); }
-
- //==============================================================================
- ValueTreePropertyWithDefault architectureTypeValue;
- };
-
- BuildConfiguration::Ptr createBuildConfig (const ValueTree& tree) const override
- {
- return *new CodeBlocksBuildConfiguration (project, tree, *this);
- }
-
- //==============================================================================
- enum class IsDynamicLibrary
- {
- no,
- yes
- };
-
- enum class ShouldBeCompiled
- {
- no,
- yes
- };
-
- class CodeBlocksTarget final : public build_tools::ProjectType::Target
- {
- public:
- CodeBlocksTarget (const CodeBlocksProjectExporter& e,
- build_tools::ProjectType::Target::Type typeToUse)
- : Target (typeToUse),
- exporter (e)
- {}
-
- String getTargetNameForConfiguration (const BuildConfiguration& config) const
- {
- if (type == build_tools::ProjectType::Target::AggregateTarget)
- return config.getName();
-
- return getName() + String (" | ") + config.getName();
- }
-
- String getTargetSuffix() const
- {
- auto fileType = getTargetFileType();
-
- if (exporter.isWindows())
- {
- switch (fileType)
- {
- case executable: return ".exe";
- case staticLibrary: return ".lib";
- case sharedLibraryOrDLL:
- case pluginBundle: return ".dll";
- case macOSAppex:
- case unknown:
- default:
- break;
- }
- }
- else
- {
- switch (fileType)
- {
- case executable: return {};
- case staticLibrary: return ".a";
- case pluginBundle:
- case sharedLibraryOrDLL: return ".so";
- case macOSAppex:
- case unknown:
- default:
- break;
- }
- }
-
- return {};
- }
-
- IsDynamicLibrary isDynamicLibrary() const
- {
- return (type == DynamicLibrary || type == VSTPlugIn) ? IsDynamicLibrary::yes
- : IsDynamicLibrary::no;
- }
-
- const CodeBlocksProjectExporter& exporter;
- };
-
- //==============================================================================
- class LinuxSubprocessHelperTarget
- {
- public:
- enum class HelperType
- {
- linuxSubprocessHelper,
- simpleBinaryBuilder
- };
-
- LinuxSubprocessHelperTarget (const CodeBlocksProjectExporter& exporter, HelperType helperTypeIn)
- : owner (exporter),
- helperType (helperTypeIn)
- {
- }
-
- String getTargetNameForConfiguration (const BuildConfiguration& config) const
- {
- return getName (helperType) + " | " + config.getName();
- }
-
- void addTarget (XmlElement& xml, const BuildConfiguration& config) const
- {
- xml.setAttribute ("title", getTargetNameForConfiguration (config));
- auto* output = xml.createNewChildElement ("Option");
- output->setAttribute ("output", getOutput (helperType, config));
- xml.createNewChildElement ("Option")->setAttribute ("object_output",
- "obj/" + File::createLegalFileName (config.getName().trim()));
- xml.createNewChildElement ("Option")->setAttribute ("type", getTypeIndex (type));
- xml.createNewChildElement ("Option")->setAttribute ("compiler", "gcc");
-
- const auto isDynamicLibrary = IsDynamicLibrary::no;
-
- {
- auto* compiler = xml.createNewChildElement ("Compiler");
-
- for (auto flag : owner.getCompilerFlags (config, isDynamicLibrary))
- owner.setAddOption (*compiler, "option", flag);
- }
-
- {
- auto* linker = xml.createNewChildElement ("Linker");
-
- for (auto& flag : owner.getLinkerFlags (config, isDynamicLibrary))
- owner.setAddOption (*linker, "option", flag);
- }
-
- if (helperType == HelperType::simpleBinaryBuilder)
- {
- auto* postBuildCommands = xml.createNewChildElement ("ExtraCommands");
-
- const auto binaryDataSource = owner.linuxSubprocessHelperProperties
- .getLinuxSubprocessHelperBinaryDataSource();
-
- owner.setAddOption (*postBuildCommands,
- "after",
- getOutput (HelperType::simpleBinaryBuilder, config)
- + " " + getOutput (HelperType::linuxSubprocessHelper, config)
- + " pre_build"
- + " " + binaryDataSource.getFileNameWithoutExtension().quoted()
- + " LinuxSubprocessHelperBinaryData");
- }
- }
-
- void addCompileUnits (XmlElement& xml) const
- {
- const auto file = getSource (helperType);
- auto* unit = xml.createNewChildElement ("Unit");
- unit->setAttribute ("filename", file.toUnixStyle());
-
- for (ConstConfigIterator config (owner); config.next();)
- {
- auto targetName = getTargetNameForConfiguration (*config);
- unit->createNewChildElement ("Option")->setAttribute ("target", targetName);
- }
- }
-
- private:
- build_tools::RelativePath getSource (HelperType helperTypeForSource) const
- {
- if (helperTypeForSource == HelperType::linuxSubprocessHelper)
- return owner.linuxSubprocessHelperProperties.getLinuxSubprocessHelperSource();
-
- return owner.linuxSubprocessHelperProperties.getSimpleBinaryBuilderSource();
- }
-
- String getName (HelperType helperTypeForName) const
- {
- return LinuxSubprocessHelperProperties::getBinaryNameFromSource (getSource (helperTypeForName));
- }
-
- String getOutput (HelperType helperTypeForOutput, const BuildConfiguration& config) const
- {
- return owner.getOutputPathForConfig (config) + "/" + getName (helperTypeForOutput);
- }
-
- const CodeBlocksProjectExporter& owner;
- HelperType helperType;
- build_tools::ProjectType::Target::Type type = build_tools::ProjectType::Target::ConsoleApp;
- };
-
- void addSubprocessHelperBinarySourceCompileUnit (XmlElement& xml) const
- {
- auto* unit = xml.createNewChildElement ("Unit");
- const auto binaryDataSource = linuxSubprocessHelperProperties.getLinuxSubprocessHelperBinaryDataSource();
- unit->setAttribute ("filename", binaryDataSource.toUnixStyle());
-
- for (ConstConfigIterator config (*this); config.next();)
- {
- const auto& target = getTargetForFile (resolveRelativePath (binaryDataSource), ShouldBeCompiled::yes);
- const auto targetName = target.getTargetNameForConfiguration (*config);
- unit->createNewChildElement ("Option")->setAttribute ("target", targetName);
- }
- }
-
- //==============================================================================
- void addVersion (XmlElement& xml) const
- {
- auto* fileVersion = xml.createNewChildElement ("FileVersion");
- fileVersion->setAttribute ("major", 1);
- fileVersion->setAttribute ("minor", 6);
- }
-
- void addOptions (XmlElement& xml) const
- {
- xml.createNewChildElement ("Option")->setAttribute ("title", project.getProjectNameString());
- xml.createNewChildElement ("Option")->setAttribute ("pch_mode", 2);
- xml.createNewChildElement ("Option")->setAttribute ("compiler", "gcc");
- }
-
- StringArray getDefines (const BuildConfiguration& config, CodeBlocksTarget& target) const
- {
- StringPairArray defines;
-
- if (isWindows())
- {
- defines.set ("__MINGW__", "1");
- defines.set ("__MINGW_EXTENSION", {});
-
- auto targetPlatform = getTargetPlatformString();
-
- if (targetPlatform.isNotEmpty())
- defines.set ("WINVER", targetPlatform);
- }
- else
- {
- defines.set ("LINUX", "1");
- }
-
- if (config.isDebug())
- {
- defines.set ("DEBUG", "1");
- defines.set ("_DEBUG", "1");
- }
- else
- {
- defines.set ("NDEBUG", "1");
- }
-
- defines = mergePreprocessorDefs (defines, getAllPreprocessorDefs (config, target.type));
-
- StringArray defs;
- auto keys = defines.getAllKeys();
- auto values = defines.getAllValues();
-
- const auto escapedQuote = isWindows() ? "\\\"" : "\\\\\"";
-
- for (int i = 0; i < defines.size(); ++i)
- {
- auto result = keys[i];
-
- if (values[i].isNotEmpty())
- result += "=\"" + values[i].replace ("\"", escapedQuote) + "\"";
-
- defs.add (result);
- }
-
- return getCleanedStringArray (defs);
- }
-
- StringArray getCompilerFlags (const BuildConfiguration& config, IsDynamicLibrary isDynamicLibrary) const
- {
- StringArray flags;
-
- if (auto* codeBlocksConfig = dynamic_cast (&config))
- flags.add (codeBlocksConfig->getArchitectureTypeString());
-
- auto recommendedFlags = config.getRecommendedCompilerWarningFlags();
-
- for (auto& recommendedFlagsType : { recommendedFlags.common, recommendedFlags.cpp })
- for (auto& recommended : recommendedFlagsType)
- flags.add (recommended);
-
- flags.add ("-O" + config.getGCCOptimisationFlag());
-
- if (config.isLinkTimeOptimisationEnabled())
- flags.add ("-flto");
-
- {
- auto cppStandard = config.project.getCppStandardString();
-
- if (cppStandard == "latest")
- cppStandard = project.getLatestNumberedCppStandardString();
-
- flags.add ("-std=" + String (shouldUseGNUExtensions() ? "gnu++" : "c++") + cppStandard);
- }
-
- flags.add ("-mstackrealign");
-
- if (config.isDebug())
- flags.add ("-g");
-
- flags.addTokens (replacePreprocessorTokens (config, config.getAllCompilerFlagsString()).trim(),
- " \n", "\"'");
-
- if (config.exporter.isLinux())
- {
- if (isDynamicLibrary == IsDynamicLibrary::yes || getProject().isAudioPluginProject())
- flags.add ("-fPIC");
-
- auto packages = config.exporter.getLinuxPackages (PackageDependencyType::compile);
-
- if (! packages.isEmpty())
- {
- auto pkgconfigFlags = String ("`pkg-config --cflags");
-
- for (auto& p : packages)
- pkgconfigFlags << " " << p;
-
- pkgconfigFlags << "`";
- flags.add (pkgconfigFlags);
- }
-
- if (linuxLibs.contains ("pthread"))
- flags.add ("-pthread");
- }
-
- return getCleanedStringArray (flags);
- }
-
- StringArray getLinkerFlags (const BuildConfiguration& config, IsDynamicLibrary isDynamicLibrary) const
- {
- auto flags = makefileExtraLinkerFlags;
-
- if (auto* codeBlocksConfig = dynamic_cast (&config))
- flags.add (codeBlocksConfig->getArchitectureTypeString());
-
- if (! config.isDebug())
- flags.add ("-s");
-
- if (config.isLinkTimeOptimisationEnabled())
- flags.add ("-flto");
-
- flags.addTokens (replacePreprocessorTokens (config, config.getAllLinkerFlagsString()).trim(), " \n", "\"'");
-
- if (config.exporter.isLinux())
- {
- if (isDynamicLibrary == IsDynamicLibrary::yes)
- flags.add ("-shared");
-
- auto packages = config.exporter.getLinuxPackages (PackageDependencyType::link);
-
- if (! packages.isEmpty())
- {
- String pkgconfigLibs ("`pkg-config --libs");
-
- for (auto& p : packages)
- pkgconfigLibs << " " << p;
-
- pkgconfigLibs << "`";
- flags.add (pkgconfigLibs);
- }
- }
-
- return getCleanedStringArray (flags);
- }
-
- StringArray getLinkerSearchPaths (const BuildConfiguration& config, CodeBlocksTarget& target) const
- {
- auto librarySearchPaths = config.getLibrarySearchPaths();
-
- if (getProject().isAudioPluginProject() && target.type != build_tools::ProjectType::Target::SharedCodeTarget)
- librarySearchPaths.add (build_tools::RelativePath (getSharedCodePath (config), build_tools::RelativePath::buildTargetFolder).getParentDirectory().toUnixStyle().quoted());
-
- return librarySearchPaths;
- }
-
- StringArray getIncludePaths (const BuildConfiguration& config) const
- {
- StringArray paths;
-
- paths.add (".");
- paths.addArray (extraSearchPaths);
- paths.addArray (config.getHeaderSearchPaths());
-
- if (! isWindows())
- {
- paths.add ("/usr/include/freetype2");
-
- // Replace ~ character with $(HOME) environment variable
- for (auto& path : paths)
- path = path.replace ("~", "$(HOME)");
- }
-
- return getCleanedStringArray (paths);
- }
-
- static int getTypeIndex (const build_tools::ProjectType::Target::Type& type)
- {
- if (type == build_tools::ProjectType::Target::GUIApp || type == build_tools::ProjectType::Target::StandalonePlugIn) return 0;
- if (type == build_tools::ProjectType::Target::ConsoleApp) return 1;
- if (type == build_tools::ProjectType::Target::StaticLibrary || type == build_tools::ProjectType::Target::SharedCodeTarget) return 2;
- if (type == build_tools::ProjectType::Target::DynamicLibrary || type == build_tools::ProjectType::Target::VSTPlugIn) return 3;
-
- return 0;
- }
-
- String getOutputPathForConfig (const BuildConfiguration& config) const
- {
- if (config.getTargetBinaryRelativePathString().isNotEmpty())
- {
- build_tools::RelativePath binaryPath (config.getTargetBinaryRelativePathString(), build_tools::RelativePath::projectFolder);
- binaryPath = binaryPath.rebased (projectFolder, getTargetFolder(), build_tools::RelativePath::buildTargetFolder);
- return config.getTargetBinaryRelativePathString();
- }
-
- return "bin/" + File::createLegalFileName (config.getName().trim());
- }
-
- String getOutputPathForTarget (CodeBlocksTarget& target, const BuildConfiguration& config) const
- {
- return getOutputPathForConfig (config)
- + "/"
- + replacePreprocessorTokens (config, config.getTargetBinaryNameString() + target.getTargetSuffix());
- }
-
- String getSharedCodePath (const BuildConfiguration& config) const
- {
- auto outputPath = getOutputPathForTarget (getTargetWithType (build_tools::ProjectType::Target::SharedCodeTarget), config);
- build_tools::RelativePath path (outputPath, build_tools::RelativePath::buildTargetFolder);
- auto filename = path.getFileName();
-
- if (isLinux())
- filename = "lib" + filename;
-
- return path.getParentDirectory().getChildFile (filename).toUnixStyle();
- }
-
- void createBuildTarget (XmlElement& xml, CodeBlocksTarget& target, const BuildConfiguration& config) const
- {
- xml.setAttribute ("title", target.getTargetNameForConfiguration (config));
-
- {
- auto* output = xml.createNewChildElement ("Option");
-
- output->setAttribute ("output", getOutputPathForTarget (target, config));
-
- if (isLinux())
- {
- bool keepPrefix = (target.type == build_tools::ProjectType::Target::VSTPlugIn);
-
- output->setAttribute ("prefix_auto", keepPrefix ? 0 : 1);
- }
- else
- {
- output->setAttribute ("prefix_auto", 0);
- }
-
- output->setAttribute ("extension_auto", 0);
- }
-
- xml.createNewChildElement ("Option")
- ->setAttribute ("object_output", "obj/" + File::createLegalFileName (config.getName().trim()));
-
- xml.createNewChildElement ("Option")->setAttribute ("type", getTypeIndex (target.type));
- xml.createNewChildElement ("Option")->setAttribute ("compiler", "gcc");
-
- if (getProject().isAudioPluginProject() && target.type != build_tools::ProjectType::Target::SharedCodeTarget)
- xml.createNewChildElement ("Option")->setAttribute ("external_deps", getSharedCodePath (config));
-
- {
- auto* compiler = xml.createNewChildElement ("Compiler");
-
- {
- StringArray flags;
-
- for (auto& def : getDefines (config, target))
- {
- if (! def.containsChar ('='))
- def << '=';
-
- flags.add ("-D" + def);
- }
-
- flags.addArray (getCompilerFlags (config, target.isDynamicLibrary()));
-
- for (auto flag : flags)
- setAddOption (*compiler, "option", flag);
- }
-
- {
- auto includePaths = getIncludePaths (config);
-
- for (auto path : includePaths)
- setAddOption (*compiler, "directory", path);
- }
- }
-
- {
- auto* linker = xml.createNewChildElement ("Linker");
-
- if (getProject().isAudioPluginProject() && target.type != build_tools::ProjectType::Target::SharedCodeTarget)
- setAddOption (*linker, "option", getSharedCodePath (config).quoted());
-
- for (auto& flag : getLinkerFlags (config, target.isDynamicLibrary()))
- setAddOption (*linker, "option", flag);
-
- const StringArray& libs = isWindows() ? mingwLibs : linuxLibs;
-
- for (auto lib : libs)
- setAddOption (*linker, "library", lib);
-
- for (auto& path : getLinkerSearchPaths (config, target))
- setAddOption (*linker, "directory",
- build_tools::replacePreprocessorDefs (getAllPreprocessorDefs(), path));
- }
- }
-
- void addBuild (XmlElement& xml) const
- {
- auto* build = xml.createNewChildElement ("Build");
-
- for (ConstConfigIterator config (*this); config.next();)
- {
- if (linuxSubprocessHelperProperties.shouldUseLinuxSubprocessHelper())
- for (const auto& helperTarget : helperTargets)
- helperTarget.addTarget (*build->createNewChildElement ("Target"), *config);
-
- for (auto target : targets)
- if (target->type != build_tools::ProjectType::Target::AggregateTarget)
- createBuildTarget (*build->createNewChildElement ("Target"), *target, *config);
- }
- }
-
- void addVirtualTargets (XmlElement& xml) const
- {
- auto* virtualTargets = xml.createNewChildElement ("VirtualTargets");
-
- for (ConstConfigIterator config (*this); config.next();)
- {
- StringArray allTargets;
-
- if (linuxSubprocessHelperProperties.shouldUseLinuxSubprocessHelper())
- for (const auto& target : helperTargets)
- allTargets.add (target.getTargetNameForConfiguration (*config));
-
- for (auto target : targets)
- if (target->type != build_tools::ProjectType::Target::AggregateTarget)
- allTargets.add (target->getTargetNameForConfiguration (*config));
-
- for (auto target : targets)
- {
- if (target->type == build_tools::ProjectType::Target::AggregateTarget)
- {
- auto* configTarget = virtualTargets->createNewChildElement ("Add");
-
- configTarget->setAttribute ("alias", config->getName());
- configTarget->setAttribute ("targets", allTargets.joinIntoString (";"));
- }
- }
- }
- }
-
- StringArray getProjectCompilerOptions() const
- {
- return { "-Wall", "-Wno-strict-aliasing", "-Wno-strict-overflow" };
- }
-
- void addProjectCompilerOptions (XmlElement& xml) const
- {
- auto* compiler = xml.createNewChildElement ("Compiler");
-
- for (auto& option : getProjectCompilerOptions())
- setAddOption (*compiler, "option", option);
- }
-
- StringArray getProjectLinkerLibs() const
- {
- StringArray result;
-
- if (isWindows())
- result.addArray ({ "gdi32", "user32", "kernel32", "comctl32" });
-
- result.addTokens (getExternalLibrariesString(), ";\n", "\"'");
-
- result = getCleanedStringArray (result);
-
- for (auto& option : result)
- option = build_tools::replacePreprocessorDefs (getAllPreprocessorDefs(), option);
-
- return result;
- }
-
- void addProjectLinkerOptions (XmlElement& xml) const
- {
- auto* linker = xml.createNewChildElement ("Linker");
-
- for (auto& lib : getProjectLinkerLibs())
- setAddOption (*linker, "library", lib);
- }
-
- CodeBlocksTarget& getTargetWithType (build_tools::ProjectType::Target::Type type) const
- {
- CodeBlocksTarget* nonAggregrateTarget = nullptr;
-
- for (auto* target : targets)
- {
- if (target->type == type)
- return *target;
-
- if (target->type != build_tools::ProjectType::Target::AggregateTarget)
- nonAggregrateTarget = target;
- }
-
- // this project has no valid targets
- jassert (nonAggregrateTarget != nullptr);
-
- return *nonAggregrateTarget;
- }
-
- // Returns SharedCode target for multi-target projects, otherwise it returns
- // the single target
- CodeBlocksTarget& getMainTarget() const
- {
- if (getProject().isAudioPluginProject())
- return getTargetWithType (build_tools::ProjectType::Target::SharedCodeTarget);
-
- for (auto* target : targets)
- if (target->type != build_tools::ProjectType::Target::AggregateTarget)
- return *target;
-
- jassertfalse;
-
- return *targets[0];
- }
-
- CodeBlocksTarget& getTargetForFile (const File& file, ShouldBeCompiled shouldBeCompiled) const
- {
- if (getProject().isAudioPluginProject())
- {
- if (shouldBeCompiled == ShouldBeCompiled::no)
- return getTargetWithType (build_tools::ProjectType::Target::SharedCodeTarget);
-
- return getTargetWithType (getProject().getTargetTypeFromFilePath (file, true));
- }
-
- return getMainTarget();
- }
-
- CodeBlocksTarget& getTargetForProjectItem (const Project::Item& projectItem) const
- {
- return getTargetForFile (projectItem.getFile(),
- projectItem.shouldBeCompiled() ? ShouldBeCompiled::yes
- : ShouldBeCompiled::no);
- }
-
- void addCompileUnits (const Project::Item& projectItem, XmlElement& xml) const
- {
- if (projectItem.isGroup())
- {
- for (int i = 0; i < projectItem.getNumChildren(); ++i)
- addCompileUnits (projectItem.getChild (i), xml);
- }
- else if (projectItem.shouldBeAddedToTargetProject() && projectItem.shouldBeAddedToTargetExporter (*this))
- {
- build_tools::RelativePath file (projectItem.getFile(), getTargetFolder(), build_tools::RelativePath::buildTargetFolder);
-
- auto* unit = xml.createNewChildElement ("Unit");
- unit->setAttribute ("filename", file.toUnixStyle());
-
- for (ConstConfigIterator config (*this); config.next();)
- {
- auto targetName = getTargetForProjectItem (projectItem).getTargetNameForConfiguration (*config);
- unit->createNewChildElement ("Option")->setAttribute ("target", targetName);
- }
-
- if (projectItem.shouldBeCompiled())
- {
- auto extraCompilerFlags = getCompilerFlagsForProjectItem (projectItem);
-
- if (extraCompilerFlags.isNotEmpty())
- {
- auto* optionElement = unit->createNewChildElement ("Option");
-
- optionElement->setAttribute ("compiler", "gcc");
- optionElement->setAttribute ("use", 1);
- optionElement->setAttribute ("buildCommand", "$compiler $options " + extraCompilerFlags + " $includes -c $file -o $object");
- }
- }
- else
- {
- unit->createNewChildElement ("Option")->setAttribute ("compile", 0);
- unit->createNewChildElement ("Option")->setAttribute ("link", 0);
- }
- }
- }
-
- bool hasResourceFile() const
- {
- return ! projectType.isStaticLibrary();
- }
-
- void addCompileUnits (XmlElement& xml) const
- {
- if (linuxSubprocessHelperProperties.shouldUseLinuxSubprocessHelper())
- {
- for (const auto& helperTarget : helperTargets)
- helperTarget.addCompileUnits (xml);
-
- addSubprocessHelperBinarySourceCompileUnit (xml);
- }
-
- for (int i = 0; i < getAllGroups().size(); ++i)
- addCompileUnits (getAllGroups().getReference (i), xml);
-
- if (hasResourceFile())
- {
- const auto iconFile = getTargetFolder().getChildFile ("icon.ico");
-
- if (! build_tools::asArray (getIcons()).isEmpty())
- build_tools::writeWinIcon (getIcons(), iconFile);
-
- auto rcFile = getTargetFolder().getChildFile ("resources.rc");
- MSVCProjectExporterBase::createRCFile (project, iconFile, rcFile);
-
- auto* unit = xml.createNewChildElement ("Unit");
- unit->setAttribute ("filename", rcFile.getFileName());
- unit->createNewChildElement ("Option")->setAttribute ("compilerVar", "WINDRES");
- }
- }
-
- void createProject (XmlElement& xml) const
- {
- addOptions (xml);
- addBuild (xml);
- addVirtualTargets (xml);
- addProjectCompilerOptions (xml);
- addProjectLinkerOptions (xml);
- addCompileUnits (xml);
- }
-
- void setAddOption (XmlElement& xml, const String& nm, const String& value) const
- {
- xml.createNewChildElement ("Add")->setAttribute (nm, value);
- }
-
- CodeBlocksOS os;
-
- OwnedArray targets;
-
- // The order of these targets is significant, as latter targets depend on earlier ones
- const LinuxSubprocessHelperTarget helperTargets[2] { { *this, LinuxSubprocessHelperTarget::HelperType::linuxSubprocessHelper },
- { *this, LinuxSubprocessHelperTarget::HelperType::simpleBinaryBuilder } };
-
- JUCE_DECLARE_NON_COPYABLE (CodeBlocksProjectExporter)
-};
diff --git a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_MSVC.h b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_MSVC.h
index 7006867aef..fed75ed7fc 100644
--- a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_MSVC.h
+++ b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_MSVC.h
@@ -1543,7 +1543,6 @@ public:
bool isXcode() const override { return false; }
bool isVisualStudio() const override { return true; }
- bool isCodeBlocks() const override { return false; }
bool isMakefile() const override { return false; }
bool isAndroidStudio() const override { return false; }
diff --git a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Make.h b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Make.h
index 11e0d82116..c23a43a49d 100644
--- a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Make.h
+++ b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Make.h
@@ -491,7 +491,6 @@ public:
bool isXcode() const override { return false; }
bool isVisualStudio() const override { return false; }
- bool isCodeBlocks() const override { return false; }
bool isMakefile() const override { return true; }
bool isAndroidStudio() const override { return false; }
diff --git a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Xcode.h b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Xcode.h
index 1b36470c3b..44a5df4de3 100644
--- a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Xcode.h
+++ b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Xcode.h
@@ -404,7 +404,6 @@ public:
bool isXcode() const override { return true; }
bool isVisualStudio() const override { return false; }
- bool isCodeBlocks() const override { return false; }
bool isMakefile() const override { return false; }
bool isAndroidStudio() const override { return false; }
diff --git a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExporter.cpp b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExporter.cpp
index 85e877fad6..a571497d5c 100644
--- a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExporter.cpp
+++ b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExporter.cpp
@@ -40,7 +40,6 @@
#include "jucer_ProjectExport_MSVC.h"
#include "jucer_ProjectExport_Xcode.h"
#include "jucer_ProjectExport_Android.h"
-#include "jucer_ProjectExport_CodeBlocks.h"
#include "../Utility/UI/PropertyComponents/jucer_FilePathPropertyComponent.h"
@@ -87,15 +86,6 @@ std::vector ProjectExporter::getExporterTypeI
createExporterTypeInfo (export_linux_svg, export_linux_svgSize),
createExporterTypeInfo (export_android_svg, export_android_svgSize),
-
- { CodeBlocksProjectExporter::getValueTreeTypeNameWindows(),
- CodeBlocksProjectExporter::getDisplayNameWindows(),
- CodeBlocksProjectExporter::getTargetFolderNameWindows(),
- createIcon (export_codeBlocks_svg, export_codeBlocks_svgSize) },
- { CodeBlocksProjectExporter::getValueTreeTypeNameLinux(),
- CodeBlocksProjectExporter::getDisplayNameLinux(),
- CodeBlocksProjectExporter::getTargetFolderNameLinux(),
- createIcon (export_codeBlocks_svg, export_codeBlocks_svgSize) }
};
return infos;
@@ -164,8 +154,7 @@ std::unique_ptr ProjectExporter::createExporterFromSettings (Pr
Tag{},
Tag{},
Tag{},
- Tag{},
- Tag{});
+ Tag{});
}
bool ProjectExporter::canProjectBeLaunched (Project* project)
@@ -762,8 +751,7 @@ static bool areCompatibleExporters (const ProjectExporter& p1, const ProjectExpo
return (p1.isVisualStudio() && p2.isVisualStudio())
|| (p1.isXcode() && p2.isXcode())
|| (p1.isMakefile() && p2.isMakefile())
- || (p1.isAndroidStudio() && p2.isAndroidStudio())
- || (p1.isCodeBlocks() && p2.isCodeBlocks() && p1.isWindows() != p2.isLinux());
+ || (p1.isAndroidStudio() && p2.isAndroidStudio());
}
void ProjectExporter::createDefaultModulePaths()
diff --git a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExporter.h b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExporter.h
index c06cb3e851..026afc08f9 100644
--- a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExporter.h
+++ b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExporter.h
@@ -115,7 +115,6 @@ public:
// IDE targeted by exporter
virtual bool isXcode() const = 0;
virtual bool isVisualStudio() const = 0;
- virtual bool isCodeBlocks() const = 0;
virtual bool isMakefile() const = 0;
virtual bool isAndroidStudio() const = 0;
diff --git a/extras/Projucer/Source/Utility/Helpers/jucer_PresetIDs.h b/extras/Projucer/Source/Utility/Helpers/jucer_PresetIDs.h
index 5b554847d3..1f1b141975 100644
--- a/extras/Projucer/Source/Utility/Helpers/jucer_PresetIDs.h
+++ b/extras/Projucer/Source/Utility/Helpers/jucer_PresetIDs.h
@@ -149,9 +149,6 @@ namespace Ids
DECLARE_ID (msvcManifestFile);
DECLARE_ID (warningsAreErrors);
DECLARE_ID (linuxArchitecture);
- DECLARE_ID (linuxCodeBlocksArchitecture);
- DECLARE_ID (windowsCodeBlocksArchitecture);
- DECLARE_ID (codeBlocksWindowsTarget);
DECLARE_ID (toolset);
DECLARE_ID (windowsTargetPlatformVersion);
DECLARE_ID (debugInformationFormat);
diff --git a/extras/Projucer/Source/Utility/UI/jucer_Icons.cpp b/extras/Projucer/Source/Utility/UI/jucer_Icons.cpp
index ee69d4955a..68f0999a54 100644
--- a/extras/Projucer/Source/Utility/UI/jucer_Icons.cpp
+++ b/extras/Projucer/Source/Utility/UI/jucer_Icons.cpp
@@ -204,11 +204,6 @@ const uint8 android[] = { 110,109,31,179,128,65,235,31,97,65,98,31,179,128,65,21
64,15,129,3,64,158,66,224,64,202,79,22,64,108,100,34,188,64,224,219,52,63,98,43,16,186,64,28,206,28,63,32,52,182,64,219,111,21,63,164,129,179,64,174,72,36,63,98,40,207,176,64,31,44,51,63,9,76,176,64,156,194,82,63,127,92,178,64,115,215,106,63,108,123,
35,213,64,219,223,31,64,98,38,216,157,64,148,108,83,64,182,34,110,64,196,176,154,64,1,65,100,64,77,218,211,64,108,223,79,117,65,77,218,211,64,98,167,217,114,65,196,176,154,64,10,118,95,65,118,109,83,64,207,208,67,65,189,224,31,64,101,0,0 };
-const uint8 codeBlocks[] = { 110,109,0,0,0,0,0,0,0,0,108,0,0,0,0,0,208,235,64,108,0,192,134,64,0,152,23,65,108,0,152,23,65,0,152,23,65,108,0,152,23,65,0,192,134,64,108,0,208,235,64,0,0,0,0,108,0,0,0,0,0,0,0,0,99,109,0,24,74,65,0,0,0,0,108,0,104,40,65,0,192,134,64,108,0,104,40,65,
- 0,152,23,65,108,255,159,124,65,0,152,23,65,108,0,0,160,65,0,208,235,64,108,0,0,160,65,0,0,0,0,108,0,24,74,65,0,0,0,0,99,109,0,192,134,64,0,104,40,65,108,0,0,0,0,0,24,74,65,108,0,0,0,0,0,0,160,65,108,0,208,235,64,0,0,160,65,108,0,152,23,65,255,159,124,
- 65,108,0,152,23,65,0,104,40,65,108,0,192,134,64,0,104,40,65,99,109,0,104,40,65,0,104,40,65,108,0,104,40,65,255,159,124,65,108,0,24,74,65,0,0,160,65,108,0,0,160,65,0,0,160,65,108,0,0,160,65,0,24,74,65,108,255,159,124,65,0,104,40,65,108,0,104,40,65,0,104,
- 40,65,99,101,0,0 };
-
const uint8 linux[] = { 110,109,0,0,124,66,174,71,130,66,108,0,0,124,66,174,71,130,66,108,162,178,123,66,87,5,130,66,108,186,94,123,66,5,197,129,66,108,128,4,123,66,225,134,129,66,108,45,164,122,66,17,75,129,66,108,254,61,122,66,189,17,129,66,108,52,210,121,66,9,219,128,66,
108,22,97,121,66,24,167,128,66,108,234,234,120,66,11,118,128,66,108,143,194,120,66,102,102,128,66,108,143,194,120,66,102,102,128,66,108,143,194,120,66,102,102,128,66,108,167,246,119,66,12,20,128,66,108,198,34,119,66,200,141,127,66,108,114,71,118,66,65,
254,126,66,108,245,40,118,66,132,235,126,66,108,245,40,118,66,132,235,126,66,108,112,61,117,66,234,81,126,66,108,111,61,117,66,234,81,126,66,108,17,6,115,66,5,193,124,66,108,114,227,112,66,69,20,123,66,108,162,112,111,66,9,215,121,66,108,163,112,111,
@@ -660,7 +655,6 @@ Icons::Icons()
JUCE_LOAD_PATH_DATA (singleModule)
JUCE_LOAD_PATH_DATA (plus);
JUCE_LOAD_PATH_DATA (android);
- JUCE_LOAD_PATH_DATA (codeBlocks);
JUCE_LOAD_PATH_DATA (linux);
JUCE_LOAD_PATH_DATA (xcode);
JUCE_LOAD_PATH_DATA (visualStudio);
diff --git a/extras/Projucer/Source/Utility/UI/jucer_Icons.h b/extras/Projucer/Source/Utility/UI/jucer_Icons.h
index 3e747cdf26..ae9e6b4abb 100644
--- a/extras/Projucer/Source/Utility/UI/jucer_Icons.h
+++ b/extras/Projucer/Source/Utility/UI/jucer_Icons.h
@@ -85,8 +85,7 @@ public:
Icons();
Path imageDoc, config, graph, info, warning, user, closedFolder, exporter, fileExplorer, file,
- modules, openFolder, settings, singleModule, plus, android, codeBlocks,
- linux, xcode, visualStudio;
+ modules, openFolder, settings, singleModule, plus, android, linux, xcode, visualStudio;
private:
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (Icons)