Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
e5e5eb3
update
Apr 5, 2021
f784b4c
nodejs
Apr 6, 2021
0269c70
update
Apr 8, 2021
0ce6767
update
Apr 8, 2021
42c525b
revert
Apr 9, 2021
af5989a
revert
Apr 9, 2021
aaaa762
Merge remote-tracking branch 'origin/master' into snnn/vs2019
Apr 9, 2021
87b16af
Merge remote-tracking branch 'origin/master' into snnn/vs2019
Apr 12, 2021
c41167e
update
Apr 13, 2021
f0ec067
merge
Apr 13, 2021
82ebd94
update
Apr 14, 2021
bd2f376
Merge remote-tracking branch 'origin/master' into snnn/vs2019
Apr 14, 2021
540ce45
update
Apr 14, 2021
0cc97ae
update
Apr 14, 2021
be3063c
update
Apr 14, 2021
242eeed
update
Apr 14, 2021
5d1596b
Merge remote-tracking branch 'origin/master' into snnn/vs2019
Apr 14, 2021
cd80245
update
Apr 14, 2021
d0a65ec
update
Apr 14, 2021
a1f21b1
revert
Apr 14, 2021
bab1d35
update
Apr 14, 2021
81b3fa0
update
Apr 14, 2021
880f6ab
update
Apr 14, 2021
471f110
update
Apr 14, 2021
aef0e16
revert
Apr 14, 2021
500db5e
update
Apr 14, 2021
d365021
fix
Apr 14, 2021
49ea81f
update
Apr 14, 2021
d530ed2
update
Apr 14, 2021
bacfc13
Merge remote-tracking branch 'origin/master' into snnn/vs2019
Apr 14, 2021
45eea68
update
Apr 14, 2021
4ae1613
update
Apr 14, 2021
2960868
update
Apr 14, 2021
21e2f27
fix
Apr 14, 2021
6f22a1b
update
Apr 14, 2021
9214a63
fix
Apr 14, 2021
d897e38
fix
Apr 14, 2021
a4f68ea
update
Apr 15, 2021
12f2481
TRT
Apr 15, 2021
5e9b1ea
update
Apr 15, 2021
be3e5f4
Merge remote-tracking branch 'origin/master' into snnn/vs2019
Apr 15, 2021
4a83b6a
Merge remote-tracking branch 'origin/master' into snnn/vs2019
Apr 15, 2021
4f0dd4f
update
Apr 15, 2021
172745c
update
Apr 15, 2021
ecdad2d
update
Apr 15, 2021
3aa73ef
update
Apr 15, 2021
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
392 changes: 238 additions & 154 deletions cmake/CMakeLists.txt

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion cmake/external/pybind11.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ if(NOT TARGET pybind11::module)

