Imported Upstream version 1.18.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   "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_CURRENT_SOURCE_DIR}/standalone/Toolchain.cmake"
17   "-DLUCI_INTERPRETER_PAL_DIR=${CMAKE_CURRENT_SOURCE_DIR}/../luci-interpreter/pal/mcu"
18   "-DNNAS_PROJECT_SOURCE_DIR=${NNAS_PROJECT_SOURCE_DIR}"
19   "-DNNAS_EXTERNALS_DIR=${NNAS_EXTERNALS_DIR}"
20   -DCPU_ARCH=arm
21   -DC_COMPILER=${ARM_C_COMPILER}
22   -DCXX_COMPILER=${ARM_CXX_COMPILER}
23   -DASM_COMPILER=${ARM_ASM_COMPILER}
24   -DOBJCOPY=${ARM_OBJCOPY}
25   -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
26   -DENABLE_TEST=OFF
27   -DBUILD_GTEST=OFF
28   "-DNNAS_ROOT=${NNAS_PROJECT_SOURCE_DIR}"
29   -DENABLE_STRICT_BUILD=OFF
30 )
31
32 set(MICRO_ARM_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}/standalone_arm")
33 file(MAKE_DIRECTORY "${MICRO_ARM_BUILD_DIR}")
34
35 set(MICRO_ARM_BUILD_DEPENDENCY "${MICRO_ARM_BUILD_DIR}/CMakeCache.txt")
36
37 add_custom_command(
38   OUTPUT "${MICRO_ARM_BUILD_DEPENDENCY}"
39   COMMAND "${CMAKE_COMMAND}" "${CMAKE_CURRENT_SOURCE_DIR}/standalone" ${CMAKE_ARM_OPTIONS}
40   WORKING_DIRECTORY "${MICRO_ARM_BUILD_DIR}"
41   DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/standalone/CMakeLists.txt"
42   VERBATIM
43 )
44
45 add_custom_target(luci_interpreter_micro_arm_cmake DEPENDS "${MICRO_ARM_BUILD_DEPENDENCY}")
46
47 set(MICRO_ARM_BINARY "${MICRO_ARM_BUILD_DIR}/compiler/luci-interpreter/src/libluci_interpreter.a")
48
49 add_custom_command(
50   OUTPUT "${MICRO_ARM_BINARY}"
51   COMMAND "${CMAKE_MAKE_PROGRAM}" luci_interpreter -j ${CPU_COUNT}
52   WORKING_DIRECTORY "${MICRO_ARM_BUILD_DIR}"
53   DEPENDS luci_interpreter_micro_arm_cmake
54   VERBATIM
55 )
56
57 add_custom_target(luci_interpreter_micro_arm DEPENDS "${MICRO_ARM_BINARY}")