On Tue, Nov 07, 2023 at 05:42:27PM +0100, pdv wrote: > On 06/11/2023 19:17, pdv wrote: > > On 04/11/2023 20:35, Kornel Benko wrote: > > > Am Sat, 4 Nov 2023 18:05:42 +0100 > > > schrieb pdv <pdvissch...@edpnet.be>: > > > > > > > On 04/11/2023 17:55, pdv wrote: > > > > > On 21/03/2023 19:27, Kornel Benko wrote: > > > > > > Am Tue, 21 Mar 2023 15:27:41 +0100 > > > > > > schrieb pdv <pdvissch...@edpnet.be>: > > > > > > > > > > > > > On 21/03/2023 11:00, Kornel Benko wrote: > > > > > > > > Am Mon, 20 Mar 2023 20:05:32 +0100 > > > > > > > > schrieb pdv <pdvissch...@edpnet.be>: > > > > > > > > > It's within the first if() else(), that's > > > > > > > > > thus for qt6(see below). I > > > > > > > > > suppose this should work for all platforms, > > > > > > > > > but I checked it on macos > > > > > > > > > only. Your patch is limited to APPLE and also works for me; > > > > > > > > > If this > > > > > > > > > problem doesn't occur for other platforms, > > > > > > > > > it's ok for me of course. > > > > > > > > > > > > > > > > Probably no one else is using the bundle option > > > > > > > > (-DLYX_BUNDLE=ON). > > > > > > > > > > > > > > > > If you could try to use cmake without this option, I'd be > > > > > > > > interested > > > > > > > > if it works for > > > > > > > > you too. > > > > > > > > > > > > > > Apparently no problem. -DLYX_BUNDLE=OFF works too for me. > > > > > > > > > > > > > > > In this case we could get rid of it (probably). > > > > > > > > > > > > > > > > Kornel > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Good, so I will disable this option for lyx2.5 then. > > > > > > > > > > > > Kornel > > > > > > > > > > > > > > > > > I have build the latest lyx-master and I still need my (previous) > > > > > patch > > > > > to build a LyX.app which includes all required Qt6 frameworks (I want > > > > > a > > > > > stand-alone app). > > > > > > > > > > I'm using a recent version of CMake and apparently versions older than > > > > > 3.5 will not longer be supported. To get rid of the annoying warnings > > > > > I've upped the minimum version from 3.1 to 3.5 (new patch included). > > > > > > > > > > pdv > > > > > > > > > Sorry, forgot to include the patch. > > > > > > Will be done for 2.4.x versions. Also for other CMakeLists.txt's in > > > the lyx-sources. > > > > > > Kornel > > > > > > > > OK, thanks. > > > > Regarding the original issue, I'm still largely in the dark. > > > > I've build qt-6.2 (-debug-and-release option), installed cmake3.26 and > > I'm using macos 10.14 and xcode. lyx has been updated to a very recent > > master-version. > > > > Building a complete (qt frameworks included) debuggable LyX2.4.app with > > cmake does not work for me; the plug-ins are not copied into the bundle > > and cmake's fixup_bundle step subsequently fails. > > > > When I apply my patch (see first message) the plugins are copied but the > > fixup_bundle step still fails. > > > > Only the QtCore, ... frameworks have been copied to the bundle (probably > > by the install command in my patch), but not the QtCore_debug, ... > > versions, although no error is reported by fixup_bundle at copy time. > > > > That's because they are copied to a folder named /@rpath/ in my > > build-folder instead of into the bundle. > > Apparently the @rpath used in the qt libraries is not handled properly > > by the cmake scripts. > > > > Can anyone confirm that a stand-alone LyX2.4.app can be build with cmake > > on macos or have any other suggestion? > > > > pdv > > > > > > > The problem with the _debug libraries is obvious. As for qt5 no _debug > libraries should be copied for qt6 either. I adapted my patch (included) > accordingly. > > I once more tested a number of configurations and this is my conclusion. > I can build a bundle with LYX_DMG=off and LYX_BUNDLE=on, the latter sets > also LYX_CPACK=on. > > These are my resulting settings after cmake configure: > > LYX_ENABLE_BUILD_TYPE:STRING = AUTO : Allows to tweak the compiled > code (AUTO release prerelease development gprof) > LYX_CPACK:BOOL = ON : Use the CPack management > (Implies LYX_INSTALL option) > LYX_LOCALVERSIONING:BOOL = ON : Add version info to > created package name (only used if LYX_CPACK option set) > LYX_INSTALL:BOOL = OFF : Build install > projects/rules (implies a bunch of other options) > LYX_NLS:BOOL = ON : Enable Native Language > Support (NLS) > LYX_REQUIRE_SPELLCHECK:BOOL = OFF : Abort if no spellchecker > available > LYX_ASPELL:BOOL = ON : Require aspell > LYX_ENCHANT:BOOL = OFF : Require Enchant > LYX_HUNSPELL:BOOL = ON : Require Hunspell > LYX_RELEASE:BOOL = ON : Build release version, > build debug when disabled > LYX_DEBUG:BOOL = OFF : Enforce debug build > LYX_NO_OPTIMIZE:BOOL = OFF : Don't use any > optimization/debug flags > LYX_ENABLE_ASSERTIONS:BOOL = ON : Run sanity checks in the > program > LYX_PACKAGE_SUFFIX:BOOL = ON : Use version suffix for > packaging > LYX_SUFFIX_VALUE:STRING = : Use this string as suffix > LYX_PCH:BOOL = OFF : Use precompiled headers > LYX_MERGE_FILES:BOOL = OFF : Merge source files into > one compilation unit > LYX_MERGE_REBUILD:BOOL = OFF : Rebuild generated files > from merged files build > LYX_QUIET:BOOL = ON : Don't generate verbose > makefiles > LYX_INSTALL_PREFIX:BOOL = OFF : Install path for LyX > LYX_BUNDLE:BOOL = ON : Build bundle > (experimental) > LYX_ENABLE_URLTESTS:BOOL = OFF : Enable for URL tests > LYX_ENABLE_EXPORT_TESTS:BOOL = OFF : Enable for export tests > LYX_ENABLE_KEYTESTS:BOOL = OFF : Enable for keytests > LYX_ENABLE_VALGRIND_TESTS:BOOL = OFF : Enable for tests involving > valgrind > LYX_DEBUG_SANITIZE:STRING = NONE : Use sanitize check (NONE > ADDRESS UNSPECIFIED) > LYX_USE_QT:STRING = QT6 : Use Qt version as frontend > (AUTO QT5 QT6) > LYX_USE_IPO:STRING = OFF : Interprocedural > optimization (OFF AUTO ON) > LYX_DISABLE_CALLSTACK_PRINTING:BOOL= OFF : do not print a callstack > when crashing > LYX_EXTERNAL_Z:BOOL = ON : OFF := Build 3rdparty lib > zlib > LYX_EXTERNAL_DTL:BOOL = OFF : OFF := Build 3rdparty > commands dt2dv and dv2dt > LYX_EXTERNAL_ICONV:BOOL = ON : OFF := Build 3rdparty lib > iconvlib > LYX_EXTERNAL_HUNSPELL:BOOL = ON : OFF := Build 3rdparty lib > hunspelllib > LYX_EXTERNAL_MYTHES:STRING = OFF : OFF := Build 3rdparty lib > mytheslib (AUTO OFF ON) > LYX_DMG:BOOL = OFF : Build as Mac bundle, > needed for .dmg (experimental) > LYX_COCOA:BOOL = OFF : Use Cocoa on Mac > > This is with my patch applied. > Without it, I can build a bundle but it crashes because the plugins are > missing. > > The documentation of fixup_bundle clearly mentions that the plugins should > have been copied before running fixup_bundle; > > Without applying my patch, how are these plugins copied when building with > qt6? > > Probably not all ot6-plugins are needed by lyx and a selection could be > made. > > pdv
> diff --git a/development/cmake/post_install/CMakeLists.txt > b/development/cmake/post_install/CMakeLists.txt > index 52a2f782af..f83cdaad0b 100644 > --- a/development/cmake/post_install/CMakeLists.txt > +++ b/development/cmake/post_install/CMakeLists.txt > @@ -28,14 +28,18 @@ if(LYX_BUNDLE) > endif() > > if(Qt5Core_FOUND) > - 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) > + 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 QT6, 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 REGEX "\\_debug\\.dylib$" > EXCLUDE) > endif() > > # Install code does the following: @Kornel seems like we might want this one in master? Scott
signature.asc
Description: PGP signature
-- lyx-devel mailing list lyx-devel@lists.lyx.org http://lists.lyx.org/mailman/listinfo/lyx-devel