onnxruntime
35 строк · 1.7 Кб
1# Copyright (c) Microsoft Corporation. All rights reserved.
2# Licensed under the MIT License.
3
4# Schema library (for contrib ops and training ops)
5
6set (CONTRIB_OPS_DIR ${ONNXRUNTIME_ROOT}/core/graph/contrib_ops)
7set (TRAINING_OPS_DIR ${ORTTRAINING_ROOT}/orttraining/core/graph)
8
9file(GLOB_RECURSE contrib_ops_schema_src
10"${CONTRIB_OPS_DIR}/*.cc"
11"${TRAINING_OPS_DIR}/training_op_defs.cc"
12)
13
14# The nchwc op schemas are platform-specific and not currently required.
15list(REMOVE_ITEM contrib_ops_schema_src ${CONTRIB_OPS_DIR}/nchwc_schema_defs.cc)
16
17# Use of ORT_ENFORCE introduces a dependency on GetStackTrace.
18# Currently, we just use an empty implementation to avoid bringing in other dependencies.
19if(WIN32)
20list(APPEND contrib_ops_schema_src "${ONNXRUNTIME_ROOT}/core/platform/windows/stacktrace.cc")
21else()
22list(APPEND contrib_ops_schema_src "${ONNXRUNTIME_ROOT}/core/platform/posix/stacktrace.cc")
23endif()
24
25onnxruntime_add_static_library(ort_opschema_lib ${contrib_ops_schema_src})
26target_compile_options(ort_opschema_lib PRIVATE -D_OPSCHEMA_LIB_=1)
27if(NOT MSVC)
28target_compile_options(ort_opschema_lib PRIVATE "-Wno-parentheses")
29endif()
30set (OPSCHEMA_LIB_DEPENDENCIES onnx onnx_proto ${PROTOBUF_LIB} flatbuffers::flatbuffers safeint_interface Boost::mp11 safeint_interface)
31
32# ${CMAKE_CURRENT_BINARY_DIR} is so that #include "onnxruntime_config.h" is found
33target_include_directories(ort_opschema_lib PRIVATE ${ONNXRUNTIME_ROOT} ${ORTTRAINING_ROOT} ${CMAKE_CURRENT_BINARY_DIR})
34onnxruntime_add_include_to_target(ort_opschema_lib onnxruntime_common onnx onnx_proto ${PROTOBUF_LIB} flatbuffers::flatbuffers Boost::mp11 safeint_interface)
35add_dependencies(ort_opschema_lib ${OPSCHEMA_LIB_DEPENDENCIES})
36
37