-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[onnx] move work from luncliff/vcpkg
- Loading branch information
Showing
3 changed files
with
205 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,86 @@ | ||
diff --git a/CMakeLists.txt b/CMakeLists.txt | ||
index 628dcaa..300e4ea 100644 | ||
--- a/CMakeLists.txt | ||
+++ b/CMakeLists.txt | ||
@@ -111,8 +111,8 @@ endif() | ||
# find_package Python has replaced PythonInterp and PythonLibs since cmake 3.12 | ||
# Use the following command in the future; now this is only compatible with the latest pybind11 | ||
# find_package(Python ${PY_VERSION} COMPONENTS Interpreter Development REQUIRED) | ||
-find_package(PythonInterp ${PY_VERSION} REQUIRED) | ||
-find_package(PythonLibs ${PY_VERSION}) | ||
+find_package(Python3 ${PY_VERSION} COMPONENTS Interpreter REQUIRED) | ||
+set(PYTHON_EXECUTABLE ${Python3_EXECUTABLE}) | ||
|
||
if(CMAKE_SYSTEM_NAME STREQUAL "AIX") | ||
set(CMAKE_NO_SYSTEM_FROM_IMPORTED 1) | ||
@@ -422,6 +422,7 @@ target_link_libraries(onnx PUBLIC onnx_proto) | ||
add_onnx_global_defines(onnx) | ||
|
||
if(BUILD_ONNX_PYTHON) | ||
+ find_package(Python3 ${PY_VERSION} COMPONENTS Development REQUIRED) | ||
if("${PY_EXT_SUFFIX}" STREQUAL "") | ||
if(MSVC) | ||
set(PY_EXT_SUFFIX ".pyd") | ||
@@ -441,10 +442,13 @@ if(BUILD_ONNX_PYTHON) | ||
$<BUILD_INTERFACE:${ONNX_ROOT}> | ||
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}> | ||
$<INSTALL_INTERFACE:include> | ||
- ${PYTHON_INCLUDE_DIR}) | ||
- | ||
+ ${Python3_INCLUDE_DIRS}) | ||
+ target_link_directories(onnx_cpp2py_export PRIVATE | ||
+ ${Python3_LIBRARY_DIRS}) | ||
+ target_link_libraries(onnx_cpp2py_export PRIVATE | ||
+ ${Python3_LIBRARIES}) | ||
# pybind11 is a header only lib | ||
- find_package(pybind11 2.2) | ||
+ find_package(pybind11 2.2 CONFIG REQUIRED) | ||
if(pybind11_FOUND) | ||
target_include_directories(onnx_cpp2py_export PUBLIC | ||
${pybind11_INCLUDE_DIRS}) | ||
@@ -687,6 +691,27 @@ endif() | ||
|
||
include(GNUInstallDirs) | ||
|
||
+# install protobuf files | ||
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/onnx/onnx-data.proto | ||
+ ${CMAKE_CURRENT_BINARY_DIR}/onnx/onnx-data.proto3 | ||
+ ${CMAKE_CURRENT_BINARY_DIR}/onnx/onnx-ml.proto | ||
+ ${CMAKE_CURRENT_BINARY_DIR}/onnx/onnx-ml.proto3 | ||
+ ${CMAKE_CURRENT_BINARY_DIR}/onnx/onnx-operators-ml.proto | ||
+ ${CMAKE_CURRENT_BINARY_DIR}/onnx/onnx-operators-ml.proto3 | ||
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/onnx | ||
+) | ||
+# install python files | ||
+if(BUILD_ONNX_PYTHON) | ||
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/onnx/onnx_data_pb.py | ||
+ ${CMAKE_CURRENT_BINARY_DIR}/onnx/onnx_data_pb2.py | ||
+ ${CMAKE_CURRENT_BINARY_DIR}/onnx/onnx_ml_pb2.py | ||
+ ${CMAKE_CURRENT_BINARY_DIR}/onnx/onnx_operators_ml_pb2.py | ||
+ ${CMAKE_CURRENT_BINARY_DIR}/onnx/onnx_operators_pb.py | ||
+ ${CMAKE_CURRENT_BINARY_DIR}/onnx/onnx_pb.py | ||
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/onnx | ||
+ ) | ||
+endif() | ||
+ | ||
install(DIRECTORY ${ONNX_ROOT}/onnx | ||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} | ||
FILES_MATCHING | ||
@@ -639,7 +639,7 @@ endif() | ||
|
||
if (NOT ANDROID AND NOT IOS) | ||
# ---[ ONNXIFI wrapper | ||
- add_library(onnxifi_wrapper MODULE onnx/onnxifi_wrapper.c) | ||
+ add_library(onnxifi_wrapper onnx/onnxifi_wrapper.c) | ||
if(MSVC) | ||
add_msvc_runtime_flag(onnxifi_wrapper) | ||
endif() | ||
@@ -669,7 +669,7 @@ if (NOT ANDROID AND NOT IOS) | ||
endif() | ||
|
||
# ---[ ONNXIFI dummy backend | ||
-add_library(onnxifi_dummy SHARED onnx/onnxifi_dummy.c) | ||
+add_library(onnxifi_dummy onnx/onnxifi_dummy.c) | ||
|
||
if(ONNXIFI_ENABLE_EXT) | ||
add_definitions(-DONNXIFI_ENABLE_EXT=ON) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,87 @@ | ||
# uwp: LOAD_LIBRARY_SEARCH_DEFAULT_DIRS undefined identifier | ||
vcpkg_fail_port_install(ON_TARGET "uwp") | ||
vcpkg_check_linkage(ONLY_STATIC_LIBRARY) | ||
|
||
vcpkg_from_github( | ||
OUT_SOURCE_PATH SOURCE_PATH | ||
REPO onnx/onnx | ||
REF v1.9.0 | ||
SHA512 a3eecc74ce4f22524603fb86367d21c87a143ba27eef93ef4bd2e2868c2cadeb724b84df58a429286e7824adebdeba7fa059095b7ab29df8dcea8777bd7f4101 | ||
PATCHES | ||
fix-cmakelists.patch | ||
) | ||
|
||
string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" USE_STATIC_RUNTIME) | ||
|
||
# ONNX_USE_PROTOBUF_SHARED_LIBS: find the library and check its file extension | ||
find_library(PROTOBUF_LIBPATH NAMES protobuf PATHS ${CURRENT_INSTALLED_DIR}/bin ${CURRENT_INSTALLED_DIR}/lib REQUIRED) | ||
get_filename_component(PROTOBUF_LIBNAME ${PROTOBUF_LIBPATH} NAME) | ||
if(PROTOBUF_LIBNAME MATCHES ${CMAKE_SHARED_LIBRARY_SUFFIX}) | ||
set(USE_PROTOBUF_SHARED ON) | ||
else() | ||
set(USE_PROTOBUF_SHARED OFF) | ||
endif() | ||
|
||
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS | ||
FEATURES | ||
pybind11 BUILD_ONNX_PYTHON | ||
protobuf-lite ONNX_USE_LITE_PROTO | ||
) | ||
|
||
# Like protoc, python is required for codegen. | ||
vcpkg_find_acquire_program(PYTHON3) | ||
|
||
# PATH for .bat scripts so it can find 'python' | ||
get_filename_component(PYTHON_DIR ${PYTHON3} PATH) | ||
vcpkg_add_to_path(PREPEND ${PYTHON_DIR}) | ||
|
||
vcpkg_cmake_configure( | ||
SOURCE_PATH "${SOURCE_PATH}" | ||
OPTIONS | ||
${FEATURE_OPTIONS} | ||
-DPython3_EXECUTABLE=${PYTHON3} | ||
-DONNX_ML=ON | ||
-DONNX_GEN_PB_TYPE_STUBS=ON | ||
-DONNX_USE_PROTOBUF_SHARED_LIBS=${USE_PROTOBUF_SHARED} | ||
-DONNX_USE_MSVC_STATIC_RUNTIME=${USE_STATIC_RUNTIME} | ||
-DONNX_BUILD_TESTS=OFF | ||
-DONNX_BUILD_BENCHMARKS=OFF | ||
MAYBE_UNUSED_VARIABLES | ||
ONNX_USE_MSVC_STATIC_RUNTIME | ||
) | ||
|
||
if("pybind11" IN_LIST FEATURES) | ||
# This target is not in install/export | ||
vcpkg_cmake_build(TARGET onnx_cpp2py_export) | ||
endif() | ||
vcpkg_cmake_install() | ||
vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/ONNX) | ||
|
||
file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) | ||
|
||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" | ||
"${CURRENT_PACKAGES_DIR}/debug/share" | ||
# the others are empty | ||
"${CURRENT_PACKAGES_DIR}/include/onnx/onnx_ml" | ||
"${CURRENT_PACKAGES_DIR}/include/onnx/onnx_data" | ||
"${CURRENT_PACKAGES_DIR}/include/onnx/onnx_operators_ml" | ||
"${CURRENT_PACKAGES_DIR}/include/onnx/onnx_cpp2py_export" | ||
"${CURRENT_PACKAGES_DIR}/include/onnx/backend" | ||
"${CURRENT_PACKAGES_DIR}/include/onnx/tools" | ||
"${CURRENT_PACKAGES_DIR}/include/onnx/test" | ||
"${CURRENT_PACKAGES_DIR}/include/onnx/bin" | ||
"${CURRENT_PACKAGES_DIR}/include/onnx/examples" | ||
"${CURRENT_PACKAGES_DIR}/include/onnx/frontend" | ||
"${CURRENT_PACKAGES_DIR}/include/onnx/defs/controlflow" | ||
"${CURRENT_PACKAGES_DIR}/include/onnx/defs/generator" | ||
"${CURRENT_PACKAGES_DIR}/include/onnx/defs/logical" | ||
"${CURRENT_PACKAGES_DIR}/include/onnx/defs/math" | ||
"${CURRENT_PACKAGES_DIR}/include/onnx/defs/nn" | ||
"${CURRENT_PACKAGES_DIR}/include/onnx/defs/object_detection" | ||
"${CURRENT_PACKAGES_DIR}/include/onnx/defs/quantization" | ||
"${CURRENT_PACKAGES_DIR}/include/onnx/defs/reduction" | ||
"${CURRENT_PACKAGES_DIR}/include/onnx/defs/rnn" | ||
"${CURRENT_PACKAGES_DIR}/include/onnx/defs/sequence" | ||
"${CURRENT_PACKAGES_DIR}/include/onnx/defs/traditionalml" | ||
"${CURRENT_PACKAGES_DIR}/include/onnx/defs/training" | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
{ | ||
"name": "onnx", | ||
"version-semver": "1.9.0", | ||
"port-version": 1, | ||
"description": "Open standard for machine learning interoperability", | ||
"homepage": "https://onnx.ai", | ||
"license": "Apache-2.0", | ||
"supports": "!uwp", | ||
"dependencies": [ | ||
"protobuf", | ||
{ | ||
"name": "protobuf", | ||
"host": true | ||
}, | ||
{ | ||
"name": "vcpkg-cmake", | ||
"host": true | ||
}, | ||
{ | ||
"name": "vcpkg-cmake-config", | ||
"host": true | ||
} | ||
], | ||
"features": { | ||
"protobuf-lite": { | ||
"description": "Use lite protobuf instead of full" | ||
}, | ||
"pybind11": { | ||
"description": "Build Python binaries" | ||
} | ||
} | ||
} |