diff --git a/extras/Projucer/Source/Project Saving/jucer_ProjectExport_CodeBlocks.h b/extras/Projucer/Source/Project Saving/jucer_ProjectExport_CodeBlocks.h index f9de4e1cba..5e2df15728 100644 --- a/extras/Projucer/Source/Project Saving/jucer_ProjectExport_CodeBlocks.h +++ b/extras/Projucer/Source/Project Saving/jucer_ProjectExport_CodeBlocks.h @@ -138,9 +138,9 @@ public: } //============================================================================== - void addPlatformSpecificSettingsForProjectType (const ProjectType&) override + void addPlatformSpecificSettingsForProjectType (const ProjectType& type) override { - // no-op. + createDynamicLibrary = type.isAudioPlugin() || type.isDynamicLibrary(); } private: @@ -243,6 +243,9 @@ private: if (config.exporter.isLinux()) { + if (createDynamicLibrary) + flags.add ("-fPIC"); + if (linuxPackages.size() > 0) { auto pkgconfigFlags = String ("`pkg-config --cflags"); @@ -272,6 +275,9 @@ private: if (config.exporter.isLinux() && linuxPackages.size() > 0) { + if (createDynamicLibrary) + flags.add ("-shared"); + auto pkgconfigLibs = String ("`pkg-config --libs"); for (auto p : linuxPackages) pkgconfigLibs << " " << p; @@ -467,6 +473,7 @@ private: } CodeBlocksOS os; + bool createDynamicLibrary = false; JUCE_DECLARE_NON_COPYABLE (CodeBlocksProjectExporter) }; diff --git a/extras/Projucer/Source/Project Saving/jucer_ProjectExport_Make.h b/extras/Projucer/Source/Project Saving/jucer_ProjectExport_Make.h index 9f6ddb9746..fdcc401975 100644 --- a/extras/Projucer/Source/Project Saving/jucer_ProjectExport_Make.h +++ b/extras/Projucer/Source/Project Saving/jucer_ProjectExport_Make.h @@ -117,11 +117,12 @@ public: if (type.isStaticLibrary()) makefileTargetSuffix = ".a"; - else if (type.isDynamicLibrary()) - makefileTargetSuffix = ".so"; - - else if (type.isAudioPlugin()) + else if (type.isAudioPlugin() || type.isDynamicLibrary()) + { makefileIsDLL = true; + if (type.isDynamicLibrary()) + makefileTargetSuffix = ".so"; + } } protected: