I wonder if someone uses CMake on MacOS to make a LyX application bundle. One has at least to switch `LYX_INSTALL` ON but it did not work right away for me. Basically all icons were missing.

With some changes I could get it to work (patch included). One will also have to define the locations of the Qt5-plugins and Qt5-libs folders (`QT5_PLUGINS_DIR` and `QT5_LIBRARY_DIRS`).

Maybe not all plugins/imageformats are used/needed by lyx, but they are all copied now, except for `_debug` versions which are excluded. Starting with Qt-5.12 it seems not possible anymore (or at least not easy) to link to the `_debug` versions of the qt5-frameworks (with cmake). And installing them into the bundle also does not work. So right now this is not a big loss.

Patrick
diff --git a/development/cmake/post_install/CMakeLists.txt 
b/development/cmake/post_install/CMakeLists.txt
index 7e4cb64517..f0eea8452d 100644
--- a/development/cmake/post_install/CMakeLists.txt
+++ b/development/cmake/post_install/CMakeLists.txt
@@ -28,13 +28,15 @@ if(LYX_BUNDLE)
     endif()
 
     if(Qt5Core_FOUND)
-        install_qt_plugin("Qt5::QJpegPlugin")
-        install_qt_plugin("Qt5::QGifPlugin")
-        install_qt_plugin("Qt5::QICOPlugin")
-        if(APPLE)
-            install_qt_plugin("Qt5::QCocoaIntegrationPlugin")
-        endif()
-    else()
+       file(GLOB QT_PLUGIN_DIRECTORIES "${QT_PLUGINS_DIR}/imageformats")
+       install(DIRECTORY ${QT_PLUGIN_DIRECTORIES} DESTINATION 
"${qtplugin_dest_dir}/plugins/" COMPONENT Runtime REGEX "\\_debug\\.dylib$" 
EXCLUDE)
+       if(APPLE)
+               if(Qt5Core_VERSION VERSION_GREATER_EQUAL 5.10.0)
+                               install_qt_plugin("Qt5::QMacStylePlugin")
+                       endif()
+        install_qt_plugin("Qt5::QCocoaIntegrationPlugin")
+       endif()
+   else()
         # With QT4, just copy all the plugins
         file(GLOB QT_PLUGIN_DIRECTORIES "${QT_PLUGINS_DIR}/*")
         install(DIRECTORY ${QT_PLUGIN_DIRECTORIES} DESTINATION 
"${qtplugin_dest_dir}/plugins/" COMPONENT Runtime)
@@ -45,7 +47,7 @@ if(LYX_BUNDLE)
     # - install the platform specific plugins (with Qt5)
     # - Fixup the bundle
     install(CODE "include(BundleUtilities)
-                    file(WRITE \"\${CMAKE_INSTALL_PREFIX}/${qt_conf_path}\" 
\"\")
+                    file(WRITE \"\${CMAKE_INSTALL_PREFIX}/${qt_conf_path}\" 
\"[Paths]\\rPlugins = PlugIns\\rTranslations = translations\")
                     file(GLOB_RECURSE QTPLUGINS
                     
\"\${CMAKE_INSTALL_PREFIX}/${qtplugin_dest_dir}/plugins/*/*${CMAKE_SHARED_LIBRARY_SUFFIX}\")
                     message(STATUS \"QT plugins 
[\${CMAKE_INSTALL_PREFIX}/${qtplugin_dest_dir}/plugins/*/*${CMAKE_SHARED_LIBRARY_SUFFIX}]:
 \${QTPLUGINS}\")
-- 
lyx-devel mailing list
lyx-devel@lists.lyx.org
http://lists.lyx.org/mailman/listinfo/lyx-devel

Reply via email to