aboutsummaryrefslogtreecommitdiff
path: root/shim/sl/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'shim/sl/CMakeLists.txt')
-rw-r--r--shim/sl/CMakeLists.txt207
1 files changed, 207 insertions, 0 deletions
diff --git a/shim/sl/CMakeLists.txt b/shim/sl/CMakeLists.txt
new file mode 100644
index 0000000000..654a599d37
--- /dev/null
+++ b/shim/sl/CMakeLists.txt
@@ -0,0 +1,207 @@
+cmake_minimum_required (VERSION 3.7.0)
+project(armnn_support_library)
+
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -std=c++17 -Wall -fexceptions -Werror -Wno-unused-parameter -Wno-unused-private-field -Wno-unused-variable -Wno-attributes -Wno-format-security -Wno-extern-c-compat -Wno-invalid-partial-specialization -Wno-unneeded-internal-declaration -Wno-unused-function -DNN_COMPATIBILITY_LIBRARY_BUILD -DNN_DEBUGGABLE")
+
+set(CMAKE_POSITION_INDEPENDENT_CODE ON)
+
+include(GNUInstallDirs)
+
+SET(libnnapi_support_include_directories)
+list(APPEND libnnapi_support_include_directories
+ aosp/packages/modules/NeuralNetworks/common/include/nnapi
+ aosp/packages/modules/NeuralNetworks/common/include
+ aosp/packages/modules/NeuralNetworks/runtime/include
+ aosp/packages/modules/NeuralNetworks/shim_and_sl/public
+ aosp/system/logging/liblog/include
+ aosp/system/libbase/include
+ aosp/frameworks/native/libs/nativewindow/include
+ aosp/system/core/libcutils/include
+ aosp/system/core/include
+ aosp/external/boringssl/include)
+
+include_directories(${libnnapi_support_include_directories})
+
+link_directories( ${ARMNN_SOURCE_DIR}/shim/sl/build )
+
+set(base_sources)
+list(APPEND base_sources
+ aosp/system/libbase/abi_compatibility.cpp
+ aosp/system/libbase/chrono_utils.cpp
+ aosp/system/libbase/cmsg.cpp
+ aosp/system/libbase/file.cpp
+# aosp/system/libbase/hex.cpp # needed in AOSP Master FL7
+ aosp/system/libbase/logging.cpp
+ aosp/system/libbase/mapped_file.cpp
+ aosp/system/libbase/parsebool.cpp
+ aosp/system/libbase/parsenetaddress.cpp
+ aosp/system/libbase/process.cpp
+ aosp/system/libbase/properties.cpp
+ aosp/system/libbase/stringprintf.cpp
+ aosp/system/libbase/strings.cpp
+ aosp/system/libbase/test_utils.cpp
+ aosp/system/libbase/threads.cpp)
+add_library(base STATIC ${base_sources})
+target_include_directories (base PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
+target_include_directories (base PUBLIC ${libnnapi_support_include_directories})
+
+set(neuralnetworks_types_cl_sources)
+list(APPEND neuralnetworks_types_cl_sources
+ aosp/packages/modules/NeuralNetworks/common/DynamicCLDeps.cpp
+ aosp/packages/modules/NeuralNetworks/common/SharedMemory.cpp
+ aosp/packages/modules/NeuralNetworks/common/SharedMemoryAndroid.cpp
+ aosp/packages/modules/NeuralNetworks/common/TypeUtils.cpp
+ aosp/packages/modules/NeuralNetworks/common/Types.cpp
+ aosp/packages/modules/NeuralNetworks/common/Validation.cpp)
+
+add_library(neuralnetworks_types_cl STATIC ${neuralnetworks_types_cl_sources})
+target_include_directories (neuralnetworks_types_cl PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
+target_include_directories (neuralnetworks_types_cl PUBLIC ${libnnapi_support_include_directories})
+
+set(neuralnetworks_common_cl_sources)
+list(APPEND neuralnetworks_common_cl_sources
+ aosp/packages/modules/NeuralNetworks/common/BufferTracker.cpp
+ aosp/packages/modules/NeuralNetworks/common/CpuExecutor.cpp
+ aosp/packages/modules/NeuralNetworks/common/GraphDump.cpp
+ aosp/packages/modules/NeuralNetworks/common/IndexedShapeWrapper.cpp
+ aosp/packages/modules/NeuralNetworks/common/LegacyUtils.cpp
+ aosp/packages/modules/NeuralNetworks/common/MetaModel.cpp
+ aosp/packages/modules/NeuralNetworks/common/OperationsUtils.cpp
+ aosp/packages/modules/NeuralNetworks/common/TokenHasher.cpp
+ aosp/packages/modules/NeuralNetworks/common/OperationResolver.cpp
+ aosp/packages/modules/NeuralNetworks/common/operations/Activation.cpp
+# aosp/packages/modules/NeuralNetworks/common/operations/BatchMatmul.cpp # needed in AOSP Master FL7
+ aosp/packages/modules/NeuralNetworks/common/operations/BidirectionalSequenceRNN.cpp
+ aosp/packages/modules/NeuralNetworks/common/operations/Broadcast.cpp
+ aosp/packages/modules/NeuralNetworks/common/operations/ChannelShuffle.cpp
+ aosp/packages/modules/NeuralNetworks/common/operations/Comparisons.cpp
+ aosp/packages/modules/NeuralNetworks/common/operations/Concatenation.cpp
+ aosp/packages/modules/NeuralNetworks/common/operations/Conv2D.cpp
+ aosp/packages/modules/NeuralNetworks/common/operations/DepthwiseConv2D.cpp
+ aosp/packages/modules/NeuralNetworks/common/operations/Dequantize.cpp
+ aosp/packages/modules/NeuralNetworks/common/operations/Elementwise.cpp
+ aosp/packages/modules/NeuralNetworks/common/operations/Elu.cpp
+ aosp/packages/modules/NeuralNetworks/common/operations/Fill.cpp
+ aosp/packages/modules/NeuralNetworks/common/operations/FullyConnected.cpp
+ aosp/packages/modules/NeuralNetworks/common/operations/Gather.cpp
+ aosp/packages/modules/NeuralNetworks/common/operations/GenerateProposals.cpp
+ aosp/packages/modules/NeuralNetworks/common/operations/HeatmapMaxKeypoint.cpp
+ aosp/packages/modules/NeuralNetworks/common/operations/InstanceNormalization.cpp
+ aosp/packages/modules/NeuralNetworks/common/operations/L2Normalization.cpp
+ aosp/packages/modules/NeuralNetworks/common/operations/LocalResponseNormalization.cpp
+ aosp/packages/modules/NeuralNetworks/common/operations/LogSoftmax.cpp
+ aosp/packages/modules/NeuralNetworks/common/operations/LogicalAndOr.cpp
+ aosp/packages/modules/NeuralNetworks/common/operations/LogicalNot.cpp
+# aosp/packages/modules/NeuralNetworks/common/operations/MirrorPad.cpp #needed in AOSP Master FL7
+ aosp/packages/modules/NeuralNetworks/common/operations/Neg.cpp
+# aosp/packages/modules/NeuralNetworks/common/operations/Pack.cpp #needed in AOSP Master FL7
+ aosp/packages/modules/NeuralNetworks/common/operations/PRelu.cpp
+ aosp/packages/modules/NeuralNetworks/common/operations/Pooling.cpp
+ aosp/packages/modules/NeuralNetworks/common/operations/QLSTM.cpp
+ aosp/packages/modules/NeuralNetworks/common/operations/Quantize.cpp
+ aosp/packages/modules/NeuralNetworks/common/operations/Rank.cpp
+ aosp/packages/modules/NeuralNetworks/common/operations/Reduce.cpp
+# aosp/packages/modules/NeuralNetworks/common/operations/Reshape.cpp #needed in AOSP Master FL7
+# aosp/packages/modules/NeuralNetworks/common/operations/Reverse.cpp #needed in AOSP Master FL7
+ aosp/packages/modules/NeuralNetworks/common/operations/ResizeImageOps.cpp
+ aosp/packages/modules/NeuralNetworks/common/operations/RoiAlign.cpp
+ aosp/packages/modules/NeuralNetworks/common/operations/RoiPooling.cpp
+ aosp/packages/modules/NeuralNetworks/common/operations/Select.cpp
+ aosp/packages/modules/NeuralNetworks/common/operations/Slice.cpp
+ aosp/packages/modules/NeuralNetworks/common/operations/Softmax.cpp
+ aosp/packages/modules/NeuralNetworks/common/operations/Squeeze.cpp
+ aosp/packages/modules/NeuralNetworks/common/operations/StridedSlice.cpp
+ aosp/packages/modules/NeuralNetworks/common/operations/TopK_V2.cpp
+ aosp/packages/modules/NeuralNetworks/common/operations/Transpose.cpp
+ aosp/packages/modules/NeuralNetworks/common/operations/TransposeConv2D.cpp
+ aosp/packages/modules/NeuralNetworks/common/operations/UnidirectionalSequenceLSTM.cpp
+ aosp/packages/modules/NeuralNetworks/common/operations/UnidirectionalSequenceRNN.cpp)
+
+add_library(neuralnetworks_common_cl STATIC ${neuralnetworks_common_cl_sources})
+target_include_directories (neuralnetworks_common_cl PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
+target_include_directories (neuralnetworks_common_cl PUBLIC ${libnnapi_support_include_directories})
+
+set(neuralnetworks_cl_sources)
+list(APPEND neuralnetworks_cl_sources
+ aosp/packages/modules/NeuralNetworks/runtime/BurstBuilder.cpp
+ aosp/packages/modules/NeuralNetworks/runtime/CompilationBuilder.cpp
+ aosp/packages/modules/NeuralNetworks/runtime/ExecutionBuilder.cpp
+ aosp/packages/modules/NeuralNetworks/runtime/ExecutionCallback.cpp
+ aosp/packages/modules/NeuralNetworks/runtime/ExecutionPlan.cpp
+ aosp/packages/modules/NeuralNetworks/runtime/Manager.cpp
+ aosp/packages/modules/NeuralNetworks/runtime/Memory.cpp
+# aosp/packages/modules/NeuralNetworks/runtime/ModelArchHasher.cpp #needed in AOSP Master FL7
+ aosp/packages/modules/NeuralNetworks/runtime/ModelArgumentInfo.cpp
+ aosp/packages/modules/NeuralNetworks/runtime/ModelBuilder.cpp
+ aosp/packages/modules/NeuralNetworks/runtime/NeuralNetworks.cpp
+# aosp/packages/modules/NeuralNetworks/runtime/SupportLibraryDiagnostic.cpp #needed in AOSP Master FL7
+# aosp/packages/modules/NeuralNetworks/runtime/Telemetry.cpp #needed in AOSP Master FL7
+ aosp/packages/modules/NeuralNetworks/runtime/TypeManager.cpp)
+
+add_library(neuralnetworks_cl OBJECT ${neuralnetworks_cl_sources})
+target_include_directories (neuralnetworks_cl PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
+target_include_directories (neuralnetworks_cl PUBLIC ${libnnapi_support_include_directories})
+
+# Add Armnn as a Dependency
+message(STATUS "ARMNN_SOURCE_DIR: ${ARMNN_SOURCE_DIR}")
+set(Armnn_DIR "${ARMNN_SOURCE_DIR}/build")
+if(NOT ARMNN_SUB_PROJECT)
+ find_package(Armnn REQUIRED CONFIG HINTS ${Armnn_DIR})
+endif()
+
+add_library(thirdparty_headers INTERFACE)
+target_include_directories(thirdparty_headers INTERFACE $<BUILD_INTERFACE:${ARMNN_SOURCE_DIR}/third-party>
+ $<INSTALL_INTERFACE:include/thirdparty_headers>)
+
+set(armnn_support_library_sources)
+list(APPEND armnn_support_library_sources
+ canonical/ArmnnPreparedModel.cpp
+ canonical/ArmnnPreparedModel.hpp
+ canonical/ArmnnDevice.cpp
+ canonical/ArmnnDevice.hpp
+ canonical/ArmnnDriver.hpp
+ canonical/ArmnnDriverImpl.cpp
+ canonical/ArmnnDriverImpl.hpp
+ canonical/CacheDataHandler.cpp
+ canonical/CacheDataHandler.hpp
+ canonical/CanonicalUtils.cpp
+ canonical/CanonicalUtils.hpp
+ canonical/ConversionUtils.cpp
+ canonical/ConversionUtils.hpp
+ canonical/Converter.cpp
+ canonical/Converter.hpp
+ canonical/DriverOptions.cpp
+ canonical/DriverOptions.hpp
+ canonical/ModelToINetworkTransformer.cpp
+ canonical/ModelToINetworkTransformer.hpp
+ canonical/SystemPropertiesUtils.hpp
+ support_library_service.cpp)
+
+add_library(armnn_support_library SHARED ${armnn_support_library_sources})
+target_link_libraries(armnn_support_library PUBLIC Armnn::Armnn)
+target_link_libraries(armnn_support_library PUBLIC Armnn::armnnUtils)
+target_link_libraries(armnn_support_library PUBLIC Armnn::armnnSerializer)
+target_link_libraries(armnn_support_library PRIVATE thirdparty_headers)
+
+target_link_libraries(armnn_support_library PRIVATE neuralnetworks_types_cl)
+target_link_libraries(armnn_support_library PRIVATE neuralnetworks_common_cl)
+target_link_libraries(armnn_support_library PRIVATE neuralnetworks_cl)
+target_link_libraries(armnn_support_library PRIVATE base)
+
+target_include_directories(armnn_support_library PUBLIC ${libnnapi_support_include_directories})
+
+target_link_libraries(armnn_support_library PUBLIC -Wl,-undefined -Wl,dynamic_lookup)
+
+# find the liblog
+find_library(log-lib log)
+target_link_libraries(armnn_support_library PUBLIC ${log-lib})
+
+# find the libnativewindow
+find_library(nativewindow-lib nativewindow)
+target_link_libraries(armnn_support_library PUBLIC ${nativewindow-lib})
+
+## find the libcrypto
+set(CRYPTO_LIB_ROOT ${ARMNN_SOURCE_DIR}/shim/sl/aosp/prebuilts/vndk/v29)
+target_link_libraries(armnn_support_library PUBLIC ${CRYPTO_LIB_ROOT}/arm64/arch-arm64-armv8-a/shared/vndk-core/libcrypto.so)
+
+####################################################