-
Notifications
You must be signed in to change notification settings - Fork 43
134 lines (115 loc) · 4.13 KB
/
main.yml
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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
name: "vk_video_samples native build"
run-name: Native build by ${{ github.actor }}
on:
workflow_dispatch:
workflow_call:
pull_request:
branches:
- main
push:
branches:
- main
env:
REPO_NAME: vk_video_samples
jobs:
vk_video_samples-linux:
strategy:
matrix:
platform: [linux-x86_64, linux-x86]
runs-on: ubuntu-22.04
env:
TERM: dumb
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set i386 environment variables
if: matrix.platform == 'linux-x86'
run: |
echo "CC=cc -m32" >> $GITHUB_ENV
echo "CXX=c++ -m32" >> $GITHUB_ENV
echo "PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig/" >> $GITHUB_ENV
- name: Install dependencies
run: |
sudo apt update
sudo apt install --assume-yes --no-install-recommends valgrind python3-pip ninja-build
sudo apt install cmake
sudo apt install libx11-dev libwayland-dev
sudo apt install libavformat-dev
sudo apt install libvulkan-dev
- name: Install i386 dependencies
if: matrix.platform == 'linux-x86'
run: |
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install gcc-multilib g++-multilib libc6-dbg:i386
# hack to avoid that zlib x64 gets picked up
sudo apt remove --assume-yes zlib1g-dev
sudo apt install libx11-dev:i386 libwayland-dev:i386
sudo apt install libavformat-dev:i386
sudo apt install libvulkan-dev:i386
- name: Build
shell: bash
run: |
cd vk_video_decoder
./update_external_sources.sh
mkdir BUILD
cd BUILD
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="-Wall -Werror" -DCMAKE_C_FLAGS="-Wall -Wextra -Werror" ..
make -j
cd ../../vk_video_encoder
mkdir BUILD
cd BUILD
cmake -DCMAKE_BUILD_TYPE=Debug ..
make -j
vk_video_samples-win:
strategy:
matrix:
platform: [windows-x64]
runs-on: windows-latest
steps:
- name: Set up X86 MSVC environment
if: matrix.platform == 'windows-x86'
uses: ilammy/msvc-dev-cmd@v1
with:
arch: "x86"
- name: Checkout code
uses: actions/checkout@v3
- name: Install dependencies
run: |
choco install --yes zip
- name: Install python
uses: actions/setup-python@v4
with:
python-version: "3.10"
- name: Install FFmpeg
run: |
cd vk_video_decoder
# Define the custom installation location
$currentDir = pwd
$finalDestination = "$currentDir\bin\libs\ffmpeg\win64"
echo $finalDestination
# Create the directory
New-Item -ItemType Directory -Force -Path $finalDestination
# Download FFmpeg static build
Invoke-WebRequest -Uri https://github.com/BtbN/FFmpeg-Builds/releases/download/latest/ffmpeg-master-latest-win64-gpl-shared.zip -OutFile ffmpeg.zip
# Extract FFmpeg to the tmp location
$tempExtractPath = "$currentDir\temp\extracted"
# Extract the entire archive to a temporary folder
Expand-Archive -Path ffmpeg.zip -DestinationPath $tempExtractPath -Force
Get-ChildItem -Path $tempExtractPath\ffmpeg-master-latest-win64-gpl-shared
# Get the contents of the first folder in the archive
Get-ChildItem -Path $tempExtractPath\ffmpeg-master-latest-win64-gpl-shared | Where-Object { $_.PSIsContainer } | Copy-Item -Destination $finalDestination -Force -Recurse
echo "$finalDestination\bin" | Out-File -Encoding ASCII -Append $env:GITHUB_PATH
- name: Build
run: |
cd vk_video_decoder
.\update_external_sources.bat
mkdir BUILD
cd BUILD
cmake -DCMAKE_BUILD_TYPE=Debug ..
cmake --build . --parallel 16 --config Debug
cd ..\..\vk_video_encoder
mkdir BUILD
cd BUILD
cmake -DCMAKE_BUILD_TYPE=Debug ..
cmake --build . --parallel 16 --config Debug