From: Guillaume Gardet Date: Tue, 15 Oct 2019 06:47:26 +0000 (+0200) Subject: Move version definition to its own file X-Git-Tag: submit/tizen/20200316.035456~147 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5ae78299f117a61c48a67c5381341501571a0b03;p=platform%2Fupstream%2Farmnn.git 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 Signed-off-by: Matteo Martincigh Change-Id: Ib1a34d38b5f4c7490108ea91d930cf5417d1ca94 --- diff --git a/Android.mk b/Android.mk index 93402ff..b2a4233 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 0000000..82f0311 --- /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 499f721..e1af11e 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 0000000..239b2cc --- /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 9d73cd5..150d98b 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");