|
| 1 | +#!/usr/bin/env bash |
| 2 | +# Copyright 2024-2025 Nick Brassel (@tzarc) |
| 3 | +# SPDX-License-Identifier: GPL-2.0-or-later |
| 4 | + |
| 5 | +set -eEuo pipefail |
| 6 | + |
| 7 | +this_script=$(realpath "${BASH_SOURCE[0]}") |
| 8 | +script_dir=$(dirname "$this_script") |
| 9 | +source "$script_dir/common.bashinc" |
| 10 | +cd "$script_dir" |
| 11 | + |
| 12 | +build_one_help "$@" |
| 13 | +respawn_docker_if_needed "$@" |
| 14 | + |
| 15 | +source_dir="$script_dir/.repos/hidapi" |
| 16 | +for triple in "${triples[@]}"; do |
| 17 | + echo |
| 18 | + build_dir="$script_dir/.build/$(fn_os_arch_fromtriplet "$triple")/hidapi" |
| 19 | + xroot_dir="$script_dir/.xroot/$(fn_os_arch_fromtriplet "$triple")" |
| 20 | + mkdir -p "$build_dir" |
| 21 | + echo "Building hidapi for $triple => $build_dir" |
| 22 | + pushd "$build_dir" >/dev/null 2>&1 |
| 23 | + rm -rf "$build_dir/*" |
| 24 | + |
| 25 | + CFLAGS=$(pkg-config --with-path="$xroot_dir/lib/pkgconfig" --static --cflags libusb-1.0) |
| 26 | + LDFLAGS=$(pkg-config --with-path="$xroot_dir/lib/pkgconfig" --static --libs libusb-1.0) |
| 27 | + |
| 28 | + if [ -n "$(fn_os_arch_fromtriplet $triple | grep macos)" ]; then |
| 29 | + echo "MACOSX_DEPLOYMENT_TARGET=$MACOSX_DEPLOYMENT_TARGET" |
| 30 | + echo "SDK_VERSION=$SDK_VERSION" |
| 31 | + elif [ -n "$(fn_os_arch_fromtriplet $triple | grep windows)" ]; then |
| 32 | + CFLAGS="$CFLAGS -static" |
| 33 | + LDFLAGS="$LDFLAGS -static -pthread" |
| 34 | + else |
| 35 | + CFLAGS="$CFLAGS -static" |
| 36 | + LDFLAGS="$LDFLAGS -static -pthread" |
| 37 | + fi |
| 38 | + |
| 39 | + rcmd cmake "$source_dir" -DCMAKE_BUILD_TYPE=Release -G Ninja -DCMAKE_TOOLCHAIN_FILE="$script_dir/support/$(fn_os_arch_fromtriplet "$triple")-toolchain.cmake" -DCMAKE_PREFIX_PATH="$xroot_dir" -DCMAKE_INSTALL_PREFIX="$xroot_dir" -DCMAKE_C_FLAGS="$CFLAGS" -DCMAKE_EXE_LINKER_FLAGS="$LDFLAGS" -DBUILD_SHARED_LIBS=OFF -DHIDAPI_WITH_HIDRAW=OFF -DHIDAPI_WITH_LIBUSB=ON |
| 40 | + rcmd cmake --build . --target install -- -j$(nproc) |
| 41 | + popd >/dev/null 2>&1 |
| 42 | +done |
0 commit comments