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:
-- 
lyx-devel mailing list
lyx-devel@lists.lyx.org
http://lists.lyx.org/mailman/listinfo/lyx-devel

Reply via email to