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 | 9308f60 | 2020-01-28 16:50:13 +0000 | [diff] [blame] | 35 | # Set the common backend source path |
| 36 | set(CommonBackendPath ${PROJECT_SOURCE_DIR}/../../../src/backends/backendsCommon) |
| 37 | # Source files of the common backend |
| 38 | file(GLOB CommonBackendFiles ${CommonBackendPath}/*.cpp) |
Narumol Prangnawarat | 03b6b41 | 2020-01-27 14:13:03 +0000 | [diff] [blame] | 39 | |
Narumol Prangnawarat | 9308f60 | 2020-01-28 16:50:13 +0000 | [diff] [blame] | 40 | set(ArmnnPath ${PROJECT_SOURCE_DIR}/../../../src/armnn) |
| 41 | file(GLOB ArmnnFiles ${ArmnnPath}/*.cpp) |
Narumol Prangnawarat | 03b6b41 | 2020-01-27 14:13:03 +0000 | [diff] [blame] | 42 | |
Narumol Prangnawarat | 9308f60 | 2020-01-28 16:50:13 +0000 | [diff] [blame] | 43 | file(GLOB LayerFiles ${ArmnnPath}/layers/*cpp) |
| 44 | file(GLOB OptimizationFIles ${ArmnnPath}/optimizations/*.cpp) |
| 45 | file(GLOB ArmnnBaseFiles ${ArmnnPath}/*cpp) |
| 46 | list(REMOVE_ITEM LayerFiles ${ArmnnPath}/layers/AbsLayer.cpp) |
| 47 | list(REMOVE_ITEM LayerFiles ${ArmnnPath}/layers/RsqrtLayer.cpp) |
Narumol Prangnawarat | 03b6b41 | 2020-01-27 14:13:03 +0000 | [diff] [blame] | 48 | |
Narumol Prangnawarat | 9308f60 | 2020-01-28 16:50:13 +0000 | [diff] [blame] | 49 | set(ArmnnFiles ${ArmnnBaseFiles} ${LayerFiles} ${OptimizationFIles}) |
Narumol Prangnawarat | 03b6b41 | 2020-01-27 14:13:03 +0000 | [diff] [blame] | 50 | |
Narumol Prangnawarat | 9308f60 | 2020-01-28 16:50:13 +0000 | [diff] [blame] | 51 | set(ArmnnUtilsPath ${PROJECT_SOURCE_DIR}/../../../src/armnnUtils) |
| 52 | file(GLOB ArmnnUtilsFiles ${ArmnnUtilsPath}/*cpp) |
Narumol Prangnawarat | 03b6b41 | 2020-01-27 14:13:03 +0000 | [diff] [blame] | 53 | |
Narumol Prangnawarat | 9308f60 | 2020-01-28 16:50:13 +0000 | [diff] [blame] | 54 | set(ProfilingPath ${PROJECT_SOURCE_DIR}/../../../src/profiling) |
| 55 | file(GLOB ProfilingFiles ${ProfilingPath}/*cpp) |
Narumol Prangnawarat | 03b6b41 | 2020-01-27 14:13:03 +0000 | [diff] [blame] | 56 | |
Narumol Prangnawarat | 9308f60 | 2020-01-28 16:50:13 +0000 | [diff] [blame] | 57 | add_library(Arm_CpuRef_backend MODULE |
| 58 | ${armnnRefDynamicBackend_sources} ${RefBackendFiles} ${CommonBackendFiles} |
| 59 | ${ArmnnFiles} ${ArmnnUtilsFiles} ${ProfilingFiles}) |
Narumol Prangnawarat | 60a20fb | 2019-12-09 17:24:41 +0000 | [diff] [blame] | 60 | |
| 61 | target_include_directories(Arm_CpuRef_backend PRIVATE ${PROJECT_SOURCE_DIR}/../../../include) |
| 62 | target_include_directories(Arm_CpuRef_backend PRIVATE ${PROJECT_SOURCE_DIR}/../../../third-party) # for half |
| 63 | target_include_directories(Arm_CpuRef_backend PRIVATE ${PROJECT_SOURCE_DIR}/../../../src/armnn) |
| 64 | target_include_directories(Arm_CpuRef_backend PRIVATE ${PROJECT_SOURCE_DIR}/../../../src/armnnUtils) |
| 65 | target_include_directories(Arm_CpuRef_backend PRIVATE ${PROJECT_SOURCE_DIR}/../../../src/backends) |
Narumol Prangnawarat | 03b6b41 | 2020-01-27 14:13:03 +0000 | [diff] [blame] | 66 | target_include_directories(Arm_CpuRef_backend PRIVATE ${PROJECT_SOURCE_DIR}/../../../src/profiling) |
| 67 | if("${CMAKE_SYSTEM_NAME}" STREQUAL Android) |
| 68 | target_include_directories(Arm_CpuRef_backend PRIVATE ${Boost_INCLUDE_DIRS}) |
| 69 | target_link_libraries(Arm_CpuRef_backend ${Boost_SYSTEM_LIBRARY} ${Boost_FILESYSTEM_LIBRARY}) |
| 70 | endif() |