View Issue Details

IDProjectCategoryView StatusLast Update
0016617ScribusBuild Systempublic2021-09-01 19:52
Reporterfsimonis Assigned Tocbradney  
PrioritynormalSeverityminorReproducibilityN/A
Status resolvedResolutionfixed 
Product Version1.5.8.svn 
Fixed in Version1.5.8.svn 
Summary0016617: Simplify CMake
DescriptionAfter the comment in https://bugs.scribus.net/view.php?id=16614#c49207, I decided to have a look at the CMake scripts.

Applying the attached patches will
- replace explicit compiler flags with portable CMake settings. (-fPIC -Wl,-E)
- fix the API headers and turned symbol visibility off by default. Now the scribus executable and plugins exports only the API.
- change the translation generation from using CMake targets to commands., so translations will only rerun if the input changes.
- change each plugin to "link" directly against scribus, which enables dependency propagation, makes the PLUGIN_LIBRARIES obsolete and implies that scribus needs to be build first.
- introduce the custom targets Plugins and Translations. The former depends on all enabled plugins and the latter depends on all requested translation outputs.

As a result, incremental builds are significantly faster and there is less CMake code to maintain.
TagsNo tags attached.
PatchYes

Activities

fsimonis

2021-08-12 12:33

reporter  

0004-Add-dependency-propagation.patch (5,253 bytes)   
From b4d5cf4427cdb8eab498606b82916cb86eb0933b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Simonis?= <simonisfrederic@gmail.com>
Date: Thu, 12 Aug 2021 10:26:35 +0200
Subject: [PATCH 4/5] Add dependency propagation

---
 scribus/CMakeLists.txt | 83 ++++++++++++++----------------------------
 1 file changed, 28 insertions(+), 55 deletions(-)

diff --git a/scribus/CMakeLists.txt b/scribus/CMakeLists.txt
index 78db5a4fd..aec69d370 100644
--- a/scribus/CMakeLists.txt
+++ b/scribus/CMakeLists.txt
@@ -679,7 +679,7 @@ if(HAVE_PODOFO)
 endif()
 
 if(HAVE_HYPHEN)
-	target_link_libraries(${EXE_NAME}
+	target_link_libraries(${EXE_NAME} PRIVATE
 	${HYPHEN_LIBRARY}
 	)
 endif()
@@ -759,24 +759,27 @@ endif()
 
 #Set up libraries to link with all found packages
 include_directories(${cairo_INCLUDE_DIR})
-target_link_libraries(${EXE_NAME} ${cairo_LIBRARIES})
+target_link_libraries(${EXE_NAME} PRIVATE ${cairo_LIBRARIES})
 link_directories(${PREFIX_cairo_LIB})
 set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_RPATH};${PREFIX_cairo_LIB}")
 
 message("RPATH: ${CMAKE_INSTALL_RPATH}")
 
 IF(NOT WANT_QT6)