set(pybind11_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR}/pybind11/src/pybind11/include)
set(pybind11_URL https://github.com/pybind/pybind11.git)
set(pybind11_TAG v2.6.1)
set(pybind11_TAG v2.6.2)

ExternalProject_Add(pybind11
PREFIX pybind11
Expand Down
14 changes: 7 additions & 7 deletions cmake/onnxruntime.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -98,19 +98,19 @@ endif()
target_link_libraries(onnxruntime PRIVATE
onnxruntime_session
${onnxruntime_libs}
${PROVIDERS_ACL}
${PROVIDERS_ARMNN}
${PROVIDERS_COREML}
${PROVIDERS_CUDA}
${PROVIDERS_NNAPI}
${PROVIDERS_RKNPU}
${PROVIDERS_DML}
${PROVIDERS_MIGRAPHX}
${PROVIDERS_NNAPI}
${PROVIDERS_NUPHAR}
${PROVIDERS_RKNPU}
${PROVIDERS_ROCM}
${PROVIDERS_VITISAI}
${PROVIDERS_DML}
${PROVIDERS_ACL}
${PROVIDERS_ARMNN}
${PROVIDERS_INTERNAL_TESTING}
${onnxruntime_winml}
${PROVIDERS_ROCM}
${PROVIDERS_COREML}
onnxruntime_optimizer
onnxruntime_providers
onnxruntime_util
Expand Down
2 changes: 1 addition & 1 deletion cmake/onnxruntime_codegen.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ file(GLOB_RECURSE onnxruntime_codegen_tvm_srcs CONFIGURE_DEPENDS
source_group(TREE ${ONNXRUNTIME_ROOT}/core FILES ${onnxruntime_codegen_common_srcs} ${onnxruntime_codegen_tvm_srcs})

#onnxruntime_codegen_tvm depends on onnxruntime framework
add_library(onnxruntime_codegen_tvm ${onnxruntime_codegen_common_srcs} ${onnxruntime_codegen_tvm_srcs})
onnxruntime_add_static_library(onnxruntime_codegen_tvm ${onnxruntime_codegen_common_srcs} ${onnxruntime_codegen_tvm_srcs})
set_target_properties(onnxruntime_codegen_tvm PROPERTIES FOLDER "ONNXRuntime")
target_include_directories(onnxruntime_codegen_tvm PRIVATE ${ONNXRUNTIME_ROOT} ${TVM_INCLUDES} ${MKLML_INCLUDE_DIR} ${eigen_INCLUDE_DIRS})
onnxruntime_add_include_to_target(onnxruntime_codegen_tvm onnxruntime_common onnxruntime_framework onnx onnx_proto protobuf::libprotobuf flatbuffers)
Expand Down
2 changes: 1 addition & 1 deletion cmake/onnxruntime_common.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ endif()

source_group(TREE ${REPO_ROOT} FILES ${onnxruntime_common_src})

add_library(onnxruntime_common ${onnxruntime_common_src})
onnxruntime_add_static_library(onnxruntime_common ${onnxruntime_common_src})

if (onnxruntime_USE_CUDA)
target_include_directories(onnxruntime_common PUBLIC ${onnxruntime_CUDA_HOME}/include ${onnxruntime_CUDA_HOME}/extras/CUPTI/include)
Expand Down
2 changes: 1 addition & 1 deletion cmake/onnxruntime_flatbuffers.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ file(GLOB onnxruntime_flatbuffers_srcs CONFIGURE_DEPENDS

source_group(TREE ${REPO_ROOT} FILES ${onnxruntime_flatbuffers_srcs})

add_library(onnxruntime_flatbuffers ${onnxruntime_flatbuffers_srcs})
onnxruntime_add_static_library(onnxruntime_flatbuffers ${onnxruntime_flatbuffers_srcs})
onnxruntime_add_include_to_target(onnxruntime_flatbuffers onnx flatbuffers)
if(onnxruntime_ENABLE_INSTRUMENT)
target_compile_definitions(onnxruntime_flatbuffers PUBLIC ONNXRUNTIME_ENABLE_INSTRUMENT)
Expand Down
2 changes: 1 addition & 1 deletion cmake/onnxruntime_framework.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ endif()

source_group(TREE ${REPO_ROOT} FILES ${onnxruntime_framework_srcs})

add_library(onnxruntime_framework ${onnxruntime_framework_srcs})
onnxruntime_add_static_library(onnxruntime_framework ${onnxruntime_framework_srcs})
if(onnxruntime_ENABLE_INSTRUMENT)
target_compile_definitions(onnxruntime_framework PRIVATE ONNXRUNTIME_ENABLE_INSTRUMENT)
endif()
Expand Down
2 changes: 1 addition & 1 deletion cmake/onnxruntime_graph.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ if (onnxruntime_ENABLE_TRAINING)
list(APPEND onnxruntime_graph_lib_src ${orttraining_graph_src})
endif()

add_library(onnxruntime_graph ${onnxruntime_graph_lib_src})
onnxruntime_add_static_library(onnxruntime_graph ${onnxruntime_graph_lib_src})
add_dependencies(onnxruntime_graph onnx_proto flatbuffers)
onnxruntime_add_include_to_target(onnxruntime_graph onnxruntime_common onnx onnx_proto protobuf::libprotobuf flatbuffers)

Expand Down
50 changes: 7 additions & 43 deletions cmake/onnxruntime_java.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ find_package(Java REQUIRED)
include(UseJava)
if (NOT CMAKE_SYSTEM_NAME STREQUAL "Android")
find_package(JNI REQUIRED)
include_directories(${JNI_INCLUDE_DIRS})
endif()

set(JAVA_ROOT ${REPO_ROOT}/java)
Expand Down Expand Up @@ -47,9 +46,7 @@ elseif (CMAKE_SYSTEM_NAME STREQUAL "Android")
# it is better to not keep a daemon running
set(GRADLE_ARGS ${GRADLE_ARGS} --no-daemon)
endif()
if(onnxruntime_USE_CUDA)
set(GRADLE_ARGS ${GRADLE_ARGS} -DUSE_CUDA=1)
endif()

add_custom_command(OUTPUT ${JAVA_OUTPUT_JAR} COMMAND ${GRADLE_EXECUTABLE} ${GRADLE_ARGS} WORKING_DIRECTORY ${JAVA_ROOT} DEPENDS ${onnxruntime4j_gradle_files} ${onnxruntime4j_src})
add_custom_target(onnxruntime4j DEPENDS ${JAVA_OUTPUT_JAR})
set_source_files_properties(${JAVA_OUTPUT_JAR} PROPERTIES GENERATED TRUE)
Expand All @@ -62,49 +59,15 @@ file(GLOB onnxruntime4j_native_src
"${REPO_ROOT}/include/onnxruntime/core/session/*.h"
)
# Build the JNI library
add_library(onnxruntime4j_jni SHARED ${onnxruntime4j_native_src})
onnxruntime_add_shared_library_module(onnxruntime4j_jni ${onnxruntime4j_native_src})
set_property(TARGET onnxruntime4j_jni PROPERTY CXX_STANDARD 11)

# Tell the JNI code about the requested providers
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is this code removed? It's used to cause the JNI code to emit a well formed exception if the provider isn't available.

Copy link
Contributor Author

@snnn snnn Apr 14, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I moved it to CMakeLists.txt. And I think the things like "USE_OPENVINO" should not be used in the JNI project. I suggest the macro should be always on.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Now that the provider list exists in the C API I guess I can check that and throw the exception, but if you look in SessionOptions.c it's used to either compile the JNI method so it always throws a Java exception, or to compile it so it adds the requested provider. I'm not sure how stable that provider list is though, as it's not in the C API itself, I've got to manually copy the string constants into Java and check them.

if (onnxruntime_USE_CUDA)
target_compile_definitions(onnxruntime4j_jni PRIVATE USE_CUDA=1)
endif()
if (onnxruntime_USE_DNNL)
target_compile_definitions(onnxruntime4j_jni PRIVATE USE_DNNL=1)
endif()
if (onnxruntime_USE_OPENVINO)
target_compile_definitions(onnxruntime4j_jni PRIVATE USE_OPENVINO=1)
endif()
if (onnxruntime_USE_TENSORRT)
target_compile_definitions(onnxruntime4j_jni PRIVATE USE_TENSORRT=1)
endif()
if (onnxruntime_USE_NNAPI_BUILTIN)
target_compile_definitions(onnxruntime4j_jni PRIVATE USE_NNAPI=1)
endif()
if (onnxruntime_USE_NUPHAR)
target_compile_definitions(onnxruntime4j_jni PRIVATE USE_NUPHAR=1)
endif()
if (onnxruntime_USE_ACL)
target_compile_definitions(onnxruntime4j_jni PRIVATE USE_ACL=1)
endif()
if (onnxruntime_USE_DML)
target_compile_definitions(onnxruntime4j_jni PRIVATE USE_DIRECTML=1)
endif()
if (onnxruntime_USE_ARMNN)
target_compile_definitions(onnxruntime4j_jni PRIVATE USE_ARMNN=1)
endif()
if (onnxruntime_USE_ROCM)
target_compile_definitions(onnxruntime4j_jni PRIVATE USE_ROCM=1)
endif()
if (onnxruntime_USE_COREML)
target_compile_definitions(onnxruntime4j_jni PRIVATE USE_COREML=1)
endif()

# depend on java sources. if they change, the JNI should recompile
add_dependencies(onnxruntime4j_jni onnxruntime4j)
onnxruntime_add_include_to_target(onnxruntime4j_jni onnxruntime_session)
# the JNI headers are generated in the onnxruntime4j target
target_include_directories(onnxruntime4j_jni PRIVATE ${REPO_ROOT}/include ${JAVA_ROOT}/build/headers)
target_include_directories(onnxruntime4j_jni PRIVATE ${REPO_ROOT}/include ${JAVA_ROOT}/build/headers ${JNI_INCLUDE_DIRS})
target_link_libraries(onnxruntime4j_jni PUBLIC onnxruntime)

set(JAVA_PACKAGE_OUTPUT_DIR ${JAVA_OUTPUT_DIR}/build)
Expand Down Expand Up @@ -199,9 +162,10 @@ elseif (CMAKE_SYSTEM_NAME STREQUAL "Android")
# it is better to not keep a daemon running
set(GRADLE_ARGS ${GRADLE_ARGS} --no-daemon)
endif()
if(onnxruntime_USE_CUDA)
set(GRADLE_ARGS ${GRADLE_ARGS} -DUSE_CUDA=1)
endif()
string(JOIN " " GRADLE_EP_FLAGS ${ORT_PROVIDER_FLAGS})
set(GRADLE_ARGS ${GRADLE_ARGS} ${GRADLE_EP_FLAGS})

message(STATUS "GRADLE_ARGS: ${GRADLE_ARGS}")
add_custom_command(TARGET onnxruntime4j_jni POST_BUILD COMMAND ${GRADLE_EXECUTABLE} ${GRADLE_ARGS} WORKING_DIRECTORY ${JAVA_ROOT})
if (CMAKE_SYSTEM_NAME STREQUAL "Android")
add_custom_command(TARGET onnxruntime4j_jni POST_BUILD COMMAND ${GRADLE_EXECUTABLE} -b build-android.gradle -c settings-android.gradle build -DjniLibsDir=${ANDROID_PACKAGE_JNILIBS_DIR} -DbuildDir=${ANDROID_PACKAGE_OUTPUT_DIR} WORKING_DIRECTORY ${JAVA_ROOT})
Expand Down
2 changes: 1 addition & 1 deletion cmake/onnxruntime_language_interop_ops.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# Licensed under the MIT License.
include(onnxruntime_pyop.cmake)
file (GLOB onnxruntime_language_interop_ops_src "${ONNXRUNTIME_ROOT}/core/language_interop_ops/language_interop_ops.cc")
add_library(onnxruntime_language_interop ${onnxruntime_language_interop_ops_src})
onnxruntime_add_static_library(onnxruntime_language_interop ${onnxruntime_language_interop_ops_src})
add_dependencies(onnxruntime_language_interop onnxruntime_pyop)
onnxruntime_add_include_to_target(onnxruntime_language_interop onnxruntime_common onnxruntime_graph onnxruntime_framework onnxruntime_pyop onnx onnx_proto protobuf::libprotobuf flatbuffers)
target_include_directories(onnxruntime_language_interop PRIVATE ${ONNXRUNTIME_ROOT} ${eigen_INCLUDE_DIRS})
2 changes: 1 addition & 1 deletion cmake/onnxruntime_mlas.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -351,7 +351,7 @@ else()
endif()
endif()

add_library(onnxruntime_mlas STATIC ${mlas_common_srcs} ${mlas_platform_srcs})
onnxruntime_add_static_library(onnxruntime_mlas ${mlas_common_srcs} ${mlas_platform_srcs})
target_include_directories(onnxruntime_mlas PRIVATE ${ONNXRUNTIME_ROOT}/core/mlas/inc ${ONNXRUNTIME_ROOT}/core/mlas/lib)
set_target_properties(onnxruntime_mlas PROPERTIES FOLDER "ONNXRuntime")
if (WIN32)
Expand Down
2 changes: 2 additions & 0 deletions cmake/onnxruntime_nodejs.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,12 @@ if(had_error)
message(FATAL_ERROR "Failed to find NPM: " ${had_error})
endif()

if(NOT onnxruntime_ENABLE_STATIC_ANALYSIS)
# add custom target
add_custom_target(nodejs_binding_wrapper ALL
COMMAND ${NPM_CLI} ci --ort-skip-build
COMMAND ${NPM_CLI} run build -- --onnxruntime-build-dir=${CMAKE_CURRENT_BINARY_DIR} --config=${CMAKE_BUILD_TYPE}
WORKING_DIRECTORY ${NODEJS_BINDING_ROOT}
COMMENT "Using cmake-js to build OnnxRuntime Node.js binding")
add_dependencies(nodejs_binding_wrapper onnxruntime)
endif()
2 changes: 1 addition & 1 deletion cmake/onnxruntime_nuphar_extern.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ set(nuphar_extern_srcs
${extern_avx2_srcs}
)

add_library(onnxruntime_nuphar_extern ${nuphar_extern_srcs})
onnxruntime_add_static_library(onnxruntime_nuphar_extern ${nuphar_extern_srcs})

if (onnxruntime_USE_MKLML)
add_definitions(-DNUPHAR_USE_MKL)
Expand Down
2 changes: 1 addition & 1 deletion cmake/onnxruntime_optimizer.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ endif()

source_group(TREE ${REPO_ROOT} FILES ${onnxruntime_optimizer_srcs})

add_library(onnxruntime_optimizer ${onnxruntime_optimizer_srcs})
onnxruntime_add_static_library(onnxruntime_optimizer ${onnxruntime_optimizer_srcs})

install(DIRECTORY ${PROJECT_SOURCE_DIR}/../include/onnxruntime/core/optimizer DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/onnxruntime/core)
onnxruntime_add_include_to_target(onnxruntime_optimizer onnxruntime_common onnxruntime_framework onnx onnx_proto protobuf::libprotobuf flatbuffers)
Expand Down
Loading