From 39a6e9ea3134cf70ff799e485cd5da14a74a50ea Mon Sep 17 00:00:00 2001 From: tpoole Date: Sun, 8 Oct 2017 08:47:58 +0100 Subject: [PATCH] Fixed a path parsing issue in the Code::Blocks Linux exporter --- .../jucer_ProjectExport_CodeBlocks.h | 41 ++++++++++++++++--- 1 file changed, 35 insertions(+), 6 deletions(-) diff --git a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_CodeBlocks.h b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_CodeBlocks.h index 643219ca62..a2c0ac84db 100644 --- a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_CodeBlocks.h +++ b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_CodeBlocks.h @@ -306,6 +306,25 @@ private: }; //============================================================================== + + StringArray getPackages() const + { + StringArray result (linuxPackages); + + static String guiExtrasModule ("juce_gui_extra"); + + if (project.getModules().isModuleEnabled (guiExtrasModule) + && project.isConfigFlagEnabled ("JUCE_WEB_BROWSER", true)) + { + result.add ("webkit2gtk-4.0"); + result.add ("gtk+-x11-3.0"); + } + + result.removeDuplicates (false); + + return result; + } + void addVersion (XmlElement& xml) const { XmlElement* fileVersion = xml.createNewChildElement ("FileVersion"); @@ -324,7 +343,7 @@ private: { StringPairArray defines; - if (isCodeBlocks() && isWindows()) + if (isWindows()) { defines.set ("__MINGW__", "1"); defines.set ("__MINGW_EXTENSION", String()); @@ -399,10 +418,12 @@ private: if (target.isDynamicLibrary() || getProject().getProjectType().isAudioPlugin()) flags.add ("-fPIC"); - if (linuxPackages.size() > 0) + const auto packages = getPackages(); + + if (packages.size() > 0) { auto pkgconfigFlags = String ("`pkg-config --cflags"); - for (auto p : linuxPackages) + for (auto p : packages) pkgconfigFlags << " " << p; pkgconfigFlags << "`"; @@ -432,13 +453,15 @@ private: if (getProject().getProjectType().isAudioPlugin() && target.type != ProjectType::Target::SharedCodeTarget) flags.add ("-l" + config.getTargetBinaryNameString()); - if (config.exporter.isLinux() && linuxPackages.size() > 0) + const auto packages = getPackages(); + + if (config.exporter.isLinux() && packages.size() > 0) { if (target.isDynamicLibrary()) flags.add ("-shared"); auto pkgconfigLibs = String ("`pkg-config --libs"); - for (auto p : linuxPackages) + for (auto p : packages) pkgconfigLibs << " " << p; pkgconfigLibs << "`"; @@ -456,9 +479,15 @@ private: paths.addArray (extraSearchPaths); paths.addArray (config.getHeaderSearchPaths()); - if (! (isCodeBlocks() && isWindows())) + if (! isWindows()) + { paths.add ("/usr/include/freetype2"); + // Replace ~ character with $(HOME) environment variable + for (auto& path : paths) + path = path.replace ("~", "$(HOME)"); + } + return getCleanedStringArray (paths); }