-    target_link_libraries(${EXE_NAME}
+	target_link_libraries(${EXE_NAME}
+		PUBLIC
 		${Qt5Core_LIBRARIES}
 		${Qt5Widgets_LIBRARIES}
 		${Qt5Gui_LIBRARIES}
 		${Qt5Xml_LIBRARIES}
 		${Qt5Network_LIBRARIES}
 		${Qt5OpenGL_LIBRARIES}
+		PRIVATE
 		${Qt5PrintSupport_LIBRARIES}
 	)
 else()
 	target_link_libraries(${EXE_NAME}
+		PUBLIC
 		Qt6::Core
 		Qt6::Core5Compat
 		Qt6::Gui
@@ -786,23 +789,25 @@ else()
 endif()
 
 target_link_libraries(${EXE_NAME}
+	PUBLIC
+	${ZLIB_LIBRARIES}
+	${LIBXML2_LIBRARIES}
+	PRIVATE
 	${CUPS_LIBRARIES}
 	${FREETYPE_LIBRARIES}
 	${HARFBUZZ_LIBRARIES}
 	${HARFBUZZ_SUBSET_LIBRARIES}
 	${ICU_LIBRARIES}
-	${LIBXML2_LIBRARIES}
 	${TIFF_LIBRARIES}
 	${PNG_LIBRARIES}
 	${JPEG_LIBRARIES}
-	${ZLIB_LIBRARIES}
 	${WIN32_ONLY_LIBS}
 	${GMAGICK_LIBRARIES}
 )
 
 
 if (TARGET Fontconfig::Fontconfig)
-	target_link_libraries(${EXE_NAME}
+	target_link_libraries(${EXE_NAME} PRIVATE
 		Fontconfig::Fontconfig
 	)
 endif()
@@ -810,7 +815,7 @@ endif()
 
 
 if (NOT WIN32 AND NOT HAIKU)
-	target_link_libraries(${EXE_NAME}
+	target_link_libraries(${EXE_NAME} PRIVATE
 		${CUPS_LIBRARIES}
 	)
 endif ()
@@ -818,33 +823,36 @@ endif ()
 # required to resolve symbols from libdl when ld is called with --no-add-needed
 # #9310 for the OpenBSD addition
 if(UNIX AND NOT CMAKE_SYSTEM_NAME STREQUAL "OpenBSD" AND NOT CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" AND NOT HAIKU)
-	target_link_libraries(${EXE_NAME} dl)
+  target_link_libraries(${EXE_NAME} PUBLIC ${CMAKE_DL_LIBS})
 endif()
 
 # #9311 for the OpenBSD addition
 if(CMAKE_SYSTEM_NAME STREQUAL "OpenBSD" OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
-	target_link_libraries(${EXE_NAME} util execinfo)
+  target_link_libraries(${EXE_NAME} PRIVATE util execinfo)
 endif()
 
 if(HAIKU)
-	target_link_libraries(${EXE_NAME} execinfo)
+  target_link_libraries(${EXE_NAME} PRIVATE execinfo)
 endif(HAIKU)
 
 if(WIN32)
-	target_link_libraries(${EXE_NAME} ${QT_QTMAIN_LIBRARY})
+  target_link_libraries(${EXE_NAME} PRIVATE ${QT_QTMAIN_LIBRARY})
 endif()
 
 if(APPLE)
 	target_link_libraries(${EXE_NAME}
-	"-undefined dynamic_lookup"
-	"-framework CoreFoundation" )
+		PUBLIC
+		"-undefined dynamic_lookup"
+		PRIVATE
+		"-framework CoreFoundation"
+		)
 endif()
 
 if (WANT_SVNVERSION)
 	add_dependencies(${EXE_NAME} svnheader)
 endif ()
 
-target_link_libraries(${EXE_NAME}
+target_link_libraries(${EXE_NAME} PRIVATE
 	${SCRIBUS_WPG_LIB}
 	${SCRIBUS_PGF_LIB}
 	${SCRIBUS_ZIP_LIB}
@@ -853,20 +861,20 @@ target_link_libraries(${EXE_NAME}
 )
 
 if(WITH_TESTS)
-	target_link_libraries(${EXE_NAME}
+	target_link_libraries(${EXE_NAME} PRIVATE
 		${QT_QTTEST_LIBRARY}
 		${SCRIBUS_TESTS_LIB}
 	)
 endif()
 
 if(HAVE_PODOFO)
-	target_link_libraries(${EXE_NAME}
+	target_link_libraries(${EXE_NAME} PRIVATE
 		${LIBPODOFO_LIBRARY}
 	)
 endif()
 
 if(HAVE_OSG)
-	target_link_libraries(${EXE_NAME}
+	target_link_libraries(${EXE_NAME} PRIVATE
 		${OPENTHREADS_LIBRARY}
 		${OSG_LIBRARY}
 		${OSGGA_LIBRARY}
@@ -879,50 +887,15 @@ if(HAVE_OSG)
 endif()
 
 if (HAVE_BOOST)
-	target_link_libraries(${EXE_NAME}
+	target_link_libraries(${EXE_NAME} PRIVATE
 		${SCRIBUS_2GEOM_LIB}
 	)
 endif()
 
 # Now build plugins
-IF(NOT WANT_QT6)
-    set(PLUGIN_LIBRARIES
-		${Qt5Core_LIBRARIES}
-		${Qt5Widgets_LIBRARIES}
-		${Qt5Gui_LIBRARIES}
-		${Qt5Xml_LIBRARIES}
-		${Qt5Network_LIBRARIES}
-		${Qt5OpenGL_LIBRARIES}
-		${LIBXML2_LIBRARIES}
-		${ZLIB_LIBRARIES}
-	)
-else()
-	set(PLUGIN_LIBRARIES
-		${Qt6Core_LIBRARIES}
-		${Qt6Core5Compat_LIBRARIES}
-		${Qt6Widgets_LIBRARIES}
-		${Qt6Gui_LIBRARIES}
-		${LIBXML2_LIBRARIES}
-		${ZLIB_LIBRARIES}
-	)
-endif()
 
-if(WIN32)
-	# IF your plugin needs more than this, please link them privately
-	# in the CMakeLists.txt for your plugin.
-	set(PLUGIN_LIBRARIES
-#		${QT_LIBRARIES} part of #7210
-		${PLUGIN_LIBRARIES}
-		${EXE_NAME}
-	)
-endif()
-if(APPLE)
-	set(PLUGIN_LIBRARIES
-		${PLUGIN_LIBRARIES}
-		"-undefined dynamic_lookup"
-	)
-endif()
-message(STATUS ${PLUGIN_LIBRARIES})
+# IF your plugin needs additional libraries, please link them privately
+# in the CMakeLists.txt for your plugin.
 
 add_custom_target(Plugins ALL)
 add_subdirectory(plugins)
-- 
2.32.0

0003-Cleanup-CMake-of-plugins.patch (66,843 bytes)   
From abeb0ba04f887e7acab1de8ca97db71b8bc2f386 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Simonis?= <simonisfrederic@gmail.com>
Date: Thu, 12 Aug 2021 10:05:17 +0200
Subject: [PATCH 3/5] Cleanup CMake of plugins

---
 scribus/CMakeLists.txt                                    | 1 +
 scribus/plugins/barcodegenerator/CMakeLists.txt           | 4 ++--
 scribus/plugins/colorwheel/CMakeLists.txt                 | 4 ++--
 scribus/plugins/export/pixmapexport/CMakeLists.txt        | 4 ++--
 scribus/plugins/export/svgexplugin/CMakeLists.txt         | 4 ++--
 scribus/plugins/export/xpsexport/CMakeLists.txt           | 4 ++--
 scribus/plugins/fileloader/scribus12format/CMakeLists.txt | 2 +-
 .../plugins/fileloader/scribus134format/CMakeLists.txt    | 2 +-
 scribus/plugins/fileloader/scribus13format/CMakeLists.txt | 2 +-
 .../plugins/fileloader/scribus150format/CMakeLists.txt    | 2 +-
 scribus/plugins/fontpreview/CMakeLists.txt                | 2 +-
 scribus/plugins/gettext/csvim/CMakeLists.txt              | 2 +-
 scribus/plugins/gettext/docim/CMakeLists.txt              | 2 +-
 scribus/plugins/gettext/docxim/CMakeLists.txt             | 2 +-
 scribus/plugins/gettext/htmlim/CMakeLists.txt             | 2 +-
 scribus/plugins/gettext/markdownim/CMakeLists.txt         | 2 +-
 scribus/plugins/gettext/odt2im/CMakeLists.txt             | 2 +-
 scribus/plugins/gettext/pdbim/CMakeLists.txt              | 2 +-
 scribus/plugins/gettext/rtfim/CMakeLists.txt              | 2 +-
 scribus/plugins/gettext/sxwim/CMakeLists.txt              | 2 +-
 scribus/plugins/gettext/textfilter/CMakeLists.txt         | 2 +-
 scribus/plugins/gettext/txtim/CMakeLists.txt              | 2 +-
 scribus/plugins/gettext/xtgim/CMakeLists.txt              | 2 +-
 scribus/plugins/import/ai/CMakeLists.txt                  | 6 +++---
 scribus/plugins/import/cdr/CMakeLists.txt                 | 8 ++++----
 scribus/plugins/import/cgm/CMakeLists.txt                 | 4 ++--
 scribus/plugins/import/cvg/CMakeLists.txt                 | 4 ++--
 scribus/plugins/import/drw/CMakeLists.txt                 | 4 ++--
 scribus/plugins/import/emf/CMakeLists.txt                 | 4 ++--
 scribus/plugins/import/fh/CMakeLists.txt                  | 4 ++--
 scribus/plugins/import/idml/CMakeLists.txt                | 4 ++--
 scribus/plugins/import/idml_old/CMakeLists.txt            | 4 ++--
 scribus/plugins/import/odg/CMakeLists.txt                 | 4 ++--
 scribus/plugins/import/oodraw/CMakeLists.txt              | 2 +-
 scribus/plugins/import/pages/CMakeLists.txt               | 8 ++++----
 scribus/plugins/import/pct/CMakeLists.txt                 | 4 ++--
 scribus/plugins/import/pdf/CMakeLists.txt                 | 4 ++--
 scribus/plugins/import/pm/CMakeLists.txt                  | 4 ++--
 scribus/plugins/import/ps/CMakeLists.txt                  | 4 ++--
 scribus/plugins/import/pub/CMakeLists.txt                 | 8 ++++----
 scribus/plugins/import/qxp/CMakeLists.txt                 | 4 ++--
 scribus/plugins/import/shape/CMakeLists.txt               | 4 ++--
 scribus/plugins/import/sml/CMakeLists.txt                 | 4 ++--
 scribus/plugins/import/svg/CMakeLists.txt                 | 4 ++--
 scribus/plugins/import/svm/CMakeLists.txt                 | 4 ++--
 scribus/plugins/import/uniconvertor/CMakeLists.txt        | 4 ++--
 scribus/plugins/import/viva/CMakeLists.txt                | 4 ++--
 scribus/plugins/import/vsd/CMakeLists.txt                 | 8 ++++----
 scribus/plugins/import/wmf/CMakeLists.txt                 | 2 +-
 scribus/plugins/import/wpg/CMakeLists.txt                 | 4 ++--
 scribus/plugins/import/xar/CMakeLists.txt                 | 4 ++--
 scribus/plugins/import/xfig/CMakeLists.txt                | 4 ++--
 scribus/plugins/import/xps/CMakeLists.txt                 | 4 ++--
 scribus/plugins/import/zmf/CMakeLists.txt                 | 4 ++--
 scribus/plugins/myplugin/CMakeLists.txt                   | 2 +-
 scribus/plugins/picbrowser/CMakeLists.txt                 | 2 +-
 scribus/plugins/saveastemplateplugin/CMakeLists.txt       | 2 +-
 scribus/plugins/scripter/CMakeLists.txt                   | 4 ++--
 scribus/plugins/scriptplugin/CMakeLists.txt               | 4 ++--
 scribus/plugins/scriptplugin_py2x/CMakeLists.txt          | 4 ++--
 scribus/plugins/shapes/CMakeLists.txt                     | 4 ++--
 scribus/plugins/short-words/CMakeLists.txt                | 4 ++--
 .../tools/2geomtools/meshdistortion/CMakeLists.txt        | 2 +-
 .../plugins/tools/2geomtools/pathalongpath/CMakeLists.txt | 2 +-
 scribus/plugins/tools/flattenpath/CMakeLists.txt          | 2 +-
 scribus/plugins/tools/hunspellcheck/CMakeLists.txt        | 4 ++--
 scribus/plugins/tools/lenseffects/CMakeLists.txt          | 2 +-
 scribus/plugins/tools/pathconnect/CMakeLists.txt          | 2 +-
 scribus/plugins/tools/pathcut/CMakeLists.txt              | 2 +-
 scribus/plugins/tools/pathfinder/CMakeLists.txt           | 2 +-
 scribus/plugins/tools/pathstroker/CMakeLists.txt          | 2 +-
 scribus/plugins/tools/smoothpath/CMakeLists.txt           | 2 +-
 scribus/plugins/tools/subdivide/CMakeLists.txt            | 2 +-
 scribus/plugins/tools/transform/CMakeLists.txt            | 2 +-
 74 files changed, 123 insertions(+), 122 deletions(-)

diff --git a/scribus/CMakeLists.txt b/scribus/CMakeLists.txt
index cbfc19b7a..78db5a4fd 100644
--- a/scribus/CMakeLists.txt
+++ b/scribus/CMakeLists.txt
@@ -924,6 +924,7 @@ if(APPLE)
 endif()
 message(STATUS ${PLUGIN_LIBRARIES})
 
+add_custom_target(Plugins ALL)
 add_subdirectory(plugins)
 
 #do we want a lib suffix on osx? doubt it
diff --git a/scribus/plugins/barcodegenerator/CMakeLists.txt b/scribus/plugins/barcodegenerator/CMakeLists.txt
index 2028798f2..3895d531e 100644
--- a/scribus/plugins/barcodegenerator/CMakeLists.txt
+++ b/scribus/plugins/barcodegenerator/CMakeLists.txt
@@ -14,7 +14,7 @@ set(SCRIBUS_BARCODEGENERATOR_PLUGIN "barcodegenerator")
 
 add_library(${SCRIBUS_BARCODEGENERATOR_PLUGIN} MODULE ${BARCODEGENERATOR_PLUGIN_SOURCES})
 
-target_link_libraries(${SCRIBUS_BARCODEGENERATOR_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_BARCODEGENERATOR_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_BARCODEGENERATOR_PLUGIN} PRIVATE "../plugins_pch.h")
@@ -30,6 +30,6 @@ install(FILES barcode.ps
 	DESTINATION ${SHAREDIR}/plugins
 )
 
-add_dependencies(${SCRIBUS_BARCODEGENERATOR_PLUGIN} ${EXE_NAME})
+add_dependencies(Plugins ${SCRIBUS_BARCODEGENERATOR_PLUGIN})
 
 # set_target_properties(${SCRIBUS_BARCODEGENERATOR_PLUGIN} PROPERTIES VERSION "0.0.0")
diff --git a/scribus/plugins/colorwheel/CMakeLists.txt b/scribus/plugins/colorwheel/CMakeLists.txt
index 877ba1384..7e53f7a6d 100644
--- a/scribus/plugins/colorwheel/CMakeLists.txt
+++ b/scribus/plugins/colorwheel/CMakeLists.txt
@@ -14,7 +14,7 @@ set(SCRIBUS_COLORWHEEL_PLUGIN "colorwheel")
 
 add_library(${SCRIBUS_COLORWHEEL_PLUGIN} MODULE ${COLORWHEEL_PLUGIN_SOURCES})
 
-target_link_libraries(${SCRIBUS_COLORWHEEL_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_COLORWHEEL_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_COLORWHEEL_PLUGIN} PRIVATE "../plugins_pch.h")
@@ -26,6 +26,6 @@ install(TARGETS ${SCRIBUS_COLORWHEEL_PLUGIN}
 	PERMISSIONS ${PLUGIN_PERMISSIONS}
 )
 
-add_dependencies(${SCRIBUS_COLORWHEEL_PLUGIN} ${EXE_NAME})
+add_dependencies(Plugins ${SCRIBUS_COLORWHEEL_PLUGIN})
 
 # set_target_properties(${SCRIBUS_COLORWHEEL_PLUGIN} PROPERTIES VERSION "0.0.0")
diff --git a/scribus/plugins/export/pixmapexport/CMakeLists.txt b/scribus/plugins/export/pixmapexport/CMakeLists.txt
index 39d441553..86c86bacf 100644
--- a/scribus/plugins/export/pixmapexport/CMakeLists.txt
+++ b/scribus/plugins/export/pixmapexport/CMakeLists.txt
@@ -13,7 +13,7 @@ set(SCRIBUS_PIXMAPEXPORT_PLUGIN "scribusexportpixmap")
 
 add_library(${SCRIBUS_PIXMAPEXPORT_PLUGIN} MODULE ${SCRIBUS_PIXMAPEXPORT_PLUGIN_SOURCES})
 
-target_link_libraries(${SCRIBUS_PIXMAPEXPORT_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_PIXMAPEXPORT_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_PIXMAPEXPORT_PLUGIN} PRIVATE "../../plugins_pch.h")
@@ -25,6 +25,6 @@ install(TARGETS ${SCRIBUS_PIXMAPEXPORT_PLUGIN}
 	PERMISSIONS ${PLUGIN_PERMISSIONS}
 )
 
-add_dependencies(${SCRIBUS_PIXMAPEXPORT_PLUGIN} ${EXE_NAME})
+add_dependencies(Plugins ${SCRIBUS_PIXMAPEXPORT_PLUGIN})
 
 # set_target_properties(${SCRIBUS_FONTPREVIEW_PLUGIN} PROPERTIES VERSION "0.0.0")
diff --git a/scribus/plugins/export/svgexplugin/CMakeLists.txt b/scribus/plugins/export/svgexplugin/CMakeLists.txt
index 2f5a2c968..ca9cc0894 100644
--- a/scribus/plugins/export/svgexplugin/CMakeLists.txt
+++ b/scribus/plugins/export/svgexplugin/CMakeLists.txt
@@ -12,7 +12,7 @@ set(SCRIBUS_EXPORTSVG_PLUGIN "svgexplugin")
 
 add_library(${SCRIBUS_EXPORTSVG_PLUGIN} MODULE ${EXPORTSVG_PLUGIN_SOURCES})
 
-target_link_libraries(${SCRIBUS_EXPORTSVG_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_EXPORTSVG_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_EXPORTSVG_PLUGIN} PRIVATE "../../plugins_pch.h")
@@ -24,6 +24,6 @@ install(TARGETS ${SCRIBUS_EXPORTSVG_PLUGIN}
 	PERMISSIONS ${PLUGIN_PERMISSIONS}
 )
 
-add_dependencies(${SCRIBUS_EXPORTSVG_PLUGIN} ${EXE_NAME})
+add_dependencies(Plugins ${SCRIBUS_EXPORTSVG_PLUGIN})
 
 # set_target_properties(${SCRIBUS_FONTPREVIEW_PLUGIN} PROPERTIES VERSION "0.0.0")
diff --git a/scribus/plugins/export/xpsexport/CMakeLists.txt b/scribus/plugins/export/xpsexport/CMakeLists.txt
index 4f0a2a087..f7e7caee3 100644
--- a/scribus/plugins/export/xpsexport/CMakeLists.txt
+++ b/scribus/plugins/export/xpsexport/CMakeLists.txt
@@ -15,7 +15,7 @@ set(SCRIBUS_EXPORTXPS_PLUGIN "xpsexplugin")
 
 add_library(${SCRIBUS_EXPORTXPS_PLUGIN} MODULE ${EXPORTXPS_PLUGIN_SOURCES})
 
-target_link_libraries(${SCRIBUS_EXPORTXPS_PLUGIN} ${PLUGIN_LIBRARIES} ${SCRIBUS_ZIP_LIB})
+target_link_libraries(${SCRIBUS_EXPORTXPS_PLUGIN} ${EXE_NAME} ${SCRIBUS_ZIP_LIB})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_EXPORTXPS_PLUGIN} PRIVATE "../../plugins_pch.h")
@@ -27,4 +27,4 @@ install(TARGETS ${SCRIBUS_EXPORTXPS_PLUGIN}
 	PERMISSIONS ${PLUGIN_PERMISSIONS}
 )
 
-add_dependencies(${SCRIBUS_EXPORTXPS_PLUGIN} ${EXE_NAME})
+add_dependencies(Plugins ${SCRIBUS_EXPORTXPS_PLUGIN})
diff --git a/scribus/plugins/fileloader/scribus12format/CMakeLists.txt b/scribus/plugins/fileloader/scribus12format/CMakeLists.txt
index 635d03286..c7c2ba936 100644
--- a/scribus/plugins/fileloader/scribus12format/CMakeLists.txt
+++ b/scribus/plugins/fileloader/scribus12format/CMakeLists.txt
@@ -12,7 +12,7 @@ set(SCRIBUS_SCR12FORMAT_FL_PLUGIN "scribus12format")
 
 add_library(${SCRIBUS_SCR12FORMAT_FL_PLUGIN} MODULE ${SCR12FORMAT_FL_PLUGIN_SOURCES})
 
-target_link_libraries(${SCRIBUS_SCR12FORMAT_FL_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_SCR12FORMAT_FL_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_SCR12FORMAT_FL_PLUGIN} PRIVATE "../../plugins_pch.h")
diff --git a/scribus/plugins/fileloader/scribus134format/CMakeLists.txt b/scribus/plugins/fileloader/scribus134format/CMakeLists.txt
index 36c6bb877..ee52a308a 100644
--- a/scribus/plugins/fileloader/scribus134format/CMakeLists.txt
+++ b/scribus/plugins/fileloader/scribus134format/CMakeLists.txt
@@ -18,7 +18,7 @@ if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_SCR134FORMAT_FL_PLUGIN} PRIVATE "../../plugins_pch.h")
 endif()
 
-target_link_libraries(${SCRIBUS_SCR134FORMAT_FL_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_SCR134FORMAT_FL_PLUGIN} ${EXE_NAME})
 
 install(TARGETS ${SCRIBUS_SCR134FORMAT_FL_PLUGIN}
 	LIBRARY
diff --git a/scribus/plugins/fileloader/scribus13format/CMakeLists.txt b/scribus/plugins/fileloader/scribus13format/CMakeLists.txt
index bf8fce0a2..3dbe60956 100644
--- a/scribus/plugins/fileloader/scribus13format/CMakeLists.txt
+++ b/scribus/plugins/fileloader/scribus13format/CMakeLists.txt
@@ -14,7 +14,7 @@ set(SCRIBUS_SCR13FORMAT_FL_PLUGIN "scribus13format")
 
 add_library(${SCRIBUS_SCR13FORMAT_FL_PLUGIN} MODULE ${SCR13FORMAT_FL_PLUGIN_SOURCES})
 
-target_link_libraries(${SCRIBUS_SCR13FORMAT_FL_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_SCR13FORMAT_FL_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_SCR13FORMAT_FL_PLUGIN} PRIVATE "../../plugins_pch.h")
diff --git a/scribus/plugins/fileloader/scribus150format/CMakeLists.txt b/scribus/plugins/fileloader/scribus150format/CMakeLists.txt
index 5b35cb208..cce06da34 100644
--- a/scribus/plugins/fileloader/scribus150format/CMakeLists.txt
+++ b/scribus/plugins/fileloader/scribus150format/CMakeLists.txt
@@ -15,7 +15,7 @@ set(SCRIBUS_SCR150FORMAT_FL_PLUGIN "scribus150format")
 
 add_library(${SCRIBUS_SCR150FORMAT_FL_PLUGIN} MODULE ${SCR150FORMAT_FL_PLUGIN_SOURCES})
 
-target_link_libraries(${SCRIBUS_SCR150FORMAT_FL_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_SCR150FORMAT_FL_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_SCR150FORMAT_FL_PLUGIN} PRIVATE "../../plugins_pch.h")
diff --git a/scribus/plugins/fontpreview/CMakeLists.txt b/scribus/plugins/fontpreview/CMakeLists.txt
index 00c7d61a2..f048b2a2e 100644
--- a/scribus/plugins/fontpreview/CMakeLists.txt
+++ b/scribus/plugins/fontpreview/CMakeLists.txt
@@ -12,7 +12,7 @@ set(SCRIBUS_FONTPREVIEW_PLUGIN "fontpreview")
 
 add_library(${SCRIBUS_FONTPREVIEW_PLUGIN} MODULE ${FONTPREVIEW_PLUGIN_SOURCES})
 
-target_link_libraries(${SCRIBUS_FONTPREVIEW_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_FONTPREVIEW_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_FONTPREVIEW_PLUGIN} PRIVATE "../plugins_pch.h")
diff --git a/scribus/plugins/gettext/csvim/CMakeLists.txt b/scribus/plugins/gettext/csvim/CMakeLists.txt
index 4cfd43da0..e2e502c85 100644
--- a/scribus/plugins/gettext/csvim/CMakeLists.txt
+++ b/scribus/plugins/gettext/csvim/CMakeLists.txt
@@ -14,7 +14,7 @@ set(SCRIBUS_CSV_GT_PLUGIN "csvim")
 
 add_library(${SCRIBUS_CSV_GT_PLUGIN} MODULE ${CSV_GT_PLUGIN_SOURCES})
 
-target_link_libraries(${SCRIBUS_CSV_GT_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_CSV_GT_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_CSV_GT_PLUGIN} PRIVATE "../../plugins_pch.h")
diff --git a/scribus/plugins/gettext/docim/CMakeLists.txt b/scribus/plugins/gettext/docim/CMakeLists.txt
index 87e4ff78e..d09fab18f 100644
--- a/scribus/plugins/gettext/docim/CMakeLists.txt
+++ b/scribus/plugins/gettext/docim/CMakeLists.txt
@@ -11,7 +11,7 @@ set(SCRIBUS_DOC_GT_PLUGIN "docim")
 
 add_library(${SCRIBUS_DOC_GT_PLUGIN} MODULE ${DOC_GT_PLUGIN_SOURCES})
 
-target_link_libraries(${SCRIBUS_DOC_GT_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_DOC_GT_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_DOC_GT_PLUGIN} PRIVATE "../../plugins_pch.h")
diff --git a/scribus/plugins/gettext/docxim/CMakeLists.txt b/scribus/plugins/gettext/docxim/CMakeLists.txt
index a2cae03a7..c4c81d438 100755
--- a/scribus/plugins/gettext/docxim/CMakeLists.txt
+++ b/scribus/plugins/gettext/docxim/CMakeLists.txt
@@ -11,7 +11,7 @@ set(SCRIBUS_DOCX_IM_PLUGIN "docximplugin")
 
 add_library(${SCRIBUS_DOCX_IM_PLUGIN} MODULE ${DOCX_IM_PLUGIN_SOURCES})
 
-target_link_libraries(${SCRIBUS_DOCX_IM_PLUGIN} ${PLUGIN_LIBRARIES} ${SCRIBUS_DOCX_LIB})
+target_link_libraries(${SCRIBUS_DOCX_IM_PLUGIN} ${EXE_NAME} ${SCRIBUS_DOCX_LIB})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_DOCX_IM_PLUGIN} PRIVATE "../../plugins_pch.h")
diff --git a/scribus/plugins/gettext/htmlim/CMakeLists.txt b/scribus/plugins/gettext/htmlim/CMakeLists.txt
index 19d78e062..80ea93f6d 100644
--- a/scribus/plugins/gettext/htmlim/CMakeLists.txt
+++ b/scribus/plugins/gettext/htmlim/CMakeLists.txt
@@ -14,7 +14,7 @@ set(SCRIBUS_HTML_GT_PLUGIN "htmlim")
 
 add_library(${SCRIBUS_HTML_GT_PLUGIN} MODULE ${HTML_GT_PLUGIN_SOURCES})
 
-target_link_libraries(${SCRIBUS_HTML_GT_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_HTML_GT_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_HTML_GT_PLUGIN} PRIVATE "../../plugins_pch.h")
diff --git a/scribus/plugins/gettext/markdownim/CMakeLists.txt b/scribus/plugins/gettext/markdownim/CMakeLists.txt
index bde5c5fa9..457d1ecc0 100755
--- a/scribus/plugins/gettext/markdownim/CMakeLists.txt
+++ b/scribus/plugins/gettext/markdownim/CMakeLists.txt
@@ -18,7 +18,7 @@ else()
 
 	add_library(${SCRIBUS_MARKDOWN_IM_PLUGIN} MODULE ${MARKDOWN_IM_PLUGIN_SOURCES})
 
-	target_link_libraries(${SCRIBUS_MARKDOWN_IM_PLUGIN} ${PLUGIN_LIBRARIES} ${SCRIBUS_MARKDOWN_LIB})
+	target_link_libraries(${SCRIBUS_MARKDOWN_IM_PLUGIN} ${EXE_NAME} ${SCRIBUS_MARKDOWN_LIB})
 
 	if(WANT_PCH)
 		target_precompile_headers(${SCRIBUS_MARKDOWN_IM_PLUGIN} PRIVATE "../../plugins_pch.h")
diff --git a/scribus/plugins/gettext/odt2im/CMakeLists.txt b/scribus/plugins/gettext/odt2im/CMakeLists.txt
index 6c89306e9..f8e80f76c 100644
--- a/scribus/plugins/gettext/odt2im/CMakeLists.txt
+++ b/scribus/plugins/gettext/odt2im/CMakeLists.txt
@@ -11,7 +11,7 @@ set(SCRIBUS_ODT_IM_PLUGIN "odtimplugin")
 
 add_library(${SCRIBUS_ODT_IM_PLUGIN} MODULE ${ODT_IM_PLUGIN_SOURCES})
 
-target_link_libraries(${SCRIBUS_ODT_IM_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_ODT_IM_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_ODT_IM_PLUGIN} PRIVATE "../../plugins_pch.h")
diff --git a/scribus/plugins/gettext/pdbim/CMakeLists.txt b/scribus/plugins/gettext/pdbim/CMakeLists.txt
index 1d229508c..e43e9d48f 100644
--- a/scribus/plugins/gettext/pdbim/CMakeLists.txt
+++ b/scribus/plugins/gettext/pdbim/CMakeLists.txt
@@ -11,7 +11,7 @@ set(SCRIBUS_PDB_GT_PLUGIN "pdbim")
 
 add_library(${SCRIBUS_PDB_GT_PLUGIN} MODULE ${PDB_GT_PLUGIN_SOURCES})
 
-target_link_libraries(${SCRIBUS_PDB_GT_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_PDB_GT_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_PDB_GT_PLUGIN} PRIVATE "../../plugins_pch.h")
diff --git a/scribus/plugins/gettext/rtfim/CMakeLists.txt b/scribus/plugins/gettext/rtfim/CMakeLists.txt
index 744659bef..26c5fb288 100755
--- a/scribus/plugins/gettext/rtfim/CMakeLists.txt
+++ b/scribus/plugins/gettext/rtfim/CMakeLists.txt
@@ -11,7 +11,7 @@ set(SCRIBUS_RTF_IM_PLUGIN "rtfimplugin")
 
 add_library(${SCRIBUS_RTF_IM_PLUGIN} MODULE ${RTF_IM_PLUGIN_SOURCES})
 
-target_link_libraries(${SCRIBUS_RTF_IM_PLUGIN} ${PLUGIN_LIBRARIES} ${SCRIBUS_RTF_LIB})
+target_link_libraries(${SCRIBUS_RTF_IM_PLUGIN} ${EXE_NAME} ${SCRIBUS_RTF_LIB})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_RTF_IM_PLUGIN} PRIVATE "../../plugins_pch.h")
diff --git a/scribus/plugins/gettext/sxwim/CMakeLists.txt b/scribus/plugins/gettext/sxwim/CMakeLists.txt
index 508a8f558..3e945705d 100644
--- a/scribus/plugins/gettext/sxwim/CMakeLists.txt
+++ b/scribus/plugins/gettext/sxwim/CMakeLists.txt
@@ -14,7 +14,7 @@ set(SCRIBUS_SXW_IM_PLUGIN "sxwimplugin")
 
 add_library(${SCRIBUS_SXW_IM_PLUGIN} MODULE ${SXW_IM_PLUGIN_SOURCES})
 
-target_link_libraries(${SCRIBUS_SXW_IM_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_SXW_IM_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_SXW_IM_PLUGIN} PRIVATE "../../plugins_pch.h")
diff --git a/scribus/plugins/gettext/textfilter/CMakeLists.txt b/scribus/plugins/gettext/textfilter/CMakeLists.txt
index 9f4cc932f..5cbe0cf8d 100644
--- a/scribus/plugins/gettext/textfilter/CMakeLists.txt
+++ b/scribus/plugins/gettext/textfilter/CMakeLists.txt
@@ -13,7 +13,7 @@ set(SCRIBUS_TEXTFILTER_GT_PLUGIN "textfilterplugin")
 
 add_library(${SCRIBUS_TEXTFILTER_GT_PLUGIN} MODULE ${TEXTFILTER_GT_PLUGIN_SOURCES})
 
-target_link_libraries(${SCRIBUS_TEXTFILTER_GT_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_TEXTFILTER_GT_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_TEXTFILTER_GT_PLUGIN} PRIVATE "../../plugins_pch.h")
diff --git a/scribus/plugins/gettext/txtim/CMakeLists.txt b/scribus/plugins/gettext/txtim/CMakeLists.txt
index 466ca3e97..9ec6b2037 100644
--- a/scribus/plugins/gettext/txtim/CMakeLists.txt
+++ b/scribus/plugins/gettext/txtim/CMakeLists.txt
@@ -13,7 +13,7 @@ add_library(${SCRIBUS_TXT_GT_PLUGIN} MODULE ${TXT_GT_PLUGIN_SOURCES})
 
 link_libraries (${LIBXML2_LIBRARIES})
 
-target_link_libraries(${SCRIBUS_TXT_GT_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_TXT_GT_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_TXT_GT_PLUGIN} PRIVATE "../../plugins_pch.h")
diff --git a/scribus/plugins/gettext/xtgim/CMakeLists.txt b/scribus/plugins/gettext/xtgim/CMakeLists.txt
index b2ff3d27a..0bf1e9548 100755
--- a/scribus/plugins/gettext/xtgim/CMakeLists.txt
+++ b/scribus/plugins/gettext/xtgim/CMakeLists.txt
@@ -12,7 +12,7 @@ set(SCRIBUS_XTG_IM_PLUGIN "xtgimplugin")
 
 add_library(${SCRIBUS_XTG_IM_PLUGIN} MODULE ${XTG_IM_PLUGIN_SOURCES})
 
-target_link_libraries(${SCRIBUS_XTG_IM_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_XTG_IM_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_XTG_IM_PLUGIN} PRIVATE "../../plugins_pch.h")
diff --git a/scribus/plugins/import/ai/CMakeLists.txt b/scribus/plugins/import/ai/CMakeLists.txt
index ffca9cb96..85a06c13e 100644
--- a/scribus/plugins/import/ai/CMakeLists.txt
+++ b/scribus/plugins/import/ai/CMakeLists.txt
@@ -22,13 +22,13 @@ add_library(${SCRIBUS_IMPORTAI_PLUGIN} MODULE ${IMPORTAI_PLUGIN_SOURCES})
 
 if(WIN32)
 	target_link_libraries(${SCRIBUS_IMPORTAI_PLUGIN}
-		${PLUGIN_LIBRARIES}
+		${EXE_NAME}
 		${TIFF_LIBRARIES}
 		${PNG_LIBRARIES}
 		${JPEG_LIBRARIES}
 	)
 else()
-	target_link_libraries(${SCRIBUS_IMPORTAI_PLUGIN} ${PLUGIN_LIBRARIES})
+	target_link_libraries(${SCRIBUS_IMPORTAI_PLUGIN} ${EXE_NAME})
 endif()
 
 if(HAVE_PODOFO)
@@ -47,4 +47,4 @@ install(TARGETS ${SCRIBUS_IMPORTAI_PLUGIN}
 	PERMISSIONS ${PLUGIN_PERMISSIONS}
 )
 
-add_dependencies(${SCRIBUS_IMPORTAI_PLUGIN} ${EXE_NAME})
+add_dependencies(Plugins ${SCRIBUS_IMPORTAI_PLUGIN})
diff --git a/scribus/plugins/import/cdr/CMakeLists.txt b/scribus/plugins/import/cdr/CMakeLists.txt
index c2898db4b..057bcebca 100644
--- a/scribus/plugins/import/cdr/CMakeLists.txt
+++ b/scribus/plugins/import/cdr/CMakeLists.txt
@@ -16,12 +16,12 @@ if (HAVE_REVENGE)
 		set(SCRIBUS_IMPORTCDR_PLUGIN "importcdr")
 
 		add_library(${SCRIBUS_IMPORTCDR_PLUGIN} MODULE ${IMPORTCDR_PLUGIN_SOURCES})
-		target_link_libraries(${SCRIBUS_IMPORTCDR_PLUGIN} ${PLUGIN_LIBRARIES} ${LIBREVENGE_LDFLAGS} ${LIBREVENGE_GENERATORS_LDFLAGS} ${LIBREVENGE_STREAM_LDFLAGS} ${LIBCDR_LDFLAGS})
+		target_link_libraries(${SCRIBUS_IMPORTCDR_PLUGIN} ${EXE_NAME} ${LIBREVENGE_LDFLAGS} ${LIBREVENGE_GENERATORS_LDFLAGS} ${LIBREVENGE_STREAM_LDFLAGS} ${LIBCDR_LDFLAGS})
 		if(WANT_PCH)
 			target_precompile_headers(${SCRIBUS_IMPORTCDR_PLUGIN} PRIVATE "../../plugins_pch.h")
 		endif()
 		install(TARGETS ${SCRIBUS_IMPORTCDR_PLUGIN} LIBRARY DESTINATION ${PLUGINDIR} PERMISSIONS ${PLUGIN_PERMISSIONS})
-		add_dependencies(${SCRIBUS_IMPORTCDR_PLUGIN} ${EXE_NAME})
+		add_dependencies(Plugins ${SCRIBUS_IMPORTCDR_PLUGIN})
 	endif ()
 else ()
 	pkg_check_modules(LIBWPG libwpg-0.2)
@@ -45,12 +45,12 @@ else ()
 					set(SCRIBUS_IMPORTCDR_PLUGIN "importcdr")
 
 					add_library(${SCRIBUS_IMPORTCDR_PLUGIN} MODULE ${IMPORTCDR_PLUGIN_SOURCES})
-					target_link_libraries(${SCRIBUS_IMPORTCDR_PLUGIN} ${PLUGIN_LIBRARIES} ${LIBWPG_LDFLAGS} ${LIBWPD_LDFLAGS} ${LIBWPD_STREAM_LDFLAGS} ${LIBCDR_LDFLAGS})
+					target_link_libraries(${SCRIBUS_IMPORTCDR_PLUGIN} ${EXE_NAME} ${LIBWPG_LDFLAGS} ${LIBWPD_LDFLAGS} ${LIBWPD_STREAM_LDFLAGS} ${LIBCDR_LDFLAGS})
 					if(WANT_PCH)
 						target_precompile_headers(${SCRIBUS_IMPORTCDR_PLUGIN} PRIVATE "../../plugins_pch.h")
 					endif()
 					install(TARGETS ${SCRIBUS_IMPORTCDR_PLUGIN} LIBRARY DESTINATION ${PLUGINDIR} PERMISSIONS ${PLUGIN_PERMISSIONS})
-					add_dependencies(${SCRIBUS_IMPORTCDR_PLUGIN} ${EXE_NAME})
+					add_dependencies(Plugins ${SCRIBUS_IMPORTCDR_PLUGIN})
 				endif ()
 			endif ()
 		endif ()
diff --git a/scribus/plugins/import/cgm/CMakeLists.txt b/scribus/plugins/import/cgm/CMakeLists.txt
index 1b1a90b37..d1452f0bf 100644
--- a/scribus/plugins/import/cgm/CMakeLists.txt
+++ b/scribus/plugins/import/cgm/CMakeLists.txt
@@ -13,7 +13,7 @@ set(SCRIBUS_IMPORTCGM_PLUGIN "importcgm")
 
 add_library(${SCRIBUS_IMPORTCGM_PLUGIN} MODULE ${IMPORTCGM_PLUGIN_SOURCES})
 
-target_link_libraries(${SCRIBUS_IMPORTCGM_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_IMPORTCGM_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_IMPORTCGM_PLUGIN} PRIVATE "../../plugins_pch.h")
@@ -25,4 +25,4 @@ install(TARGETS ${SCRIBUS_IMPORTCGM_PLUGIN}
 	PERMISSIONS ${PLUGIN_PERMISSIONS}
 )
 
-add_dependencies(${SCRIBUS_IMPORTCGM_PLUGIN} ${EXE_NAME})
+add_dependencies(Plugins ${SCRIBUS_IMPORTCGM_PLUGIN})
diff --git a/scribus/plugins/import/cvg/CMakeLists.txt b/scribus/plugins/import/cvg/CMakeLists.txt
index ed5216dac..64e79f7ab 100644
--- a/scribus/plugins/import/cvg/CMakeLists.txt
+++ b/scribus/plugins/import/cvg/CMakeLists.txt
@@ -13,7 +13,7 @@ set(SCRIBUS_IMPORTCVG_PLUGIN "importcvg")
 
 add_library(${SCRIBUS_IMPORTCVG_PLUGIN} MODULE ${IMPORTCVG_PLUGIN_SOURCES})
 
-target_link_libraries(${SCRIBUS_IMPORTCVG_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_IMPORTCVG_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_IMPORTCVG_PLUGIN} PRIVATE "../../plugins_pch.h")
@@ -25,5 +25,5 @@ install(TARGETS ${SCRIBUS_IMPORTCVG_PLUGIN}
 	PERMISSIONS ${PLUGIN_PERMISSIONS}
 )
 
-add_dependencies(${SCRIBUS_IMPORTCVG_PLUGIN} ${EXE_NAME})
+add_dependencies(Plugins ${SCRIBUS_IMPORTCVG_PLUGIN})
 
diff --git a/scribus/plugins/import/drw/CMakeLists.txt b/scribus/plugins/import/drw/CMakeLists.txt
index afa1c580b..2dd357e01 100644
--- a/scribus/plugins/import/drw/CMakeLists.txt
+++ b/scribus/plugins/import/drw/CMakeLists.txt
@@ -13,7 +13,7 @@ set(SCRIBUS_IMPORTDRW_PLUGIN "importdrw")
 
 add_library(${SCRIBUS_IMPORTDRW_PLUGIN} MODULE ${IMPORTDRW_PLUGIN_SOURCES})
 
-target_link_libraries(${SCRIBUS_IMPORTDRW_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_IMPORTDRW_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_IMPORTDRW_PLUGIN} PRIVATE "../../plugins_pch.h")
@@ -25,5 +25,5 @@ install(TARGETS ${SCRIBUS_IMPORTDRW_PLUGIN}
 	PERMISSIONS ${PLUGIN_PERMISSIONS}
 )
 
-add_dependencies(${SCRIBUS_IMPORTDRW_PLUGIN} ${EXE_NAME})
+add_dependencies(Plugins ${SCRIBUS_IMPORTDRW_PLUGIN})
 
diff --git a/scribus/plugins/import/emf/CMakeLists.txt b/scribus/plugins/import/emf/CMakeLists.txt
index 797c3cbb9..d18aa5728 100644
--- a/scribus/plugins/import/emf/CMakeLists.txt
+++ b/scribus/plugins/import/emf/CMakeLists.txt
@@ -13,7 +13,7 @@ set(SCRIBUS_IMPORTEMF_PLUGIN "importemf")
 
 add_library(${SCRIBUS_IMPORTEMF_PLUGIN} MODULE ${IMPORTEMF_PLUGIN_SOURCES})
 
-target_link_libraries(${SCRIBUS_IMPORTEMF_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_IMPORTEMF_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_IMPORTEMF_PLUGIN} PRIVATE "../../plugins_pch.h")
@@ -25,4 +25,4 @@ install(TARGETS ${SCRIBUS_IMPORTEMF_PLUGIN}
 	PERMISSIONS ${PLUGIN_PERMISSIONS}
 )
 
-add_dependencies(${SCRIBUS_IMPORTEMF_PLUGIN} ${EXE_NAME})
+add_dependencies(Plugins ${SCRIBUS_IMPORTEMF_PLUGIN})
diff --git a/scribus/plugins/import/fh/CMakeLists.txt b/scribus/plugins/import/fh/CMakeLists.txt
index 826d826be..0b5a150ab 100644
--- a/scribus/plugins/import/fh/CMakeLists.txt
+++ b/scribus/plugins/import/fh/CMakeLists.txt
@@ -16,11 +16,11 @@ if (HAVE_REVENGE)
 		set(SCRIBUS_IMPORTFH_PLUGIN "importfh")
 
 		add_library(${SCRIBUS_IMPORTFH_PLUGIN} MODULE ${IMPORTFH_PLUGIN_SOURCES})
-		target_link_libraries(${SCRIBUS_IMPORTFH_PLUGIN} ${PLUGIN_LIBRARIES} ${LIBREVENGE_LDFLAGS} ${LIBREVENGE_GENERATORS_LDFLAGS} ${LIBREVENGE_STREAM_LDFLAGS} ${LIBFREEHAND_LDFLAGS})
+		target_link_libraries(${SCRIBUS_IMPORTFH_PLUGIN} ${EXE_NAME} ${LIBREVENGE_LDFLAGS} ${LIBREVENGE_GENERATORS_LDFLAGS} ${LIBREVENGE_STREAM_LDFLAGS} ${LIBFREEHAND_LDFLAGS})
 		if(WANT_PCH)
 			target_precompile_headers(${SCRIBUS_IMPORTFH_PLUGIN} PRIVATE "../../plugins_pch.h")
 		endif()
 		install(TARGETS ${SCRIBUS_IMPORTFH_PLUGIN} LIBRARY DESTINATION ${PLUGINDIR} PERMISSIONS ${PLUGIN_PERMISSIONS})
-		add_dependencies(${SCRIBUS_IMPORTFH_PLUGIN} ${EXE_NAME})
+		add_dependencies(Plugins ${SCRIBUS_IMPORTFH_PLUGIN})
 	endif ()
 endif ()
diff --git a/scribus/plugins/import/idml/CMakeLists.txt b/scribus/plugins/import/idml/CMakeLists.txt
index 89574bf40..6d0247d32 100644
--- a/scribus/plugins/import/idml/CMakeLists.txt
+++ b/scribus/plugins/import/idml/CMakeLists.txt
@@ -15,7 +15,7 @@ set(SCRIBUS_IMPORTIDML_PLUGIN "importidml")
 
 add_library(${SCRIBUS_IMPORTIDML_PLUGIN} MODULE ${IMPORTIDML_PLUGIN_SOURCES})
 
-target_link_libraries(${SCRIBUS_IMPORTIDML_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_IMPORTIDML_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_IMPORTIDML_PLUGIN} PRIVATE "../../plugins_pch.h")
@@ -27,4 +27,4 @@ install(TARGETS ${SCRIBUS_IMPORTIDML_PLUGIN}
 	PERMISSIONS ${PLUGIN_PERMISSIONS}
 )
 
-add_dependencies(${SCRIBUS_IMPORTIDML_PLUGIN} ${EXE_NAME})
+add_dependencies(Plugins ${SCRIBUS_IMPORTIDML_PLUGIN})
diff --git a/scribus/plugins/import/idml_old/CMakeLists.txt b/scribus/plugins/import/idml_old/CMakeLists.txt
index e815e84e4..05bec1109 100644
--- a/scribus/plugins/import/idml_old/CMakeLists.txt
+++ b/scribus/plugins/import/idml_old/CMakeLists.txt
@@ -21,7 +21,7 @@ QT5_WRAP_CPP(IMPORTIDML_PLUGIN_MOC_SOURCES ${IMPORTIDML_PLUGIN_MOC_CLASSES})
 
 add_library(${SCRIBUS_IMPORTIDML_PLUGIN} MODULE ${IMPORTIDML_PLUGIN_SOURCES} ${IMPORTIDML_PLUGIN_MOC_SOURCES})
 
-target_link_libraries(${SCRIBUS_IMPORTIDML_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_IMPORTIDML_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_IMPORTIDML_PLUGIN} PRIVATE "../../plugins_pch.h")
@@ -33,6 +33,6 @@ install(TARGETS ${SCRIBUS_IMPORTIDML_PLUGIN}
   PERMISSIONS ${PLUGIN_PERMISSIONS}
 )
 
-add_dependencies(${SCRIBUS_IMPORTIDML_PLUGIN} ${EXE_NAME})
+add_dependencies(Plugins ${SCRIBUS_IMPORTIDML_PLUGIN})
 
 # set_target_properties(${SCRIBUS_FONTPREVIEW_PLUGIN} PROPERTIES VERSION "0.0.0")
diff --git a/scribus/plugins/import/odg/CMakeLists.txt b/scribus/plugins/import/odg/CMakeLists.txt
index 16e44cfb9..797776e6d 100644
--- a/scribus/plugins/import/odg/CMakeLists.txt
+++ b/scribus/plugins/import/odg/CMakeLists.txt
@@ -15,7 +15,7 @@ set(SCRIBUS_IMPORTODG_PLUGIN "importodg")
 add_library(${SCRIBUS_IMPORTODG_PLUGIN} MODULE ${IMPORTODG_PLUGIN_SOURCES})
 
 link_directories( /usr/local/lib )
-target_link_libraries(${SCRIBUS_IMPORTODG_PLUGIN} ${PLUGIN_LIBRARIES} ${SCRIBUS_ZIP_LIB})
+target_link_libraries(${SCRIBUS_IMPORTODG_PLUGIN} ${EXE_NAME} ${SCRIBUS_ZIP_LIB})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_IMPORTODG_PLUGIN} PRIVATE "../../plugins_pch.h")
@@ -27,5 +27,5 @@ install(TARGETS ${SCRIBUS_IMPORTODG_PLUGIN}
 	PERMISSIONS ${PLUGIN_PERMISSIONS}
 )
 
-add_dependencies(${SCRIBUS_IMPORTODG_PLUGIN} ${EXE_NAME})
+add_dependencies(Plugins ${SCRIBUS_IMPORTODG_PLUGIN})
 
diff --git a/scribus/plugins/import/oodraw/CMakeLists.txt b/scribus/plugins/import/oodraw/CMakeLists.txt
index b2e58a2cd..15b818628 100644
--- a/scribus/plugins/import/oodraw/CMakeLists.txt
+++ b/scribus/plugins/import/oodraw/CMakeLists.txt
@@ -12,7 +12,7 @@ set(SCRIBUS_OODRAW_FL_PLUGIN "oodrawimp")
 
 add_library(${SCRIBUS_OODRAW_FL_PLUGIN} MODULE ${OODRAW_FL_PLUGIN_SOURCES})
 
-target_link_libraries(${SCRIBUS_OODRAW_FL_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_OODRAW_FL_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_OODRAW_FL_PLUGIN} PRIVATE "../../plugins_pch.h")
diff --git a/scribus/plugins/import/pages/CMakeLists.txt b/scribus/plugins/import/pages/CMakeLists.txt
index 7a1d098c6..74ce78987 100644
--- a/scribus/plugins/import/pages/CMakeLists.txt
+++ b/scribus/plugins/import/pages/CMakeLists.txt
@@ -9,9 +9,9 @@
 #		set(IMPORTPAGES_PLUGIN "importpages")
 
 #		add_library(${IMPORTPAGES_PLUGIN} MODULE ${IMPORTPAGES_PLUGIN_SOURCES} ${IMPORTPAGES_PLUGIN_MOC_SOURCES})
-#		target_link_libraries(${IMPORTPAGES_PLUGIN} ${PLUGIN_LIBRARIES} ${LIBREVENGE_LDFLAGS} ${LIBREVENGE_GENERATORS_LDFLAGS} ${LIBREVENGE_STREAM_LDFLAGS} ${LIBETONYEK_LDFLAGS})
+#		target_link_libraries(${IMPORTPAGES_PLUGIN} ${EXE_NAME} ${LIBREVENGE_LDFLAGS} ${LIBREVENGE_GENERATORS_LDFLAGS} ${LIBREVENGE_STREAM_LDFLAGS} ${LIBETONYEK_LDFLAGS})
 #		install(TARGETS ${IMPORTPAGES_PLUGIN} LIBRARY DESTINATION ${PLUGINDIR} PERMISSIONS ${PLUGIN_PERMISSIONS})
-#		add_dependencies(${IMPORTPAGES_PLUGIN} ${EXE_NAME})
+#		add_dependencies(Plugins ${IMPORTPAGES_PLUGIN})
 #	endif ()
 #endif ()
 
@@ -32,7 +32,7 @@ set(SCRIBUS_IMPORTPAGES_PLUGIN "importpages")
 add_library(${SCRIBUS_IMPORTPAGES_PLUGIN} MODULE ${IMPORTPAGES_PLUGIN_SOURCES})
 
 link_directories( /usr/local/lib )
-target_link_libraries(${SCRIBUS_IMPORTPAGES_PLUGIN} ${PLUGIN_LIBRARIES} ${SCRIBUS_ZIP_LIB})
+target_link_libraries(${SCRIBUS_IMPORTPAGES_PLUGIN} ${EXE_NAME} ${SCRIBUS_ZIP_LIB})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_IMPORTPAGES_PLUGIN} PRIVATE "../../plugins_pch.h")
@@ -44,5 +44,5 @@ install(TARGETS ${SCRIBUS_IMPORTPAGES_PLUGIN}
 	PERMISSIONS ${PLUGIN_PERMISSIONS}
 )
 
-add_dependencies(${SCRIBUS_IMPORTPAGES_PLUGIN} ${EXE_NAME})
+add_dependencies(Plugins ${SCRIBUS_IMPORTPAGES_PLUGIN})
 
diff --git a/scribus/plugins/import/pct/CMakeLists.txt b/scribus/plugins/import/pct/CMakeLists.txt
index 8710d0d11..95058eba1 100644
--- a/scribus/plugins/import/pct/CMakeLists.txt
+++ b/scribus/plugins/import/pct/CMakeLists.txt
@@ -13,7 +13,7 @@ set(SCRIBUS_IMPORTPCT_PLUGIN "importpct")
 
 add_library(${SCRIBUS_IMPORTPCT_PLUGIN} MODULE ${IMPORTPCT_PLUGIN_SOURCES})
 
-target_link_libraries(${SCRIBUS_IMPORTPCT_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_IMPORTPCT_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_IMPORTPCT_PLUGIN} PRIVATE "../../plugins_pch.h")
@@ -25,4 +25,4 @@ install(TARGETS ${SCRIBUS_IMPORTPCT_PLUGIN}
 	PERMISSIONS ${PLUGIN_PERMISSIONS}
 )
 
-add_dependencies(${SCRIBUS_IMPORTPCT_PLUGIN} ${EXE_NAME})
+add_dependencies(Plugins ${SCRIBUS_IMPORTPCT_PLUGIN})
diff --git a/scribus/plugins/import/pdf/CMakeLists.txt b/scribus/plugins/import/pdf/CMakeLists.txt
index 59468af1b..73c09a9de 100644
--- a/scribus/plugins/import/pdf/CMakeLists.txt
+++ b/scribus/plugins/import/pdf/CMakeLists.txt
@@ -26,7 +26,7 @@ set(SCRIBUS_IMPORTPDF_PLUGIN "importpdf")
 add_library(${SCRIBUS_IMPORTPDF_PLUGIN} MODULE ${IMPORTPDF_PLUGIN_SOURCES})
 
 link_directories( /usr/local/lib )
-target_link_libraries(${SCRIBUS_IMPORTPDF_PLUGIN} ${PLUGIN_LIBRARIES} ${poppler_LIBRARY})
+target_link_libraries(${SCRIBUS_IMPORTPDF_PLUGIN} ${EXE_NAME} ${poppler_LIBRARY})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_IMPORTPDF_PLUGIN} PRIVATE "../../plugins_pch.h")
@@ -38,4 +38,4 @@ install(TARGETS ${SCRIBUS_IMPORTPDF_PLUGIN}
 	PERMISSIONS ${PLUGIN_PERMISSIONS}
 )
 
