From 51545e4acbb6a613da5ee19110ca8c8d7fd39776 Mon Sep 17 00:00:00 2001 From: Georgios Pinitas Date: Tue, 11 Feb 2020 15:29:01 +0000 Subject: COMPMID-2819: Add semantic versioning Signed-off-by: Georgios Pinitas Change-Id: If413b3fd45d81281627a2cdeaadfaa565b376b4d Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/2724 Tested-by: Arm Jenkins Reviewed-by: Gian Marco Iodice Comments-Addressed: Arm Jenkins --- Android.bp | 1 + arm_compute/core/Utils.h | 9 +------- arm_compute/core/Version.h | 54 +++++++++++++++++++++++++++++++++++++++++++++ scripts/clang_tidy_rules.py | 2 +- src/core/Utils.cpp | 10 +-------- src/core/Version.cpp | 37 +++++++++++++++++++++++++++++++ 6 files changed, 95 insertions(+), 18 deletions(-) create mode 100644 arm_compute/core/Version.h create mode 100644 src/core/Version.cpp diff --git a/Android.bp b/Android.bp index e7ad65187f..34f000dc5a 100644 --- a/Android.bp +++ b/Android.bp @@ -401,6 +401,7 @@ cc_library_static { "src/core/TensorInfo.cpp", "src/core/Utils.cpp", "src/core/Validate.cpp", + "src/core/Version.cpp", "src/core/utils/helpers/fft.cpp", "src/core/utils/helpers/tensor_transform.cpp", "src/core/utils/io/FileHandler.cpp", diff --git a/arm_compute/core/Utils.h b/arm_compute/core/Utils.h index 22a1e7064d..7ab78be908 100644 --- a/arm_compute/core/Utils.h +++ b/arm_compute/core/Utils.h @@ -28,6 +28,7 @@ #include "arm_compute/core/PixelValue.h" #include "arm_compute/core/Rounding.h" #include "arm_compute/core/Types.h" +#include "arm_compute/core/Version.h" #include #include @@ -83,14 +84,6 @@ inline auto floor_to_multiple(S value, T divisor) -> decltype((value / divisor) return (value / divisor) * divisor; } -/** Returns the arm_compute library build information - * - * Contains the version number and the build options used to build the library - * - * @return The arm_compute library build information - */ -std::string build_information(); - /** Load an entire file in memory * * @param[in] filename Name of the file to read. diff --git a/arm_compute/core/Version.h b/arm_compute/core/Version.h new file mode 100644 index 0000000000..f88258f393 --- /dev/null +++ b/arm_compute/core/Version.h @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2020 ARM Limited. + * + * SPDX-License-Identifier: MIT + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +#ifndef ARM_COMPUTE_LIBRARY_VERSION_H +#define ARM_COMPUTE_LIBRARY_VERSION_H + +#include + +/* Macro utilities */ +#define STRINGIFY2(s) #s +#define STRINGIFY(s) STRINGIFY2(s) + +/* Semantic versioning */ +#define ARM_COMPUTE_VERSION_MAJOR 18 +#define ARM_COMPUTE_VERSION_MINOR 0 +#define ARM_COMPUTE_VERSION_PATCH 0 +#define ARM_COMPUTE_VERSION_UNRELEASED 1 + +#define ARM_COMPUTE_VERSION_STR \ + STRINGIFY(ARM_COMPUTE_VERSION_MAJOR) \ + "." STRINGIFY(ARM_COMPUTE_VERSION_MINOR) "." STRINGIFY(ARM_COMPUTE_VERSION_PATCH) + +namespace arm_compute +{ +/** Returns the arm_compute library build information + * + * Contains the version number and the build options used to build the library + * + * @return The arm_compute library build information + */ +std::string build_information(); +} // namespace arm_compute + +#endif /* ARM_COMPUTE_LIBRARY_VERSION_H */ diff --git a/scripts/clang_tidy_rules.py b/scripts/clang_tidy_rules.py index d251f29416..99bc5a63c8 100755 --- a/scripts/clang_tidy_rules.py +++ b/scripts/clang_tidy_rules.py @@ -49,7 +49,7 @@ def filter_clang_tidy_lines( lines ): continue if "error:" in line: - if (("Utils.cpp" in line and "arm_compute_version.embed" in line and "file not found" in line) or + if (("Version.cpp" in line and "arm_compute_version.embed" in line and "file not found" in line) or ("arm_fp16.h" in line) or ("omp.h" in line) or ("cast from pointer to smaller type 'uintptr_t' (aka 'unsigned int') loses information" in line) or diff --git a/src/core/Utils.cpp b/src/core/Utils.cpp index 59dc3652fa..bca5a31914 100644 --- a/src/core/Utils.cpp +++ b/src/core/Utils.cpp @@ -35,15 +35,7 @@ #include using namespace arm_compute; -#ifndef DOXYGEN_SKIP_THIS -std::string arm_compute::build_information() -{ - static const std::string information = -#include "arm_compute_version.embed" - ; - return information; -} -#endif /* DOXYGEN_SKIP_THIS */ + std::string arm_compute::read_file(const std::string &filename, bool binary) { std::string out; diff --git a/src/core/Version.cpp b/src/core/Version.cpp new file mode 100644 index 0000000000..fbbb6d8ebe --- /dev/null +++ b/src/core/Version.cpp @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2020 ARM Limited. + * + * SPDX-License-Identifier: MIT + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +#include "arm_compute/core/Version.h" + +namespace arm_compute +{ +#ifndef DOXYGEN_SKIP_THIS +std::string build_information() +{ + static const std::string information = +#include "arm_compute_version.embed" + ; + return information; +} +#endif /* DOXYGEN_SKIP_THIS */ +} // namespace arm_compute -- cgit v1.2.1