Skip to content

Commit f9cda20

Browse files
committed
Use conan for deps
1 parent c7521d2 commit f9cda20

37 files changed

+314
-970
lines changed

.github/workflows/cmake.yml

+96-52
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,43 @@ on: push
44

55
env:
66
BUILD_TYPE: Release
7-
EM_VERSION: 3.1.35
8-
EM_CACHE_FOLDER: 'emsdk-cache'
97

108
jobs:
119
build:
1210
strategy:
1311
fail-fast: false
1412
matrix:
1513
platform:
16-
- { name: Ubuntu GCC, os: ubuntu-latest, compiler: g++, arch: "64", cmakepp: "", suffix: "", flags: "-DCMAKE_CXX_COMPILER=g++"}
17-
- { name: Ubuntu Clang, os: ubuntu-latest, compiler: clang++, arch: "64", cmakepp: "", suffix: "", flags: "-DCMAKE_CXX_COMPILER=clang++"}
18-
- { name: Windows 32, os: windows-latest, compiler: vs2019, arch: "32", cmakepp: "", suffix: "", flags: "-DCMAKE_PREFIX_PATH=`pwd`/../dependencies -A Win32"}
19-
- { name: Windows 64, os: windows-latest, compiler: vs2019, arch: "64", cmakepp: "", suffix: "", flags: "-DCMAKE_PREFIX_PATH=`pwd`/../dependencies -A x64"}
20-
- { name: MacOS, os: macos-latest, compiler: clang++, arch: "64", cmakepp: "", suffix: "", flags: "-DCMAKE_PREFIX_PATH=/opt/homebrew/opt/sfml@2"}
21-
- { name: WebAssembly, os: ubuntu-latest, compiler: em++, arch: "32", cmakepp: "emcmake", suffix: "-emscripten", flags: "-DCMAKE_PREFIX_PATH=`pwd`/../dependencies -DCMAKE_FIND_ROOT_PATH=/ -DLXGUI_TEST_IMPLEMENTATION=OPENGL_SDL"}
14+
- name: Ubuntu GCC
15+
os: ubuntu-latest
16+
compiler: g++
17+
arch: "64"
18+
suffix: ""
19+
cmake-flags: ""
20+
- name: Ubuntu Clang
21+
os: ubuntu-latest
22+
compiler: clang++
23+
arch: "64"
24+
suffix: ""
25+
cmake-flags: ""
26+
- name: Windows
27+
os: windows-latest
28+
compiler: msvc
29+
arch: "64"
30+
suffix: ""
31+
cmake-flags: ""
32+
- name: MacOS
33+
os: macos-latest
34+
compiler: clang++
35+
arch: "64"
36+
suffix: ""
37+
cmake-flags: ""
38+
- name: WebAssembly
39+
os: ubuntu-latest
40+
compiler: em++
41+
arch: "32"
42+
suffix: "-emscripten"
43+
cmake-flags: "-DLXGUI_BUILD_GUI_SFML_IMPL=OFF -DLXGUI_BUILD_INPUT_SFML_IMPL=OFF -DLXGUI_TEST_IMPLEMENTATION=OPENGL_SDL"
2244

2345
name: ${{matrix.platform.name}}
2446
runs-on: ${{matrix.platform.os}}
@@ -31,80 +53,94 @@ jobs:
3153

3254
- name: Setup Clang
3355
if: matrix.platform.compiler == 'clang++' && matrix.platform.os == 'ubuntu-latest'
34-
run: sudo apt install clang
56+
run: |
57+
sudo apt install clang
58+
echo "CC=clang" >> $GITHUB_ENV
59+
echo "CXX=clang++" >> $GITHUB_ENV
3560
36-
- name: Setup Emscripten cache
37-
if: matrix.platform.compiler == 'em++'
38-
id: cache-system-libraries
61+
- name: Setup Conan
62+
shell: bash
63+
working-directory: ${{github.workspace}}
64+
run: |
65+
pip install conan
66+
echo "CONAN_HOME=`pwd`/conan-cache" >> $GITHUB_ENV
67+
68+
- name: Setup Conan cache
69+
id: cache-conan-packages
3970
uses: actions/cache@v4
4071
with:
41-
path: ${{env.EM_CACHE_FOLDER}}
42-
key: ${{env.EM_VERSION}}-${{matrix.platform.name}}-${{matrix.build-type}}
72+
path: ${{env.CONAN_HOME}}
73+
key: ${{matrix.platform.name}}-${{matrix.platform.compiler}}
4374

44-
- name: Setup Emscripten
45-
if: matrix.platform.compiler == 'em++'
46-
uses: mymindstorm/setup-emsdk@v14
47-
with:
48-
version: ${{env.EM_VERSION}}
49-
actions-cache-folder: ${{env.EM_CACHE_FOLDER}}
75+
- name: Get Conan dependencies
76+
shell: bash
77+
working-directory: ${{github.workspace}}
78+
run: |
79+
conan profile detect --force
80+
conan create conan/observable_unique_ptr \
81+
-pr default \
82+
-pr ./conan/profiles/${{matrix.platform.os}}-${{matrix.platform.arch}}-${{matrix.platform.compiler}}
83+
conan install . \
84+
--build=missing \
85+
-c tools.system.package_manager:mode=install \
86+
-c tools.system.package_manager:sudo=true \
87+
--output-folder dependencies \
88+
-pr:b default \
89+
-pr:h default \
90+
-pr:h ./conan/profiles/${{matrix.platform.os}}-${{matrix.platform.arch}}-${{matrix.platform.compiler}}
5091
5192
- name: Create Build Environment
5293
run: cmake -E make_directory ${{github.workspace}}/build
5394

54-
- name: Get Linux dependencies
55-
if: runner.os == 'Linux' && matrix.platform.compiler != 'em++'
56-
run: |
57-
sudo apt-get update
58-
sudo apt-get install libz-dev libpng-dev libfreetype6-dev libglew-dev libglu1-mesa-dev libsfml-dev liblua5.2-dev libsdl2-ttf-dev libsdl2-image-dev libsdl2-dev
59-
60-
- name: Get Emscripten dependencies
61-
if: matrix.platform.compiler == 'em++'
62-
shell: bash
63-
working-directory: ${{github.workspace}}/dependencies
64-
run: unzip wasm.zip
65-
66-
- name: Get Windows dependencies
67-
if: runner.os == 'Windows'
68-
# Ideally (but too slow):
69-
#run: vcpkg install sfml lua zlib libpng freetype glew sdl2 sdl2-ttf sdl2-image
70-
# Pre-compiled dependencies:
71-
shell: bash
72-
working-directory: ${{github.workspace}}/dependencies
73-
run: unzip windows-dependencies-${{matrix.platform.compiler}}-${{matrix.platform.arch}}.zip
74-
75-
- name: Get MacOS dependencies
76-
if: runner.os == 'macOS'
77-
run: brew install sfml@2 lua libpng freetype glew sdl2 sdl2_ttf sdl2_image
78-
7995
- name: Configure CMake
8096
shell: bash
8197
working-directory: ${{github.workspace}}/build
82-
run: ${{matrix.platform.cmakepp}} cmake .. -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DLXGUI_BUILD_EXAMPLES=0 -DCMAKE_INSTALL_PREFIX=`pwd`/../dependencies ${{matrix.platform.flags}}
98+
run: |
99+
source ../dependencies/conanbuild.sh
100+
cmake .. \
101+
-DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
102+
-DCMAKE_TOOLCHAIN_FILE=`pwd`/../dependencies/conan_toolchain.cmake \
103+
-DLXGUI_BUILD_EXAMPLES=OFF \
104+
-DLXGUI_DEV=ON \
105+
-DCMAKE_INSTALL_PREFIX=`pwd`/../install \
106+
${{matrix.platform.cmake-flags}}
83107
84108
- name: Build
85109
shell: bash
86110
working-directory: ${{github.workspace}}/build
87-
run: cmake --build . --config ${BUILD_TYPE} --parallel 2
111+
run: |
112+
source ../dependencies/conanbuild.sh
113+
cmake --build . --config ${BUILD_TYPE} --parallel 2
88114
89115
- name: Install
90116
shell: bash
91117
working-directory: ${{github.workspace}}/build
92-
run: cmake --install . --config ${BUILD_TYPE}
118+
run: |
119+
source ../dependencies/conanbuild.sh
120+
cmake --install . --config ${BUILD_TYPE}
93121
94122
- name: Build example SDL
95123
shell: bash
96124
working-directory: ${{github.workspace}}/build
97125
run: |
98126
rm -rf *
99-
${{matrix.platform.cmakepp}} cmake ../examples/sdl${{matrix.platform.suffix}} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DCMAKE_PREFIX_PATH=`pwd`/../dependencies ${{matrix.platform.flags}}
127+
source ../dependencies/conanbuild.sh
128+
cmake ../examples/sdl${{matrix.platform.suffix}} \
129+
-DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
130+
-DCMAKE_TOOLCHAIN_FILE=`pwd`/../dependencies/conan_toolchain.cmake \
131+
-DCMAKE_PREFIX_PATH=`pwd`/../install
100132
cmake --build . --config ${BUILD_TYPE} --parallel 2
101133
102134
- name: Build example OpenGL-SDL
103135
shell: bash
104136
working-directory: ${{github.workspace}}/build
105137
run: |
106138
rm -rf *
107-
${{matrix.platform.cmakepp}} cmake ../examples/opengl-sdl${{matrix.platform.suffix}} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DCMAKE_PREFIX_PATH=`pwd`/../dependencies ${{matrix.platform.flags}}
139+
source ../dependencies/conanbuild.sh
140+
cmake ../examples/opengl-sdl${{matrix.platform.suffix}} \
141+
-DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
142+
-DCMAKE_TOOLCHAIN_FILE=`pwd`/../dependencies/conan_toolchain.cmake \
143+
-DCMAKE_PREFIX_PATH=`pwd`/../install
108144
cmake --build . --config ${BUILD_TYPE} --parallel 2
109145
110146
- name: Build example SFML
@@ -113,7 +149,11 @@ jobs:
113149
working-directory: ${{github.workspace}}/build
114150
run: |
115151
rm -rf *
116-
${{matrix.platform.cmakepp}} cmake ../examples/sfml${{matrix.platform.suffix}} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DCMAKE_PREFIX_PATH=`pwd`/../dependencies ${{matrix.platform.flags}}
152+
source ../dependencies/conanbuild.sh
153+
cmake ../examples/sfml${{matrix.platform.suffix}} \
154+
-DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
155+
-DCMAKE_TOOLCHAIN_FILE=`pwd`/../dependencies/conan_toolchain.cmake \
156+
-DCMAKE_PREFIX_PATH=`pwd`/../install
117157
cmake --build . --config ${BUILD_TYPE} --parallel 2
118158
119159
- name: Build example OpenGL-SFML
@@ -122,7 +162,11 @@ jobs:
122162
working-directory: ${{github.workspace}}/build
123163
run: |
124164
rm -rf *
125-
${{matrix.platform.cmakepp}} cmake ../examples/opengl-sfml${{matrix.platform.suffix}} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DCMAKE_PREFIX_PATH=`pwd`/../dependencies ${{matrix.platform.flags}}
165+
source ../dependencies/conanbuild.sh
166+
cmake ../examples/opengl-sfml${{matrix.platform.suffix}} \
167+
-DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
168+
-DCMAKE_TOOLCHAIN_FILE=`pwd`/../dependencies/conan_toolchain.cmake \
169+
-DCMAKE_PREFIX_PATH=`pwd`/../install
126170
cmake --build . --config ${BUILD_TYPE} --parallel 2
127171
128172
- name: Prepare publish package

.github/workflows/codeql-analysis.yml

-79
This file was deleted.

.github/workflows/custom.ruleset

-9
This file was deleted.

.github/workflows/msvc-analysis.yml

-74
This file was deleted.

0 commit comments

Comments
 (0)