aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuillaume Gardet <guillaume.gardet@arm.com>2019-10-15 08:47:26 +0200
committerMatteo Martincigh <matteo.martincigh@arm.com>2019-10-17 13:46:03 +0100
commit5ae78299f117a61c48a67c5381341501571a0b03 (patch)
treead0b4f11ee1f97e59a0f7317ba6c7801b0a64d67
parent6598427f7dc68f2c9ef6d683e80ec4627df52d58 (diff)
downloadarmnn-5ae78299f117a61c48a67c5381341501571a0b03.tar.gz
Move version definition to its own file
* Move the ArmNN version to a separate ArmnnVersion.txt file * Updated makefiles accordingly !referencetests:206978 !android-nn-driver:2110 Signed-off-by: Guillaume Gardet <guillaume.gardet@arm.com> Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com> Change-Id: Ib1a34d38b5f4c7490108ea91d930cf5417d1ca94
-rw-r--r--Android.mk14
-rw-r--r--ArmnnVersion.txt9
-rw-r--r--CMakeLists.txt1
-rw-r--r--cmake/ArmnnVersion.cmake25
-rw-r--r--include/armnn/Version.hpp14
5 files changed, 59 insertions, 4 deletions
diff --git a/Android.mk b/Android.mk
index 93402ff4a8..b2a4233a4d 100644
--- a/Android.mk
+++ b/Android.mk
@@ -6,7 +6,6 @@
LOCAL_PATH := $(call my-dir)
# Configure these paths if you move the source or Khronos headers
-#
OPENCL_HEADER_PATH := $(LOCAL_PATH)/../clframework/include
NN_HEADER_PATH := $(LOCAL_PATH)/../../../../frameworks/ml/nn/runtime/include
ARMNN_HEADER_PATH := $(LOCAL_PATH)/include
@@ -24,6 +23,11 @@ ARMNN_BACKEND_MAKEFILE_LOCAL_PATHS := $(wildcard $(LOCAL_PATH)/src/backends/*/ba
ARMNN_BACKEND_MAKEFILE_PATHS := $(subst $(LOCAL_PATH),,$(ARMNN_BACKEND_MAKEFILE_LOCAL_PATHS))
ARMNN_BACKEND_MAKEFILE_DIRS := $(subst /backend.mk,,$(ARMNN_BACKEND_MAKEFILE_PATHS))
+# Get ArmNN's version from file
+get_version_number = $(shell sed -n 's/.*$1 *\([0-9*]\)/\1/p' $(LOCAL_PATH)/ArmnnVersion.txt)
+ARMNN_VERSION := 20$(call get_version_number,ARMNN_MAJOR_VERSION)$(call get_version_number,ARMNN_MINOR_VERSION)$(call get_version_number,ARMNN_PATCH_VERSION)
+$(info armnn ARMNN_VERSION: $(ARMNN_VERSION))
+
##############
# libarmnn.a #
##############
@@ -207,7 +211,9 @@ LOCAL_CFLAGS := \
-std=$(CPP_VERSION) \
-fexceptions \
-Wno-unused-parameter \
- -frtti
+ -frtti \
+ -DARMNN_VERSION_FROM_FILE=$(ARMNN_VERSION)
+
# The variable to enable/disable the CL backend (ARMNN_COMPUTE_CL_ENABLED) is declared in android-nn-driver/Android.mk
ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
LOCAL_CFLAGS += \
@@ -280,7 +286,9 @@ LOCAL_CFLAGS := \
-std=$(CPP_VERSION) \
-fexceptions \
-frtti \
- -isystem vendor/arm/android-nn-driver/boost_1_64_0
+ -isystem vendor/arm/android-nn-driver/boost_1_64_0 \
+ -DARMNN_VERSION_FROM_FILE=$(ARMNN_VERSION)
+
# The variable to enable/disable the CL backend (ARMNN_COMPUTE_CL_ENABLED) is declared in android-nn-driver/Android.mk
ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
LOCAL_CFLAGS += \
diff --git a/ArmnnVersion.txt b/ArmnnVersion.txt
new file mode 100644
index 0000000000..82f0311dc7
--- /dev/null
+++ b/ArmnnVersion.txt
@@ -0,0 +1,9 @@
+#
+# Copyright © 2019 Arm Ltd. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
+
+# ArmNN version number components
+ARMNN_MAJOR_VERSION 19
+ARMNN_MINOR_VERSION 08
+ARMNN_PATCH_VERSION 00
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 499f721eb5..e1af11e6f4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -7,6 +7,7 @@ project(armnn)
set(additional_cmake_files)
list(APPEND additional_cmake_files
+ cmake/ArmnnVersion.cmake
cmake/Utils.cmake
cmake/GlobalConfig.cmake
cmake/AddDllCopyCommands.cmake)
diff --git a/cmake/ArmnnVersion.cmake b/cmake/ArmnnVersion.cmake
new file mode 100644
index 0000000000..239b2cc69e
--- /dev/null
+++ b/cmake/ArmnnVersion.cmake
@@ -0,0 +1,25 @@
+#
+# Copyright © 2019 Arm Ltd. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
+
+# Read the ArmNN version components from file
+file(READ ${CMAKE_CURRENT_LIST_DIR}/../ArmnnVersion.txt armnnVersion)
+
+# Parse the ArmNN version components
+string(REGEX MATCH "ARMNN_MAJOR_VERSION ([0-9]*)" _ ${armnnVersion})
+set(ARMNN_MAJOR_VERSION ${CMAKE_MATCH_1})
+string(REGEX MATCH "ARMNN_MINOR_VERSION ([0-9]*)" _ ${armnnVersion})
+set(ARMNN_MINOR_VERSION ${CMAKE_MATCH_1})
+string(REGEX MATCH "ARMNN_PATCH_VERSION ([0-9]*)" _ ${armnnVersion})
+set(ARMNN_PATCH_VERSION ${CMAKE_MATCH_1})
+
+# Put together the ArmNN version (YYYYMMPP)
+set(ARMNN_VERSION "20${ARMNN_MAJOR_VERSION}${ARMNN_MINOR_VERSION}${ARMNN_PATCH_VERSION}")
+
+# Pass the ArmNN version to the build
+if(${CMAKE_VERSION} VERSION_LESS "3.12.0")
+ add_definitions(-DARMNN_VERSION_FROM_FILE=${ARMNN_VERSION})
+else()
+ add_compile_definitions(ARMNN_VERSION_FROM_FILE=${ARMNN_VERSION})
+endif()
diff --git a/include/armnn/Version.hpp b/include/armnn/Version.hpp
index 9d73cd544c..150d98b87e 100644
--- a/include/armnn/Version.hpp
+++ b/include/armnn/Version.hpp
@@ -2,11 +2,23 @@
// Copyright © 2017 Arm Ltd. All rights reserved.
// SPDX-License-Identifier: MIT
//
+
#pragma once
+#if !defined(ARMNN_VERSION_FROM_FILE)
+#error "A valid version of ArmNN must be provided at compile time"
+#endif
+
+#define STRINGIFY_VALUE(s) STRINGIFY_MACRO(s)
+#define STRINGIFY_MACRO(s) #s
+
// YYYYMMPP
// where:
// YYYY = 4-digit year number
// MM = 2-digit month number
// PP = 2-digit patch number
-#define ARMNN_VERSION "20190800"
+// Defined in ArmnnVersion.txt
+#define ARMNN_VERSION STRINGIFY_VALUE(ARMNN_VERSION_FROM_FILE)
+
+// Check that the provided ArmNN version is valid
+static_assert(sizeof(ARMNN_VERSION) == 9, "Invalid ArmNN version, a valid version should have exactly 8 digits");