Imported Upstream version 1.19.0
[platform/core/ml/nnfw.git] / compiler / luci-micro / CMakeLists.txt
1 set(ARM_C_COMPILER "arm-none-eabi-gcc")
2 set(ARM_ASM_COMPILER "arm-none-eabi-gcc")
3 set(ARM_CXX_COMPILER "arm-none-eabi-g++")
4 set(ARM_OBJCOPY "arm-none-eabi-objcopy")
5
6 find_program(ARM_C_COMPILER_PATH ${ARM_C_COMPILER})
7
8 if(NOT ARM_C_COMPILER_PATH)
9   message(WARNING "ARM compiler is NOT FOUND, skipping luci-micro build")
10   return()
11 endif()
12
13 set(CMAKE_ARM_OPTIONS
14   -DLUCI_INTERPRETER_STATIC=ON
15   -DLUCI_STATIC=ON
16   -DBUILD_CMSIS_NN_FUNCTIONS=ON
17   -DTARGET_CPU=cortex-m7
18   "-DCMAKE_TOOLCHAIN_FILE=${NNAS_PROJECT_SOURCE_DIR}/infra/nncc/cmake/buildtool/config/arm-non-eabi-gcc.cmake"
19   "-DLUCI_INTERPRETER_PAL_DIR=${CMAKE_CURRENT_SOURCE_DIR}/../luci-interpreter/pal/mcu"
20   "-DNNAS_PROJECT_SOURCE_DIR=${NNAS_PROJECT_SOURCE_DIR}"
21   "-DNNAS_EXTERNALS_DIR=${NNAS_EXTERNALS_DIR}"
22   -DC_COMPILER=${ARM_C_COMPILER}
23   -DCXX_COMPILER=${ARM_CXX_COMPILER}
24   -DASM_COMPILER=${ARM_ASM_COMPILER}
25   -DOBJCOPY=${ARM_OBJCOPY}
26   -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
27   -DENABLE_TEST=OFF
28   -DBUILD_GTEST=OFF
29   "-DNNAS_ROOT=${NNAS_PROJECT_SOURCE_DIR}"
30   -DENABLE_STRICT_BUILD=OFF
31 )
32
33 set(MICRO_ARM_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}/standalone_arm")
34 file(MAKE_DIRECTORY "${MICRO_ARM_BUILD_DIR}")
35
36 set(MICRO_ARM_BUILD_DEPENDENCY "${MICRO_ARM_BUILD_DIR}/CMakeCache.txt")
37
38 add_custom_command(
39   OUTPUT "${MICRO_ARM_BUILD_DEPENDENCY}"
40   COMMAND "${CMAKE_COMMAND}" "${CMAKE_CURRENT_SOURCE_DIR}/standalone" ${CMAKE_ARM_OPTIONS}
41   WORKING_DIRECTORY "${MICRO_ARM_BUILD_DIR}"
42   DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/standalone/CMakeLists.txt"
43   VERBATIM
44 )
45
46 add_custom_target(luci_interpreter_micro_arm_cmake DEPENDS "${MICRO_ARM_BUILD_DEPENDENCY}")
47
48 set(MICRO_ARM_BINARY "${MICRO_ARM_BUILD_DIR}/compiler/luci-interpreter/src/libluci_interpreter.a")
49
50 add_custom_command(
51   OUTPUT "${MICRO_ARM_BINARY}"
52   COMMAND "${CMAKE_MAKE_PROGRAM}" luci_interpreter -j ${CPU_COUNT}
53   WORKING_DIRECTORY "${MICRO_ARM_BUILD_DIR}"
54   DEPENDS luci_interpreter_micro_arm_cmake
55   VERBATIM
56 )
57
58 add_custom_target(luci_interpreter_micro_arm DEPENDS "${MICRO_ARM_BINARY}")