Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion cmake/deps.txt
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ microsoft_gsl;https://github.com/microsoft/GSL/archive/refs/tags/v4.0.0.zip;cf36
microsoft_wil;https://github.com/microsoft/wil/archive/refs/tags/v1.0.230629.1.zip;e4a542a323c070376f7c2d1973d0f7ddbc1d2fa5
mimalloc;https://github.com/microsoft/mimalloc/archive/refs/tags/v2.1.1.zip;d5ee7d34223d0567892db5179849939c8769dc41
mp11;https://github.com/boostorg/mp11/archive/refs/tags/boost-1.82.0.zip;9bc9e01dffb64d9e0773b2e44d2f22c51aace063
onnx;https://github.com/onnx/onnx/archive/refs/tags/v1.19.1.zip;c5215b5697dcdfd71799f001b8c4054a6bba6b09
onnx;https://github.com/onnx/onnx/archive/refs/heads/rel-1.20.0.zip;c80f558cafc0023b53a1d92fdf9af8548afd7b29
# Use the latest commit of 10.9-GA
onnx_tensorrt;https://github.com/onnx/onnx-tensorrt/archive/d5dce67db7c2e64b07e055571f5ec06f7f254de2.zip;01114d3b67650857281fa50faa2e412130a63b69
protobuf;https://github.com/protocolbuffers/protobuf/archive/refs/tags/v21.12.zip;7cf2733949036c7d52fda017badcab093fe73bfa
Expand Down
2 changes: 1 addition & 1 deletion cmake/external/onnx
Submodule onnx updated 846 files
46 changes: 17 additions & 29 deletions cmake/patches/onnx/onnx.patch
Original file line number Diff line number Diff line change
@@ -1,26 +1,26 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index cc3ef140..f70312ba 100644
index 4a7df7d71..8462e3293 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -57,6 +57,7 @@ option(ONNX_USE_LITE_PROTO "Use lite protobuf instead of full." OFF)
@@ -52,6 +52,7 @@ option(ONNX_USE_LITE_PROTO "Use lite protobuf instead of full." OFF)
option(ONNX_DISABLE_EXCEPTIONS "Disable exception handling." OFF)
option(ONNX_DISABLE_STATIC_REGISTRATION "Disable static registration for ONNX operator schemas." OFF)
option(ONNX_USE_UNITY_BUILD "Enable Unity (Jumbo) build for" OFF)
+option(ONNX_MINIMAL_BUILD "Build only essential ONNX components" OFF)
if(WIN32)
option(ONNX_USE_MSVC_STATIC_RUNTIME "Build with MSVC static runtime" OFF)
endif()
@@ -409,14 +410,28 @@ relative_protobuf_generate_cpp(ONNX_PROTO_SRCS
@@ -399,14 +400,28 @@ relative_protobuf_generate_cpp(ONNX_PROTO_SRCS

add_library(onnx_proto ${ONNX_PROTO_SRCS})
add_library(onnx_proto_object OBJECT ${ONNX_PROTO_SRCS})

-file(GLOB_RECURSE __tmp_srcs "${ONNX_ROOT}/onnx/*.h" "${ONNX_ROOT}/onnx/*.cc")
-file(GLOB_RECURSE onnx_gtests_src "${ONNX_ROOT}/onnx/test/cpp/*.h"
- "${ONNX_ROOT}/onnx/test/cpp/*.cc"
- "${ONNX_ROOT}/onnx/backend/test/cpp/*.cc"
- "${ONNX_ROOT}/onnx/backend/test/cpp/*.h")
-list(REMOVE_ITEM __tmp_srcs "${ONNX_ROOT}/onnx/cpp2py_export.cc")
-list(REMOVE_ITEM __tmp_srcs ${onnx_gtests_src})
-list(REMOVE_ITEM __tmp_srcs ${onnx_gtests_src} "${ONNX_ROOT}/onnx/test/cmake/main.cc")
-list(APPEND ONNX_SRCS ${__tmp_srcs})
+if(ONNX_MINIMAL_BUILD)
+ message(STATUS "Configuring ONNX minimal build")
Expand All @@ -45,15 +45,15 @@ index cc3ef140..f70312ba 100644
+ list(APPEND ONNX_SRCS ${__tmp_srcs})
+endif()

# Hide all symbols we don't need
set_target_properties(onnx_proto PROPERTIES CXX_VISIBILITY_PRESET hidden)
@@ -438,19 +453,6 @@ add_onnx_global_defines(onnx_proto)
target_include_directories(onnx_proto PUBLIC
$<BUILD_INTERFACE:${ONNX_ROOT}>
set(LINKED_PROTOBUF_TARGET protobuf::libprotobuf)
if(ONNX_USE_LITE_PROTO)
@@ -417,19 +432,7 @@ endif()
add_onnx_global_defines(onnx_proto_object)
target_include_directories(onnx_proto_object PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>)
-if(MSVC)
- # For disabling Protobuf related warnings
- target_compile_options(onnx_proto PUBLIC
- set(protobuf_warnings
- /wd4146 # unary minus operator applied to unsigned type,
- # result still unsigned
- /wd4244 # 'argument': conversion from 'google::
Expand All @@ -64,31 +64,19 @@ index cc3ef140..f70312ba 100644
- /wd4141 # 'inline': used more than once
- )
-endif()

if(CMAKE_SYSTEM_NAME STREQUAL "AIX")
# whole-archive linker option not available on AIX.
+
add_library(onnx_proto)
target_link_libraries(onnx_proto PUBLIC $<BUILD_INTERFACE:onnx_proto_object>)
if(ONNX_ML)
diff --git a/onnx/defs/nn/old.cc b/onnx/defs/nn/old.cc
index ad6dd0c1..50259f32 100644
index 887151217..ac2e8c463 100644
--- a/onnx/defs/nn/old.cc
+++ b/onnx/defs/nn/old.cc
@@ -4091,7 +4091,6 @@ ONNX_OPERATOR_SET_SCHEMA(
@@ -4152,7 +4152,6 @@ ONNX_OPERATOR_SET_SCHEMA(
GroupNormalization,
18,
OpSchema()
- .Deprecate()
.SetDoc(GroupNormalization_ver18_doc)
.Attr("epsilon", "The epsilon value to use to avoid division by zero.", AttributeProto::FLOAT, 1e-5f)
.Attr(
diff --git a/onnx/defs/schema.h b/onnx/defs/schema.h
index 7e9bc27f..4b87c5a5 100644
--- a/onnx/defs/schema.h
+++ b/onnx/defs/schema.h
@@ -999,7 +999,7 @@ class OpSchemaRegistry final : public ISchemaRegistry {
class OpSchemaRegisterOnce final {
public:
// Export to cpp custom register macro
- explicit OpSchemaRegisterOnce(
+ OpSchemaRegisterOnce(
OpSchema op_schema,
int opset_version_to_load = 0,
bool fail_duplicate_schema = true) {
46 changes: 17 additions & 29 deletions cmake/vcpkg-ports/onnx/binskim.patch
Original file line number Diff line number Diff line change
@@ -1,26 +1,26 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index cc3ef140..f70312ba 100644
index 4a7df7d71..8462e3293 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -57,6 +57,7 @@ option(ONNX_USE_LITE_PROTO "Use lite protobuf instead of full." OFF)
@@ -52,6 +52,7 @@ option(ONNX_USE_LITE_PROTO "Use lite protobuf instead of full." OFF)
option(ONNX_DISABLE_EXCEPTIONS "Disable exception handling." OFF)
option(ONNX_DISABLE_STATIC_REGISTRATION "Disable static registration for ONNX operator schemas." OFF)
option(ONNX_USE_UNITY_BUILD "Enable Unity (Jumbo) build for" OFF)
+option(ONNX_MINIMAL_BUILD "Build only essential ONNX components" OFF)
if(WIN32)
option(ONNX_USE_MSVC_STATIC_RUNTIME "Build with MSVC static runtime" OFF)
endif()
@@ -409,14 +410,28 @@ relative_protobuf_generate_cpp(ONNX_PROTO_SRCS
@@ -399,14 +400,28 @@ relative_protobuf_generate_cpp(ONNX_PROTO_SRCS

add_library(onnx_proto ${ONNX_PROTO_SRCS})
add_library(onnx_proto_object OBJECT ${ONNX_PROTO_SRCS})

-file(GLOB_RECURSE __tmp_srcs "${ONNX_ROOT}/onnx/*.h" "${ONNX_ROOT}/onnx/*.cc")
-file(GLOB_RECURSE onnx_gtests_src "${ONNX_ROOT}/onnx/test/cpp/*.h"
- "${ONNX_ROOT}/onnx/test/cpp/*.cc"
- "${ONNX_ROOT}/onnx/backend/test/cpp/*.cc"
- "${ONNX_ROOT}/onnx/backend/test/cpp/*.h")
-list(REMOVE_ITEM __tmp_srcs "${ONNX_ROOT}/onnx/cpp2py_export.cc")
-list(REMOVE_ITEM __tmp_srcs ${onnx_gtests_src})
-list(REMOVE_ITEM __tmp_srcs ${onnx_gtests_src} "${ONNX_ROOT}/onnx/test/cmake/main.cc")
-list(APPEND ONNX_SRCS ${__tmp_srcs})
+if(ONNX_MINIMAL_BUILD)
+ message(STATUS "Configuring ONNX minimal build")
Expand All @@ -45,15 +45,15 @@ index cc3ef140..f70312ba 100644
+ list(APPEND ONNX_SRCS ${__tmp_srcs})
+endif()

# Hide all symbols we don't need
set_target_properties(onnx_proto PROPERTIES CXX_VISIBILITY_PRESET hidden)
@@ -438,19 +453,6 @@ add_onnx_global_defines(onnx_proto)
target_include_directories(onnx_proto PUBLIC
$<BUILD_INTERFACE:${ONNX_ROOT}>
set(LINKED_PROTOBUF_TARGET protobuf::libprotobuf)
if(ONNX_USE_LITE_PROTO)
@@ -417,19 +432,7 @@ endif()
add_onnx_global_defines(onnx_proto_object)
target_include_directories(onnx_proto_object PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>)
-if(MSVC)
- # For disabling Protobuf related warnings
- target_compile_options(onnx_proto PUBLIC
- set(protobuf_warnings
- /wd4146 # unary minus operator applied to unsigned type,
- # result still unsigned
- /wd4244 # 'argument': conversion from 'google::
Expand All @@ -64,31 +64,19 @@ index cc3ef140..f70312ba 100644
- /wd4141 # 'inline': used more than once
- )
-endif()

if(CMAKE_SYSTEM_NAME STREQUAL "AIX")
# whole-archive linker option not available on AIX.
+
add_library(onnx_proto)
target_link_libraries(onnx_proto PUBLIC $<BUILD_INTERFACE:onnx_proto_object>)
if(ONNX_ML)
diff --git a/onnx/defs/nn/old.cc b/onnx/defs/nn/old.cc
index ad6dd0c1..50259f32 100644
index 887151217..ac2e8c463 100644
--- a/onnx/defs/nn/old.cc
+++ b/onnx/defs/nn/old.cc
@@ -4091,7 +4091,6 @@ ONNX_OPERATOR_SET_SCHEMA(
@@ -4152,7 +4152,6 @@ ONNX_OPERATOR_SET_SCHEMA(
GroupNormalization,
18,
OpSchema()
- .Deprecate()
.SetDoc(GroupNormalization_ver18_doc)
.Attr("epsilon", "The epsilon value to use to avoid division by zero.", AttributeProto::FLOAT, 1e-5f)
.Attr(
diff --git a/onnx/defs/schema.h b/onnx/defs/schema.h
index 7e9bc27f..4b87c5a5 100644
--- a/onnx/defs/schema.h
+++ b/onnx/defs/schema.h
@@ -999,7 +999,7 @@ class OpSchemaRegistry final : public ISchemaRegistry {
class OpSchemaRegisterOnce final {
public:
// Export to cpp custom register macro
- explicit OpSchemaRegisterOnce(
+ OpSchemaRegisterOnce(
OpSchema op_schema,
int opset_version_to_load = 0,
bool fail_duplicate_schema = true) {
8 changes: 4 additions & 4 deletions cmake/vcpkg-ports/onnx/fix-dependency-protobuf.patch
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 47995579..1542b11f 100644
index 4a7df7d71..257d77e61 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -169,6 +169,7 @@ if(NOT DEFINED CMAKE_POSITION_INDEPENDENT_CODE)
@@ -159,6 +159,7 @@ if(NOT DEFINED CMAKE_POSITION_INDEPENDENT_CODE)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
endif()

Expand All @@ -11,14 +11,14 @@ index 47995579..1542b11f 100644
if(NOT ONNX_BUILD_CUSTOM_PROTOBUF)
if((ONNX_USE_LITE_PROTO AND TARGET protobuf::libprotobuf-lite) OR ((NOT ONNX_USE_LITE_PROTO) AND TARGET protobuf::libprotobuf))
diff --git a/cmake/ONNXConfig.cmake.in b/cmake/ONNXConfig.cmake.in
index a5129bfd..d450b51e 100644
index aa1ef47d9..d450b51e5 100644
--- a/cmake/ONNXConfig.cmake.in
+++ b/cmake/ONNXConfig.cmake.in
@@ -4,9 +4,8 @@
# library version information
set(ONNX_VERSION "@ONNX_VERSION@")

-if((NOT @@ONNX_USE_PROTOBUF_SHARED_LIBS@@) AND @@Build_Protobuf@@)
-if(NOT @ONNX_USE_PROTOBUF_SHARED_LIBS@)
- find_package(Protobuf REQUIRED CONFIG)
-endif()
+include(CMakeFindDependencyMacro)
Expand Down
5 changes: 3 additions & 2 deletions cmake/vcpkg-ports/onnx/portfile.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO onnx/onnx
REF "v${VERSION}"
SHA512 cf6ff4c0bb6cc16ce5f4d6267480d35f3c7a5fde94d10e1358928ff6e4ec6d756a7c5d34a500e60bbd8eb1912c8af21aa763719321b330f56a0eb6b9b810ef60
REF d8d3b072c5cacad5f0bf1adf35fcb549902b1149
SHA512 3e03e2e43f097a9abc0e1d871f2b1bb4d619ac7913cce858d713524b380699d9278f1d1080f635f2b590431399ca0ecdb4eaa5cec126da4f39298c6a76370bc0
PATCHES
fix-cmakelists.patch
fix-dependency-protobuf.patch
Expand Down Expand Up @@ -36,6 +36,7 @@ vcpkg_cmake_configure(
"-DProtobuf_PROTOC_EXECUTABLE:FILEPATH=${PROTOC}"
-DONNX_ML=ON
-DONNX_USE_PROTOBUF_SHARED_LIBS=${USE_PROTOBUF_SHARED}
-DONNX_USE_LITE_PROTO=ON
-DONNX_USE_MSVC_STATIC_RUNTIME=${USE_STATIC_RUNTIME}
-DONNX_BUILD_TESTS=OFF
-DONNX_BUILD_BENCHMARKS=OFF
Expand Down
2 changes: 1 addition & 1 deletion cmake/vcpkg-ports/onnx/vcpkg.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "onnx",
"version-semver": "1.19.1",
"version-semver": "1.20.0",
"port-version": 1,
"description": "Open standard for machine learning interoperability",
"homepage": "https://onnx.ai",
Expand Down
1 change: 1 addition & 0 deletions docs/How_To_Update_ONNX_Dev_Notes.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ git add onnx

1. Modify [cmake/vcpkg-ports/onnx/binskim.patch](/cmake/vcpkg-ports/onnx/binskim.patch) to be the same as [cmake/patches/onnx/onnx.patch](/cmake/patches/onnx/onnx.patch).
2. The other patches are required/created by vcpkg repository to build ONNX. We just need to re-run diff to makes sure the patches can be applied in the updated ONNX version.
a. VCPKG relies these patches to build ONNX.
3. Update [cmake/vcpkg-ports/onnx/portfile.cmake](/cmake/vcpkg-ports/onnx/portfile.cmake) with the correct commit id and SHA512. (alternatively, build it with the wrong SHA and ORT should tell you the expected one.)
4. Upload your package: [Follow the instructions](https://microsoft.sharepoint.com/:o:/r/teams/ONNX2/_layouts/15/Doc.aspx?sourcedoc=%7B170774BE-E1C6-4F8B-A3AE-984F211FE410%7D&wd=target(Development.one%7C63D3AB47-51D1-4A62-9965-66882234BD44%2FUpdate%20a%20VCPKG%20package%7CB6AE6A97-94FC-4436-8FC6-08C21AE895DA%2F)&wdpartid=%7BB5CF19CC-40FE-0EC7-32B6-8119B427B32A%7D%7B1%7D&wdsectionfileid=%7B9DD25660-A195-48EA-B9E0-DF8B902AFDD7%7D&ovuser=72f988bf-86f1-41af-91ab-2d7cd011db47%2Ctitaiwang%40microsoft.com&clickparams=eyJBcHBOYW1lIjoiVGVhbXMtRGVza3RvcCIsIkFwcFZlcnNpb24iOiI0OS8yNTA5MTExNjAxNiIsIkhhc0ZlZGVyYXRlZFVzZXIiOmZhbHNlfQ%3D%3D&CID=fb9dcaa1-c0b5-1000-5597-c19e3adf468c&cidOR=SPO)one%7C63d3ab47-51d1-4a62-9965-66882234bd44%2FAdd%20or%20Update%20a%20C%2B%2B%20dependency%7Cb6ae6a97-94fc-4436-8fc6-08c21ae895da%2F%29&wdorigin=NavigationUrl

Expand Down
Loading
Loading