-add_dependencies(${SCRIBUS_IMPORTPDF_PLUGIN} ${EXE_NAME})
+add_dependencies(Plugins ${SCRIBUS_IMPORTPDF_PLUGIN})
diff --git a/scribus/plugins/import/pm/CMakeLists.txt b/scribus/plugins/import/pm/CMakeLists.txt
index ac544bf25..6734884fe 100644
--- a/scribus/plugins/import/pm/CMakeLists.txt
+++ b/scribus/plugins/import/pm/CMakeLists.txt
@@ -16,11 +16,11 @@ if (HAVE_REVENGE)
 		set(SCRIBUS_IMPORTPM_PLUGIN "importpm")
 
 		add_library(${SCRIBUS_IMPORTPM_PLUGIN} MODULE ${IMPORTPM_PLUGIN_SOURCES})
-		target_link_libraries(${SCRIBUS_IMPORTPM_PLUGIN} ${PLUGIN_LIBRARIES} ${LIBREVENGE_LDFLAGS} ${LIBREVENGE_GENERATORS_LDFLAGS} ${LIBREVENGE_STREAM_LDFLAGS} ${LIBPAGEMAKER_LDFLAGS})
+		target_link_libraries(${SCRIBUS_IMPORTPM_PLUGIN} ${EXE_NAME} ${LIBREVENGE_LDFLAGS} ${LIBREVENGE_GENERATORS_LDFLAGS} ${LIBREVENGE_STREAM_LDFLAGS} ${LIBPAGEMAKER_LDFLAGS})
 		if(WANT_PCH)
 			target_precompile_headers(${SCRIBUS_IMPORTPM_PLUGIN} PRIVATE "../../plugins_pch.h")
 		endif()
 		install(TARGETS ${SCRIBUS_IMPORTPM_PLUGIN} LIBRARY DESTINATION ${PLUGINDIR} PERMISSIONS ${PLUGIN_PERMISSIONS})
