mirror of
https://github.com/saymrwulf/onnxruntime.git
synced 2026-05-14 20:48:00 +00:00
### Description Implement Objective-C binding for `ORTCheckPoint`. Additionally, - Modify `onnxruntime_objectivec.cmake` to only include training header and sources when training flag is enabled - Enable objective-c binding for `orttraining-mac-ci-pipeline` ### Motivation and Context This PR is part of implementing Objective-C bindings for training API. It implements objective-c binding for ORTCheckPoint class. The objective-C API closely resembles the C++ API. **Note**: The test for saving checkpoint is skipped as it requires use of training session. It will be added when the objective-c binding for `ORTTrainingSession` is added.
40 lines
1.3 KiB
C
40 lines
1.3 KiB
C
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
// Licensed under the MIT License.
|
|
|
|
// wrapper for ORT C/C++ API headers
|
|
|
|
#if defined(__clang__)
|
|
#pragma clang diagnostic push
|
|
// ignore clang documentation-related warnings
|
|
// instead, we will rely on Doxygen warnings for the C/C++ API headers
|
|
#pragma clang diagnostic ignored "-Wdocumentation"
|
|
#endif // defined(__clang__)
|
|
|
|
// paths are different when building the Swift Package Manager package as the headers come from the iOS pod archive
|
|
// clang-format off
|
|
#define STRINGIFY(x) #x
|
|
#ifdef SPM_BUILD
|
|
#define ORT_C_CXX_HEADER_FILE_PATH(x) STRINGIFY(onnxruntime/x)
|
|
#else
|
|
#define ORT_C_CXX_HEADER_FILE_PATH(x) STRINGIFY(x)
|
|
#endif
|
|
// clang-format on
|
|
|
|
#ifndef ENABLE_TRAINING_APIS
|
|
#include ORT_C_CXX_HEADER_FILE_PATH(onnxruntime_c_api.h)
|
|
#include ORT_C_CXX_HEADER_FILE_PATH(onnxruntime_cxx_api.h)
|
|
#else
|
|
#include ORT_C_CXX_HEADER_FILE_PATH(onnxruntime_training_c_api.h)
|
|
#include ORT_C_CXX_HEADER_FILE_PATH(onnxruntime_training_cxx_api.h)
|
|
#endif
|
|
|
|
#if __has_include(ORT_C_CXX_HEADER_FILE_PATH(coreml_provider_factory.h))
|
|
#define ORT_OBJC_API_COREML_EP_AVAILABLE 1
|
|
#include ORT_C_CXX_HEADER_FILE_PATH(coreml_provider_factory.h)
|
|
#else
|
|
#define ORT_OBJC_API_COREML_EP_AVAILABLE 0
|
|
#endif
|
|
|
|
#if defined(__clang__)
|
|
#pragma clang diagnostic pop
|
|
#endif // defined(__clang__)
|