diff --git a/ports/onnxruntime-gpu/portfile.cmake b/ports/onnxruntime-gpu/portfile.cmake index bce266e9433a52..cfd4f6eee39072 100644 --- a/ports/onnxruntime-gpu/portfile.cmake +++ b/ports/onnxruntime-gpu/portfile.cmake @@ -1,41 +1 @@ -vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) - -set(VERSION 1.5.1) - -vcpkg_download_distfile(ARCHIVE - URLS "https://github.com/microsoft/onnxruntime/releases/download/v1.5.1/onnxruntime-win-x64-gpu-1.5.1.zip" - FILENAME "onnxruntime-win-x64-gpu-1.5.1.zip" - SHA512 893dbed1196b5c9730744dc5566cd3ad8ec677cbea04dd0572efc9a8b3563d3f1cbf40d0dea3d624d9451dc33272c0ae44d53d6deee6f249fa2520e60718ee52 -) - -vcpkg_extract_source_archive_ex( - OUT_SOURCE_PATH SOURCE_PATH - ARCHIVE ${ARCHIVE} - NO_REMOVE_ONE_LEVEL - REF ${VERSION} -) - -file(MAKE_DIRECTORY - ${CURRENT_PACKAGES_DIR}/include - ${CURRENT_PACKAGES_DIR}/lib - ${CURRENT_PACKAGES_DIR}/bin - ${CURRENT_PACKAGES_DIR}/debug/lib - ${CURRENT_PACKAGES_DIR}/debug/bin - ) - -file(COPY - ${SOURCE_PATH}/onnxruntime-win-x64-gpu-1.5.1/include - DESTINATION ${CURRENT_PACKAGES_DIR} - ) - -file(COPY ${SOURCE_PATH}/onnxruntime-win-x64-gpu-1.5.1/lib/onnxruntime.lib - DESTINATION ${CURRENT_PACKAGES_DIR}/lib) -file(COPY ${SOURCE_PATH}/onnxruntime-win-x64-gpu-1.5.1/lib/onnxruntime.lib - DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) -file(COPY ${SOURCE_PATH}/onnxruntime-win-x64-gpu-1.5.1/lib/onnxruntime.dll - DESTINATION ${CURRENT_PACKAGES_DIR}/bin) -file(COPY ${SOURCE_PATH}/onnxruntime-win-x64-gpu-1.5.1/lib/onnxruntime.dll - DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) - -# # Handle copyright -file(INSTALL ${SOURCE_PATH}/onnxruntime-win-x64-gpu-1.5.1/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) +SET(VCPKG_POLICY_EMPTY_PACKAGE enabled) \ No newline at end of file diff --git a/ports/onnxruntime-gpu/vcpkg.json b/ports/onnxruntime-gpu/vcpkg.json index 53723298a77e19..519ecf9ac3fb77 100644 --- a/ports/onnxruntime-gpu/vcpkg.json +++ b/ports/onnxruntime-gpu/vcpkg.json @@ -1,8 +1,15 @@ { "name": "onnxruntime-gpu", - "version": "1.5.1", - "port-version": 1, + "version": "1.10.0", "description": "onnxruntime (GPU)", "homepage": "https://github.com/microsoft/onnxruntime", - "supports": "windows & !x86 & !uwp & !static & !arm" + "supports": "!uwp & !arm", + "dependencies": [ + { + "name": "onnxruntime", + "features": [ + "gpu" + ] + } + ] } diff --git a/ports/onnxruntime/export-target-in-static-build.patch b/ports/onnxruntime/export-target-in-static-build.patch new file mode 100644 index 00000000000000..e31b21430c6e52 --- /dev/null +++ b/ports/onnxruntime/export-target-in-static-build.patch @@ -0,0 +1,300 @@ +diff --git a/cmake/onnxruntime_common.cmake b/cmake/onnxruntime_common.cmake +index 00112c9..157d851 100644 +--- a/cmake/onnxruntime_common.cmake ++++ b/cmake/onnxruntime_common.cmake +@@ -217,3 +217,11 @@ if (ARM64 OR ARM OR X86 OR X64 OR X86_64) + list(APPEND onnxruntime_EXTERNAL_LIBRARIES cpuinfo unofficial::cpuinfo::clog) + endif() + endif() ++ ++if (NOT onnxruntime_BUILD_SHARED_LIB) ++ install(TARGETS onnxruntime_common ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ++ FRAMEWORK DESTINATION ${CMAKE_INSTALL_BINDIR}) ++endif() +diff --git a/cmake/onnxruntime_flatbuffers.cmake b/cmake/onnxruntime_flatbuffers.cmake +index bcb196b..95e44b9 100644 +--- a/cmake/onnxruntime_flatbuffers.cmake ++++ b/cmake/onnxruntime_flatbuffers.cmake +@@ -34,3 +34,12 @@ if (WINDOWS_STORE) + target_force_include(flatbuffers PRIVATE uwp_stubs.h) + target_force_include(flatc PRIVATE uwp_stubs.h) + endif() ++ ++if (NOT onnxruntime_BUILD_SHARED_LIB) ++ install(TARGETS onnxruntime_flatbuffers ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ++ FRAMEWORK DESTINATION ${CMAKE_INSTALL_BINDIR}) ++endif() ++ +diff --git a/cmake/onnxruntime_framework.cmake b/cmake/onnxruntime_framework.cmake +index dee3ff2..c25b02c 100644 +--- a/cmake/onnxruntime_framework.cmake ++++ b/cmake/onnxruntime_framework.cmake +@@ -87,3 +87,11 @@ if (onnxruntime_DEBUG_NODE_INPUTS_OUTPUTS_ENABLE_DUMP_TO_SQLDB) + endif() + + install(DIRECTORY ${PROJECT_SOURCE_DIR}/../include/onnxruntime/core/framework DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/onnxruntime/core) ++ ++if (NOT onnxruntime_BUILD_SHARED_LIB) ++ install(TARGETS onnxruntime_framework ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ++ FRAMEWORK DESTINATION ${CMAKE_INSTALL_BINDIR}) ++endif() +diff --git a/cmake/onnxruntime_graph.cmake b/cmake/onnxruntime_graph.cmake +index dde1fbd..7e5950a 100644 +--- a/cmake/onnxruntime_graph.cmake ++++ b/cmake/onnxruntime_graph.cmake +@@ -125,3 +125,12 @@ if (WIN32) + # Add Code Analysis properties to enable C++ Core checks. Have to do it via a props file include. + set_target_properties(onnxruntime_graph PROPERTIES VS_USER_PROPS ${PROJECT_SOURCE_DIR}/EnableVisualStudioCodeAnalysis.props) + endif() ++ ++if (NOT onnxruntime_BUILD_SHARED_LIB) ++ install(TARGETS onnxruntime_graph ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ++ FRAMEWORK DESTINATION ${CMAKE_INSTALL_BINDIR}) ++endif() ++ +diff --git a/cmake/onnxruntime_mlas.cmake b/cmake/onnxruntime_mlas.cmake +index e7ce2cc..18ea5ea 100644 +--- a/cmake/onnxruntime_mlas.cmake ++++ b/cmake/onnxruntime_mlas.cmake +@@ -458,3 +458,12 @@ set_target_properties(onnxruntime_mlas PROPERTIES FOLDER "ONNXRuntime") + if (WIN32) + target_compile_options(onnxruntime_mlas PRIVATE "/wd6385" "/wd4127") + endif() ++ ++if (NOT onnxruntime_BUILD_SHARED_LIB) ++ install(TARGETS onnxruntime_mlas ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ++ FRAMEWORK DESTINATION ${CMAKE_INSTALL_BINDIR}) ++endif() ++ +diff --git a/cmake/onnxruntime_optimizer.cmake b/cmake/onnxruntime_optimizer.cmake +index 9afa2c2..2f899b2 100644 +--- a/cmake/onnxruntime_optimizer.cmake ++++ b/cmake/onnxruntime_optimizer.cmake +@@ -77,3 +77,12 @@ if (onnxruntime_ENABLE_TRAINING) + endif() + add_dependencies(onnxruntime_optimizer ${onnxruntime_EXTERNAL_DEPENDENCIES}) + set_target_properties(onnxruntime_optimizer PROPERTIES FOLDER "ONNXRuntime") ++ ++if (NOT onnxruntime_BUILD_SHARED_LIB) ++ install(TARGETS onnxruntime_optimizer ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ++ FRAMEWORK DESTINATION ${CMAKE_INSTALL_BINDIR}) ++endif() ++ +diff --git a/cmake/onnxruntime_providers.cmake b/cmake/onnxruntime_providers.cmake +index c9e8bb1..d24712b 100644 +--- a/cmake/onnxruntime_providers.cmake ++++ b/cmake/onnxruntime_providers.cmake +@@ -619,6 +619,14 @@ if (onnxruntime_USE_NUPHAR) + target_compile_options(onnxruntime_providers_nuphar PRIVATE ${DISABLED_WARNINGS_FOR_TVM}) + add_dependencies(onnxruntime_providers_nuphar ${onnxruntime_EXTERNAL_DEPENDENCIES}) + install(DIRECTORY ${PROJECT_SOURCE_DIR}/../include/onnxruntime/core/providers/nuphar DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/onnxruntime/core/providers) ++ ++ if (NOT onnxruntime_BUILD_SHARED_LIB) ++ install(TARGETS onnxruntime_providers_nuphar ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ++ FRAMEWORK DESTINATION ${CMAKE_INSTALL_BINDIR}) ++ endif() + endif() + + if (onnxruntime_USE_VITISAI) +@@ -635,6 +643,14 @@ if (onnxruntime_USE_VITISAI) + target_include_directories(onnxruntime_providers_vitisai PRIVATE ${ONNXRUNTIME_ROOT} ${eigen_INCLUDE_DIRS} ${VITISAI_INCLUDE_DIR}) + install(DIRECTORY ${PROJECT_SOURCE_DIR}/../include/onnxruntime/core/providers/vitisai DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/onnxruntime/core/providers) + set_target_properties(onnxruntime_providers_vitisai PROPERTIES LINKER_LANGUAGE CXX) ++ ++ if (NOT onnxruntime_BUILD_SHARED_LIB) ++ install(TARGETS onnxruntime_providers_vitisai ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ++ FRAMEWORK DESTINATION ${CMAKE_INSTALL_BINDIR}) ++ endif() + endif() + + if (onnxruntime_USE_OPENVINO) +@@ -730,6 +746,14 @@ if (onnxruntime_USE_COREML) + GEN_SRC_SUB_DIR ${_src_sub_dir} + IMPORT_DIRS ${COREML_PROTO_ROOT} + TARGET onnxruntime_coreml_proto) ++ if (NOT onnxruntime_BUILD_SHARED_LIB) ++ install(TARGETS onnxruntime_coreml_proto ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ++ FRAMEWORK DESTINATION ${CMAKE_INSTALL_BINDIR} ++ ) ++ endif() + endif() + + # These are shared utils, +@@ -788,6 +812,14 @@ if (onnxruntime_USE_COREML) + set_target_properties(onnxruntime_providers_coreml PROPERTIES FOLDER "ONNXRuntime") + target_include_directories(onnxruntime_providers_coreml PRIVATE ${ONNXRUNTIME_ROOT} ${coreml_INCLUDE_DIRS}) + set_target_properties(onnxruntime_providers_coreml PROPERTIES LINKER_LANGUAGE CXX) ++ ++ if (NOT onnxruntime_BUILD_SHARED_LIB) ++ install(TARGETS onnxruntime_providers_coreml ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ++ FRAMEWORK DESTINATION ${CMAKE_INSTALL_BINDIR}) ++ endif() + endif() + + if (onnxruntime_USE_NNAPI_BUILTIN) +@@ -863,6 +895,14 @@ if (onnxruntime_USE_NNAPI_BUILTIN) + if(NOT MSVC) + target_compile_options(onnxruntime_providers_nnapi PRIVATE "-Wno-unknown-pragmas") + endif() ++ ++ if (NOT onnxruntime_BUILD_SHARED_LIB) ++ install(TARGETS onnxruntime_providers_nnapi ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ++ FRAMEWORK DESTINATION ${CMAKE_INSTALL_BINDIR}) ++ endif() + endif() + + if (onnxruntime_USE_RKNPU) +@@ -895,6 +935,14 @@ if (onnxruntime_USE_RKNPU) + target_include_directories(onnxruntime_providers_rknpu PRIVATE ${ONNXRUNTIME_ROOT} ${rknpu_INCLUDE_DIRS} ${RKNPU_DDK_INCLUDE_DIR}) + link_directories(onnxruntime_providers_rknpu ${RKNPU_DDK_LIB_DIR}) + set_target_properties(onnxruntime_providers_rknpu PROPERTIES LINKER_LANGUAGE CXX) ++ ++ if (NOT onnxruntime_BUILD_SHARED_LIB) ++ install(TARGETS onnxruntime_providers_rknpu ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ++ FRAMEWORK DESTINATION ${CMAKE_INSTALL_BINDIR}) ++ endif() + endif() + + if (onnxruntime_USE_DML) +@@ -952,6 +1000,14 @@ if (onnxruntime_USE_DML) + + set_target_properties(onnxruntime_providers_dml PROPERTIES LINKER_LANGUAGE CXX) + set_target_properties(onnxruntime_providers_dml PROPERTIES FOLDER "ONNXRuntime") ++ ++ if (NOT onnxruntime_BUILD_SHARED_LIB) ++ install(TARGETS onnxruntime_providers_dml ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ++ FRAMEWORK DESTINATION ${CMAKE_INSTALL_BINDIR}) ++ endif() + endif() + + if (onnxruntime_USE_MIGRAPHX) +@@ -978,6 +1034,14 @@ if (onnxruntime_USE_MIGRAPHX) + add_dependencies(onnxruntime_providers_migraphx ${onnxruntime_EXTERNAL_DEPENDENCIES}) + install(DIRECTORY ${PROJECT_SOURCE_DIR}/../include/onnxruntime/core/providers/migraphx DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/onnxruntime/core/providers) + set_target_properties(onnxruntime_providers_migraphx PROPERTIES LINKER_LANGUAGE CXX) ++ ++ if (NOT onnxruntime_BUILD_SHARED_LIB) ++ install(TARGETS onnxruntime_providers_migraphx ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ++ FRAMEWORK DESTINATION ${CMAKE_INSTALL_BINDIR}) ++ endif() + endif() + + if (onnxruntime_USE_ACL) +@@ -996,6 +1060,14 @@ if (onnxruntime_USE_ACL) + target_include_directories(onnxruntime_providers_acl PRIVATE ${ONNXRUNTIME_ROOT} ${eigen_INCLUDE_DIRS} ${onnxruntime_ACL_HOME} ${onnxruntime_ACL_HOME}/include) + install(DIRECTORY ${PROJECT_SOURCE_DIR}/../include/onnxruntime/core/providers/acl DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/onnxruntime/core/providers) + set_target_properties(onnxruntime_providers_acl PROPERTIES LINKER_LANGUAGE CXX) ++ ++ if (NOT onnxruntime_BUILD_SHARED_LIB) ++ install(TARGETS onnxruntime_providers_acl ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ++ FRAMEWORK DESTINATION ${CMAKE_INSTALL_BINDIR}) ++ endif() + endif() + + if (onnxruntime_USE_ARMNN) +@@ -1013,6 +1085,14 @@ if (onnxruntime_USE_ARMNN) + target_include_directories(onnxruntime_providers_armnn PRIVATE ${ONNXRUNTIME_ROOT} ${eigen_INCLUDE_DIRS} ${onnxruntime_ARMNN_HOME} ${onnxruntime_ARMNN_HOME}/include ${onnxruntime_ACL_HOME} ${onnxruntime_ACL_HOME}/include) + install(DIRECTORY ${PROJECT_SOURCE_DIR}/../include/onnxruntime/core/providers/armnn DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/onnxruntime/core/providers) + set_target_properties(onnxruntime_providers_armnn PROPERTIES LINKER_LANGUAGE CXX) ++ ++ if (NOT onnxruntime_BUILD_SHARED_LIB) ++ install(TARGETS onnxruntime_providers_armnn ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ++ FRAMEWORK DESTINATION ${CMAKE_INSTALL_BINDIR}) ++ endif() + endif() + + if (onnxruntime_USE_ROCM) +@@ -1172,3 +1252,12 @@ if (onnxruntime_USE_ROCM) + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + + endif() ++ ++if (NOT onnxruntime_BUILD_SHARED_LIB) ++ install(TARGETS onnxruntime_providers ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ++ FRAMEWORK DESTINATION ${CMAKE_INSTALL_BINDIR}) ++endif() ++ +diff --git a/cmake/onnxruntime_session.cmake b/cmake/onnxruntime_session.cmake +index 87bca0e..44d2d55 100644 +--- a/cmake/onnxruntime_session.cmake ++++ b/cmake/onnxruntime_session.cmake +@@ -50,3 +50,12 @@ endif() + if (onnxruntime_ENABLE_TRAINING_TORCH_INTEROP) + onnxruntime_add_include_to_target(onnxruntime_session Python::Module) + endif() ++ ++if (NOT onnxruntime_BUILD_SHARED_LIB) ++ install(TARGETS onnxruntime_session ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ++ FRAMEWORK DESTINATION ${CMAKE_INSTALL_BINDIR}) ++endif() ++ +diff --git a/cmake/onnxruntime_util.cmake b/cmake/onnxruntime_util.cmake +index 8449cf2..924b970 100644 +--- a/cmake/onnxruntime_util.cmake ++++ b/cmake/onnxruntime_util.cmake +@@ -26,3 +26,11 @@ if (WIN32) + target_compile_definitions(onnxruntime_util PRIVATE _SCL_SECURE_NO_WARNINGS) + target_compile_definitions(onnxruntime_framework PRIVATE _SCL_SECURE_NO_WARNINGS) + endif() ++ ++if (NOT onnxruntime_BUILD_SHARED_LIB) ++ install(TARGETS onnxruntime_util ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ++ FRAMEWORK DESTINATION ${CMAKE_INSTALL_BINDIR}) ++endif() diff --git a/ports/onnxruntime/fix-build-issues.patch b/ports/onnxruntime/fix-build-issues.patch new file mode 100644 index 00000000000000..8e37ba5162b6e6 --- /dev/null +++ b/ports/onnxruntime/fix-build-issues.patch @@ -0,0 +1,59 @@ +diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt +index 8aadcee..771f657 100644 +--- a/cmake/CMakeLists.txt ++++ b/cmake/CMakeLists.txt +@@ -1222,7 +1222,7 @@ function(onnxruntime_add_shared_library target_name) + endfunction() + + function(onnxruntime_add_static_library target_name) +- add_library(${target_name} ${ARGN}) ++ add_library(${target_name} STATIC ${ARGN}) + onnxruntime_configure_target(${target_name}) + endfunction() + +diff --git a/cmake/onnxruntime_providers.cmake b/cmake/onnxruntime_providers.cmake +index a82629b..0cc6d31 100644 +--- a/cmake/onnxruntime_providers.cmake ++++ b/cmake/onnxruntime_providers.cmake +@@ -260,6 +260,12 @@ if (onnxruntime_USE_CUDA) + "${ONNXRUNTIME_ROOT}/core/providers/cuda/*.h" + "${ONNXRUNTIME_ROOT}/core/providers/cuda/*.cc" + ) ++ # Remove pch files ++ list(REMOVE_ITEM onnxruntime_providers_cuda_cc_srcs ++ "${ONNXRUNTIME_ROOT}/core/providers/cuda/cuda_pch.h" ++ "${ONNXRUNTIME_ROOT}/core/providers/cuda/cuda_pch.cc" ++ ) ++ + # The shared_library files are in a separate list since they use precompiled headers, and the above files have them disabled. + file(GLOB_RECURSE onnxruntime_providers_cuda_shared_srcs CONFIGURE_DEPENDS + "${ONNXRUNTIME_ROOT}/core/providers/shared_library/*.h" +@@ -387,6 +393,11 @@ if (onnxruntime_USE_CUDA) + + if (WIN32) + # *.cu cannot use PCH ++ target_precompile_headers(onnxruntime_providers_cuda PUBLIC ++ "${ONNXRUNTIME_ROOT}/core/providers/cuda/cuda_pch.h" ++ "${ONNXRUNTIME_ROOT}/core/providers/cuda/cuda_pch.cc" ++ ) ++ if (0) + foreach(src_file ${onnxruntime_providers_cuda_cc_srcs}) + set_source_files_properties(${src_file} + PROPERTIES +@@ -403,6 +414,7 @@ if (onnxruntime_USE_CUDA) + PROPERTIES + COMPILE_FLAGS "/Yccuda_pch.h" + ) ++ endif() + # disable a warning from the CUDA headers about unreferenced local functions + #target_compile_options(onnxruntime_providers_cuda PRIVATE /wd4505) + if (onnxruntime_USE_TVM) +@@ -429,7 +441,7 @@ if (onnxruntime_USE_CUDA) + + install(TARGETS onnxruntime_providers_cuda + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} +- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ LIBRARY DESTINATION ${CMAKE_INSTALL_BINDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + + endif() diff --git a/ports/onnxruntime/fix-dependencies.patch b/ports/onnxruntime/fix-dependencies.patch new file mode 100644 index 00000000000000..a204072549df84 --- /dev/null +++ b/ports/onnxruntime/fix-dependencies.patch @@ -0,0 +1,205 @@ +diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt +index acbde7f..8aadcee 100644 +--- a/cmake/CMakeLists.txt ++++ b/cmake/CMakeLists.txt +@@ -718,8 +718,13 @@ if (onnxruntime_BUILD_BENCHMARKS) + endif() + endif() + +-if (NOT WIN32 AND NOT onnxruntime_PREFER_SYSTEM_LIB) ++if (NOT WIN32) ++ if (NOT onnxruntime_PREFER_SYSTEM_LIB) + add_subdirectory(${PROJECT_SOURCE_DIR}/external/nsync EXCLUDE_FROM_ALL) ++ else() ++ find_package(unofficial-nsync CONFIG REQUIRED) ++ get_target_property(NSYNC_INCLUDE_DIR unofficial::nsync::nsync_cpp INTERFACE_INCLUDE_DIRECTORIES) ++ endif() + endif() + # External dependencies + list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/external) +@@ -825,7 +830,7 @@ get_filename_component(REPO_ROOT "${REPO_ROOT}" ABSOLUTE) + set(ONNXRUNTIME_INCLUDE_DIR ${REPO_ROOT}/include/onnxruntime) + + if (onnxruntime_PREFER_SYSTEM_LIB) +- find_package(date) ++ find_package(date CONFIG REQUIRED) + endif() + if (date_FOUND) + add_library(date_interface ALIAS date::date) +@@ -833,23 +838,23 @@ else() + add_subdirectory(external/date EXCLUDE_FROM_ALL) + endif() + +-set(SAFEINT_INCLUDE_DIR ${REPO_ROOT}/cmake/external/SafeInt) ++find_path(SAFEINT_INCLUDE_DIR NAMES "SafeInt.hpp" PATHS_SUFFIXES include) + add_library(safeint_interface INTERFACE) + target_include_directories(safeint_interface INTERFACE ${SAFEINT_INCLUDE_DIR}) + + if (onnxruntime_PREFER_SYSTEM_LIB) +- find_package(boost_mp11) ++ find_path(BOOST_MP11_INCLUDES NAMES mp11.hpp PATH_SUFFIXES include/boost) ++ add_library(Boost::mp11 INTERFACE IMPORTED) ++ target_include_directories(Boost::mp11 INTERFACE ${BOOST_MP11_INCLUDES}) + endif() + if (NOT TARGET Boost::mp11) + add_subdirectory(external/mp11 EXCLUDE_FROM_ALL) + endif() + +-set(JSON_BuildTests OFF CACHE INTERNAL "") +-set(JSON_Install OFF CACHE INTERNAL "") +-add_subdirectory(external/json EXCLUDE_FROM_ALL) ++find_package(nlohmann_json CONFIG REQUIRED) + + if (onnxruntime_PREFER_SYSTEM_LIB) +- find_package(re2) ++ find_package(re2 CONFIG REQUIRED) + endif() + if (NOT TARGET re2::re2) + add_subdirectory(external/re2 EXCLUDE_FROM_ALL) +@@ -894,6 +899,9 @@ endif() + + # TODO do we have to add target_include_directories to each project that uses this? + if (CPUINFO_SUPPORTED) ++ find_package(unofficial-cpuinfo CONFIG REQUIRED) ++ add_library(cpuinfo ALIAS unofficial::cpuinfo::cpuinfo) ++ if (0) + set(PYTORCH_CPUINFO_DIR external/pytorch_cpuinfo) + set(PYTORCH_CPUINFO_INCLUDE_DIR ${PYTORCH_CPUINFO_DIR}/include) + set(CPUINFO_BUILD_TOOLS OFF CACHE INTERNAL "") +@@ -911,6 +919,7 @@ if (CPUINFO_SUPPORTED) + if (MSVC) + target_compile_options(cpuinfo PRIVATE "-D_CRT_SECURE_NO_WARNINGS") + endif() ++ endif() + endif() + + # bounds checking behavior. +@@ -938,6 +947,8 @@ set(onnxruntime_EXTERNAL_LIBRARIES onnx onnx_proto ${PROTOBUF_LIB} re2::re2) + + set(onnxruntime_LINK_DIRS ) + if (onnxruntime_USE_CUDA) ++ find_package(CUDNN REQUIRED) ++ add_library(cudnn ALIAS CuDNN::CuDNN) + #TODO: combine onnxruntime_CUDNN_HOME and onnxruntime_CUDA_HOME, assume they are the same + if (WIN32) + list(APPEND onnxruntime_LINK_DIRS ${onnxruntime_CUDNN_HOME}/lib/x64 ${onnxruntime_CUDA_HOME}/x64/lib64) +@@ -1165,7 +1176,7 @@ function(onnxruntime_set_compile_flags target_name) + endif() + + target_compile_definitions(${target_name} PUBLIC -DNSYNC_ATOMIC_CPP11) +- target_include_directories(${target_name} PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/external/nsync/public") ++ target_include_directories(${target_name} PRIVATE "${NSYNC_INCLUDE_DIR}") + endif() + foreach(ORT_FLAG ${ORT_PROVIDER_FLAGS}) + target_compile_definitions(${target_name} PRIVATE ${ORT_FLAG}) +@@ -1383,17 +1394,19 @@ else() + endif() + + if (NOT onnxruntime_MINIMAL_BUILD) +- add_subdirectory(external/onnx EXCLUDE_FROM_ALL) ++ find_package(ONNX CONFIG REQUIRED) + else() + include(onnx_minimal) + endif() + ++if (0) + target_compile_definitions(onnx PUBLIC $ PRIVATE "__ONNX_DISABLE_STATIC_REGISTRATION") + if (NOT onnxruntime_USE_FULL_PROTOBUF) + target_compile_definitions(onnx PUBLIC "__ONNX_NO_DOC_STRINGS") + endif() + set_target_properties(onnx PROPERTIES FOLDER "External/ONNX") + set_target_properties(onnx_proto PROPERTIES FOLDER "External/ONNX") ++endif() + + + # fix a warning in onnx code we can't do anything about +@@ -1830,7 +1843,7 @@ if (WIN32) + list(APPEND onnxruntime_EXTERNAL_LIBRARIES ${SYS_PATH_LIB} Shlwapi) + list(APPEND onnxruntime_EXTERNAL_LIBRARIES debug Dbghelp) + else() +- list(APPEND onnxruntime_EXTERNAL_LIBRARIES nsync_cpp) ++ list(APPEND onnxruntime_EXTERNAL_LIBRARIES unofficial::nsync::nsync_cpp) + list(APPEND onnxruntime_EXTERNAL_LIBRARIES ${CMAKE_DL_LIBS} Threads::Threads) + endif() + +diff --git a/cmake/external/eigen.cmake b/cmake/external/eigen.cmake +index 264247a..f5908ab 100644 +--- a/cmake/external/eigen.cmake ++++ b/cmake/external/eigen.cmake +@@ -1,9 +1,8 @@ + include (ExternalProject) + + if (onnxruntime_USE_PREINSTALLED_EIGEN) +- add_library(eigen INTERFACE) +- file(TO_CMAKE_PATH ${eigen_SOURCE_PATH} eigen_INCLUDE_DIRS) +- target_include_directories(eigen INTERFACE ${eigen_INCLUDE_DIRS}) ++ find_package(Eigen3 CONFIG REQUIRED) ++ add_library(eigen ALIAS Eigen3::Eigen) + else () + if (onnxruntime_USE_ACL) + execute_process(COMMAND git apply --ignore-space-change --ignore-whitespace ${PROJECT_SOURCE_DIR}/patches/eigen/Fix_Eigen_Build_Break.patch WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}) +diff --git a/cmake/external/onnx_minimal.cmake b/cmake/external/onnx_minimal.cmake +index 33df1f5..13a0b3a 100644 +--- a/cmake/external/onnx_minimal.cmake ++++ b/cmake/external/onnx_minimal.cmake +@@ -12,6 +12,9 @@ endif() + + #TODO: if protobuf is a shared lib and onnxruntime_USE_FULL_PROTOBUF is ON, then onnx_proto should be built as a shared lib instead of a static lib. Otherwise any code outside onnxruntime.dll can't use onnx protobuf definitions if they share the protobuf.dll with onnxruntime. For example, if protobuf is a shared lib and onnx_proto is a static lib then onnxruntime_perf_test won't work. + ++find_package(ONNX CONFIG REQUIRED) ++ ++if (0) + set(ONNX_SOURCE_ROOT ${PROJECT_SOURCE_DIR}/external/onnx) + + add_library(onnx_proto ${ONNX_SOURCE_ROOT}/onnx/onnx-ml.proto ${ONNX_SOURCE_ROOT}/onnx/onnx-operators-ml.proto ${ONNX_SOURCE_ROOT}/onnx/onnx-data.proto) +@@ -93,4 +96,5 @@ else() + target_compile_options(onnx PRIVATE "-Wno-unused-but-set-variable") + endif() + endif() ++endif() + +diff --git a/cmake/onnxruntime_common.cmake b/cmake/onnxruntime_common.cmake +index 8425e70..00112c9 100644 +--- a/cmake/onnxruntime_common.cmake ++++ b/cmake/onnxruntime_common.cmake +@@ -208,9 +208,12 @@ if (ARM64 OR ARM OR X86 OR X64 OR X86_64) + # Link cpuinfo + # Using it mainly in ARM with Android. + # Its functionality in detecting x86 cpu features are lacking, so is support for Windows. ++ if (NOT TARGET unofficial::cpuinfo::clog) ++ find_package(unofficial-cpuinfo CONFIG REQUIRED) ++ endif() + + target_include_directories(onnxruntime_common PRIVATE ${PYTORCH_CPUINFO_INCLUDE_DIR}) + target_link_libraries(onnxruntime_common cpuinfo) +- list(APPEND onnxruntime_EXTERNAL_LIBRARIES cpuinfo clog) ++ list(APPEND onnxruntime_EXTERNAL_LIBRARIES cpuinfo unofficial::cpuinfo::clog) + endif() + endif() +diff --git a/cmake/wil.cmake b/cmake/wil.cmake +index 36a8bc9..0126a69 100644 +--- a/cmake/wil.cmake ++++ b/cmake/wil.cmake +@@ -1,5 +1,5 @@ + # Copyright (c) Microsoft Corporation. All rights reserved. + # Licensed under the MIT License. + +-add_library(wil INTERFACE) +-target_include_directories(wil INTERFACE external/wil/include/) +\ No newline at end of file ++find_package(wil CONFIG REQUIRED) ++add_library(wil ALIAS WIL::WIL) +\ No newline at end of file +diff --git a/onnxruntime/core/common/safeint.h b/onnxruntime/core/common/safeint.h +index 263e936..82bbe83 100644 +--- a/onnxruntime/core/common/safeint.h ++++ b/onnxruntime/core/common/safeint.h +@@ -32,7 +32,7 @@ class SafeIntExceptionHandler { + #pragma GCC diagnostic ignored "-Wunused-but-set-parameter" + #endif + #endif +-#include "safeint/SafeInt.hpp" ++#include + #if defined(__GNUC__) + #pragma GCC diagnostic pop + #endif diff --git a/ports/onnxruntime/portfile.cmake b/ports/onnxruntime/portfile.cmake new file mode 100644 index 00000000000000..8f5c7d8b457ec0 --- /dev/null +++ b/ports/onnxruntime/portfile.cmake @@ -0,0 +1,105 @@ +if (VCPKG_LIBRARY_LINKAGE STREQUAL "static") + set(VCPKG_POLICY_DLLS_IN_STATIC_LIBRARY enabled) # onnxruntime_providers_shared is always built and is a dynamic library +endif() + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO microsoft/onnxruntime # Please update this port with onnxruntime-cpu togather + REF 0d9030e79888d1d5828730b254fedc53c7b640c1 # v1.10.0 + SHA512 502b68fae7d2e8441ec26253a9e0cdcf970ab2b61efecee7d964e9880e59d657971a82a666710944617c86d18fa99c2cb9640fcd15f63d05b2617b562a5bdb2f + HEAD_REF master + PATCHES + fix-dependencies.patch + fix-build-issues.patch # Remove this patch in the next update + export-target-in-static-build.patch # Remove this patch in the next update +) + +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED) + +if ("${VCPKG_HOST_TRIPLET}" STREQUAL "${VCPKG_TARGET_TRIPLET}") + set(BUILD_HOST ON) + set(CROSS_BUILD OFF) +else() + set(BUILD_HOST OFF) + set(CROSS_BUILD ON) +endif() +string(COMPARE EQUAL "${VCPKG_HOST_TRIPLET}" "${VCPKG_TARGET_TRIPLET}" BUILD_HOST) + +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + FEATURES + gpu onnxruntime_USE_CUDA +) + +file(TO_CMAKE_PATH "$ENV{CUDA_PATH}/bin/nvcc${VCPKG_HOST_EXECUTABLE_SUFFIX}" NVCC_PATH) + +set(EXTRA_OPTIONS ) +if ("gpu" IN_LIST FEATURES) + list(APPEND EXTRA_OPTIONS + "-Donnxruntime_CUDA_HOME=$ENV{CUDA_PATH}" + "-Donnxruntime_CUDNN_HOME=$ENV{CUDA_PATH}" + "-DCMAKE_CUDA_COMPILER=${NVCC_PATH}" + ) +endif() + +vcpkg_find_acquire_program(PYTHON3) +get_filename_component(PYTHON_DIR "${PYTHON3}" PATH) +vcpkg_add_to_path(PREPEND "${PYTHON_DIR}") + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}/cmake" + OPTIONS + ${FEATURE_OPTIONS} + ${EXTRA_OPTIONS} + -Donnxruntime_BUILD_SHARED_LIB=${BUILD_SHARED} + -Donnxruntime_BUILD_FOR_NATIVE_MACHINE=${BUILD_HOST} + -Donnxruntime_CROSS_COMPILING=${CROSS_BUILD} + -DCMAKE_INSTALL_INCLUDEDIR=include + "-DPython_EXECUTABLE=${PYTHON3}" + -Donnxruntime_RUN_ONNX_TESTS=OFF + -Donnxruntime_ENABLE_CUDA_PROFILING=OFF + -Donnxruntime_ENABLE_CUDA_LINE_NUMBER_INFO=OFF + -Donnxruntime_GENERATE_TEST_REPORTS=OFF + -Donnxruntime_ENABLE_STATIC_ANALYSIS=OFF + -Donnxruntime_ENABLE_PYTHON=OFF + -Donnxruntime_ENABLE_MEMLEAK_CHECKER=OFF + -Donnxruntime_USE_NNAPI_BUILTIN=OFF + -Donnxruntime_DEV_MODE=OFF + -Donnxruntime_BUILD_UNIT_TESTS=OFF + -Donnxruntime_BUILD_CSHARP=OFF + -Donnxruntime_BUILD_OBJC=OFF + -Donnxruntime_USE_PREINSTALLED_EIGEN=ON + -Donnxruntime_BUILD_BENCHMARKS=OFF + -Donnxruntime_USE_LLVM=OFF + -Donnxruntime_USE_AVX=OFF + -Donnxruntime_USE_AVX2=OFF + -Donnxruntime_USE_AVX512=OFF + -Donnxruntime_USE_OPENMP=OFF + -Donnxruntime_BUILD_APPLE_FRAMEWORK=OFF + -Donnxruntime_ENABLE_MICROSOFT_INTERNAL=OFF + -Donnxruntime_USE_TENSORRT=OFF + -Donnxruntime_ENABLE_LTO=ON + -Donnxruntime_DEBUG_NODE_INPUTS_OUTPUTS=OFF + -Donnxruntime_USE_ROCM=OFF # AMD GPU SUPPORT + -Donnxruntime_PREFER_SYSTEM_LIB=ON + -Donnxruntime_MINIMAL_BUILD=OFF + -Donnxruntime_EXTENDED_MINIMAL_BUILD=OFF + -Donnxruntime_MINIMAL_BUILD_CUSTOM_OPS=OFF + -Donnxruntime_DISABLE_EXTERNAL_INITIALIZERS=OFF + -Donnxruntime_USE_VALGRIND=OFF + -Donnxruntime_RUN_MODELTEST_IN_DEBUG_MODE=OFF + -Donnxruntime_FUZZ_TEST=OFF + -Donnxruntime_USE_NCCL=OFF + -Donnxruntime_USE_MPI=OFF + -Donnxruntime_ENABLE_BITCODE=OFF + -Donnxruntime_BUILD_OPSCHEMA_LIB=OFF + -Donnxruntime_USE_EXTENSIONS=OFF + MAYBE_UNUSED_VARIABLES + Python_EXECUTABLE +) + +vcpkg_cmake_install() +vcpkg_copy_pdbs() + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") + +file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) diff --git a/ports/onnxruntime/vcpkg.json b/ports/onnxruntime/vcpkg.json new file mode 100644 index 00000000000000..bc6bfa7b994a3c --- /dev/null +++ b/ports/onnxruntime/vcpkg.json @@ -0,0 +1,38 @@ +{ + "name": "onnxruntime", + "version": "1.10.0", + "description": "onnxruntime", + "homepage": "https://github.com/microsoft/onnxruntime", + "license": "MIT", + "supports": "!uwp & !arm", + "dependencies": [ + "boost-mp11", + "cpuinfo", + "date", + "eigen3", + "flatbuffers", + "nlohmann-json", + { + "name": "nsync", + "platform": "!windows" + }, + "onnx", + "protobuf", + "re2", + "safeint", + { + "name": "vcpkg-cmake", + "host": true + }, + "wil" + ], + "features": { + "gpu": { + "description": "with gpu", + "dependencies": [ + "cuda", + "cudnn" + ] + } + } +} diff --git a/versions/baseline.json b/versions/baseline.json index a75feff462c439..de56bd3af97769 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -5004,9 +5004,13 @@ "baseline": "0.2.6", "port-version": 0 }, + "onnxruntime": { + "baseline": "1.10.0", + "port-version": 0 + }, "onnxruntime-gpu": { - "baseline": "1.5.1", - "port-version": 1 + "baseline": "1.10.0", + "port-version": 0 }, "oof": { "baseline": "2021-11-23", diff --git a/versions/o-/onnxruntime-gpu.json b/versions/o-/onnxruntime-gpu.json index 1fe9bafd6ef369..5edfba5641cf2e 100644 --- a/versions/o-/onnxruntime-gpu.json +++ b/versions/o-/onnxruntime-gpu.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "a63b5c45acf3a6d974e868fcf2d7654e8351fef5", + "version": "1.10.0", + "port-version": 0 + }, { "git-tree": "9741bef63d2b0c74277568da67ab7aa1ab50c51b", "version": "1.5.1", diff --git a/versions/o-/onnxruntime.json b/versions/o-/onnxruntime.json new file mode 100644 index 00000000000000..74958fa087df0f --- /dev/null +++ b/versions/o-/onnxruntime.json @@ -0,0 +1,9 @@ +{ + "versions": [ + { + "git-tree": "997e14c6182e9be576208cb664d65ce15fc25545", + "version": "1.10.0", + "port-version": 0 + } + ] +}