-		add_dependencies(${SCRIBUS_IMPORTPM_PLUGIN} ${EXE_NAME})
+		add_dependencies(Plugins ${SCRIBUS_IMPORTPM_PLUGIN})
 	endif ()
 endif ()
diff --git a/scribus/plugins/import/ps/CMakeLists.txt b/scribus/plugins/import/ps/CMakeLists.txt
index f2bf23669..7c40fb19c 100644
--- a/scribus/plugins/import/ps/CMakeLists.txt
+++ b/scribus/plugins/import/ps/CMakeLists.txt
@@ -19,7 +19,7 @@ set(SCRIBUS_IMPORTPS_PLUGIN "importps")
 
 add_library(${SCRIBUS_IMPORTPS_PLUGIN} MODULE ${IMPORTPS_PLUGIN_SOURCES})
 
-target_link_libraries(${SCRIBUS_IMPORTPS_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_IMPORTPS_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_IMPORTPS_PLUGIN} PRIVATE "../../plugins_pch.h")
@@ -42,4 +42,4 @@ install(FILES
 	DESTINATION ${LIBDIR}
 )
 
-add_dependencies(${SCRIBUS_IMPORTPS_PLUGIN} ${EXE_NAME})
+add_dependencies(Plugins ${SCRIBUS_IMPORTPS_PLUGIN})
diff --git a/scribus/plugins/import/pub/CMakeLists.txt b/scribus/plugins/import/pub/CMakeLists.txt
index 8390a5df0..e8179b10b 100644
--- a/scribus/plugins/import/pub/CMakeLists.txt
+++ b/scribus/plugins/import/pub/CMakeLists.txt
@@ -16,12 +16,12 @@ if (HAVE_REVENGE)
 		set(SCRIBUS_IMPORTPUB_PLUGIN "importpub")
 
 		add_library(${SCRIBUS_IMPORTPUB_PLUGIN} MODULE ${IMPORTPUB_PLUGIN_SOURCES})
