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" -"\n" -" \n" -" Group\n" -" Created with Sketch.\n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \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" "\n" " \n" @@ -1858,10 +1833,10 @@ static const unsigned char temp_binary_data_15[] = " \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" "\n" " \n" @@ -1885,10 +1860,10 @@ static const unsigned char temp_binary_data_16[] = " \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" "\n" " \n" @@ -1960,10 +1935,10 @@ static const unsigned char temp_binary_data_17[] = " \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"/> - - - - - Group - Created with Sketch. - - - - - - - - - - - - \ 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)