summaryrefslogtreecommitdiff
path: root/compiler/mir-onnx-importer/CMakeLists.txt
blob: 5f27bc041b1ea07a95f4d04735feb53476f46f8d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
nnas_find_package(ONNXSource EXACT 1.6.0 QUIET)
nnas_find_package(Protobuf QUIET)

if (NOT ONNXSource_FOUND)
    return()
endif ()

if (NOT Protobuf_FOUND)
    return()
endif ()

Protobuf_Generate(MIR_ONNX_PROTO
        ${CMAKE_CURRENT_BINARY_DIR}/generated
        ${ONNXSource_DIR}
        onnx/onnx.proto)

add_library(mir_onnx_proto STATIC ${MIR_ONNX_PROTO_SOURCES})
set_target_properties(mir_onnx_proto PROPERTIES POSITION_INDEPENDENT_CODE ON)
target_include_directories(mir_onnx_proto PUBLIC ${MIR_ONNX_PROTO_INCLUDE_DIRS})
target_link_libraries(mir_onnx_proto PUBLIC libprotobuf)

set(MIR_ONNX_IMPORTER_SOURCES
        AttributeHelpers.h
        ConvPoolHelpers.cpp
        ConvPoolHelpers.h
        ONNXHelpers.cpp
        ONNXHelpers.h
        ONNXImporterImpl.cpp
        ONNXImporterImpl.h
        ONNXNodeConverterRegistry.h
        ONNXNodeConverterRegistry.cpp
        ONNXOpRegistration.h
        Op/Abs.cpp
        Op/Abs.h
        Op/Add.cpp
        Op/Add.h
        Op/AveragePool.cpp
        Op/AveragePool.h
        Op/BatchNormalization.cpp
        Op/BatchNormalization.h
        Op/Concat.cpp
        Op/Concat.h
        Op/Constant.cpp
        Op/Constant.h
        Op/Conv.cpp
        Op/Conv.h
        Op/ConvTranspose.cpp
        Op/ConvTranspose.h
        Op/Div.cpp
        Op/Div.h
        Op/Dropout.cpp
        Op/Dropout.h
        Op/Equal.cpp
        Op/Equal.h
        Op/Expand.cpp
        Op/Expand.h
        Op/Flatten.cpp
        Op/Flatten.h
        Op/Gather.cpp
        Op/Gather.h
        Op/Greater.cpp
        Op/Greater.h
        Op/Gemm.cpp
        Op/Gemm.h
        Op/Identity.cpp
        Op/Identity.h
        Op/Less.cpp
        Op/Less.h
        Op/MatMul.cpp
        Op/MatMul.h
        Op/GlobalAveragePool.cpp
        Op/GlobalAveragePool.h
        Op/Max.cpp
        Op/Max.h
        Op/MaxPool.cpp
        Op/MaxPool.h
        Op/Mul.cpp
        Op/Mul.h
        Op/Pad.cpp
        Op/Pad.h
        Op/Reciprocal.cpp
        Op/Reciprocal.h
        Op/ReduceMean.cpp
        Op/ReduceMean.h
        Op/Relu.cpp
        Op/Relu.h
        Op/Reshape.cpp
        Op/Reshape.h
        Op/Shape.cpp
        Op/Shape.h
        Op/Sigmoid.cpp
        Op/Sigmoid.h
        Op/Softmax.cpp
        Op/Softmax.h
        Op/Sqrt.cpp
        Op/Sqrt.h
        Op/Sub.cpp
        Op/Sub.h
        Op/Sum.cpp
        Op/Sum.h
        Op/Tanh.cpp
        Op/Tanh.h
        Op/Transpose.cpp
        Op/Transpose.h
        Op/Unsqueeze.cpp
        Op/Unsqueeze.h
        Op/Upsample.cpp
        Op/Upsample.h)

add_library(mir_onnx_importer STATIC ${MIR_ONNX_IMPORTER_SOURCES})
set_target_properties(mir_onnx_importer PROPERTIES POSITION_INDEPENDENT_CODE ON)
target_include_directories(mir_onnx_importer PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
target_link_libraries(mir_onnx_importer PUBLIC mir_onnx_proto mir PRIVATE stdex mir_interpreter)

nnas_find_package(GTest REQUIRED)

file(GLOB_RECURSE TEST_SOURCES "*.test.cpp")
GTest_AddTest(mir_onnx_importer_test ${TEST_SOURCES})
target_link_libraries(mir_onnx_importer_test mir_onnx_importer)