From a7045eee2ee6e7d61206de560ed09dce7088437f Mon Sep 17 00:00:00 2001 From: IC Rainbow Date: Sat, 21 Dec 2024 18:38:55 +0200 Subject: [PATCH] more build fixes --- .github/workflows/build.yml | 15 +++++++++++++++ scripts/desktop/build-lib-linux.sh | 2 +- scripts/desktop/build-lib-windows.sh | 5 ++++- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 70f5d97e63..da2d756319 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -131,6 +131,11 @@ jobs: echo " extra-include-dirs: /opt/homebrew/opt/openssl@3.0/include" >> cabal.project.local echo " extra-lib-dirs: /opt/homebrew/opt/openssl@3.0/lib" >> cabal.project.local echo " flags: +openssl" >> cabal.project.local + echo "" >> cabal.project.local + echo "package jpeg-turbo" >> cabal.project.local + echo " extra-include-dirs: /opt/homebrew/opt/libjpeg-turbo/include" >> cabal.project.local + echo " extra-lib-dirs: /opt/homebrew/opt/libjpeg-turbo/lib" >> cabal.project.local + echo " flags: +static" >> cabal.project.local - name: Unix prepare cabal.project.local for Mac if: matrix.os == 'macos-13' @@ -145,6 +150,11 @@ jobs: echo " extra-include-dirs: /usr/local/opt/openssl@3.0/include" >> cabal.project.local echo " extra-lib-dirs: /usr/local/opt/openssl@3.0/lib" >> cabal.project.local echo " flags: +openssl" >> cabal.project.local + echo "" >> cabal.project.local + echo "package jpeg-turbo" >> cabal.project.local + echo " extra-include-dirs: /usr/local/opt/libjpeg-turbo/include" >> cabal.project.local + echo " extra-lib-dirs: /usr/local/opt/libjpeg-turbo/lib" >> cabal.project.local + echo " flags: +static" >> cabal.project.local - name: Install AppImage dependencies if: startsWith(github.ref, 'refs/tags/v') && matrix.asset_name && matrix.os == 'ubuntu-20.04' @@ -165,6 +175,9 @@ jobs: echo "ignore-project: False" >> cabal.project.local echo "package direct-sqlcipher" >> cabal.project.local echo " flags: +openssl" >> cabal.project.local + echo "" >> cabal.project.local + echo "package jpeg-turbo" >> cabal.project.local + echo " flags: +static-gcc" >> cabal.project.local - name: Unix build CLI id: unix_cli_build @@ -346,6 +359,8 @@ jobs: echo " flags: +openssl" >> cabal.project.local echo " extra-include-dirs: $openssl_windows_style_path\include" >> cabal.project.local echo " extra-lib-dirs: $openssl_windows_style_path" >> cabal.project.local + echo "package jpeg-turbo" >> cabal.project.local + echo " flags: +pkgconfig" >> cabal.project.local rm -rf dist-newstyle/src/direct-sq* sed -i "s/, unix /--, unix /" simplex-chat.cabal diff --git a/scripts/desktop/build-lib-linux.sh b/scripts/desktop/build-lib-linux.sh index 80ae9fa82e..f257ef84f6 100755 --- a/scripts/desktop/build-lib-linux.sh +++ b/scripts/desktop/build-lib-linux.sh @@ -25,7 +25,7 @@ for elem in "${exports[@]}"; do count=$(grep -R "$elem$" libsimplex.dll.def | wc for elem in "${exports[@]}"; do count=$(grep -R "\"$elem\"" flake.nix | wc -l); if [ $count -ne 2 ]; then echo Wrong exports in flake.nix. Add \"$elem\" in two places of the file; exit 1; fi ; done rm -rf $BUILD_DIR -cabal build lib:simplex-chat --ghc-options='-optl-Wl,-rpath,$ORIGIN -flink-rts -threaded' --constraint 'simplexmq +client_library' +cabal build lib:simplex-chat --ghc-options='-optl-Wl,-rpath,$ORIGIN -flink-rts -threaded' --constraint 'simplexmq +client_library' --constraint 'jpeg-turbo +static-gcc' cd $BUILD_DIR/build #patchelf --add-needed libHSrts_thr-ghc${GHC_VERSION}.so libHSsimplex-chat-*-inplace-ghc${GHC_VERSION}.so #patchelf --add-rpath '$ORIGIN' libHSsimplex-chat-*-inplace-ghc${GHC_VERSION}.so diff --git a/scripts/desktop/build-lib-windows.sh b/scripts/desktop/build-lib-windows.sh index cbb886ccb3..4ef18b727d 100755 --- a/scripts/desktop/build-lib-windows.sh +++ b/scripts/desktop/build-lib-windows.sh @@ -46,8 +46,10 @@ echo "package direct-sqlcipher" >> cabal.project.local echo " flags: +openssl" >> cabal.project.local echo " extra-include-dirs: $openssl_windows_style_path\include" >> cabal.project.local echo " extra-lib-dirs: $openssl_windows_style_path" >> cabal.project.local +echo "package jpeg-turbo" >> cabal.project.local +echo " flags: +pkgconfig" >> cabal.project.local echo "package simplex-chat" >> cabal.project.local -echo " ghc-options: -shared -threaded -optl-L$openssl_windows_style_path -optl-lcrypto-3-x64 -o libsimplex.dll libsimplex.dll.def" >> cabal.project.local +echo " ghc-options: -shared -threaded -optl-L$openssl_windows_style_path -optl-lcrypto-3-x64 libsimplex.dll libsimplex.dll.def" >> cabal.project.local # Very important! Without it the build fails on linking step since the linker can't find exported symbols. # It looks like GHC bug because with such random path the build ends successfully sed -i "s/ld.lld.exe/abracadabra.exe/" `ghc --print-libdir`/settings @@ -58,6 +60,7 @@ rm -rf apps/multiplatform/desktop/build/cmake mkdir -p apps/multiplatform/common/src/commonMain/cpp/desktop/libs/$OS-$ARCH/ cp dist-newstyle/openssl-3.0.15/libcrypto-3-x64.dll apps/multiplatform/common/src/commonMain/cpp/desktop/libs/$OS-$ARCH/ +cp /mingw64/bin/libturbojpeg.dll apps/multiplatform/common/src/commonMain/cpp/desktop/libs/$OS-$ARCH/ cp libsimplex.dll apps/multiplatform/common/src/commonMain/cpp/desktop/libs/$OS-$ARCH/ scripts/desktop/prepare-vlc-windows.sh