Skip to content

Commit 429bd64

Browse files
author
Changming Sun
committed
update
1 parent d9d07ad commit 429bd64

File tree

3 files changed

+46
-5
lines changed

3 files changed

+46
-5
lines changed

cmake/CMakeLists.txt

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -890,7 +890,7 @@ if (onnxruntime_USE_QNN)
890890

891891
if (MSVC OR ${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
892892
file(GLOB QNN_LIB_FILES LIST_DIRECTORIES false "${onnxruntime_QNN_HOME}/lib/${QNN_ARCH_ABI}/libQnn*.so"
893-
"${onnxruntime_QNN_HOME}/lib/${QNN_ARCH_ABI}/Qnn*.dll"
893+
"${onnxruntime_QNN_HOME}/lib/${QNN_ARCH_ABI}/Qnn*.dll"
894894
"${onnxruntime_QNN_HOME}/lib/${QNN_ARCH_ABI}/libHtpPrepare.so"
895895
"${onnxruntime_QNN_HOME}/lib/${QNN_ARCH_ABI}/HtpPrepare.dll")
896896
if (${QNN_ARCH_ABI} STREQUAL "aarch64-windows-msvc" OR ${QNN_ARCH_ABI} STREQUAL "arm64x-windows-msvc")
@@ -1054,7 +1054,10 @@ function(onnxruntime_set_compile_flags target_name)
10541054
foreach(CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORY ${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES})
10551055
target_compile_options(${target_name} PRIVATE "$<$<COMPILE_LANGUAGE:CXX,C>:/external:I${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORY}>")
10561056
endforeach()
1057-
1057+
if(VCPKG_INSTALLED_DIR)
1058+
cmake_path(NATIVE_PATH VCPKG_INSTALLED_DIR NORMALIZE VCPKG_INSTALLED_DIR_native)
1059+
target_compile_options(${target_name} PRIVATE "$<$<COMPILE_LANGUAGE:CXX,C>:SHELL:/external:I ${VCPKG_INSTALLED_DIR}>")
1060+
endif()
10581061
foreach(onnxruntime_external_lib IN LISTS onnxruntime_EXTERNAL_LIBRARIES)
10591062
#TODO: the list contains cmake keywords like "debug". We should exclude them.
10601063
if(TARGET ${onnxruntime_external_lib})
@@ -1084,7 +1087,9 @@ function(onnxruntime_set_compile_flags target_name)
10841087
# We do not treat warnings from 3rd-party libraries as errors. In order to do that, we need to add their header files locations to /external:I.
10851088
target_compile_options(${target_name} PRIVATE "$<$<COMPILE_LANGUAGE:CXX,C>:/experimental:external>" "$<$<COMPILE_LANGUAGE:CUDA>:SHELL:--compiler-options /experimental:external>")
10861089
target_compile_options(${target_name} PRIVATE "$<$<COMPILE_LANGUAGE:CXX,C>:/external:W0>" "$<$<COMPILE_LANGUAGE:CUDA>:SHELL:--compiler-options /external:W0>")
1087-
target_compile_options(${target_name} PRIVATE "$<$<COMPILE_LANGUAGE:CXX,C>:/external:templates->" "$<$<COMPILE_LANGUAGE:CUDA>:SHELL:--compiler-options /external:templates->")
1090+
#if(NOT onnxruntime_USE_VCPKG)
1091+
# target_compile_options(${target_name} PRIVATE "$<$<COMPILE_LANGUAGE:CXX,C>:/external:templates->" "$<$<COMPILE_LANGUAGE:CUDA>:SHELL:--compiler-options /external:templates->")
1092+
#endif()
10881093
target_compile_options(${target_name} PRIVATE "$<$<COMPILE_LANGUAGE:CXX,C>:/external:I${CMAKE_CURRENT_SOURCE_DIR}>" "$<$<COMPILE_LANGUAGE:CUDA>:SHELL:--compiler-options /external:I${CMAKE_CURRENT_SOURCE_DIR}>")
10891094
target_compile_options(${target_name} PRIVATE "$<$<COMPILE_LANGUAGE:CXX,C>:/external:I${CMAKE_CURRENT_BINARY_DIR}>" "$<$<COMPILE_LANGUAGE:CUDA>:SHELL:--compiler-options /external:I${CMAKE_CURRENT_BINARY_DIR}>")
10901095
if (onnxruntime_ENABLE_STATIC_ANALYSIS)

cmake/onnxruntime_unittests.cmake

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1010,6 +1010,11 @@ add_dependencies(onnx_test_data_proto onnx_proto ${onnxruntime_EXTERNAL_DEPENDEN
10101010
#onnx_proto target should mark this definition as public, instead of private
10111011
target_compile_definitions(onnx_test_data_proto PRIVATE "-DONNX_API=")
10121012
onnxruntime_add_include_to_target(onnx_test_data_proto onnx_proto)
1013+
if (MSVC)
1014+
# Cutlass code has an issue with the following:
1015+
# warning C4100: 'magic': unreferenced formal parameter
1016+
target_compile_options(onnx_test_data_proto PRIVATE "/wd4100")
1017+
endif()
10131018
target_include_directories(onnx_test_data_proto PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
10141019
set_target_properties(onnx_test_data_proto PROPERTIES FOLDER "ONNXRuntimeTest")
10151020
if(NOT DEFINED onnx_SOURCE_DIR)

tools/ci_build/build.py

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -472,6 +472,7 @@ def convert_arg_line_to_args(self, arg_line):
472472
parser.add_argument(
473473
"--use_vcpkg",
474474
action="store_true",
475+
default=is_windows() and ("VCPKG_INSTALLATION_ROOT" in os.environ),
475476
help="Use vcpkg to search dependencies. Requires CMAKE_TOOLCHAIN_FILE for vcpkg.cmake",
476477
)
477478

@@ -1109,6 +1110,34 @@ def generate_build_tree(
11091110
"-DRISCV_QEMU_PATH:PATH=" + args.riscv_qemu_path,
11101111
"-DCMAKE_TOOLCHAIN_FILE=" + os.path.join(source_dir, "cmake", "riscv64.toolchain.cmake"),
11111112
]
1113+
if args.use_vcpkg:
1114+
# Setup CMake flags for vcpkg
1115+
vcpkg_install_options = ['--x-feature=tests']
1116+
vcpkg_installation_root = os.environ.get("VCPKG_INSTALLATION_ROOT")
1117+
if vcpkg_installation_root is None:
1118+
run_subprocess(["git", "clone", "https://github.com/microsoft/vcpkg.git", "--recursive"], cwd=build_dir)
1119+
vcpkg_installation_root = os.path.join(build_dir, 'vcpkg')
1120+
vcpkg_toolchain_path = os.path.join(vcpkg_installation_root, 'scripts','buildsystems','vcpkg.cmake')
1121+
add_default_definition(cmake_extra_defines, "CMAKE_TOOLCHAIN_FILE", vcpkg_toolchain_path);
1122+
if args.use_binskim_compliant_compile_flags:
1123+
overlay_triplets_dir = os.path.join(source_dir, 'cmake','custom-triplets');
1124+
vcpkg_install_options.append("--overlay-triplets=%s" % overlay_triplets_dir)
1125+
# VCPKG_INSTALL_OPTIONS is a CMake list. It must be joined by semicolons
1126+
add_default_definition(cmake_extra_defines, "VCPKG_INSTALL_OPTIONS", ';'.join(vcpkg_install_options))
1127+
# Choose the cmake triplet
1128+
if is_windows() and not args.build_wasm:
1129+
target_arch = platform.machine()
1130+
cpu_arch = platform.architecture()[0]
1131+
if target_arch == "AMD64":
1132+
if cpu_arch == "32bit" or args.x86:
1133+
triplet = "x86-windows-static" if args.enable_msvc_static_runtime else "x86-windows-static-md"
1134+
else:
1135+
triplet = "x64-windows-static" if args.enable_msvc_static_runtime else "x64-windows-static-md"
1136+
elif target_arch == "ARM64":
1137+
triplet = "arm64-windows-static" if args.enable_msvc_static_runtime else "arm64-windows-static-md"
1138+
else:
1139+
raise BuildError("unknown python arch")
1140+
add_default_definition(cmake_extra_defines, "VCPKG_TARGET_TRIPLET", triplet)
11121141

11131142
# By default on Windows we currently support only cross compiling for ARM/ARM64
11141143
# (no native compilation supported through this script).
@@ -1659,7 +1688,7 @@ def generate_build_tree(
16591688
f"-DCMAKE_BUILD_TYPE={config}",
16601689
(
16611690
f"-DCMAKE_PREFIX_PATH={build_dir}/{config}/installed"
1662-
if preinstalled_dir.exists() and not (args.arm64 or args.arm64ec or args.arm)
1691+
if preinstalled_dir.exists() and not (args.arm64 or args.arm64ec or args.arm or args.use_vcpkg)
16631692
else ""
16641693
),
16651694
],
@@ -2550,7 +2579,9 @@ def main():
25502579
args = parse_arguments()
25512580

25522581
print(args)
2553-
2582+
if args.ios or args.android or args.build_wasm:
2583+
# Not supported yet
2584+
args.use_vcpkg = False
25542585
if os.getenv("ORT_BUILD_WITH_CACHE") == "1":
25552586
args.use_cache = True
25562587

0 commit comments

Comments
 (0)