master
sh 106 lines 2.69 KB
Raw
1 #!/bin/bash
2
3 REPO_ROOT="$(dirname "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" > /dev/null && pwd -P)")")"
4 CMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE:-RelWithDebInfo}"
5
6 # shellcheck source=./win-build-dir.sh
7 . "${REPO_ROOT}/packaging/windows/win-build-dir.sh"
8
9 set -eu -o pipefail
10
11 windows_path_prefix=
12 windows_path_prefix_arg=()
13
14 usage() {
15 cat <<EOF
16 Usage: $0 [options]
17
18 Options:
19 --windows-path-prefix <path> Override NETDATA_WINDOWS_PATH_PREFIX for this build.
20 --help Show this help message.
21 EOF
22 }
23
24 while [ $# -gt 0 ]; do
25 case "$1" in
26 --windows-path-prefix)
27 if [ $# -lt 2 ]; then
28 echo "Missing value for --windows-path-prefix" >&2
29 exit 1
30 fi
31 windows_path_prefix="$2"
32 shift 2
33 ;;
34 --help|-h)
35 usage
36 exit 0
37 ;;
38 *)
39 echo "Unrecognized option '$1'" >&2
40 usage >&2
41 exit 1
42 ;;
43 esac
44 done
45
46 if [ -n "${windows_path_prefix}" ]; then
47 windows_path_prefix_arg=("-DNETDATA_WINDOWS_PATH_PREFIX=${windows_path_prefix}")
48 fi
49
50 if [ -d "${build}" ]; then
51 rm -rf "${build}"
52 fi
53
54 generator="Unix Makefiles"
55 build_args="-j $(nproc)"
56
57 if command -v ninja >/dev/null 2>&1; then
58 generator="Ninja"
59 build_args="-k 1"
60 fi
61
62 COMMON_CFLAGS="-Wa,-mbig-obj -pipe -D_FILE_OFFSET_BITS=64 -D__USE_MINGW_ANSI_STDIO=1"
63
64 if [ "${CMAKE_BUILD_TYPE}" = "Debug" ]; then
65 BUILD_CFLAGS="-O0 -ggdb -Wall -Wextra -Wno-char-subscripts -DNETDATA_INTERNAL_CHECKS=1 ${COMMON_CFLAGS} ${CFLAGS:-}"
66 else
67 BUILD_CFLAGS="-O2 ${COMMON_CFLAGS} ${CFLAGS:-}"
68 fi
69
70 ${GITHUB_ACTIONS+echo "::group::Configuring"}
71 # shellcheck disable=SC2086
72 CFLAGS="${BUILD_CFLAGS}" /usr/bin/cmake \
73 -S "${REPO_ROOT}" \
74 -B "${build}" \
75 -G "${generator}" \
76 -DCMAKE_INSTALL_PREFIX="/opt/netdata" \
77 -DBUILD_FOR_PACKAGING=On \
78 -DNETDATA_USER="${USER}" \
79 -DENABLE_ACLK=On \
80 -DENABLE_CLOUD=On \
81 -DENABLE_ML=On \
82 -DENABLE_PLUGIN_GO=On \
83 -DENABLE_EXPORTER_PROMETHEUS_REMOTE_WRITE=Off \
84 -DENABLE_PLUGIN_OTEL=Off \
85 -DENABLE_PLUGIN_SYSTEMD_JOURNAL=Off \
86 -DENABLE_BUNDLED_JSONC=On \
87 -DENABLE_BUNDLED_PROTOBUF=Off \
88 -DRust_COMPILER=/ucrt64/bin/rustc \
89 "${windows_path_prefix_arg[@]}" \
90 ${EXTRA_CMAKE_OPTIONS:-}
91 ${GITHUB_ACTIONS+echo "::endgroup::"}
92
93 ${GITHUB_ACTIONS+echo "::group::Building"}
94 # shellcheck disable=SC2086
95 cmake --build "${build}" -- ${build_args}
96 ${GITHUB_ACTIONS+echo "::endgroup::"}
97
98 ${GITHUB_ACTIONS+echo "::group::Netdata buildinfo"}
99 "${build}/netdata.exe" -W buildinfo || true
100 ${GITHUB_ACTIONS+echo "::endgroup::"}
101
102 if [ -t 1 ]; then
103 echo
104 echo "Compile with:"
105 echo "cmake --build \"${build}\""
106 fi