blob: 3b654d677da7fdd8827e82173ef92769698d1288 (
plain)
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
|
#!/bin/bash
source "${NNFW_SCRIPT_PATH}/config/build.configuration"
# Set target platform using environment variable
# TODO: use argument instead of environment variable
TARGET_ARCH=${TARGET_ARCH:-$(uname -p)}
BUILD_TYPE=${BUILD_TYPE:-Debug}
CROSS_BUILD=${CROSS_BUILD:-0}
HOST_OS=${HOST_OS:-linux}
TARGET_OS=${TARGET_OS:-linux}
## TODO: fix obs build break
OBS_BUILD=${OBS_BUILD:-OFF}
COVERAGE_BUILD=${COVERAGE_BUILD:-0}
BENCHMARK_ACL_BUILD=${BENCHMARK_ACL_BUILD:-0}
OPTIONS=${OPTIONS:-}
# make TARGET and TYPE to lowercase
TARGET_ARCH_LC="$(echo ${TARGET_ARCH} | tr A-Z a-z)"
BUILD_TYPE_LC="$(echo ${BUILD_TYPE} | tr A-Z a-z)"
if [ "${TARGET_ARCH_LC}" == *"arm64"* ]; then
# arm64 as target-arch comes from Android
if [ ! -z ${ROOTFS_DIR} ]; then
ROOTFS_ARM64="${ROOTFS_DIR}"
export ROOTFS_ARM64
fi
# For now Android is the only option for arm64
TARGET_OS=android
elif [ "${TARGET_ARCH_LC}" == *"arm"* ]; then
if [ ! -z ${ROOTFS_DIR} ] ; then
ROOTFS_ARM="${ROOTFS_DIR}"
export ROOTFS_ARM
fi
elif [ "${TARGET_ARCH_LC}" == *"aarch64"* ]; then
# aarch64 as target-arch comes from all except for Android
if [ ! -z ${ROOTFS_DIR} ] ; then
ROOTFS_ARM64="${ROOTFS_DIR}"
export ROOTFS_ARM64
fi
fi
# Todo: we may set CROSS_BUILD=1 when ROOTFS_DIR is given
# the toolchain file, only for cross build
if [ "${CROSS_BUILD}" == "1" ]; then
TOOLCHAIN_FILE="cmake/config/config_${TARGET_ARCH_LC}-${TARGET_OS}.cmake"
OPTION_TOOLCHAIN="-DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_FILE}"
else
OPTION_TOOLCHAIN=
fi
if [ "${COVERAGE_BUILD}" == "1" ]; then
OPTIONS+=" -DCOVERAGE_BUILD=1"
else
OPTIONS+=" -DCOVERAGE_BUILD=0"
fi
if [ "${BENCHMARK_ACL_BUILD}" == "1" ]; then
OPTIONS+=" -DBUILD_BENCHMARK_ACL=1"
fi
WORK_FOLDER=${TARGET_ARCH_LC}-${TARGET_OS}.${BUILD_TYPE_LC}
WORK_PATH=${NNFW_PROJECT_PATH}/${WORKSPACE_RPATH}/${WORK_FOLDER}
BUILD_PATH=${WORK_PATH}/obj
INSTALL_PATH=${NNFW_INSTALL_PATH:-${WORK_PATH}/out}
mkdir -vp ${BUILD_PATH}
mkdir -vp ${INSTALL_PATH}
rm -rf ${BUILD_ALIAS}
rm -rf ${INSTALL_ALIAS}
ln -s ${BUILD_PATH} ${BUILD_ALIAS}
ln -s ${INSTALL_PATH} ${INSTALL_ALIAS}
cd "${BUILD_PATH}"
cmake \
-B${BUILD_PATH} -H${NNFW_PROJECT_PATH} \
-DCMAKE_INSTALL_PREFIX=${INSTALL_PATH} \
-DCMAKE_BUILD_TYPE=${BUILD_TYPE_LC} -DTARGET_ARCH=${TARGET_ARCH_LC} \
-DHOST_OS=${HOST_OS} \
-DTARGET_OS=${TARGET_OS} \
-DOBS_BUILD=${OBS_BUILD} \
${OPTION_TOOLCHAIN} \
${OPTIONS} \
"${NNFW_PROJECT_PATH}" "$@"
|