You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mindspore/mindspore/lite/tools/converter/CMakeLists.txt

222 lines
9.3 KiB

add_definitions(-DPRIMITIVE_WRITEABLE)
set(CORE_SRC
${CORE_SRC}
#core / abstract
${CMAKE_CURRENT_SOURCE_DIR}/../../../core/abstract/abstract_function.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../core/abstract/analysis_context.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../core/abstract/param_validator.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../core/abstract/abstract_value.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../core/abstract/dshape.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../core/abstract/utils.cc
#core / base
${CMAKE_CURRENT_SOURCE_DIR}/../../../core/base/base_ref.cc
#core / ir
${CMAKE_CURRENT_SOURCE_DIR}/../../../core/ir/anf.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../core/ir/anf_extends.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../core/ir/meta_func_graph.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../core/ir/func_graph.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../core/ir/graph_utils.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../core/ir/func_graph_cloner.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../core/ir/func_graph_extends.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../core/ir/manager.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../core/ir/primitive.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../core/ir/tensor.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../core/ir/visitor.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../core/ir/meta_tensor_extends.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../core/ir/dtype.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../core/ir/dtype_extends.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../core/ir/named.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../core/ir/scope.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../core/ir/value.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../core/ir/value_extends.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../core/ir/dtype/ref.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../core/ir/dtype/tensor_type.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../core/ir/dtype/container.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../core/ir/dtype/empty.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../core/ir/dtype/number.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../core/ir/dtype/ref.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../core/ir/dtype/type.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../core/ir/dtype/type_extends.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../core/utils/any.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../core/utils/symbolic.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../core/utils/misc.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../core/utils/flags.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../core/utils/trace_base.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../core/utils/trace_info.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../core/utils/label.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../core/utils/info.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../core/utils/profile.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../core/utils/ms_context.cc
)
set(CCSRC_SRC
## ccsrc
${CCSRC_DIR}/debug/draw.cc
${CCSRC_DIR}/pybind_api/export_flags.cc
${CCSRC_DIR}/utils/context/context_extends.cc
${CCSRC_DIR}/frontend/parallel/costmodel_context.cc
${CCSRC_DIR}/backend/optimizer/common/pattern_engine.cc
${CCSRC_DIR}/backend/optimizer/common/visit.cc
${CCSRC_DIR}/backend/optimizer/common/optimizer.cc
)
if (WIN32)
set(LITE_SRC
#src
${CMAKE_CURRENT_SOURCE_DIR}/../../src/ir/tensor.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../src/model.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../src/context.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../src/lite_session.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../src/kernel_registry.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../src/common/graph_util.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../src/runtime/runtime_api.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../src/runtime/thread_pool.c
${CMAKE_CURRENT_SOURCE_DIR}/../../src/runtime/workspace_pool.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../src/runtime/allocator.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../src/executor.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../src/scheduler.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../src/lite_kernel.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../src/common/ms_tensor_utils.cc
${CMAKE_CURRENT_SOURCE_DIR}../../nnacl/pack.c
${CMAKE_CURRENT_SOURCE_DIR}/../../src/populate_parameter.cc
)
endif()
file(GLOB_RECURSE OPS_SRC ${CMAKE_CURRENT_SOURCE_DIR}/../../src/ops/*.cc)
file(GLOB_RECURSE CONVERTER_SRC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/../flag/flag_parser.cc
${CMAKE_CURRENT_SOURCE_DIR}/converter.cc
${CMAKE_CURRENT_SOURCE_DIR}/converter_flags.cc
${CMAKE_CURRENT_SOURCE_DIR}/anf_transform.cc
${CMAKE_CURRENT_SOURCE_DIR}/graphdef_transform.cc
${CMAKE_CURRENT_SOURCE_DIR}/optimizer.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../src/common/file_utils.cc
${CMAKE_CURRENT_SOURCE_DIR}/../common/graph_util.cc
${CMAKE_CURRENT_SOURCE_DIR}/../common/node_util.cc
${CMAKE_CURRENT_SOURCE_DIR}/../common/tensor_util.cc
${CMAKE_CURRENT_SOURCE_DIR}/../common/protobuf_utils.cc
${CMAKE_CURRENT_SOURCE_DIR}/../common/flag_parser.cc
${CMAKE_CURRENT_SOURCE_DIR}/../common/storage.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../src/ir/primitive_t_value.cc
../optimizer/common/node_pass_extends.cc
../optimizer/common/pass_manager_extends.cc
../optimizer/common/gllo_utils.cc
../optimizer/fusion/conv_biasadd_fusion.cc
../optimizer/fusion/conv_activation_fusion.cc
../optimizer/fusion/conv_tuple_activation_fusion.cc
../optimizer/fusion/conv_transform_fusion.cc
../optimizer/fusion/conv_scale_fusion.cc
../optimizer/fusion/conv_bn_fusion.cc
../optimizer/fusion/constant_folding_fusion.cc
)
add_subdirectory(../anf_importer anf_importer)
add_subdirectory(../anf_exporter anf_exporter)
add_subdirectory(parser/caffe)
add_subdirectory(parser/tflite)
add_subdirectory(parser/onnx)
add_subdirectory(legacy_optimizer)
add_subdirectory(quantizer)
set(SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../src)
set(LITE_SRC
${SRC_DIR}/common/graph_utils_extends.cc
${SRC_DIR}/common/log_adapter.cc
${SRC_DIR}/common/graph_util.cc
${SRC_DIR}/common/ms_tensor_utils.cc
${SRC_DIR}/runtime/allocator.cc
${SRC_DIR}/runtime/runtime_api.cc
${SRC_DIR}/runtime/thread_pool.c
${SRC_DIR}/runtime/workspace_pool.cc
${SRC_DIR}/ir/tensor.cc
${SRC_DIR}/context.cc
${SRC_DIR}/kernel_registry.cc
${SRC_DIR}/lite_kernel.cc
${SRC_DIR}/populate_parameter.cc
${SRC_DIR}/scheduler.cc
${SRC_DIR}/lite_session.cc
${SRC_DIR}/executor.cc
${SRC_DIR}/model.cc
)
set(ARM_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../src/runtime/kernel/arm)
file(GLOB KERNEL_SRC
${ARM_DIR}/base/*.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../nnacl/*.c
${CMAKE_CURRENT_SOURCE_DIR}/../../nnacl/fp32/*.c
${CMAKE_CURRENT_SOURCE_DIR}/../../nnacl/int8/*.c
${CMAKE_CURRENT_SOURCE_DIR}/../../nnacl/quantization/*.c
${ARM_DIR}/fp32/*.cc
${ARM_DIR}/int8/*.cc
)
list(REMOVE_ITEM KERNEL_SRC ${CMAKE_CURRENT_SOURCE_DIR}/../../nnacl/opt_op_handler.c)
if (PLATFORM_ARM64)
# assembly
file(GLOB ASSEMBLY_SRC ${CMAKE_CURRENT_SOURCE_DIR}/../../nnacl/assembly/arm64/*.s
${CMAKE_CURRENT_SOURCE_DIR}/../../nnacl/assembly/arm64/*.S)
set_property(SOURCE ${ASSEMBLY_SRC} PROPERTY LANGUAGE C)
set(KERNEL_SRC ${KERNEL_SRC} ${ASSEMBLY_SRC})
endif ()
if (WIN32)
set(PROTO_LIBRARY mindspore::protobuf)
else()
set(PROTO_LIBRARY protobuf)
endif()
add_executable(converter_lite
main.cc
${CORE_SRC}
${CCSRC_SRC}
${CONVERTER_SRC}
${OPS_SRC}
${KERNEL_SRC}
${LITE_SRC}
)
if (WIN32)
add_library(converter_mid OBJECT
${CORE_SRC}
${CCSRC_SRC}
${CONVERTER_SRC}
${OPS_SRC}
${KERNEL_SRC}
${LITE_SRC}
)
add_library(converter_parser STATIC
$<TARGET_OBJECTS:tflite_parser_mid>
$<TARGET_OBJECTS:caffe_parser_mid>
$<TARGET_OBJECTS:onnx_parser_mid>
$<TARGET_OBJECTS:anf_importer_mid>
$<TARGET_OBJECTS:anf_exporter_mid>
$<TARGET_OBJECTS:graph_pass_mid>
$<TARGET_OBJECTS:fusion_mid>
$<TARGET_OBJECTS:quantizer_mid>
$<TARGET_OBJECTS:converter_mid>
)
endif()
target_link_libraries(converter_lite PRIVATE
tflite_parser_mid
caffe_parser_mid
onnx_parser_mid
anf_importer_mid
anf_exporter_mid
graph_pass_mid
fusion_mid
quantizer_mid
quantizer_mid
pthread
${PROTO_LIBRARY}
${SECUREC_LIBRARY}
mindspore::json
mindspore::eigen
)
if (NOT PLATFORM_ARM64 AND NOT PLATFORM_ARM32)
install(TARGETS converter_lite
RUNTIME DESTINATION ${MAIN_DIR}-${COMPONENT_NAME}/converter COMPONENT ${COMPONENT_NAME})
endif ()