From 03b6b410321923bac7ed2eb1507f524953c9a464 Mon Sep 17 00:00:00 2001 From: Narumol Prangnawarat Date: Mon, 27 Jan 2020 14:13:03 +0000 Subject: IVGCVSW-4313 Add Android case to dynamic reference CMakeLists Signed-off-by: Narumol Prangnawarat Change-Id: I10724f2874018fb214cd12c3aef45be5347a8306 --- src/dynamic/reference/CMakeLists.txt | 44 +++++++++++++++++++++++++++++++++--- 1 file changed, 41 insertions(+), 3 deletions(-) diff --git a/src/dynamic/reference/CMakeLists.txt b/src/dynamic/reference/CMakeLists.txt index 79bf7ec362..4eeebea3af 100644 --- a/src/dynamic/reference/CMakeLists.txt +++ b/src/dynamic/reference/CMakeLists.txt @@ -4,9 +4,17 @@ # cmake_minimum_required (VERSION 3.0.2) +project(dynamic-reference) set(CMAKE_POSITION_INDEPENDENT_CODE ON) +if("${CMAKE_SYSTEM_NAME}" STREQUAL Android) + add_definitions("-DBOOST_ALL_NO_LIB") # Turn off auto-linking as we specify the libs manually + find_package(Boost REQUIRED COMPONENTS system filesystem) + include_directories(SYSTEM "${Boost_INCLUDE_DIRS}") + link_directories(${Boost_LIBRARY_DIRS}) +endif() + # File needed to wrap the existing backend into a dynamic one list(APPEND armnnRefDynamicBackend_sources RefDynamicBackend.cpp @@ -24,12 +32,42 @@ set(RefBackendFiles ${RefBackendBaseFiles} ${RefBackendWorloadFiles}) # Remove the file that contains the static backend registration list(REMOVE_ITEM RefBackendFiles ${RefBackendPath}/RefRegistryInitializer.cpp) -# Create the shared object -add_library(Arm_CpuRef_backend MODULE ${armnnRefDynamicBackend_sources} ${RefBackendFiles}) +if("${CMAKE_SYSTEM_NAME}" STREQUAL Android) + # Set the common backend source path + set(CommonBackendPath ${PROJECT_SOURCE_DIR}/../../../src/backends/backendsCommon) + # Source files of the common backend + file(GLOB CommonBackendFiles ${CommonBackendPath}/*.cpp) + + set(ArmnnPath ${PROJECT_SOURCE_DIR}/../../../src/armnn) + file(GLOB ArmnnFiles ${ArmnnPath}/*.cpp) + + file(GLOB LayerFiles ${ArmnnPath}/layers/*cpp) + file(GLOB OptimizationFIles ${ArmnnPath}/optimizations/*.cpp) + file(GLOB ArmnnBaseFiles ${ArmnnPath}/*cpp) + + set(ArmnnFiles ${ArmnnBaseFiles} ${LayerFiles} ${OptimizationFIles}) + + set(ArmnnUtilsPath ${PROJECT_SOURCE_DIR}/../../../src/armnnUtils) + file(GLOB ArmnnUtilsFiles ${ArmnnUtilsPath}/*cpp) + + set(ProfilingPath ${PROJECT_SOURCE_DIR}/../../../src/profiling) + file(GLOB ProfilingFiles ${ProfilingPath}/*cpp) + + add_library(Arm_CpuRef_backend MODULE + ${armnnRefDynamicBackend_sources} ${RefBackendFiles} ${CommonBackendFiles} + ${ArmnnFiles} ${ArmnnUtilsFiles} ${ProfilingFiles}) +else() + # Create the shared object + add_library(Arm_CpuRef_backend MODULE ${armnnRefDynamicBackend_sources} ${RefBackendFiles}) +endif() target_include_directories(Arm_CpuRef_backend PRIVATE ${PROJECT_SOURCE_DIR}/../../../include) target_include_directories(Arm_CpuRef_backend PRIVATE ${PROJECT_SOURCE_DIR}/../../../third-party) # for half target_include_directories(Arm_CpuRef_backend PRIVATE ${PROJECT_SOURCE_DIR}/../../../src/armnn) target_include_directories(Arm_CpuRef_backend PRIVATE ${PROJECT_SOURCE_DIR}/../../../src/armnnUtils) target_include_directories(Arm_CpuRef_backend PRIVATE ${PROJECT_SOURCE_DIR}/../../../src/backends) -target_include_directories(Arm_CpuRef_backend PRIVATE ${PROJECT_SOURCE_DIR}/../../../src/profiling) \ No newline at end of file +target_include_directories(Arm_CpuRef_backend PRIVATE ${PROJECT_SOURCE_DIR}/../../../src/profiling) +if("${CMAKE_SYSTEM_NAME}" STREQUAL Android) + target_include_directories(Arm_CpuRef_backend PRIVATE ${Boost_INCLUDE_DIRS}) + target_link_libraries(Arm_CpuRef_backend ${Boost_SYSTEM_LIBRARY} ${Boost_FILESYSTEM_LIBRARY}) +endif() -- cgit v1.2.1