Added CI for MSYS2 (MINGW64) (#2)
- Use quotes in windows build script; - Added missing gstreamer, webrtc-audio-processing and git; - Added CI for Windows. --------- Signed-off-by: Maxim Logaev <maxlogaev@proton.me>
This commit is contained in:
parent
ca1f97e243
commit
75092caced
26
.github/workflows/build-win64.yml
vendored
Normal file
26
.github/workflows/build-win64.yml
vendored
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
name: Build for Windows
|
||||||
|
on: [pull_request, push]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: windows-latest
|
||||||
|
steps:
|
||||||
|
- uses: msys2/setup-msys2@v2
|
||||||
|
with:
|
||||||
|
msystem: MINGW64
|
||||||
|
update: true
|
||||||
|
install: git
|
||||||
|
- run: git config --global core.autocrlf input
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: Build Dino
|
||||||
|
run: |
|
||||||
|
msys2 -c './build-win64.sh --prepare'
|
||||||
|
msys2 -c './build-win64.sh'
|
||||||
|
- name: Build Dino Installer
|
||||||
|
run: |
|
||||||
|
msys2 -c './build-win64.sh --build-installer'
|
||||||
|
- name: Upload Dino Installer
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: dino-installer
|
||||||
|
path: windows-installer/dino-installer.exe
|
|
@ -1,24 +1,9 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
DIST_DIR=${PWD}/windows-installer/win64-dist
|
DIST_DIR="$PWD/windows-installer/win64-dist"
|
||||||
JOBS=$NUMBER_OF_PROCESSORS
|
JOBS=$NUMBER_OF_PROCESSORS
|
||||||
|
|
||||||
download_yolort()
|
|
||||||
{
|
|
||||||
file_name=cppwinrt-2.0.210122.3+windows-10.0.19041+yolort-835cd4e.zip
|
|
||||||
original_folder=${PWD}
|
|
||||||
|
|
||||||
cd plugins\\windows-notification
|
|
||||||
mkdir -p yolort
|
|
||||||
cd yolort
|
|
||||||
curl -L -O https://github.com/LAGonauta/YoloRT/releases/download/v1.0.0/${file_name}
|
|
||||||
echo "675a6d943c97b4acdbfaa473f68d3241d1798b31a67b5529c8d29fc0176a1707 ${file_name}" | sha256sum --check --status
|
|
||||||
unzip -o ${file_name}
|
|
||||||
rm ${file_name}
|
|
||||||
cd ${original_folder}
|
|
||||||
}
|
|
||||||
|
|
||||||
msg()
|
msg()
|
||||||
{
|
{
|
||||||
echo -e "\e[32m$1\e[0m"
|
echo -e "\e[32m$1\e[0m"
|
||||||
|
@ -30,6 +15,19 @@ fatal()
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
download_yolort()
|
||||||
|
{
|
||||||
|
file_name=cppwinrt-2.0.210122.3+windows-10.0.19041+yolort-835cd4e.zip
|
||||||
|
yolort_dir="$PWD/plugins/windows-notification/yolort"
|
||||||
|
|
||||||
|
rm -rf "$yolort_dir"
|
||||||
|
mkdir "$yolort_dir"
|
||||||
|
curl -L -o "$file_name" "https://github.com/LAGonauta/YoloRT/releases/download/v1.0.0/$file_name"
|
||||||
|
echo "675a6d943c97b4acdbfaa473f68d3241d1798b31a67b5529c8d29fc0176a1707 $file_name" | sha256sum --check --status
|
||||||
|
unzip -o "$file_name" -d "$yolort_dir"
|
||||||
|
rm -f "$file_name"
|
||||||
|
}
|
||||||
|
|
||||||
prepare()
|
prepare()
|
||||||
{
|
{
|
||||||
msg "Installing MINGW64 build dependencies"
|
msg "Installing MINGW64 build dependencies"
|
||||||
|
@ -51,14 +49,16 @@ prepare()
|
||||||
mingw64/mingw-w64-x86_64-gpgme \
|
mingw64/mingw-w64-x86_64-gpgme \
|
||||||
mingw64/mingw-w64-x86_64-fontconfig \
|
mingw64/mingw-w64-x86_64-fontconfig \
|
||||||
mingw64/mingw-w64-x86_64-iso-codes \
|
mingw64/mingw-w64-x86_64-iso-codes \
|
||||||
|
mingw64/mingw-w64-x86_64-gstreamer \
|
||||||
mingw64/mingw-w64-x86_64-gst-plugins-bad \
|
mingw64/mingw-w64-x86_64-gst-plugins-bad \
|
||||||
mingw64/mingw-w64-x86_64-gst-plugins-good \
|
mingw64/mingw-w64-x86_64-gst-plugins-good \
|
||||||
mingw64/mingw-w64-x86_64-gst-plugins-base \
|
mingw64/mingw-w64-x86_64-gst-plugins-base \
|
||||||
mingw64/mingw-w64-x86_64-gst-plugins-ugly \
|
mingw64/mingw-w64-x86_64-gst-plugins-ugly \
|
||||||
mingw64/mingw-w64-x86_64-nsis \
|
mingw64/mingw-w64-x86_64-nsis \
|
||||||
mingw64/mingw-w64-x86_64-libsignal-protocol-c \
|
mingw64/mingw-w64-x86_64-libsignal-protocol-c \
|
||||||
mingw64/mingw-w64-x86_64-ninja \
|
|
||||||
mingw64/mingw-w64-x86_64-icu \
|
mingw64/mingw-w64-x86_64-icu \
|
||||||
|
mingw64/mingw-w64-x86_64-webrtc-audio-processing \
|
||||||
|
git \
|
||||||
make \
|
make \
|
||||||
unzip \
|
unzip \
|
||||||
curl
|
curl
|
||||||
|
@ -74,14 +74,14 @@ prepare()
|
||||||
configure()
|
configure()
|
||||||
{
|
{
|
||||||
msg "Running configuration for Windows"
|
msg "Running configuration for Windows"
|
||||||
./configure --program-prefix=$DIST_DIR --no-debug --release --disable-fast-vapi --with-libsoup3
|
./configure --program-prefix="$DIST_DIR" --no-debug --release --disable-fast-vapi --with-libsoup3
|
||||||
msg "Configured!"
|
msg "Configured!"
|
||||||
}
|
}
|
||||||
|
|
||||||
build()
|
build()
|
||||||
{
|
{
|
||||||
msg "Started building on $JOBS threads"
|
msg "Started building on $JOBS threads"
|
||||||
make -j$JOBS
|
make -j"$JOBS"
|
||||||
msg "Successfully builded!"
|
msg "Successfully builded!"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -91,15 +91,15 @@ dist_install()
|
||||||
make install
|
make install
|
||||||
|
|
||||||
msg "Copying MINGW64 dependencies"
|
msg "Copying MINGW64 dependencies"
|
||||||
cp /mingw64/bin/gdbus.exe $DIST_DIR/bin
|
cp /mingw64/bin/gdbus.exe "$DIST_DIR/bin"
|
||||||
cp /mingw64/bin/gspawn-win64-helper.exe $DIST_DIR/bin
|
cp /mingw64/bin/gspawn-win64-helper.exe "$DIST_DIR/bin"
|
||||||
|
|
||||||
cp /mingw64/bin/libcrypto-*-x64.dll $DIST_DIR/bin/
|
cp /mingw64/bin/libcrypto-*-x64.dll "$DIST_DIR/bin/"
|
||||||
cp -r /mingw64/lib/gstreamer-1.0 $DIST_DIR/lib
|
cp -r /mingw64/lib/gstreamer-1.0 "$DIST_DIR/lib"
|
||||||
mkdir -p $DIST_DIR/lib/gdk-pixbuf-2.0/ && cp -r /mingw64/lib/gdk-pixbuf-2.0 $DIST_DIR/lib/
|
mkdir -p "$DIST_DIR/lib/gdk-pixbuf-2.0/" && cp -r /mingw64/lib/gdk-pixbuf-2.0 "$DIST_DIR/lib/"
|
||||||
mkdir -p $DIST_DIR/lib/gio/ && cp -r /mingw64/lib/gio $DIST_DIR/lib/
|
mkdir -p "$DIST_DIR/lib/gio/" && cp -r /mingw64/lib/gio "$DIST_DIR/lib/"
|
||||||
|
|
||||||
list=`find $DIST_DIR -type f \( -name "*.exe" -o -name "*.dll" \) -exec \
|
list=`find "$DIST_DIR" -type f \( -name "*.exe" -o -name "*.dll" \) -exec \
|
||||||
ntldd -R {} + | \
|
ntldd -R {} + | \
|
||||||
grep "mingw64" | \
|
grep "mingw64" | \
|
||||||
cut -f1 -d "=" | sort | uniq`
|
cut -f1 -d "=" | sort | uniq`
|
||||||
|
@ -108,23 +108,23 @@ dist_install()
|
||||||
done
|
done
|
||||||
|
|
||||||
msg "Removing debug information from all EXE and DLL files"
|
msg "Removing debug information from all EXE and DLL files"
|
||||||
find $DIST_DIR -iname "*.exe" -exec strip -s {} +
|
find "$DIST_DIR" -iname "*.exe" -exec strip -s {} +
|
||||||
find $DIST_DIR -iname "*.dll" -exec strip -s {} +
|
find "$DIST_DIR" -iname "*.dll" -exec strip -s {} +
|
||||||
|
|
||||||
find $DIST_DIR -iname "*.a" -exec rm {} +
|
find "$DIST_DIR" -iname "*.a" -exec rm {} +
|
||||||
|
|
||||||
msg "Removing redudant header files"
|
msg "Removing redudant header files"
|
||||||
rm -rf $DIST_DIR/include
|
rm -rf "$DIST_DIR/include"
|
||||||
|
|
||||||
msg "Copy LICENSE"
|
msg "Copy LICENSE"
|
||||||
cp -f ${PWD}/LICENSE $DIST_DIR/LICENSE
|
cp -f "$PWD/LICENSE" "$DIST_DIR/LICENSE"
|
||||||
|
|
||||||
msg "Copy icons, themes, locales and fonts"
|
msg "Copy icons, themes, locales and fonts"
|
||||||
cp -f ${PWD}/main/dino.ico $DIST_DIR/dino.ico
|
cp -f "$PWD/main/dino.ico" "$DIST_DIR/dino.ico"
|
||||||
cp -rf /mingw64/share/xml $DIST_DIR/share
|
cp -rf "/mingw64/share/xml" "$DIST_DIR/share"
|
||||||
mkdir -p $DIST_DIR/etc/fonts && cp -r /mingw64/etc/fonts $DIST_DIR/etc/
|
mkdir -p "$DIST_DIR/etc/fonts" && cp -r /mingw64/etc/fonts "$DIST_DIR/etc/"
|
||||||
mkdir -p $DIST_DIR/share/icons && cp -r /mingw64/share/icons $DIST_DIR/share/
|
mkdir -p "$DIST_DIR/share/icons" && cp -r /mingw64/share/icons "$DIST_DIR/share/"
|
||||||
mkdir -p $DIST_DIR/share/glib-2.0/schemas && cp -rf /mingw64/share/glib-2.0/schemas $DIST_DIR/share/glib-2.0/
|
mkdir -p "$DIST_DIR/share/glib-2.0/schemas" && cp -rf /mingw64/share/glib-2.0/schemas "$DIST_DIR/share/glib-2.0/"
|
||||||
|
|
||||||
msg "Successfully installed!"
|
msg "Successfully installed!"
|
||||||
}
|
}
|
||||||
|
@ -140,7 +140,7 @@ build_installer()
|
||||||
|
|
||||||
clean()
|
clean()
|
||||||
{
|
{
|
||||||
rm -rf build $DIST_DIR
|
rm -rf build "$DIST_DIR"
|
||||||
msg "Build artifacts removed successfull!"
|
msg "Build artifacts removed successfull!"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -161,7 +161,7 @@ Running without parameters is equivalent to running:
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
if [[ $(uname) != "MINGW64_NT"* ]]; then
|
if [[ "$(uname)" != "MINGW64_NT"* ]]; then
|
||||||
fatal "This is not a MINGW64 environment!"
|
fatal "This is not a MINGW64 environment!"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue