-
Notifications
You must be signed in to change notification settings - Fork 4
130 lines (112 loc) · 4.96 KB
/
windows.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
name: Windows CI
on:
push:
branches-ignore:
- "ghxyz"
paths:
- "conanfile.py"
- ".github/workflows/windows.yml"
- "environment/cmake/**"
- "source/**"
- "!source/qa/python/qa/**"
jobs:
build:
strategy:
matrix:
os: ["windows-2022"]
vs:
# - { name: "Visual Studio 16 2019", version: "16"} # , toolset: "v142" }
- { name: "Visual Studio 17 2022", version: "17"} # , toolset: "v143" }
# toolset: ["14.2", "14.3"]
python-version: ["3.9"]
architecture: ["amd64"]
fail-fast: false
runs-on: ${{ matrix.os }}
name: ${{ matrix.os }} / ${{ matrix.vs.name }} / python - ${{ matrix.python-version }}
steps:
- name: checkout lue
uses: actions/checkout@v3
- uses: conda-incubator/setup-miniconda@v2
with:
auto-update-conda: true
python-version: ${{ matrix.python-version }}
channels: conda-forge
- shell: bash -l {0}
run: |
# Don't install C++ libraries with Conda. Use Conan for that. The Conan compiler
# settings are used when building LUE. Mixing Conda/Conan packages likely results
# in conflicts. Make an exception for numpy. Use Conda only for Python packages.
# conda-build provides the conda-develop command used below
# TODO Use the GDAL Conan package instead of the Conda package, once the GDAL
# Conan package actually works
conda install \
conda-build \
docopt \
gdal \
jinja2 \
matplotlib \
ninja \
numpy \
pip
# Use conan from pypi to get the latest version
pip install "conan>=2"
# TODO Write host/build profiles and use those
conan profile detect
- uses: ilammy/msvc-dev-cmd@v1
with:
arch: ${{ matrix.architecture }}
# toolset: ${{ matrix.toolset }}
vsversion: ${{ matrix.vs.version }}
- name: configure lue
shell: bash -l {0}
run: |
mkdir $GITHUB_WORKSPACE/../build
# TODO Use the GDAL Conan package instead of the Conda package, once the GDAL
# Conan package actually works
# gdal hdf5
LUE_CONAN_PACKAGES="boost docopt.cpp fmt glfw hwloc imgui mimalloc nlohmann_json pybind11 span-lite vulkan-headers vulkan-loader" conan install . \
--profile=default \
--settings:host compiler.cppstd=17 \
--settings:build compiler.cppstd=17 \
--settings:build build_type=Release \
--build=missing \
--output-folder=$GITHUB_WORKSPACE/../build
CMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/../build \
cmake --preset conan-release \
-B $GITHUB_WORKSPACE/../build \
-D LUE_BUILD_QA=TRUE \
-D LUE_QA_WITH_PYTHON_API=TRUE \
-D LUE_QA_WITH_TESTS=TRUE \
-D LUE_QA_TEST_NR_LOCALITIES_PER_TEST=1 \
-D LUE_QA_TEST_NR_THREADS_PER_LOCALITY=2 \
-D LUE_DATA_MODEL_WITH_PYTHON_API=TRUE \
-D LUE_DATA_MODEL_WITH_UTILITIES=TRUE \
-D LUE_FRAMEWORK_WITH_PYTHON_API=TRUE \
-D LUE_BUILD_HPX=TRUE \
-D HPX_USE_CMAKE_CXX_STANDARD=TRUE \
-D HPX_WITH_MALLOC="mimalloc" \
-D HPX_WITH_PKGCONFIG=FALSE \
-D HPX_WITH_EXAMPLES=FALSE \
-D HPX_WITH_TESTS=FALSE
- name: build lue
shell: bash -l {0}
run: |
cmake --build $GITHUB_WORKSPACE/../build --target all
- name: test lue
shell: bash -l {0}
run: |
cd $GITHUB_WORKSPACE/../build
ctest --output-on-failure
- name: install lue runtime component
shell: bash -l {0}
run: |
cmake --install $GITHUB_WORKSPACE/../build --prefix install --component runtime
cmake --install $GITHUB_WORKSPACE/../build --prefix install --component lue_runtime
export PATH="`pwd`/install/bin:$PATH"
install/bin/lue_translate --version
install/bin/lue_validate --version
install/bin/lue_view --version
# Add our package to the set of Conda packages
conda-develop install/lib/python${{ matrix.python-version }}
install/bin/lue_scalability --version
python -c "import lue, lue.data_model, lue.framework, lue.pcraster, lue.qa.scalability; print(lue.__version__)"