CMake install (of LyX) on MacOS

pdv pdvisschere at edpnet.be
Fri Nov 29 18:46:13 UTC 2019


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
-------------- next part --------------
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}\")


More information about the lyx-devel mailing list