diff options
Diffstat (limited to 'infra/onert-micro/cmake')
9 files changed, 154 insertions, 0 deletions
diff --git a/infra/onert-micro/cmake/ApplyCompileFlags.cmake b/infra/onert-micro/cmake/ApplyCompileFlags.cmake new file mode 100644 index 000000000..fb99fbd26 --- /dev/null +++ b/infra/onert-micro/cmake/ApplyCompileFlags.cmake @@ -0,0 +1,35 @@ +# +# Platform independent compile flag setting +# +# flags for build type: debug, release +set(CMAKE_C_FLAGS_DEBUG "-O0 -g -DDEBUG") +set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g -DDEBUG") +set(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG") +set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG") + +# +# Platform specific compile flag setting +# +if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/buildtool/config/config_${TARGET_PLATFORM}.cmake") + include("${CMAKE_CURRENT_LIST_DIR}/buildtool/config/config_${TARGET_PLATFORM}.cmake") +endif() + +# +# Apply compile flags +# note: this should be placed after cmake/buildtool/config/config_xxx.cmake files +# +# add common flags +foreach(FLAG ${FLAGS_COMMON}) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${FLAG}") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${FLAG}") +endforeach() + +# add c flags +foreach(FLAG ${FLAGS_CONLY}) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${FLAG}") +endforeach() + +# add cxx flags +foreach(FLAG ${FLAGS_CXXONLY}) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${FLAG}") +endforeach() diff --git a/infra/onert-micro/cmake/CfgOptionFlags.cmake b/infra/onert-micro/cmake/CfgOptionFlags.cmake new file mode 100644 index 000000000..ffbc7b255 --- /dev/null +++ b/infra/onert-micro/cmake/CfgOptionFlags.cmake @@ -0,0 +1,18 @@ +# Platform specific configuration +# note: this should be placed before default setting for option setting priority +# (platform specific setting have higher priority) +# +include("${NNAS_PROJECT_SOURCE_DIR}/infra/onert-micro/cmake/options/options_${TARGET_PLATFORM}.cmake") + +### +### Configuration +### +option(DOWNLOAD_RUY "Download ruy source" ON) +option(DOWNLOAD_EIGEN "Download Eigen source" ON) +option(DOWNLOAD_GEMMLOWP "Download GEMM low precesion library source" ON) +option(DOWNLOAD_FLATBUFFERS "Download FlatBuffers source" ON) +option(BUILD_FLATBUFFERS "Locally build Flatbuffers from the downloaded source" ON) +option(DOWNLOAD_TENSORFLOW "Download TensorFlow source" ON) + +option(DOWNLOAD_GTEST "Download Google Test source" ON) +option(BUILD_GTEST "Build Google Test from the downloaded source" ON) diff --git a/infra/onert-micro/cmake/buildtool/config/arm-none-eabi-gcc.cmake b/infra/onert-micro/cmake/buildtool/config/arm-none-eabi-gcc.cmake new file mode 100644 index 000000000..544be030a --- /dev/null +++ b/infra/onert-micro/cmake/buildtool/config/arm-none-eabi-gcc.cmake @@ -0,0 +1,66 @@ +set(CMAKE_SYSTEM_NAME Generic) + +set(CMAKE_SYSTEM_PROCESSOR "${CPU_ARCH}") +set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) +set(CMAKE_C_COMPILER "${C_COMPILER}") +set(CMAKE_CXX_COMPILER "${CXX_COMPILER}") +set(CMAKE_ASM_COMPILER "${ASM_COMPILER}") +set(CMAKE_OBJCOPY "${OBJCOPY}") + +set(TARGET_CPU "cortex-m4" CACHE STRING "Target CPU") + +# Convert TARGET_CPU=Cortex-M33+nofp+nodsp into +# - CMAKE_SYSTEM_PROCESSOR=cortex-m33 +# - TARGET_CPU_FEATURES=no-fp;no-dsp +string(REPLACE "+" ";" TARGET_CPU_FEATURES ${TARGET_CPU}) +list(POP_FRONT TARGET_CPU_FEATURES CMAKE_SYSTEM_PROCESSOR) +string(TOLOWER ${CMAKE_SYSTEM_PROCESSOR} CMAKE_SYSTEM_PROCESSOR) + +set(CMAKE_EXECUTABLE_SUFFIX ".elf") +set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) +set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) +set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) +set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) + +# Select C/C++ version +set(CMAKE_C_STANDARD 99) +set(CMAKE_CXX_STANDARD 14) + +# Compile options +add_compile_options( + -mcpu=${TARGET_CPU} + -mthumb + "$<$<CONFIG:DEBUG>:-gdwarf-3>" + "$<$<COMPILE_LANGUAGE:CXX>:-funwind-tables;-frtti;-fexceptions>") + +# Compile definescd +add_compile_definitions( + "$<$<NOT:$<CONFIG:DEBUG>>:NDEBUG>") + +# Link options +add_link_options( + -mcpu=${TARGET_CPU} + -mthumb + --specs=nosys.specs) + +# Set floating point unit +if("${TARGET_CPU}" MATCHES "\\+fp") + set(FLOAT hard) +elseif("${TARGET_CPU}" MATCHES "\\+nofp") + set(FLOAT soft) +elseif("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "cortex-m33" OR + "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "cortex-m55") + set(FLOAT hard) +else() + set(FLOAT soft) +endif() + +if (FLOAT) + add_compile_options(-mfloat-abi=${FLOAT}) + add_link_options(-mfloat-abi=${FLOAT}) +endif() + +# Compilation warnings +add_compile_options( + -Wno-all +) diff --git a/infra/onert-micro/cmake/buildtool/config/config_linux.cmake b/infra/onert-micro/cmake/buildtool/config/config_linux.cmake new file mode 100644 index 000000000..d7b17cfef --- /dev/null +++ b/infra/onert-micro/cmake/buildtool/config/config_linux.cmake @@ -0,0 +1,11 @@ +# +# linux common compile options +# + +# Disable annoying ABI compatibility warning. +if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 7.0) + list(APPEND FLAGS_CXXONLY "-Wno-psabi") +endif() + +# lib pthread as a variable (pthread must be disabled on android) +set(LIB_PTHREAD pthread) diff --git a/infra/onert-micro/cmake/buildtool/config/config_x86_64-linux.cmake b/infra/onert-micro/cmake/buildtool/config/config_x86_64-linux.cmake new file mode 100644 index 000000000..528e48396 --- /dev/null +++ b/infra/onert-micro/cmake/buildtool/config/config_x86_64-linux.cmake @@ -0,0 +1,12 @@ +# +# x86_64 linux compile options +# +message(STATUS "Building for x86-64 Linux") + +# include linux common +include("cmake/buildtool/config/config_linux.cmake") + +# SIMD for x86 +set(FLAGS_COMMON ${FLAGS_COMMON} + "-msse4" + ) diff --git a/infra/onert-micro/cmake/options/options_armv7-r-generic.cmake b/infra/onert-micro/cmake/options/options_armv7-r-generic.cmake new file mode 100644 index 000000000..d671b73f1 --- /dev/null +++ b/infra/onert-micro/cmake/options/options_armv7-r-generic.cmake @@ -0,0 +1,3 @@ +# +# armv7em generic cmake options +# diff --git a/infra/onert-micro/cmake/options/options_armv7em-generic.cmake b/infra/onert-micro/cmake/options/options_armv7em-generic.cmake new file mode 100644 index 000000000..d671b73f1 --- /dev/null +++ b/infra/onert-micro/cmake/options/options_armv7em-generic.cmake @@ -0,0 +1,3 @@ +# +# armv7em generic cmake options +# diff --git a/infra/onert-micro/cmake/options/options_armv8-m-generic.cmake b/infra/onert-micro/cmake/options/options_armv8-m-generic.cmake new file mode 100644 index 000000000..cbd70de7d --- /dev/null +++ b/infra/onert-micro/cmake/options/options_armv8-m-generic.cmake @@ -0,0 +1,3 @@ +# +# armv8-m generic cmake options +# diff --git a/infra/onert-micro/cmake/options/options_x86_64-linux.cmake b/infra/onert-micro/cmake/options/options_x86_64-linux.cmake new file mode 100644 index 000000000..0fb72f18b --- /dev/null +++ b/infra/onert-micro/cmake/options/options_x86_64-linux.cmake @@ -0,0 +1,3 @@ +# +# x86_64 linux cmake options +# |