16050
|
1 |
#!/usr/bin/env bash
|
|
2 |
|
|
3 |
compiler_kind="$1"
|
|
4 |
runner_os="$2"
|
|
5 |
target_abi="$3"
|
|
6 |
target_system_name="$4"
|
|
7 |
target_arch="$5"
|
|
8 |
|
|
9 |
set -e
|
|
10 |
|
|
11 |
if [[ -z "$GITHUB_OUTPUT" ]]; then
|
|
12 |
echo "Error: This script should only be run in github actions environment"
|
|
13 |
exit 1
|
|
14 |
fi
|
|
15 |
if [[ -z "${runner_os}" || -z "${target_abi}" || -z "${target_arch}" ]]; then
|
|
16 |
echo "Error: Not all required parameters where set"
|
|
17 |
exit 1
|
|
18 |
fi
|
|
19 |
if [[ -z "${compiler_kind}" || "${compiler_kind}" == "default" ]]; then
|
|
20 |
echo "compiler option was not set. Determining default compiler."
|
|
21 |
if [[ "${runner_os}" == "Windows" ]]; then
|
|
22 |
if [[ "${target_abi}" == "msvc" ]]; then
|
|
23 |
compiler_kind=msvc
|
|
24 |
elif [[ "${target_abi}" == "gnu" ]]; then
|
|
25 |
compiler_kind=gcc
|
|
26 |
else
|
|
27 |
echo "Unknown abi for Windows: ${target_abi}"
|
|
28 |
exit 1
|
|
29 |
fi
|
|
30 |
elif [[ "${runner_os}" == "macOS" ]]; then
|
|
31 |
compiler_kind="clang"
|
|
32 |
elif [[ "${runner_os}" == "Linux" ]]; then
|
|
33 |
compiler_kind="gcc"
|
|
34 |
else
|
|
35 |
echo "Unknown Runner OS: ${runner_os}"
|
|
36 |
exit 1
|
|
37 |
fi
|
|
38 |
fi
|
|
39 |
echo "Compiler Family: '${compiler_kind}'"
|
|
40 |
|
|
41 |
if [[ "${compiler_kind}" == "clang" ]]; then
|
|
42 |
c_compiler="clang"
|
|
43 |
cxx_compiler="clang++"
|
|
44 |
elif [[ "${compiler_kind}" == "msvc" ]]; then
|
|
45 |
c_compiler="cl"
|
|
46 |
cxx_compiler="cl"
|
|
47 |
elif [[ "${compiler_kind}" == "gcc" ]]; then
|
|
48 |
if [[ -z "${target_system_name}" ]]; then
|
|
49 |
c_compiler="gcc"
|
|
50 |
cxx_compiler="g++"
|
|
51 |
else
|
|
52 |
c_compiler="${target_arch}-linux-gnu-gcc"
|
|
53 |
cxx_compiler="${target_arch}-linux-gnu-g++"
|
|
54 |
fi
|
|
55 |
fi
|
|
56 |
echo "Chose C compiler: '${c_compiler}'"
|
|
57 |
echo "Chose C++ compiler: '${cxx_compiler}'"
|
|
58 |
echo "c_compiler=-DCMAKE_C_COMPILER=${c_compiler}" >> $GITHUB_OUTPUT
|
|
59 |
echo "cxx_compiler=-DCMAKE_CXX_COMPILER=${cxx_compiler}" >> $GITHUB_OUTPUT
|