Improve reusability of code that is defined out by cmake build paths
* Added new ARMNN_STUB_PROFILING and ARMNN_DISABLE_DYNAMIC_BACKEND
defines to replace BUILD_BARE_METAL and BUILD_EXECUTE_NETWORK_STATIC
* Add new CMake variables to disable sample apps and dynamic backends
* Improve BUILD_SHARED_LIBS CMake variable
* Add new archive output location to various libraries so that the
static libraries appear in the same location as the shared libraries
* Fixes for bare metal build
* Add ARMNN_DISABLE_FILE_SYSTEM defines to missing locations
Signed-off-by: Ryan OShea <ryan.oshea3@arm.com>
Change-Id: I1db9a8f483e7134bd261294b35240cf21b150d45
diff --git a/cmake/GlobalConfig.cmake b/cmake/GlobalConfig.cmake
index 3337f41..2d97899 100644
--- a/cmake/GlobalConfig.cmake
+++ b/cmake/GlobalConfig.cmake
@@ -7,6 +7,7 @@
option(BUILD_ONNX_PARSER "Build Onnx parser" OFF)
option(BUILD_UNIT_TESTS "Build unit tests" ON)
option(BUILD_TESTS "Build test applications" OFF)
+option(ARMNN_SAMPLE_APPS_ENABLED "Build Sample ArmNN Applications" ON)
option(BUILD_FOR_COVERAGE "Use no optimization and output .gcno and .gcda files" OFF)
option(ARMCOMPUTENEON "Build with ARM Compute NEON support" OFF)
option(ARMCOMPUTECL "Build with ARM Compute OpenCL support" OFF)
@@ -56,7 +57,11 @@
BUILD_TIMELINE_DECODER=0
BUILD_BASE_PIPE_SERVER=0
BUILD_UNIT_TESTS=0
- BUILD_GATORD_MOCK=0" OFF)
+ ARMNN_SAMPLE_APPS_ENABLED=0
+ BUILD_SHARED_LIBS=0
+ BUILD_GATORD_MOCK=0
+ HEAP_PROFILING=0
+ LEAK_CHECKING=0" OFF)
if(BUILD_ARMNN_TFLITE_DELEGATE)
message(BUILD_ARMNN_TFLITE_DELEGATE option is deprecated, it will be removed in 24.02, please use BUILD_CLASSIC_DELEGATE instead)
@@ -160,16 +165,23 @@
if(EXECUTE_NETWORK_STATIC)
add_definitions(-DARMNN_DISABLE_SOCKETS
- -DBUILD_SHARED_LIBS=0
- -DARMNN_EXECUTE_NETWORK_STATIC)
+ -DARMNN_STUB_PROFILING
+ -DARMNN_DISABLE_DYNAMIC_BACKENDS)
+ set(ARMNN_SAMPLE_APPS_ENABLED 0)
+ set(DISABLE_DYNAMIC_BACKENDS 1)
+ set(BUILD_SHARED_LIBS 0)
endif()
if(BUILD_BARE_METAL)
add_definitions(-DARMNN_BUILD_BARE_METAL
- -DARMNN_DISABLE_FILESYSTEM
- -DARMNN_DISABLE_PROCESSES
- -DARMNN_DISABLE_THREADS
- -DARMNN_DISABLE_SOCKETS)
+ -DARMNN_DISABLE_FILESYSTEM
+ -DARMNN_DISABLE_PROCESSES
+ -DARMNN_DISABLE_THREADS
+ -DARMNN_DISABLE_SOCKETS
+ -DARMNN_STUB_PROFILING
+ -DARMNN_DISABLE_DYNAMIC_BACKENDS)
+ set(DISABLE_DYNAMIC_BACKENDS 1)
+ set(BUILD_SHARED_LIBS 0)
endif()
if (NOT BUILD_PIPE_ONLY)
@@ -452,7 +464,6 @@
add_definitions(-DARMNN_STREAMLINE_ENABLED)
endif()
-if(NOT BUILD_BARE_METAL AND NOT EXECUTE_NETWORK_STATIC)
if(HEAP_PROFILING OR LEAK_CHECKING)
find_path(HEAP_PROFILER_INCLUDE gperftools/heap-profiler.h
PATHS ${GPERFTOOLS_ROOT}/include
@@ -472,8 +483,8 @@
endif()
else()
# Valgrind only works with gperftools version number <= 2.4
- CHECK_INCLUDE_FILE(valgrind/memcheck.h VALGRIND_FOUND)
-endif()
+ include(CheckIncludeFiles)
+ CHECK_INCLUDE_FILES("valgrind/memcheck.h" VALGRIND_FOUND)
endif()
if(NOT BUILD_TF_LITE_PARSER)