diff --git a/cmake/linux/package_linux.sh.in b/cmake/linux/package_linux.sh.in index 473046cdb..069938656 100644 --- a/cmake/linux/package_linux.sh.in +++ b/cmake/linux/package_linux.sh.in @@ -133,8 +133,11 @@ unset LD_LIBRARY_PATH export LD_LIBRARY_PATH="${APPDIR}usr/lib/lmms/":$LD_LIBRARY_PATH # Handle wine linking -if [ -d "@WINE_LIBRARY_FIX@" ]; then - export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:@WINE_LIBRARY_FIX@:@WINE_LIBRARY_FIX@wine/ +if [ -d "@WINE_32_LIBRARY_DIR@" ]; then + export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$LD_LIBRARY_PATH/wine/:@WINE_32_LIBRARY_DIR@:@WINE_32_LIBRARY_DIR@wine/ +fi +if [ -d "@WINE_64_LIBRARY_DIR@" ]; then + export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$LD_LIBRARY_PATH/wine/:@WINE_64_LIBRARY_DIR@:@WINE_64_LIBRARY_DIR@wine/ fi # Move executables so linuxdeployqt can find them diff --git a/cmake/modules/FindWine.cmake b/cmake/modules/FindWine.cmake index 13443b297..65c628136 100644 --- a/cmake/modules/FindWine.cmake +++ b/cmake/modules/FindWine.cmake @@ -9,13 +9,19 @@ LIST(APPEND CMAKE_PREFIX_PATH /opt/wine-stable /opt/wine-devel /opt/wine-staging /usr/lib/wine/) + FIND_PATH(WINE_INCLUDE_DIR wine/exception.h PATH_SUFFIXES wine) -FIND_LIBRARY(WINE_LIBRARY NAMES wine PATH_SUFFIXES wine i386-linux-gnu/wine) FIND_PROGRAM(WINE_CXX NAMES wineg++ winegcc winegcc64 winegcc32 winegcc-stable PATHS /usr/lib/wine) FIND_PROGRAM(WINE_BUILD NAMES winebuild) +SET(_ARCHITECTURE ${CMAKE_LIBRARY_ARCHITECTURE}) + +FIND_LIBRARY(WINE_LIBRARY NAMES wine PATH_SUFFIXES wine i386-linux-gnu/wine) + +SET(CMAKE_LIBRARY_ARCHITECTURE ${_ARCHITECTURE}) + SET(WINE_INCLUDE_DIRS ${WINE_INCLUDE_DIR} ) SET(WINE_LIBRARIES ${WINE_LIBRARY} ) @@ -25,6 +31,10 @@ STRING(REPLACE " " ";" WINEBUILD_FLAGS "${WINEBUILD_OUTPUT}") FOREACH(FLAG ${WINEBUILD_FLAGS}) IF("${FLAG}" MATCHES "libwinecrt0.a.*") + STRING(REGEX REPLACE "/wine/libwinecrt0.a.*" "" FLAG "${FLAG}") + + SET(WINE_64_LIBRARY_DIR "${FLAG}/") + # Debian systems STRING(REPLACE "/lib/x86_64-" "/lib/i386-" FLAG "${FLAG}") # Fedora systems @@ -34,8 +44,7 @@ FOREACH(FLAG ${WINEBUILD_FLAGS}) # WineHQ (/opt/wine-stable, /opt/wine-devel, /opt/wine-staging) STRING(REPLACE "/lib64/wine/" "/lib/wine/" FLAG "${FLAG}") - STRING(REGEX REPLACE "/wine/libwinecrt0.a.*" "" WINE_LIBRARY_FIX "${FLAG}") - SET(WINE_LIBRARY_FIX "${WINE_LIBRARY_FIX}/") + SET(WINE_32_LIBRARY_DIR "${FLAG}/") ENDIF() ENDFOREACH() @@ -44,8 +53,8 @@ find_package_handle_standard_args(Wine DEFAULT_MSG WINE_CXX WINE_LIBRARIES WINE_ mark_as_advanced(WINE_INCLUDE_DIR WINE_LIBRARY WINE_CXX WINE_BUILD) -IF(WINE_LIBRARY_FIX) - SET(WINE_32_FLAGS "-L${WINE_LIBRARY_FIX}wine/ -L${WINE_LIBRARY_FIX}") +IF(WINE_32_LIBRARY_DIR) + SET(WINE_32_FLAGS "-L${WINE_32_LIBRARY_DIR}wine/ -L${WINE_32_LIBRARY_DIR}") ENDIF() # Create winegcc wrapper