diff options
Diffstat (limited to 'shim/sl/CMakeLists.txt')
-rw-r--r-- | shim/sl/CMakeLists.txt | 207 |
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) + +#################################################### |