Narumol Prangnawarat | 60a20fb | 2019-12-09 17:24:41 +0000 | [diff] [blame] | 1 | # |
| 2 | # Copyright © 2019 Arm Ltd. All rights reserved. |
| 3 | # SPDX-License-Identifier: MIT |
| 4 | # |
| 5 | |
| 6 | cmake_minimum_required (VERSION 3.0.2) |
Narumol Prangnawarat | 03b6b41 | 2020-01-27 14:13:03 +0000 | [diff] [blame^] | 7 | project(dynamic-reference) |
Narumol Prangnawarat | 60a20fb | 2019-12-09 17:24:41 +0000 | [diff] [blame] | 8 | |
| 9 | set(CMAKE_POSITION_INDEPENDENT_CODE ON) |
| 10 | |
Narumol Prangnawarat | 03b6b41 | 2020-01-27 14:13:03 +0000 | [diff] [blame^] | 11 | if("${CMAKE_SYSTEM_NAME}" STREQUAL Android) |
| 12 | add_definitions("-DBOOST_ALL_NO_LIB") # Turn off auto-linking as we specify the libs manually |
| 13 | find_package(Boost REQUIRED COMPONENTS system filesystem) |
| 14 | include_directories(SYSTEM "${Boost_INCLUDE_DIRS}") |
| 15 | link_directories(${Boost_LIBRARY_DIRS}) |
| 16 | endif() |
| 17 | |
Narumol Prangnawarat | 60a20fb | 2019-12-09 17:24:41 +0000 | [diff] [blame] | 18 | # File needed to wrap the existing backend into a dynamic one |
| 19 | list(APPEND armnnRefDynamicBackend_sources |
| 20 | RefDynamicBackend.cpp |
| 21 | RefDynamicBackend.hpp |
| 22 | ) |
| 23 | |
| 24 | # Set the backend source path |
| 25 | set(RefBackendPath ${PROJECT_SOURCE_DIR}/../../../src/backends/reference) |
| 26 | |
| 27 | # Source files of the backend, taken directly from the source tree |
| 28 | file(GLOB RefBackendBaseFiles ${RefBackendPath}/*.cpp) |
| 29 | file(GLOB RefBackendWorloadFiles ${RefBackendPath}/workloads/*.cpp) |
| 30 | set(RefBackendFiles ${RefBackendBaseFiles} ${RefBackendWorloadFiles}) |
| 31 | |
| 32 | # Remove the file that contains the static backend registration |
| 33 | list(REMOVE_ITEM RefBackendFiles ${RefBackendPath}/RefRegistryInitializer.cpp) |
| 34 | |
Narumol Prangnawarat | 03b6b41 | 2020-01-27 14:13:03 +0000 | [diff] [blame^] | 35 | if("${CMAKE_SYSTEM_NAME}" STREQUAL Android) |
| 36 | # Set the common backend source path |
| 37 | set(CommonBackendPath ${PROJECT_SOURCE_DIR}/../../../src/backends/backendsCommon) |
| 38 | # Source files of the common backend |
| 39 | file(GLOB CommonBackendFiles ${CommonBackendPath}/*.cpp) |
| 40 | |
| 41 | set(ArmnnPath ${PROJECT_SOURCE_DIR}/../../../src/armnn) |
| 42 | file(GLOB ArmnnFiles ${ArmnnPath}/*.cpp) |
| 43 | |
| 44 | file(GLOB LayerFiles ${ArmnnPath}/layers/*cpp) |
| 45 | file(GLOB OptimizationFIles ${ArmnnPath}/optimizations/*.cpp) |
| 46 | file(GLOB ArmnnBaseFiles ${ArmnnPath}/*cpp) |
| 47 | |
| 48 | set(ArmnnFiles ${ArmnnBaseFiles} ${LayerFiles} ${OptimizationFIles}) |
| 49 | |
| 50 | set(ArmnnUtilsPath ${PROJECT_SOURCE_DIR}/../../../src/armnnUtils) |
| 51 | file(GLOB ArmnnUtilsFiles ${ArmnnUtilsPath}/*cpp) |
| 52 | |
| 53 | set(ProfilingPath ${PROJECT_SOURCE_DIR}/../../../src/profiling) |
| 54 | file(GLOB ProfilingFiles ${ProfilingPath}/*cpp) |
| 55 | |
| 56 | add_library(Arm_CpuRef_backend MODULE |
| 57 | ${armnnRefDynamicBackend_sources} ${RefBackendFiles} ${CommonBackendFiles} |
| 58 | ${ArmnnFiles} ${ArmnnUtilsFiles} ${ProfilingFiles}) |
| 59 | else() |
| 60 | # Create the shared object |
| 61 | add_library(Arm_CpuRef_backend MODULE ${armnnRefDynamicBackend_sources} ${RefBackendFiles}) |
| 62 | endif() |
Narumol Prangnawarat | 60a20fb | 2019-12-09 17:24:41 +0000 | [diff] [blame] | 63 | |
| 64 | target_include_directories(Arm_CpuRef_backend PRIVATE ${PROJECT_SOURCE_DIR}/../../../include) |
| 65 | target_include_directories(Arm_CpuRef_backend PRIVATE ${PROJECT_SOURCE_DIR}/../../../third-party) # for half |
| 66 | target_include_directories(Arm_CpuRef_backend PRIVATE ${PROJECT_SOURCE_DIR}/../../../src/armnn) |
| 67 | target_include_directories(Arm_CpuRef_backend PRIVATE ${PROJECT_SOURCE_DIR}/../../../src/armnnUtils) |
| 68 | target_include_directories(Arm_CpuRef_backend PRIVATE ${PROJECT_SOURCE_DIR}/../../../src/backends) |
Narumol Prangnawarat | 03b6b41 | 2020-01-27 14:13:03 +0000 | [diff] [blame^] | 69 | target_include_directories(Arm_CpuRef_backend PRIVATE ${PROJECT_SOURCE_DIR}/../../../src/profiling) |
| 70 | if("${CMAKE_SYSTEM_NAME}" STREQUAL Android) |
| 71 | target_include_directories(Arm_CpuRef_backend PRIVATE ${Boost_INCLUDE_DIRS}) |
| 72 | target_link_libraries(Arm_CpuRef_backend ${Boost_SYSTEM_LIBRARY} ${Boost_FILESYSTEM_LIBRARY}) |
| 73 | endif() |