summaryrefslogtreecommitdiff
path: root/scripts/command/configure
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}" "$@"