onnxruntime/cmake
Changming Sun c716b56f26
Update C++ Standard from 14 to 17 (#8041)
Switched the code to C++17. To build ONNX Runtime on old distros like CentOS 7, you need to install a newer GCC from additionary repos. If you build onnxruntime with the newer GCC, typically the result binary can't be distributed to other places because it depends on the new GCC's runtime libraries, something that the stock OS doesn't have. But on RHEL/CentOS, it can be better. We use Red Hat devtoolset 8/9/10 with CentOS7 building our code. The new library features(like std::filesystem) that not exists in the old C++ runtime will be statically linked into the applications with some restrictions:

1. GCC has dual ABI, but we can only use the old one. It means std::string is still copy-on-write and std::list::size() is still O(n). Also, if you build onnxruntime on CentOS 7 and link it with some binaries that were built on CentOS 8 or Ubuntu with the new ABI and export C++ symbols directly(instead of using a C API), the it won't work.

2. We still can't use std::optional. It is a limitation coming from macOS. We will solve it when we got macOS 11 build machines. It won't be too long.

3. Please avoid to use C++17 in CUDA files(*.cu). Also, the *.h files that they include(like core/framework/float16.h). This is Because CUDA 10.2 doesn't support C++17. You are welcome to use the new features in any *.cc files.
2021-06-25 14:08:01 -07:00
..
external Update C++ Standard from 14 to 17 (#8041) 2021-06-25 14:08:01 -07:00
patches Sync ORTModule branch with master and fix tests (#6526) 2021-02-02 08:59:56 -08:00
tensorboard
CMakeLists.txt Update C++ Standard from 14 to 17 (#8041) 2021-06-25 14:08:01 -07:00
CMakeSettings.json
codeconv.runsettings
flake8.cmake Update manylinux build scripts and GPU CUDA version from 11.0 to 11.1 (#7632) 2021-06-02 23:36:49 -07:00
Info.plist.in Enable build dynamic framework for macOS/iOS (#7343) 2021-04-15 16:47:53 -07:00
libonnxruntime.pc.cmake.in cmake: support install target with generated pkg-config file (#7076) 2021-03-22 19:36:31 -07:00
nuget_helpers.cmake Fix nuget build error (#6009) 2020-12-03 09:28:39 -08:00
onnxruntime.cmake Update C++ Standard from 14 to 17 (#8041) 2021-06-25 14:08:01 -07:00
onnxruntime_codegen.cmake Update manylinux build scripts and GPU CUDA version from 11.0 to 11.1 (#7632) 2021-06-02 23:36:49 -07:00
onnxruntime_common.cmake Update C++ Standard from 14 to 17 (#8041) 2021-06-25 14:08:01 -07:00
onnxruntime_config.h.in
onnxruntime_csharp.cmake Remove nGraph Execution Provider (#5858) 2020-11-19 16:47:55 -08:00
onnxruntime_eager.cmake Update manylinux build scripts and GPU CUDA version from 11.0 to 11.1 (#7632) 2021-06-02 23:36:49 -07:00
onnxruntime_flatbuffers.cmake Add static code analyzer to Windows CPU/GPU CI builds and fix the warnings (#7489) 2021-04-29 11:54:57 -07:00
onnxruntime_framework.cmake Update C++ Standard from 14 to 17 (#8041) 2021-06-25 14:08:01 -07:00
onnxruntime_fuzz_test.cmake Merge CPU packaging pipelines (#6480) 2021-02-04 08:38:56 -08:00
onnxruntime_graph.cmake Update manylinux build scripts and GPU CUDA version from 11.0 to 11.1 (#7632) 2021-06-02 23:36:49 -07:00
onnxruntime_ios.toolchain.cmake Enable build dynamic framework for macOS/iOS (#7343) 2021-04-15 16:47:53 -07:00
onnxruntime_java.cmake [Android] Move add header files into AAR to using Gradle (#8068) 2021-06-16 12:03:42 -07:00
onnxruntime_java_unittests.cmake
onnxruntime_language_interop_ops.cmake Update manylinux build scripts and GPU CUDA version from 11.0 to 11.1 (#7632) 2021-06-02 23:36:49 -07:00
onnxruntime_mlas.cmake Update C++ Standard from 14 to 17 (#8041) 2021-06-25 14:08:01 -07:00
onnxruntime_nodejs.cmake Specify correct dependency for CI pipeline of nodejs binding (#7717) 2021-05-15 08:56:58 -07:00
onnxruntime_nuphar_extern.cmake Add static code analyzer to Windows CPU/GPU CI builds and fix the warnings (#7489) 2021-04-29 11:54:57 -07:00
onnxruntime_objectivec.cmake [Objective-C API] Add script to assemble pod package files. (#7958) 2021-06-07 19:16:39 -07:00
onnxruntime_opschema_lib.cmake Create ORT opschema library (#7903) 2021-06-14 14:02:33 -07:00
onnxruntime_optimizer.cmake Update manylinux build scripts and GPU CUDA version from 11.0 to 11.1 (#7632) 2021-06-02 23:36:49 -07:00
onnxruntime_providers.cmake Update C++ Standard from 14 to 17 (#8041) 2021-06-25 14:08:01 -07:00
onnxruntime_pyop.cmake Update manylinux build scripts and GPU CUDA version from 11.0 to 11.1 (#7632) 2021-06-02 23:36:49 -07:00
onnxruntime_python.cmake clean up builds for interop_torch (#8017) 2021-06-19 13:41:07 +08:00
onnxruntime_session.cmake Update manylinux build scripts and GPU CUDA version from 11.0 to 11.1 (#7632) 2021-06-02 23:36:49 -07:00
onnxruntime_training.cmake clean up builds for interop_torch (#8017) 2021-06-19 13:41:07 +08:00
onnxruntime_unittests.cmake Update C++ Standard from 14 to 17 (#8041) 2021-06-25 14:08:01 -07:00
onnxruntime_util.cmake Update manylinux build scripts and GPU CUDA version from 11.0 to 11.1 (#7632) 2021-06-02 23:36:49 -07:00
onnxruntime_webassembly.cmake [wasm] allows to specify MALLOC setting for wasm build (#7934) 2021-06-03 23:08:56 -07:00
precompiled_header.cmake
protobuf_function.cmake Sync ORTModule branch with master and fix tests (#6526) 2021-02-02 08:59:56 -08:00
set_winapi_family_desktop.h
store_toolchain.cmake
target_delayload.cmake
wcos_rules_override.cmake
wil.cmake
winml.cmake Update manylinux build scripts and GPU CUDA version from 11.0 to 11.1 (#7632) 2021-06-02 23:36:49 -07:00
winml_cppwinrt.cmake Fix Microsoft.AI.MachineLearning .NET5 publishing and C# Store Release build (#7373) 2021-04-19 15:36:43 -07:00
winml_sdk_helpers.cmake
winml_unittests.cmake Update manylinux build scripts and GPU CUDA version from 11.0 to 11.1 (#7632) 2021-06-02 23:36:49 -07:00