-		target_link_libraries(${SCRIBUS_IMPORTPUB_PLUGIN} ${PLUGIN_LIBRARIES} ${LIBREVENGE_LDFLAGS} ${LIBREVENGE_GENERATORS_LDFLAGS} ${LIBREVENGE_STREAM_LDFLAGS} ${LIBMSPUB_LDFLAGS})
+		target_link_libraries(${SCRIBUS_IMPORTPUB_PLUGIN} ${EXE_NAME} ${LIBREVENGE_LDFLAGS} ${LIBREVENGE_GENERATORS_LDFLAGS} ${LIBREVENGE_STREAM_LDFLAGS} ${LIBMSPUB_LDFLAGS})
 		if(WANT_PCH)
 			target_precompile_headers(${SCRIBUS_IMPORTPUB_PLUGIN} PRIVATE "../../plugins_pch.h")
 		endif()
 		install(TARGETS ${SCRIBUS_IMPORTPUB_PLUGIN} LIBRARY DESTINATION ${PLUGINDIR} PERMISSIONS ${PLUGIN_PERMISSIONS})
-		add_dependencies(${SCRIBUS_IMPORTPUB_PLUGIN} ${EXE_NAME})
+		add_dependencies(Plugins ${SCRIBUS_IMPORTPUB_PLUGIN})
 	endif ()
 else ()
 	pkg_check_modules(LIBMSPUB libmspub-0.0<=0.1)
@@ -46,12 +46,12 @@ else ()
 					set(SCRIBUS_IMPORTPUB_PLUGIN "importpub")
 
 					add_library(${SCRIBUS_IMPORTPUB_PLUGIN} MODULE ${IMPORTPUB_PLUGIN_SOURCES})
-					target_link_libraries(${SCRIBUS_IMPORTPUB_PLUGIN} ${PLUGIN_LIBRARIES} ${LIBWPG_LDFLAGS} ${LIBWPD_LDFLAGS} ${LIBWPD_STREAM_LDFLAGS} ${LIBMSPUB_LDFLAGS})
+					target_link_libraries(${SCRIBUS_IMPORTPUB_PLUGIN} ${EXE_NAME} ${LIBWPG_LDFLAGS} ${LIBWPD_LDFLAGS} ${LIBWPD_STREAM_LDFLAGS} ${LIBMSPUB_LDFLAGS})
 					if(WANT_PCH)
 						target_precompile_headers(${SCRIBUS_IMPORTPUB_PLUGIN} PRIVATE "../../plugins_pch.h")
 					endif()
 					install(TARGETS ${SCRIBUS_IMPORTPUB_PLUGIN} LIBRARY DESTINATION ${PLUGINDIR} PERMISSIONS ${PLUGIN_PERMISSIONS})
-					add_dependencies(${SCRIBUS_IMPORTPUB_PLUGIN} ${EXE_NAME})
+					add_dependencies(Plugins ${SCRIBUS_IMPORTPUB_PLUGIN})
 				endif ()
 			endif ()
 		endif ()
diff --git a/scribus/plugins/import/qxp/CMakeLists.txt b/scribus/plugins/import/qxp/CMakeLists.txt
index e8243328a..fc9e26b1b 100644
--- a/scribus/plugins/import/qxp/CMakeLists.txt
+++ b/scribus/plugins/import/qxp/CMakeLists.txt
@@ -16,11 +16,11 @@ if (HAVE_REVENGE)
 		set(SCRIBUS_IMPORTQXP_PLUGIN "importqxp")
 
 		add_library(${SCRIBUS_IMPORTQXP_PLUGIN} MODULE ${IMPORTQXP_PLUGIN_SOURCES})
-		target_link_libraries(${SCRIBUS_IMPORTQXP_PLUGIN} ${PLUGIN_LIBRARIES} ${LIBREVENGE_LDFLAGS} ${LIBREVENGE_GENERATORS_LDFLAGS} ${LIBREVENGE_STREAM_LDFLAGS} ${LIBQXP_LDFLAGS})
+		target_link_libraries(${SCRIBUS_IMPORTQXP_PLUGIN} ${EXE_NAME} ${LIBREVENGE_LDFLAGS} ${LIBREVENGE_GENERATORS_LDFLAGS} ${LIBREVENGE_STREAM_LDFLAGS} ${LIBQXP_LDFLAGS})
 		if(WANT_PCH)
 			target_precompile_headers(${SCRIBUS_IMPORTQXP_PLUGIN} PRIVATE "../../plugins_pch.h")
 		endif()
 		install(TARGETS ${SCRIBUS_IMPORTQXP_PLUGIN} LIBRARY DESTINATION ${PLUGINDIR} PERMISSIONS ${PLUGIN_PERMISSIONS})
-		add_dependencies(${SCRIBUS_IMPORTQXP_PLUGIN} ${EXE_NAME})
+		add_dependencies(Plugins ${SCRIBUS_IMPORTQXP_PLUGIN})
 	endif ()
 endif ()
diff --git a/scribus/plugins/import/shape/CMakeLists.txt b/scribus/plugins/import/shape/CMakeLists.txt
index 8f9b40797..fd49ead36 100644
--- a/scribus/plugins/import/shape/CMakeLists.txt
+++ b/scribus/plugins/import/shape/CMakeLists.txt
@@ -13,7 +13,7 @@ set(SCRIBUS_IMPORTSHAPE_PLUGIN "importshape")
 
 add_library(${SCRIBUS_IMPORTSHAPE_PLUGIN} MODULE ${IMPORTSHAPE_PLUGIN_SOURCES})
 
-target_link_libraries(${SCRIBUS_IMPORTSHAPE_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_IMPORTSHAPE_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_IMPORTSHAPE_PLUGIN} PRIVATE "../../plugins_pch.h")
@@ -25,4 +25,4 @@ install(TARGETS ${SCRIBUS_IMPORTSHAPE_PLUGIN}
 	PERMISSIONS ${PLUGIN_PERMISSIONS}
 )
 
-add_dependencies(${SCRIBUS_IMPORTSHAPE_PLUGIN} ${EXE_NAME})
+add_dependencies(Plugins ${SCRIBUS_IMPORTSHAPE_PLUGIN})
diff --git a/scribus/plugins/import/sml/CMakeLists.txt b/scribus/plugins/import/sml/CMakeLists.txt
index feda362c2..7dab61f77 100644
--- a/scribus/plugins/import/sml/CMakeLists.txt
+++ b/scribus/plugins/import/sml/CMakeLists.txt
@@ -13,7 +13,7 @@ set(SCRIBUS_IMPORTSML_PLUGIN "importsml")
 
 add_library(${SCRIBUS_IMPORTSML_PLUGIN} MODULE ${IMPORTSML_PLUGIN_SOURCES})
 
-target_link_libraries(${SCRIBUS_IMPORTSML_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_IMPORTSML_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_IMPORTSML_PLUGIN} PRIVATE "../../plugins_pch.h")
@@ -25,4 +25,4 @@ install(TARGETS ${SCRIBUS_IMPORTSML_PLUGIN}
 	PERMISSIONS ${PLUGIN_PERMISSIONS}
 )
 
-add_dependencies(${SCRIBUS_IMPORTSML_PLUGIN} ${EXE_NAME})
+add_dependencies(Plugins ${SCRIBUS_IMPORTSML_PLUGIN})
diff --git a/scribus/plugins/import/svg/CMakeLists.txt b/scribus/plugins/import/svg/CMakeLists.txt
index 05b90a55d..490f3780e 100644
--- a/scribus/plugins/import/svg/CMakeLists.txt
+++ b/scribus/plugins/import/svg/CMakeLists.txt
@@ -12,7 +12,7 @@ set(SCRIBUS_IMPORTSVG_PLUGIN "svgimplugin")
 
 add_library(${SCRIBUS_IMPORTSVG_PLUGIN} MODULE ${IMPORTSVG_PLUGIN_SOURCES})
 
-target_link_libraries(${SCRIBUS_IMPORTSVG_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_IMPORTSVG_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_IMPORTSVG_PLUGIN} PRIVATE "../../plugins_pch.h")
@@ -24,4 +24,4 @@ install(TARGETS ${SCRIBUS_IMPORTSVG_PLUGIN}
 	PERMISSIONS ${PLUGIN_PERMISSIONS}
 )
 
-add_dependencies(${SCRIBUS_IMPORTSVG_PLUGIN} ${EXE_NAME})
+add_dependencies(Plugins ${SCRIBUS_IMPORTSVG_PLUGIN})
diff --git a/scribus/plugins/import/svm/CMakeLists.txt b/scribus/plugins/import/svm/CMakeLists.txt
index f71d49121..2dda3a5e3 100644
--- a/scribus/plugins/import/svm/CMakeLists.txt
+++ b/scribus/plugins/import/svm/CMakeLists.txt
@@ -13,7 +13,7 @@ set(SCRIBUS_IMPORTSVM_PLUGIN "importsvm")
 
 add_library(${SCRIBUS_IMPORTSVM_PLUGIN} MODULE ${IMPORTSVM_PLUGIN_SOURCES})
 
-target_link_libraries(${SCRIBUS_IMPORTSVM_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_IMPORTSVM_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_IMPORTSVM_PLUGIN} PRIVATE "../../plugins_pch.h")
@@ -25,4 +25,4 @@ install(TARGETS ${SCRIBUS_IMPORTSVM_PLUGIN}
 	PERMISSIONS ${PLUGIN_PERMISSIONS}
 )
 
-add_dependencies(${SCRIBUS_IMPORTSVM_PLUGIN} ${EXE_NAME})
+add_dependencies(Plugins ${SCRIBUS_IMPORTSVM_PLUGIN})
diff --git a/scribus/plugins/import/uniconvertor/CMakeLists.txt b/scribus/plugins/import/uniconvertor/CMakeLists.txt
index f738cd9a3..38d9d821d 100644
--- a/scribus/plugins/import/uniconvertor/CMakeLists.txt
+++ b/scribus/plugins/import/uniconvertor/CMakeLists.txt
@@ -11,7 +11,7 @@ set(SCRIBUS_IMPORTUNICONVERTOR_PLUGIN "uniconvertorplugin")
 
 add_library(${SCRIBUS_IMPORTUNICONVERTOR_PLUGIN} MODULE ${IMPORTUNICONVERTOR_PLUGIN_SOURCES})
 
-target_link_libraries(${SCRIBUS_IMPORTUNICONVERTOR_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_IMPORTUNICONVERTOR_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_IMPORTUNICONVERTOR_PLUGIN} PRIVATE "../../plugins_pch.h")
@@ -23,5 +23,5 @@ install(TARGETS ${SCRIBUS_IMPORTUNICONVERTOR_PLUGIN}
 	PERMISSIONS ${PLUGIN_PERMISSIONS}
 )
 
-add_dependencies(${SCRIBUS_IMPORTUNICONVERTOR_PLUGIN} ${EXE_NAME})
+add_dependencies(Plugins ${SCRIBUS_IMPORTUNICONVERTOR_PLUGIN})
 
