From ff3c426ffd799abd66e4280da559384d86702721 Mon Sep 17 00:00:00 2001 From: Rob Hughes Date: Fri, 20 Dec 2019 17:43:16 +0000 Subject: Replace Schema.s with generated .cpp file This removes the dependency on an assembler (which must support .incbin). Instead we use xxd as a custom build command to generate a .cpp file which is included in the build. This makes it possible to build on Windows, for which you need cp.exe (from GNU Core Utils) and xxd.exe (from Vim). Change-Id: I3a929640b1fdbfc27e2c38abd05bf3a298245ba5 Signed-off-by: Robert Hughes --- CMakeLists.txt | 15 +++++++++++---- cmake/GlobalConfig.cmake | 1 - src/armnnTfLiteParser/test/ParserFlatbuffersFixture.hpp | 2 +- src/armnnTfLiteParser/test/Schema.hpp | 6 ++---- src/armnnTfLiteParser/test/Schema.s | 13 ------------- 5 files changed, 14 insertions(+), 23 deletions(-) delete mode 100644 src/armnnTfLiteParser/test/Schema.s diff --git a/CMakeLists.txt b/CMakeLists.txt index 7af6a94760..d0f3d7aebe 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -696,7 +696,6 @@ if(BUILD_UNIT_TESTS) endif() if(BUILD_TF_LITE_PARSER AND ARMNNREF) - enable_language(ASM) list(APPEND unittest_sources src/armnnTfLiteParser/test/Activations.cpp src/armnnTfLiteParser/test/Addition.cpp @@ -738,10 +737,18 @@ if(BUILD_UNIT_TESTS) src/armnnTfLiteParser/test/GetTensorIds.cpp src/armnnTfLiteParser/test/GetSubgraphInputsOutputs.cpp src/armnnTfLiteParser/test/GetInputsOutputs.cpp - src/armnnTfLiteParser/test/Schema.s ) - set_source_files_properties(src/armnnTfLiteParser/test/Schema.s PROPERTIES COMPILE_FLAGS "-x assembler-with-cpp") - + + # Generate SchemaText.cpp file which contains the TfLite schema text as a + # static C-array of bytes. This is needed at runtime for TfLite parser tests. + add_custom_command( + OUTPUT SchemaText.cpp + COMMAND cp ${TF_LITE_SCHEMA_INCLUDE_PATH}/schema.fbs g_TfLiteSchemaText + COMMAND xxd -i g_TfLiteSchemaText SchemaText.cpp + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + DEPENDS ${TF_LITE_SCHEMA_INCLUDE_PATH}/schema.fbs + ) + list(APPEND unittest_sources ${CMAKE_CURRENT_BINARY_DIR}/SchemaText.cpp) endif() if(BUILD_CAFFE_PARSER AND ARMNNREF) diff --git a/cmake/GlobalConfig.cmake b/cmake/GlobalConfig.cmake index e8b57d7526..4a2c026f1b 100644 --- a/cmake/GlobalConfig.cmake +++ b/cmake/GlobalConfig.cmake @@ -201,7 +201,6 @@ if(BUILD_TF_LITE_PARSER) message(STATUS "Tf Lite generated header found at: ${TF_LITE_SCHEMA_INCLUDE_PATH}") add_definitions(-DARMNN_TF_LITE_PARSER) - add_definitions(-DARMNN_TF_LITE_SCHEMA_PATH="${TF_LITE_SCHEMA_INCLUDE_PATH}/schema.fbs") endif() if(BUILD_ARMNN_SERIALIZER) diff --git a/src/armnnTfLiteParser/test/ParserFlatbuffersFixture.hpp b/src/armnnTfLiteParser/test/ParserFlatbuffersFixture.hpp index acca01b14a..797e11e403 100644 --- a/src/armnnTfLiteParser/test/ParserFlatbuffersFixture.hpp +++ b/src/armnnTfLiteParser/test/ParserFlatbuffersFixture.hpp @@ -101,7 +101,7 @@ struct ParserFlatbuffersFixture bool ReadStringToBinary() { - std::string schemafile(&tflite_schema_start, &tflite_schema_end); + std::string schemafile(g_TfLiteSchemaText, g_TfLiteSchemaText + g_TfLiteSchemaText_len); // parse schema first, so we can use it to parse the data after flatbuffers::Parser parser; diff --git a/src/armnnTfLiteParser/test/Schema.hpp b/src/armnnTfLiteParser/test/Schema.hpp index 49ecc0e4a4..243811553f 100644 --- a/src/armnnTfLiteParser/test/Schema.hpp +++ b/src/armnnTfLiteParser/test/Schema.hpp @@ -3,7 +3,5 @@ // SPDX-License-Identifier: MIT // -extern "C" { -extern const char tflite_schema_start; -extern const char tflite_schema_end; -} +extern unsigned char g_TfLiteSchemaText[]; +extern unsigned int g_TfLiteSchemaText_len; diff --git a/src/armnnTfLiteParser/test/Schema.s b/src/armnnTfLiteParser/test/Schema.s deleted file mode 100644 index 6e1959b8c3..0000000000 --- a/src/armnnTfLiteParser/test/Schema.s +++ /dev/null @@ -1,13 +0,0 @@ -// -// Copyright © 2017 Arm Ltd. All rights reserved. -// SPDX-License-Identifier: MIT -// - -.section .rodata - -.global tflite_schema_start -.global tflite_schema_end - -tflite_schema_start: -.incbin ARMNN_TF_LITE_SCHEMA_PATH -tflite_schema_end: -- cgit v1.2.1