-
Notifications
You must be signed in to change notification settings - Fork 87
/
Copy pathbuild.sh
executable file
·67 lines (52 loc) · 1.61 KB
/
build.sh
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
#!/bin/bash
# Copyright (c) 2023-2024, NVIDIA CORPORATION.
# cuvs empty project template build script
# Abort script on first error
set -e
PARALLEL_LEVEL=${PARALLEL_LEVEL:=`nproc`}
BUILD_TYPE=Release
BUILD_DIR=build/
CUVS_REPO_REL=""
EXTRA_CMAKE_ARGS=""
BUILD_ALL_GPU_ARCH=0
if hasArg --allgpuarch; then
BUILD_ALL_GPU_ARCH=1
fi
# Root of examples
EXAMPLES_DIR=$(dirname "$(realpath "$0")")
if [[ ${CUVS_REPO_REL} != "" ]]; then
CUVS_REPO_PATH="`readlink -f \"${CUVS_REPO_REL}\"`"
EXTRA_CMAKE_ARGS="${EXTRA_CMAKE_ARGS} -DCPM_cuvs_SOURCE=${CUVS_REPO_PATH}"
else
LIB_BUILD_DIR=${LIB_BUILD_DIR:-$(readlink -f "${EXAMPLES_DIR}/../cpp/build")}
EXTRA_CMAKE_ARGS="${EXTRA_CMAKE_ARGS} -Dcuvs_ROOT=${LIB_BUILD_DIR}"
fi
if [ "$1" == "clean" ]; then
rm -rf build
exit 0
fi
if (( ${BUILD_ALL_GPU_ARCH} == 0 )); then
CUVS_CMAKE_CUDA_ARCHITECTURES="NATIVE"
echo "Building for the architecture of the GPU in the system..."
else
CUVS_CMAKE_CUDA_ARCHITECTURES="RAPIDS"
echo "Building for *ALL* supported GPU architectures..."
fi
################################################################################
# Add individual libcuvs examples build scripts down below
build_example() {
example_dir=${1}
example_dir="${EXAMPLES_DIR}/${example_dir}"
build_dir="${example_dir}/build"
# Configure
cmake -S ${example_dir} -B ${build_dir} \
-DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
-DCUVS_NVTX=OFF \
-DCMAKE_CUDA_ARCHITECTURES=${CUVS_CMAKE_CUDA_ARCHITECTURES} \
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
${EXTRA_CMAKE_ARGS}
# Build
cmake --build ${build_dir} -j${PARALLEL_LEVEL}
}
build_example c
build_example cpp