diff --git a/scribus/plugins/import/viva/CMakeLists.txt b/scribus/plugins/import/viva/CMakeLists.txt
index 819fcffc6..aae615318 100644
--- a/scribus/plugins/import/viva/CMakeLists.txt
+++ b/scribus/plugins/import/viva/CMakeLists.txt
@@ -15,7 +15,7 @@ set(SCRIBUS_IMPORTVIVA_PLUGIN "importviva")
 
 add_library(${SCRIBUS_IMPORTVIVA_PLUGIN} MODULE ${IMPORTVIVA_PLUGIN_SOURCES})
 
-target_link_libraries(${SCRIBUS_IMPORTVIVA_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_IMPORTVIVA_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_IMPORTVIVA_PLUGIN} PRIVATE "../../plugins_pch.h")
@@ -27,4 +27,4 @@ install(TARGETS ${SCRIBUS_IMPORTVIVA_PLUGIN}
 	PERMISSIONS ${PLUGIN_PERMISSIONS}
 )
 
-add_dependencies(${SCRIBUS_IMPORTVIVA_PLUGIN} ${EXE_NAME})
+add_dependencies(Plugins ${SCRIBUS_IMPORTVIVA_PLUGIN})
diff --git a/scribus/plugins/import/vsd/CMakeLists.txt b/scribus/plugins/import/vsd/CMakeLists.txt
index 7b05edf3e..f83b60660 100644
--- a/scribus/plugins/import/vsd/CMakeLists.txt
+++ b/scribus/plugins/import/vsd/CMakeLists.txt
@@ -16,12 +16,12 @@ if (HAVE_REVENGE)
 		set(SCRIBUS_IMPORTVSD_PLUGIN "importvsd")
 
 		add_library(${SCRIBUS_IMPORTVSD_PLUGIN} MODULE ${IMPORTVSD_PLUGIN_SOURCES})
-		target_link_libraries(${SCRIBUS_IMPORTVSD_PLUGIN} ${PLUGIN_LIBRARIES} ${LIBREVENGE_LDFLAGS} ${LIBREVENGE_GENERATORS_LDFLAGS} ${LIBREVENGE_STREAM_LDFLAGS} ${LIBVISIO_LDFLAGS})
+		target_link_libraries(${SCRIBUS_IMPORTVSD_PLUGIN} ${EXE_NAME} ${LIBREVENGE_LDFLAGS} ${LIBREVENGE_GENERATORS_LDFLAGS} ${LIBREVENGE_STREAM_LDFLAGS} ${LIBVISIO_LDFLAGS})
 		if(WANT_PCH)
 			target_precompile_headers(${SCRIBUS_IMPORTVSD_PLUGIN} PRIVATE "../../plugins_pch.h")
 		endif()
 		install(TARGETS ${SCRIBUS_IMPORTVSD_PLUGIN} LIBRARY DESTINATION ${PLUGINDIR} PERMISSIONS ${PLUGIN_PERMISSIONS})
-		add_dependencies(${SCRIBUS_IMPORTVSD_PLUGIN} ${EXE_NAME})
+		add_dependencies(Plugins ${SCRIBUS_IMPORTVSD_PLUGIN})
 	endif ()
 else ()
 	pkg_check_modules(LIBWPG libwpg-0.2)
@@ -45,12 +45,12 @@ else ()
 					set(SCRIBUS_IMPORTVSD_PLUGIN "importvsd")
 
 					add_library(${SCRIBUS_IMPORTVSD_PLUGIN} MODULE ${IMPORTVSD_PLUGIN_SOURCES})
-					target_link_libraries(${SCRIBUS_IMPORTVSD_PLUGIN} ${PLUGIN_LIBRARIES} ${LIBWPG_LDFLAGS} ${LIBWPD_LDFLAGS} ${LIBWPD_STREAM_LDFLAGS} ${LIBVISIO_LDFLAGS})
+					target_link_libraries(${SCRIBUS_IMPORTVSD_PLUGIN} ${EXE_NAME} ${LIBWPG_LDFLAGS} ${LIBWPD_LDFLAGS} ${LIBWPD_STREAM_LDFLAGS} ${LIBVISIO_LDFLAGS})
 					if(WANT_PCH)
 						target_precompile_headers(${SCRIBUS_IMPORTVSD_PLUGIN} PRIVATE "../../plugins_pch.h")
 					endif()
 					install(TARGETS ${SCRIBUS_IMPORTVSD_PLUGIN} LIBRARY DESTINATION ${PLUGINDIR} PERMISSIONS ${PLUGIN_PERMISSIONS})
-					add_dependencies(${SCRIBUS_IMPORTVSD_PLUGIN} ${EXE_NAME})
+					add_dependencies(Plugins ${SCRIBUS_IMPORTVSD_PLUGIN})
 				endif ()
 			endif ()
 		endif ()
diff --git a/scribus/plugins/import/wmf/CMakeLists.txt b/scribus/plugins/import/wmf/CMakeLists.txt
index b118c92ac..1d8084cb5 100644
--- a/scribus/plugins/import/wmf/CMakeLists.txt
+++ b/scribus/plugins/import/wmf/CMakeLists.txt
@@ -13,7 +13,7 @@ set(SCRIBUS_IMPORTWMF_PLUGIN "wmfimplugin")
 
 add_library(${SCRIBUS_IMPORTWMF_PLUGIN} MODULE ${IMPORTWMF_PLUGIN_SOURCES})
 
-target_link_libraries(${SCRIBUS_IMPORTWMF_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_IMPORTWMF_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_IMPORTWMF_PLUGIN} PRIVATE "../../plugins_pch.h")
diff --git a/scribus/plugins/import/wpg/CMakeLists.txt b/scribus/plugins/import/wpg/CMakeLists.txt
index 9b3b8cc38..357c01545 100644
--- a/scribus/plugins/import/wpg/CMakeLists.txt
+++ b/scribus/plugins/import/wpg/CMakeLists.txt
@@ -11,7 +11,7 @@ set(IMPORTWPG_PLUGIN_SOURCES
 set(SCRIBUS_IMPORTWPG_PLUGIN "importwpg")
 
 add_library(${SCRIBUS_IMPORTWPG_PLUGIN} MODULE ${IMPORTWPG_PLUGIN_SOURCES})
-target_link_libraries(${SCRIBUS_IMPORTWPG_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_IMPORTWPG_PLUGIN} ${EXE_NAME})
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_IMPORTWPG_PLUGIN} PRIVATE "../../plugins_pch.h")
 endif()
@@ -21,4 +21,4 @@ install(TARGETS ${SCRIBUS_IMPORTWPG_PLUGIN}
 	DESTINATION ${PLUGINDIR}
 	PERMISSIONS ${PLUGIN_PERMISSIONS}
 )
-add_dependencies(${SCRIBUS_IMPORTWPG_PLUGIN} ${EXE_NAME})
+add_dependencies(Plugins ${SCRIBUS_IMPORTWPG_PLUGIN})
diff --git a/scribus/plugins/import/xar/CMakeLists.txt b/scribus/plugins/import/xar/CMakeLists.txt
index 0d9692ff0..e3aa24939 100644
--- a/scribus/plugins/import/xar/CMakeLists.txt
+++ b/scribus/plugins/import/xar/CMakeLists.txt
@@ -13,7 +13,7 @@ set(SCRIBUS_IMPORTXAR_PLUGIN "importxar")
 
 add_library(${SCRIBUS_IMPORTXAR_PLUGIN} MODULE ${IMPORTXAR_PLUGIN_SOURCES})
 
-target_link_libraries(${SCRIBUS_IMPORTXAR_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_IMPORTXAR_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_IMPORTXAR_PLUGIN} PRIVATE "../../plugins_pch.h")
@@ -25,4 +25,4 @@ install(TARGETS ${SCRIBUS_IMPORTXAR_PLUGIN}
 	PERMISSIONS ${PLUGIN_PERMISSIONS}
 )
 
-add_dependencies(${SCRIBUS_IMPORTXAR_PLUGIN} ${EXE_NAME})
+add_dependencies(Plugins ${SCRIBUS_IMPORTXAR_PLUGIN})
diff --git a/scribus/plugins/import/xfig/CMakeLists.txt b/scribus/plugins/import/xfig/CMakeLists.txt
index a6a9d0593..3f24c53df 100644
--- a/scribus/plugins/import/xfig/CMakeLists.txt
+++ b/scribus/plugins/import/xfig/CMakeLists.txt
@@ -13,7 +13,7 @@ set(SCRIBUS_IMPORTXFIG_PLUGIN "importxfig")
 
 add_library(${SCRIBUS_IMPORTXFIG_PLUGIN} MODULE ${IMPORTXFIG_PLUGIN_SOURCES})
 
-target_link_libraries(${SCRIBUS_IMPORTXFIG_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_IMPORTXFIG_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_IMPORTXFIG_PLUGIN} PRIVATE "../../plugins_pch.h")
@@ -25,4 +25,4 @@ install(TARGETS ${SCRIBUS_IMPORTXFIG_PLUGIN}
 	PERMISSIONS ${PLUGIN_PERMISSIONS}
 )
 
-add_dependencies(${SCRIBUS_IMPORTXFIG_PLUGIN} ${EXE_NAME})
+add_dependencies(Plugins ${SCRIBUS_IMPORTXFIG_PLUGIN})
diff --git a/scribus/plugins/import/xps/CMakeLists.txt b/scribus/plugins/import/xps/CMakeLists.txt
index 05f7df613..6e124b0b7 100644
--- a/scribus/plugins/import/xps/CMakeLists.txt
+++ b/scribus/plugins/import/xps/CMakeLists.txt
@@ -16,7 +16,7 @@ set(SCRIBUS_IMPORTXPS_PLUGIN "importxps")
 add_library(${SCRIBUS_IMPORTXPS_PLUGIN} MODULE ${IMPORTXPS_PLUGIN_SOURCES})
 
 link_directories( /usr/local/lib )
-target_link_libraries(${SCRIBUS_IMPORTXPS_PLUGIN} ${PLUGIN_LIBRARIES} ${SCRIBUS_ZIP_LIB})
+target_link_libraries(${SCRIBUS_IMPORTXPS_PLUGIN} ${EXE_NAME} ${SCRIBUS_ZIP_LIB})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_IMPORTXPS_PLUGIN} PRIVATE "../../plugins_pch.h")
@@ -28,6 +28,6 @@ install(TARGETS ${SCRIBUS_IMPORTXPS_PLUGIN}
 	PERMISSIONS ${PLUGIN_PERMISSIONS}
 )
 
-add_dependencies(${SCRIBUS_IMPORTXPS_PLUGIN} ${EXE_NAME})
+add_dependencies(Plugins ${SCRIBUS_IMPORTXPS_PLUGIN})
 
 # set_target_properties(${SCRIBUS_FONTPREVIEW_PLUGIN} PROPERTIES VERSION "0.0.0")
diff --git a/scribus/plugins/import/zmf/CMakeLists.txt b/scribus/plugins/import/zmf/CMakeLists.txt
index 12c23c65a..407f741e6 100644
--- a/scribus/plugins/import/zmf/CMakeLists.txt
+++ b/scribus/plugins/import/zmf/CMakeLists.txt
@@ -15,11 +15,11 @@ if (HAVE_REVENGE)
 		set(IMPORTZMF_PLUGIN_SOURCES ../revenge/rawpainter.cpp importzmf.cpp importzmfplugin.cpp)
 		set(SCRIBUS_IMPORTZMF_PLUGIN "importzmf")
 		add_library(${SCRIBUS_IMPORTZMF_PLUGIN} MODULE ${IMPORTZMF_PLUGIN_SOURCES} ${IMPORTZMF_PLUGIN_MOC_SOURCES})
-		target_link_libraries(${SCRIBUS_IMPORTZMF_PLUGIN} ${PLUGIN_LIBRARIES} ${LIBREVENGE_LDFLAGS} ${LIBREVENGE_GENERATORS_LDFLAGS} ${LIBREVENGE_STREAM_LDFLAGS} ${LIBZMF_LDFLAGS})
+		target_link_libraries(${SCRIBUS_IMPORTZMF_PLUGIN} ${EXE_NAME} ${LIBREVENGE_LDFLAGS} ${LIBREVENGE_GENERATORS_LDFLAGS} ${LIBREVENGE_STREAM_LDFLAGS} ${LIBZMF_LDFLAGS})
 		if(WANT_PCH)
 			target_precompile_headers(${SCRIBUS_IMPORTZMF_PLUGIN} PRIVATE "../../plugins_pch.h")
 		endif()
 		install(TARGETS ${SCRIBUS_IMPORTZMF_PLUGIN} LIBRARY DESTINATION ${PLUGINDIR} PERMISSIONS ${PLUGIN_PERMISSIONS})
-		add_dependencies(${SCRIBUS_IMPORTZMF_PLUGIN} ${EXE_NAME})
+		add_dependencies(Plugins ${SCRIBUS_IMPORTZMF_PLUGIN})
 	endif ()
 endif ()
diff --git a/scribus/plugins/myplugin/CMakeLists.txt b/scribus/plugins/myplugin/CMakeLists.txt
index 251132d4c..20e91b49c 100644
--- a/scribus/plugins/myplugin/CMakeLists.txt
+++ b/scribus/plugins/myplugin/CMakeLists.txt
@@ -19,7 +19,7 @@ QT5_WRAP_CPP(MY_PLUGIN_MOC_SOURCES ${MY_PLUGIN_MOC_CLASSES})
 
 add_library(${SCRIBUS_MY_PLUGIN} MODULE ${MY_PLUGIN_SOURCES} ${MY_PLUGIN_MOC_SOURCES})
 
-target_link_libraries(${SCRIBUS_MY_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_MY_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_MY_PLUGIN} PRIVATE "../plugins_pch.h")
diff --git a/scribus/plugins/picbrowser/CMakeLists.txt b/scribus/plugins/picbrowser/CMakeLists.txt
index aa360bf90..051c45992 100644
--- a/scribus/plugins/picbrowser/CMakeLists.txt
+++ b/scribus/plugins/picbrowser/CMakeLists.txt
@@ -21,7 +21,7 @@ set(SCRIBUS_PICTUREBROWSER_PLUGIN "picturebrowser")
 
 add_library(${SCRIBUS_PICTUREBROWSER_PLUGIN} MODULE ${PICTUREBROWSER_PLUGIN_SOURCES})
 
