Skip to content

Commit e323aa8

Browse files
authored
Add vcpkg related files and MSVC CI job (#1189)
* Add vcpkg files While vcpkg supports Linux, our main focus is on Windows (MSVC) for now. In this first step a minimal set of dependencies is added to be able to do a build of the framework with most modules disabled. * Add CMakePresets.json This makes it easier to run CMake with a fixed set of many options. It is also a preperations step for a vcpkg based CI job. * Add CI job for MSVC powered by vcpkg This is an inital draft that rebuilds all dependencies all the time. For use in production caching should be added (either via GitHub Action Cache or via GitHub Packages).
1 parent ee8adcf commit e323aa8

4 files changed

Lines changed: 103 additions & 0 deletions

File tree

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
name: build-test-windows-msvc-on-push
2+
3+
on: [push, pull_request]
4+
5+
jobs:
6+
build-cmake-msvc:
7+
runs-on: windows-latest
8+
steps:
9+
- uses: actions/checkout@v4
10+
11+
- name: Restore from cache and setup vcpkg executable and data files.
12+
uses: lukka/run-vcpkg@v11
13+
with:
14+
vcpkgJsonGlob: 'vcpkg.json'
15+
16+
- name: Setup MSVC
17+
uses: ilammy/msvc-dev-cmd@v1
18+
19+
- name: Configure C/C++ with CMake
20+
run: |
21+
cmake --preset vcpkg-ninja
22+
23+
- name: Build with Ninja
24+
run: |
25+
cmake --build build
26+
27+
- name: Install MLT
28+
run: |
29+
cmake --install build

CMakePresets.json

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
{
2+
"version": 3,
3+
"configurePresets": [
4+
{
5+
"name": "vcpkg",
6+
"displayName": "vcpkg config",
7+
"description": "Configure with vcpkg toolchain",
8+
"binaryDir": "${sourceDir}/build",
9+
"toolchainFile": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake",
10+
"cacheVariables": {
11+
"BUILD_TESTING": "OFF",
12+
"SWIG_PYTHON": "OFF",
13+
"MOD_AVFORMAT": "OFF",
14+
"MOD_DECKLINK": "OFF",
15+
"MOD_FREI0R": "OFF",
16+
"MOD_GDK": "OFF",
17+
"MOD_JACKRACK": "OFF",
18+
"USE_LV2": "OFF",
19+
"USE_VST2": "OFF",
20+
"MOD_KDENLIVE": "OFF",
21+
"MOD_NDI": "OFF",
22+
"MOD_NORMALIZE": "OFF",
23+
"MOD_OLDFILM": "OFF",
24+
"MOD_OPENCV": "OFF",
25+
"MOD_MOVIT": "OFF",
26+
"MOD_PLUS": "OFF",
27+
"MOD_PLUSGPL": "OFF",
28+
"MOD_QT6": "OFF",
29+
"MOD_SOX": "OFF",
30+
"MOD_GLAXNIMATE_QT6": "OFF",
31+
"MOD_RESAMPLE": "OFF",
32+
"MOD_RTAUDIO": "OFF",
33+
"MOD_RUBBERBAND": "OFF",
34+
"MOD_SDL2": "ON",
35+
"MOD_DOX": "OFF",
36+
"MOD_VIDSTAB": "OFF",
37+
"MOD_VORBIS": "OFF",
38+
"MOD_XINE": "OFF",
39+
"MOD_XML": "OFF"
40+
}
41+
},
42+
{
43+
"name": "vcpkg-ninja",
44+
"inherits": "vcpkg",
45+
"generator": "Ninja"
46+
}
47+
]
48+
}

vcpkg-configuration.json

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"default-registry": {
3+
"kind": "git",
4+
"baseline": "cfcbdb245f1179a5a493890a0b69531d66969e62",
5+
"repository": "https://github.com/microsoft/vcpkg"
6+
},
7+
"registries": [
8+
{
9+
"kind": "artifact",
10+
"location": "https://github.com/microsoft/vcpkg-ce-catalog/archive/refs/heads/main.zip",
11+
"name": "microsoft"
12+
}
13+
]
14+
}

vcpkg.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json",
3+
"name": "mlt",
4+
"dependencies": [
5+
"dirent",
6+
"dlfcn-win32",
7+
"libiconv",
8+
"pkgconf",
9+
"pthreads",
10+
"sdl2"
11+
]
12+
}

0 commit comments

Comments
 (0)