have Projucer and juceaide link against the system libraries
authorDebian Multimedia Maintainers <debian-multimedia@lists.debian.org>
Wed, 23 Oct 2019 07:44:36 +0000 (09:44 +0200)
committerIOhannes m zmölnig (Debian/GNU) <umlaeute@debian.org>
Wed, 30 Nov 2022 13:02:44 +0000 (14:02 +0100)
Origin: Debian
Forwarded: no
Last-Update: 2019-08-21

since the Debian package has removed 3rd-party libraries (jpeg, png, flac,
ogg/vorbis), we must link against the system libraries.
Last-Update: 2019-08-21

Gbp-Pq: Name debian_link_systemlibs.patch

extras/Build/juceaide/CMakeLists.txt
extras/Projucer/CMakeLists.txt
extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Make.h
extras/Projucer/Source/ProjectSaving/jucer_ProjectExporter.cpp

index 422d8d093eb894cded5a7c6b37dfd345a3d5c38a..a70b9f9e6033ce35343d8246cde254e331193d69 100644 (file)
@@ -37,6 +37,7 @@ if(JUCE_BUILD_HELPER_TOOLS)
         JUCE_USE_CURL=0)
 
     target_link_libraries(juceaide PRIVATE
+        z
         juce::juce_build_tools
         juce::juce_recommended_config_flags
         juce::juce_recommended_lto_flags
index 012eda673f22e579ddc8d407df8b2888fd70c856..eec6eaa723076c4381ccba7e135eccf778679bdf 100644 (file)
@@ -159,6 +159,7 @@ juce_add_binary_data(ProjucerData SOURCES
     ../Build/CMake/juce_runtime_arch_detection.cpp)
 
 target_link_libraries(Projucer PRIVATE
+    z
     ProjucerData
     juce::juce_build_tools
     juce::juce_cryptography
index a84cdc9372cc81206ebf6a36cae16788af789ed8..ad989a42bc0710b9a0f847de462de45a1eb8b649 100644 (file)
@@ -690,6 +690,9 @@ private:
         StringArray result (linuxLibs);\r
 \r
         auto libraries = StringArray::fromTokens (getExternalLibrariesString(), ";", "\"'");\r
+#ifdef DEBIAN_JUCERPROJECT_LIBS\r
+        libraries.addArray(StringArray::fromTokens (DEBIAN_JUCERPROJECT_LIBS, ";", "\"'"));\r
+#endif\r
         libraries.removeEmptyStrings();\r
 \r
         for (auto& lib : libraries)\r
index c21e817c8557087e0c85ef4a96cc5fc9b10c0d0c..12ca2747af92cf84b3dfa579fe9844654f2a9b62 100644 (file)
@@ -566,6 +566,39 @@ StringArray ProjectExporter::getLinuxPackages (PackageDependencyType type) const
     if (isCurlEnabled (project) && ! isLoadCurlSymbolsLazilyEnabled (project))\r
         packages.add ("libcurl");\r
 \r
+    // on Debian, a number of 3rd-party libs have been stripped away,\r
+    // so we need to link to the system libraries\r
+    if (project.getEnabledModules().isModuleEnabled ("juce_core"))\r
+    {\r
+        packages.add ("zlib");\r
+    }\r
+    if (project.getEnabledModules().isModuleEnabled ("juce_graphics"))\r
+    {\r
+        packages.add ("libjpeg");\r
+        packages.add ("libpng");\r
+    }\r
+    if (project.getEnabledModules().isModuleEnabled ("juce_audio_formats"))\r
+    {\r
+        if(project.isConfigFlagEnabled ("JUCE_USE_FLAC", true))\r
+        {\r
+            packages.add ("flac");\r
+        }\r
+        if(project.isConfigFlagEnabled ("JUCE_USE_OGGVORBIS", true))\r
+        {\r
+            packages.add ("vorbis");\r
+            packages.add ("vorbisfile");\r
+            packages.add ("vorbisenc");\r
+            packages.add ("ogg");\r
+        }\r
+    }\r
+    if (project.getEnabledModules().isModuleEnabled ("juce_audio_devices"))\r
+    {\r
+        if(project.isConfigFlagEnabled ("JUCE_JACK", true))\r
+        {\r
+            packages.add ("jack");\r
+        }\r
+    }\r
+\r
     if (isWebBrowserComponentEnabled (project) && type == PackageDependencyType::compile)\r
     {\r
         packages.add ("webkit2gtk-4.0");\r