-target_link_libraries(${SCRIBUS_PICTUREBROWSER_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_PICTUREBROWSER_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_PICTUREBROWSER_PLUGIN} PRIVATE "../plugins_pch.h")
diff --git a/scribus/plugins/saveastemplateplugin/CMakeLists.txt b/scribus/plugins/saveastemplateplugin/CMakeLists.txt
index bee99ed9b..692c9d971 100644
--- a/scribus/plugins/saveastemplateplugin/CMakeLists.txt
+++ b/scribus/plugins/saveastemplateplugin/CMakeLists.txt
@@ -12,7 +12,7 @@ set(SCRIBUS_SAVEASTEMPLATE_PLUGIN "saveastemplateplugin")
 
 add_library(${SCRIBUS_SAVEASTEMPLATE_PLUGIN} MODULE ${SAVEASTEMPLATE_PLUGIN_SOURCES})
 
-target_link_libraries(${SCRIBUS_SAVEASTEMPLATE_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_SAVEASTEMPLATE_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_SAVEASTEMPLATE_PLUGIN} PRIVATE "../plugins_pch.h")
diff --git a/scribus/plugins/scripter/CMakeLists.txt b/scribus/plugins/scripter/CMakeLists.txt
index 98d12062f..55468297f 100644
--- a/scribus/plugins/scripter/CMakeLists.txt
+++ b/scribus/plugins/scripter/CMakeLists.txt
@@ -33,7 +33,7 @@ target_link_libraries(${SCRIBUS_SCRIPTER_PLUGIN}
   ${PYTHON_LIBRARIES}
 )
 
-target_link_libraries(${SCRIBUS_SCRIPTER_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_SCRIPTER_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_SCRIPTER_PLUGIN} PRIVATE "../plugins_pch.h")
@@ -65,4 +65,4 @@ install(FILES ${sceditor}
   DESTINATION ${PLUGINDIR}/scripter/sceditor
 )
 
-add_dependencies(${SCRIBUS_SCRIPTER_PLUGIN} ${EXE_NAME})
+add_dependencies(Plugins ${SCRIBUS_SCRIPTER_PLUGIN})
diff --git a/scribus/plugins/scriptplugin/CMakeLists.txt b/scribus/plugins/scriptplugin/CMakeLists.txt
index 4226fa454..77ad267d0 100644
--- a/scribus/plugins/scriptplugin/CMakeLists.txt
+++ b/scribus/plugins/scriptplugin/CMakeLists.txt
@@ -51,7 +51,7 @@ target_link_libraries(${SCRIBUS_SCRIPTER_PLUGIN}
 	${SCRIBUS_API_LIB}
 )
 
-target_link_libraries(${SCRIBUS_SCRIPTER_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_SCRIPTER_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_SCRIPTER_PLUGIN} PRIVATE "../plugins_pch.h")
@@ -63,4 +63,4 @@ install(TARGETS ${SCRIBUS_SCRIPTER_PLUGIN}
 	PERMISSIONS ${PLUGIN_PERMISSIONS}
 )
 
-add_dependencies(${SCRIBUS_SCRIPTER_PLUGIN} ${EXE_NAME})
+add_dependencies(Plugins ${SCRIBUS_SCRIPTER_PLUGIN})
diff --git a/scribus/plugins/scriptplugin_py2x/CMakeLists.txt b/scribus/plugins/scriptplugin_py2x/CMakeLists.txt
index e4daa58e6..7de7f2fe8 100644
--- a/scribus/plugins/scriptplugin_py2x/CMakeLists.txt
+++ b/scribus/plugins/scriptplugin_py2x/CMakeLists.txt
@@ -51,7 +51,7 @@ target_link_libraries(${SCRIBUS_SCRIPTER_PLUGIN}
 	${SCRIBUS_API_LIB}
 )
 
-target_link_libraries(${SCRIBUS_SCRIPTER_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_SCRIPTER_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_SCRIPTER_PLUGIN} PRIVATE "../plugins_pch.h")
@@ -63,4 +63,4 @@ install(TARGETS ${SCRIBUS_SCRIPTER_PLUGIN}
 	PERMISSIONS ${PLUGIN_PERMISSIONS}
 )
 
-add_dependencies(${SCRIBUS_SCRIPTER_PLUGIN} ${EXE_NAME})
+add_dependencies(Plugins ${SCRIBUS_SCRIPTER_PLUGIN})
diff --git a/scribus/plugins/shapes/CMakeLists.txt b/scribus/plugins/shapes/CMakeLists.txt
index cda805ccd..0ce039ed4 100644
--- a/scribus/plugins/shapes/CMakeLists.txt
+++ b/scribus/plugins/shapes/CMakeLists.txt
@@ -16,7 +16,7 @@ add_library(${SCRIBUS_SHAPE_PLUGIN} MODULE
 	${SHAPE_PLUGIN_SOURCES}
 )
 
-target_link_libraries(${SCRIBUS_SHAPE_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_SHAPE_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_SHAPE_PLUGIN} PRIVATE "../plugins_pch.h")
@@ -28,5 +28,5 @@ install(TARGETS ${SCRIBUS_SHAPE_PLUGIN}
 	PERMISSIONS ${PLUGIN_PERMISSIONS}
 )
 
-add_dependencies(${SCRIBUS_SHAPE_PLUGIN} ${EXE_NAME})
+add_dependencies(Plugins ${SCRIBUS_SHAPE_PLUGIN})
 
diff --git a/scribus/plugins/short-words/CMakeLists.txt b/scribus/plugins/short-words/CMakeLists.txt
index 38cf061a2..b848aa1b9 100644
--- a/scribus/plugins/short-words/CMakeLists.txt
+++ b/scribus/plugins/short-words/CMakeLists.txt
@@ -19,7 +19,7 @@ add_library(${SCRIBUS_SHORTWORDS_PLUGIN} MODULE
 	${SHORTWORDS_PLUGIN_SOURCES}
 )
 
-target_link_libraries(${SCRIBUS_SHORTWORDS_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_SHORTWORDS_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_SHORTWORDS_PLUGIN} PRIVATE "../plugins_pch.h")
@@ -35,4 +35,4 @@ install(FILES scribus-short-words.rc
   DESTINATION ${SHAREDIR}/plugins
 )
 
-add_dependencies(${SCRIBUS_SHORTWORDS_PLUGIN} ${EXE_NAME})
+add_dependencies(Plugins ${SCRIBUS_SHORTWORDS_PLUGIN})
diff --git a/scribus/plugins/tools/2geomtools/meshdistortion/CMakeLists.txt b/scribus/plugins/tools/2geomtools/meshdistortion/CMakeLists.txt
index 352ff7df6..565807685 100644
--- a/scribus/plugins/tools/2geomtools/meshdistortion/CMakeLists.txt
+++ b/scribus/plugins/tools/2geomtools/meshdistortion/CMakeLists.txt
@@ -12,7 +12,7 @@ set(SCRIBUS_MESHDISTORTION_PLUGIN "meshdistortion")
 
 add_library(${SCRIBUS_MESHDISTORTION_PLUGIN} MODULE ${MESHDISTORTION_PLUGIN_SOURCES})
 
-target_link_libraries(${SCRIBUS_MESHDISTORTION_PLUGIN} ${PLUGIN_LIBRARIES} ${SCRIBUS_2GEOM_LIB})
+target_link_libraries(${SCRIBUS_MESHDISTORTION_PLUGIN} ${EXE_NAME} ${SCRIBUS_2GEOM_LIB})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_MESHDISTORTION_PLUGIN} PRIVATE "../../../plugins_pch.h")
diff --git a/scribus/plugins/tools/2geomtools/pathalongpath/CMakeLists.txt b/scribus/plugins/tools/2geomtools/pathalongpath/CMakeLists.txt
index c7a8a44e5..b49fcd127 100644
--- a/scribus/plugins/tools/2geomtools/pathalongpath/CMakeLists.txt
+++ b/scribus/plugins/tools/2geomtools/pathalongpath/CMakeLists.txt
@@ -12,7 +12,7 @@ set(SCRIBUS_PATHALONGPATH_PLUGIN "pathalongpath")
 
 add_library(${SCRIBUS_PATHALONGPATH_PLUGIN} MODULE ${PATHALONGPATH_PLUGIN_SOURCES})
 
-target_link_libraries(${SCRIBUS_PATHALONGPATH_PLUGIN} ${PLUGIN_LIBRARIES} ${SCRIBUS_2GEOM_LIB})
+target_link_libraries(${SCRIBUS_PATHALONGPATH_PLUGIN} ${EXE_NAME} ${SCRIBUS_2GEOM_LIB})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_PATHALONGPATH_PLUGIN} PRIVATE "../../../plugins_pch.h")
diff --git a/scribus/plugins/tools/flattenpath/CMakeLists.txt b/scribus/plugins/tools/flattenpath/CMakeLists.txt
index 452fa02ad..f3822b31d 100644
--- a/scribus/plugins/tools/flattenpath/CMakeLists.txt
+++ b/scribus/plugins/tools/flattenpath/CMakeLists.txt
@@ -11,7 +11,7 @@ set(SCRIBUS_FLATTENPATH_PLUGIN "flattenpath")
 
 add_library(${SCRIBUS_FLATTENPATH_PLUGIN} MODULE ${FLATTENPATH_PLUGIN_SOURCES})
 
-target_link_libraries(${SCRIBUS_FLATTENPATH_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_FLATTENPATH_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_FLATTENPATH_PLUGIN} PRIVATE "../../plugins_pch.h")
diff --git a/scribus/plugins/tools/hunspellcheck/CMakeLists.txt b/scribus/plugins/tools/hunspellcheck/CMakeLists.txt
index ab9eab5f5..f8fc9ad29 100644
--- a/scribus/plugins/tools/hunspellcheck/CMakeLists.txt
+++ b/scribus/plugins/tools/hunspellcheck/CMakeLists.txt
@@ -18,7 +18,7 @@ add_library(${SCRIBUS_HUNSPELL_PLUGIN} MODULE
 	${HUNSPELL_PLUGIN_SOURCES}
 )
 
-target_link_libraries(${SCRIBUS_HUNSPELL_PLUGIN} ${hunspell_LIBRARIES} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_HUNSPELL_PLUGIN} ${hunspell_LIBRARIES} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_HUNSPELL_PLUGIN} PRIVATE "../../plugins_pch.h")
@@ -30,4 +30,4 @@ install(TARGETS ${SCRIBUS_HUNSPELL_PLUGIN}
 	PERMISSIONS ${PLUGIN_PERMISSIONS}
 )
 
-add_dependencies(${SCRIBUS_HUNSPELL_PLUGIN} ${EXE_NAME})
+add_dependencies(Plugins ${SCRIBUS_HUNSPELL_PLUGIN})
diff --git a/scribus/plugins/tools/lenseffects/CMakeLists.txt b/scribus/plugins/tools/lenseffects/CMakeLists.txt
index fbca23dab..87e60cd31 100644
--- a/scribus/plugins/tools/lenseffects/CMakeLists.txt
+++ b/scribus/plugins/tools/lenseffects/CMakeLists.txt
@@ -12,7 +12,7 @@ set(SCRIBUS_LENSEFFECTS_PLUGIN "lenseffects")
 
 add_library(${SCRIBUS_LENSEFFECTS_PLUGIN} MODULE ${LENSEFFECTS_PLUGIN_SOURCES})
 
-target_link_libraries(${SCRIBUS_LENSEFFECTS_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_LENSEFFECTS_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_LENSEFFECTS_PLUGIN} PRIVATE "../../plugins_pch.h")
diff --git a/scribus/plugins/tools/pathconnect/CMakeLists.txt b/scribus/plugins/tools/pathconnect/CMakeLists.txt
index 26cfbff66..d6188a754 100644
--- a/scribus/plugins/tools/pathconnect/CMakeLists.txt
+++ b/scribus/plugins/tools/pathconnect/CMakeLists.txt
@@ -12,7 +12,7 @@ set(SCRIBUS_PATHCONNECT_PLUGIN "pathconnect")
 
 add_library(${SCRIBUS_PATHCONNECT_PLUGIN} MODULE ${PATHCONNECT_PLUGIN_SOURCES})
 
-target_link_libraries(${SCRIBUS_PATHCONNECT_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_PATHCONNECT_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_PATHCONNECT_PLUGIN} PRIVATE "../../plugins_pch.h")
diff --git a/scribus/plugins/tools/pathcut/CMakeLists.txt b/scribus/plugins/tools/pathcut/CMakeLists.txt
index 180d6bf05..7647df1e7 100644
--- a/scribus/plugins/tools/pathcut/CMakeLists.txt
+++ b/scribus/plugins/tools/pathcut/CMakeLists.txt
@@ -18,7 +18,7 @@ set(SCRIBUS_PATHCUT_PLUGIN "pathcut")
 
 add_library(${SCRIBUS_PATHCUT_PLUGIN} MODULE ${PATHCUT_PLUGIN_SOURCES})
 
-target_link_libraries(${SCRIBUS_PATHCUT_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_PATHCUT_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_PATHCUT_PLUGIN} PRIVATE "../../plugins_pch.h")
diff --git a/scribus/plugins/tools/pathfinder/CMakeLists.txt b/scribus/plugins/tools/pathfinder/CMakeLists.txt
index d7b4ece62..b3b256489 100644
--- a/scribus/plugins/tools/pathfinder/CMakeLists.txt
+++ b/scribus/plugins/tools/pathfinder/CMakeLists.txt
@@ -22,7 +22,7 @@ set(SCRIBUS_PATHFINDER_PLUGIN "pathfinder")
 
 add_library(${SCRIBUS_PATHFINDER_PLUGIN} MODULE ${PATHFINDER_PLUGIN_SOURCES})
 
-target_link_libraries(${SCRIBUS_PATHFINDER_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_PATHFINDER_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_PATHFINDER_PLUGIN} PRIVATE "../../plugins_pch.h")
diff --git a/scribus/plugins/tools/pathstroker/CMakeLists.txt b/scribus/plugins/tools/pathstroker/CMakeLists.txt
index 5076d1074..ffcb8e278 100644
--- a/scribus/plugins/tools/pathstroker/CMakeLists.txt
+++ b/scribus/plugins/tools/pathstroker/CMakeLists.txt
@@ -11,7 +11,7 @@ set(SCRIBUS_PATHSTROKER_PLUGIN "pathstroker")
 
 add_library(${SCRIBUS_PATHSTROKER_PLUGIN} MODULE ${PATHSTROKER_PLUGIN_SOURCES})
 
-target_link_libraries(${SCRIBUS_PATHSTROKER_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_PATHSTROKER_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_PATHSTROKER_PLUGIN} PRIVATE "../../plugins_pch.h")
diff --git a/scribus/plugins/tools/smoothpath/CMakeLists.txt b/scribus/plugins/tools/smoothpath/CMakeLists.txt
index 48d8d9738..4fc6d918b 100644
--- a/scribus/plugins/tools/smoothpath/CMakeLists.txt
+++ b/scribus/plugins/tools/smoothpath/CMakeLists.txt
@@ -11,7 +11,7 @@ set(SCRIBUS_SMOOTHPATH_PLUGIN "smoothpath")
 
 add_library(${SCRIBUS_SMOOTHPATH_PLUGIN} MODULE ${SMOOTHPATH_PLUGIN_SOURCES})
 
