File: windows.yml

package info (click to toggle)
clapper 0.8.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 3,604 kB
  • sloc: ansic: 25,139; python: 524; xml: 496; javascript: 18; sh: 10; makefile: 9
file content (101 lines) | stat: -rw-r--r-- 3,985 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
on:
  workflow_dispatch:
  push:
    branches:
      - master
  pull_request:
    branches:
      - master
name: "Windows"
jobs:
  windows:
    name: "Windows"
    runs-on: windows-latest
    strategy:
      matrix:
        arch: [x86_64]
    defaults:
      run:
        shell: msys2 {0}
    steps:
    - name: Checkout
      uses: actions/checkout@v4
    - name: Setup MSYS2
      uses: msys2/setup-msys2@v2
      with:
        msystem: MINGW64
        update: true
        install: |-
          mingw-w64-${{ matrix.arch }}-meson
          mingw-w64-${{ matrix.arch }}-gcc
          mingw-w64-${{ matrix.arch }}-glib2
          mingw-w64-${{ matrix.arch }}-gstreamer
          mingw-w64-${{ matrix.arch }}-gst-plugins-base
          mingw-w64-${{ matrix.arch }}-gst-plugins-good
          mingw-w64-${{ matrix.arch }}-gst-plugins-bad
          mingw-w64-${{ matrix.arch }}-gst-plugins-ugly
          mingw-w64-${{ matrix.arch }}-gst-libav
          mingw-w64-${{ matrix.arch }}-libpeas2
          mingw-w64-${{ matrix.arch }}-libsoup3
          mingw-w64-${{ matrix.arch }}-libmicrodns
          mingw-w64-${{ matrix.arch }}-gtk4
          mingw-w64-${{ matrix.arch }}-libadwaita
    - name: Prepare
      run: |
        BUILD_PREFIX="$GITHUB_WORKSPACE/clapper-win-${{ matrix.arch }}"

        mkdir -p $BUILD_PREFIX/bin
        cp /mingw64/bin/gdbus.exe $BUILD_PREFIX/bin/
        cp /mingw64/bin/gst-inspect-1.0.exe $BUILD_PREFIX/bin/

        mkdir -p $BUILD_PREFIX/lib
        cp -r /mingw64/lib/gio $BUILD_PREFIX/lib/
        cp -r /mingw64/lib/gstreamer-1.0 $BUILD_PREFIX/lib/
        cp -r /mingw64/lib/gdk-pixbuf-2.0 $BUILD_PREFIX/lib/

        mkdir -p $BUILD_PREFIX/share/glib-2.0/schemas
        cp -r /mingw64/share/glib-2.0/schemas/*.xml $BUILD_PREFIX/share/glib-2.0/schemas/
        cp -r /mingw64/share/icons $BUILD_PREFIX/share/

        mkdir -p $BUILD_PREFIX/share/xml/iso-codes
        cp /mingw64/share/xml/iso-codes/iso_639.xml $BUILD_PREFIX/share/xml/iso-codes/

        cd "$BUILD_PREFIX/lib/gstreamer-1.0"
        rm -f \
            libgstadpcmenc.dll libgstamfcodec.dll libgstdvbsubenc.dll libgstencoding.dll \
            libgstfrei0r.dll libgstinter.dll libgstlame.dll libgstldac.dll libgstmpeg2enc.dll \
            libgstmpegpsmux.dll libgstmpegtsmux.dll libgstmplex.dll libgstrealmedia.dll \
            libgstsubenc.dll libgstsvtav1.dll libgstsvthevcenc.dll libgsttwolame.dll \
            libgstvoamrwbenc.dll libgstwavenc.dll libgstx264.dll libgstx265.dll \
            libgstxingmux.dll libgsty4menc.dll libgstzbar.dll
    - name: Build
      run: |
        meson setup builddir --prefix=$GITHUB_WORKSPACE/clapper-win-${{ matrix.arch }}
        cd builddir
        meson compile
        meson install
    - name: Package
      run: |
        BUILD_PREFIX="$GITHUB_WORKSPACE/clapper-win-${{ matrix.arch }}"

        ldd $BUILD_PREFIX/bin/clapper.exe | grep '\/mingw.*\.dll' -o | xargs -I{} cp -n "{}" $BUILD_PREFIX/bin
        find $BUILD_PREFIX/lib/clapper-0.0/ -name '*\.dll' -type f -exec ldd "{}" \; | grep '\/mingw.*\.dll' -o | xargs -I{} cp -n "{}" $BUILD_PREFIX/bin
        find $BUILD_PREFIX/lib/gstreamer-1.0/ -name '*\.dll' -type f -exec ldd "{}" \; | grep '\/mingw.*\.dll' -o | xargs -I{} cp -n "{}" $BUILD_PREFIX/bin
        find $BUILD_PREFIX/lib/gio/ -name '*\.dll' -type f -exec ldd "{}" \; | grep '\/mingw.*\.dll' -o | xargs -I{} cp -n "{}" $BUILD_PREFIX/bin
    - name: Cleanup
      run: |
        BUILD_PREFIX="$GITHUB_WORKSPACE/clapper-win-${{ matrix.arch }}"

        rm -rf $BUILD_PREFIX/include
        rm -rf $BUILD_PREFIX/lib/pkgconfig
    - name: Installer
      uses: Minionguyjpro/Inno-Setup-Action@v1.2.5
      with:
        path: builddir/pkgs/windows-installer/clapper.iss
        options: /O+
    - name: Upload
      uses: actions/upload-artifact@v4
      with:
        name: clapper-win-${{ matrix.arch }}
        path: builddir/pkgs/windows-installer/InstallerOutput/Clapper*.exe
        if-no-files-found: error