-target_link_libraries(${SCRIBUS_SMOOTHPATH_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_SMOOTHPATH_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_SMOOTHPATH_PLUGIN} PRIVATE "../../plugins_pch.h")
diff --git a/scribus/plugins/tools/subdivide/CMakeLists.txt b/scribus/plugins/tools/subdivide/CMakeLists.txt
index 90312eb5e..57cd825db 100644
--- a/scribus/plugins/tools/subdivide/CMakeLists.txt
+++ b/scribus/plugins/tools/subdivide/CMakeLists.txt
@@ -11,7 +11,7 @@ set(SCRIBUS_SUBDIVIDE_PLUGIN "subdivide")
 
 add_library(${SCRIBUS_SUBDIVIDE_PLUGIN} MODULE ${SUBDIVIDE_PLUGIN_SOURCES})
 
-target_link_libraries(${SCRIBUS_SUBDIVIDE_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_SUBDIVIDE_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_SUBDIVIDE_PLUGIN} PRIVATE "../../plugins_pch.h")
diff --git a/scribus/plugins/tools/transform/CMakeLists.txt b/scribus/plugins/tools/transform/CMakeLists.txt
index 30ed67422..c2680acc4 100644
--- a/scribus/plugins/tools/transform/CMakeLists.txt
+++ b/scribus/plugins/tools/transform/CMakeLists.txt
@@ -13,7 +13,7 @@ set(SCRIBUS_TRANSFORMEFFECT_PLUGIN "transformeffect")
 
 add_library(${SCRIBUS_TRANSFORMEFFECT_PLUGIN} MODULE ${TRANSFORMEFFECT_PLUGIN_SOURCES})
 
-target_link_libraries(${SCRIBUS_TRANSFORMEFFECT_PLUGIN} ${PLUGIN_LIBRARIES})
+target_link_libraries(${SCRIBUS_TRANSFORMEFFECT_PLUGIN} ${EXE_NAME})
 
 if(WANT_PCH)
 	target_precompile_headers(${SCRIBUS_TRANSFORMEFFECT_PLUGIN} PRIVATE "../../plugins_pch.h")
-- 
2.32.0

0002-Cleanup-CMake-of-translations.patch (2,797 bytes)   
From 67f912bad6561b63fe78028222317c6c05ba04c9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Simonis?= <simonisfrederic@gmail.com>
Date: Thu, 12 Aug 2021 09:32:33 +0200
Subject: [PATCH 2/5] Cleanup CMake of translations

Use custom command to prevent recompilation.
Added overall target "Translations" which ensures building all
translations.
---
 resources/translations/CMakeLists.txt | 32 +++++++++++++++++++--------
 1 file changed, 23 insertions(+), 9 deletions(-)

diff --git a/resources/translations/CMakeLists.txt b/resources/translations/CMakeLists.txt
index 106fc923a..2c93c98a1 100644
--- a/resources/translations/CMakeLists.txt
+++ b/resources/translations/CMakeLists.txt
@@ -18,6 +18,8 @@ endforeach(TS_FILEPATH)
 
 message(STATUS "The following GUI languages will be installed: ${WANT_GUI_LANG}")
 
+set(QM_FILES)
+
 #If the user specified WANT_GUI_LANG, then we only create build/install targets for those languages
 if(WANT_GUI_LANG)
   foreach(TS_FILEPATH ${SCRIBUS_TS_FILES})
@@ -28,11 +30,13 @@ if(WANT_GUI_LANG)
 	  if(LANGSTR STREQUAL WANTED_LANG)
 		#message(STATUS "You want to install ${LANGSTR}:${WANTED_LANG}")
 		set(QM_FILENAME "scribus.${LANGSTR}.qm")
-		add_custom_target("release_ts_${LANGSTR}" ALL
-		  COMMAND ${LRELEASE_EXECUTABLE} ${TS_FILEPATH} -silent -qm ${QM_FILENAME}
-		  DEPENDS ${TS_FILEPATH}
+		add_custom_command(
+      OUTPUT ${QM_FILENAME}
+			COMMAND ${LRELEASE_EXECUTABLE} ${TS_FILEPATH} -silent -qm ${QM_FILENAME}
+      MAIN_DEPENDENCY ${TS_FILEPATH}
+      COMMENT "release_ts_${LANGSTR}"
 		)
-		install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${QM_FILENAME}" DESTINATION ${SHAREDIR}/translations)
+    list(APPEND QM_FILES "${QM_FILENAME}")
 	  endif(LANGSTR STREQUAL WANTED_LANG)
 	endforeach(WANTED_LANG)
   endforeach(TS_FILEPATH)
@@ -43,11 +47,21 @@ else(WANT_GUI_LANG)
 	string(REGEX MATCH "\\.([0-9a-zA-Z_]*)\\." LANGSTR ${TS_FILENAME})
 	string(REPLACE "." ""  LANGSTR ${LANGSTR})
 	set(QM_FILENAME "scribus.${LANGSTR}.qm")
-	add_custom_target("release_ts_${LANGSTR}" ALL
-	  COMMAND ${LRELEASE_EXECUTABLE} ${TS_FILEPATH} -silent -qm ${QM_FILENAME}
-	  DEPENDS ${TS_FILEPATH}
-	)
-	install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${QM_FILENAME}" DESTINATION ${SHAREDIR}/translations)
+  add_custom_command(
+    OUTPUT ${QM_FILENAME}
+    COMMAND ${LRELEASE_EXECUTABLE} ${TS_FILEPATH} -silent -qm ${QM_FILENAME}
+    MAIN_DEPENDENCY ${TS_FILEPATH}
+    COMMENT "release_ts_${LANGSTR}"
+  )
+  list(APPEND QM_FILES "${QM_FILENAME}")
   endforeach(TS_FILEPATH)
 endif(WANT_GUI_LANG)
 
+add_custom_target(Translations ALL
+  DEPENDS ${QM_FILES}
+  )
+foreach(QM_FILE IN LISTS QM_FILES)
+		install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${QM_FILE}" DESTINATION ${SHAREDIR}/translations)
+endforeach(QM_FILE)
+
+unset(QM_FILES)
-- 
2.32.0

0001-Simplify-CMake-flag-handling.patch (6,018 bytes)   
From 0169a02d200f79268322e6e17b80b2c8e05ea92b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Simonis?= <simonisfrederic@gmail.com>
Date: Thu, 12 Aug 2021 09:15:47 +0200
Subject: [PATCH 1/5] Simplify CMake flag handling

---
 CMakeLists.txt                     | 17 ++++++++---------
 scribus/CMakeLists.txt             | 11 -----------
 scribus/pluginapi.h                |  9 ++-------
 scribus/scribusapi.h               | 21 +++++++--------------
 scribus/styles/stylecontextproxy.h |  2 +-
 5 files changed, 18 insertions(+), 42 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 491424d98..4a060f328 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -340,7 +340,9 @@ if(NOT WANT_DEBUG AND NOT WANT_RELEASEWITHDEBUG)
 	set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Set Release Build Type" FORCE)
 endif()
 
-
+set(CMAKE_ENABLE_EXPORTS ON)
+set(CMAKE_CXX_VISIBILITY_PRESET hidden)
+set(CMAKE_VISIBILITY_INLINES_HIDDEN ON)
 
 #Based on our build type, setup our build options
 if(APPLE)
@@ -354,19 +356,15 @@ else()
 		set(CMAKE_C_FLAGS_DEBUG)
 	else()
 		# vanilla gcc
-		set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -g -Wall -fstrict-aliasing -Wl,-E")
-		set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O0 -g -Wall -fstrict-aliasing -Wl,-E")
-		if (_machine_x86 OR _machine_x86_64)
-			set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fPIC")
-			set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -fPIC")
-		endif()
+		set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -g -Wall -fstrict-aliasing")
+		set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O0 -g -Wall -fstrict-aliasing")
 	endif()
 	if(${CMAKE_GENERATOR} MATCHES "^(Visual Studio|NMake).*")
 		set(CMAKE_CXX_FLAGS_RELEASE)
 		set(CMAKE_C_FLAGS_RELEASE)
 	else()
-		set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O2 -Wall -fPIC -Wl,-E")
-		set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O2 -Wall -fPIC -Wl,-E")
+		set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O2 -Wall")
+		set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O2 -Wall")
 	#	add_definitions(-DNDEBUG)
 	endif()
 endif()
@@ -398,6 +396,7 @@ elseif(WANT_CPP17)
 		set(CMAKE_CXX_STANDARD 17)
 endif()
 set (CMAKE_CXX_STANDARD_REQUIRED ON)
+set (CMAKE_CXX_EXTENSIONS OFF)
 
 ##############################################################################################################
 ########## Find Dependencies                                                                        ##########
diff --git a/scribus/CMakeLists.txt b/scribus/CMakeLists.txt
index 1af4aa1c5..cbfc19b7a 100644
--- a/scribus/CMakeLists.txt
+++ b/scribus/CMakeLists.txt
@@ -754,17 +754,6 @@ else()
 	set(WIN32_ONLY_LIBS)
 endif()
 
-##TEST FIX FOR 6897
-# Use the -E / --export-dynamic flag to ensure that symbols in the Scribus
-# binary are in the public symbol table for plugins. The symbols must also
-# be set as SCRIBUS_API if we're building with -fvisibility=hidden .
-# Should fix bug 6897 .
-if (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "OpenBSD")
-	set_target_properties(${EXE_NAME} PROPERTIES LINK_FLAGS -Wl,-E)
-endif ()
-if ((CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang") AND NOT WIN32)
-	set_target_properties(${EXE_NAME} PROPERTIES LINK_FLAGS -Wl,-E)
-endif ()
 ##
 
 
diff --git a/scribus/pluginapi.h b/scribus/pluginapi.h
index 16c208e6e..28808eeaf 100644
--- a/scribus/pluginapi.h
+++ b/scribus/pluginapi.h
@@ -25,13 +25,8 @@ for which a new license (GPL+exception) is in place.
         #endif
     #endif
 #else
-    #ifdef HAVE_GCC_SYMBOL_VISIBILITY
-        #define PLUGIN_API __attribute__ ((visibility("default")))
-        #define PLUGIN_LOCAL __attribute__ ((visibility("hidden")))
-    #else
-        #define PLUGIN_API
-        #define PLUGIN_LOCAL
-    #endif
+    #define PLUGIN_API __attribute__ ((visibility("default")))
+    #define PLUGIN_LOCAL __attribute__ ((visibility("hidden")))
 #endif
 
 #endif
diff --git a/scribus/scribusapi.h b/scribus/scribusapi.h
index c7c5b405d..ccb3f5c1e 100644
--- a/scribus/scribusapi.h
+++ b/scribus/scribusapi.h
@@ -52,26 +52,19 @@ for which a new license (GPL+exception) is in place.
         #endif
     #endif
 #else
-    #ifdef HAVE_GCC_SYMBOL_VISIBILITY
-        /* Forces inclusion of a symbol in the symbol table, so
-           software outside the current library / app can use it. */
-        #define SCRIBUS_API __attribute__ ((visibility("default")))
-        /* Within a section exported with SCRIBUS_API, forces a symbol to be
-           private to the library / app. Good for private members. */
-        #define SCRIBUS_LOCAL __attribute__ ((visibility("hidden")))
-    #else
-        #define SCRIBUS_API
-        #define SCRIBUS_LOCAL
-    #endif
+    /* Forces inclusion of a symbol in the symbol table, so
+       software outside the current library / app can use it. */
+    #define SCRIBUS_API __attribute__ ((visibility("default")))
+    /* Within a section exported with SCRIBUS_API, forces a symbol to be
+       private to the library / app. Good for private members. */
+    #define SCRIBUS_LOCAL __attribute__ ((visibility("hidden")))
 #endif
 
 /* Throwable classes must always be visible on GCC in all binaries */
 #ifdef WIN32
   #define SCEXCEPTIONAPI(api) api
-#elif defined(HAVE_GCC_SYMBOL_VISIBILITY)
-  #define SCEXCEPTIONAPI(api) SCRIBUS_API
 #else
-  #define SCEXCEPTIONAPI(api)
+  #define SCEXCEPTIONAPI(api) SCRIBUS_API
 #endif
 
 #endif
diff --git a/scribus/styles/stylecontextproxy.h b/scribus/styles/stylecontextproxy.h
index e2b7cbea3..aa656564c 100644
--- a/scribus/styles/stylecontextproxy.h
+++ b/scribus/styles/stylecontextproxy.h
@@ -30,7 +30,7 @@
 *  it maps the empty name "" to the given default style and uses
 *  the style's context to resolve all other names.
 */
-class StyleContextProxy: public StyleContext 
+class SCRIBUS_API StyleContextProxy: public StyleContext 
 {
 public:
 	const BaseStyle* resolve(const QString& name) const;
-- 
2.32.0

cbradney

2021-08-17 20:18

administrator   ~0049217

Last edited: 2021-08-17 20:22

Hmm with the first two patches applied, I am getting these types of errors on running cmake:

CMake Error at scribus/plugins/barcodegenerator/CMakeLists.txt:17 (target_link_libraries):
  Target "Scribus" of type EXECUTABLE may not be linked into another target.
  One may link only to INTERFACE, OBJECT, STATIC or SHARED libraries, or to
  executables with the ENABLE_EXPORTS property set.


CMake Error at scribus/plugins/colorwheel/CMakeLists.txt:17 (target_link_libraries):
  Target "Scribus" of type EXECUTABLE may not be linked into another target.
  One may link only to INTERFACE, OBJECT, STATIC or SHARED libraries, or to
  executables with the ENABLE_EXPORTS property set.


EDIT: never mind, needed the 0001 patch too

cbradney

2021-08-19 15:59

administrator   ~0049219

I'd be about ready to commit this but am not sure how to verify the other platforms like sparc, mips, etc

jghali

2021-09-01 19:52

administrator   ~0049232

Resolving as patch was committed a few days ago.

Issue History

Date Modified Username Field Change
2021-08-12 12:33 fsimonis New Issue
2021-08-12 12:33 fsimonis File Added: 0004-Add-dependency-propagation.patch
2021-08-12 12:33 fsimonis File Added: 0003-Cleanup-CMake-of-plugins.patch
2021-08-12 12:33 fsimonis File Added: 0002-Cleanup-CMake-of-translations.patch
2021-08-12 12:33 fsimonis File Added: 0001-Simplify-CMake-flag-handling.patch
2021-08-17 20:18 cbradney Note Added: 0049217
2021-08-17 20:22 cbradney Note Edited: 0049217
2021-08-19 15:59 cbradney Note Added: 0049219
2021-09-01 19:52 jghali Assigned To => cbradney
2021-09-01 19:52 jghali Status new => resolved
2021-09-01 19:52 jghali Resolution open => fixed
2021-09-01 19:52 jghali Fixed in Version => 1.5.8.svn
2021-09-01 19:52 jghali Note Added: 0049232