onnxruntime/server/get_boost.cmake
harshithapv 2e55002e50
Cherry picks for release - 1.8.1 Round 2 (#8137)
* fix boost download url (#7843)

* Topo sort the model before saving (#7913)

* checkin toposort

* review comments

* revert and add TODO

* Add shape inference to custom symbolic functions (#7937)

**Description**: As title.

**Motivation and Context**
- PyTorch ONNX exporter heavily depends on ONNX shape inference to export accurate and efficient model. Custom symbolic function exports the op as contrib ops, thus exporter is unable to perform standard onnx shape inference. Models with dynamic shape inputs are affected.

* Fix missing files on linux (#8066)

* [Mobile package] Update required operator config with additional ops for wav2vec2. (#8079)

Add some additional ops to the mobile package that are needed for the wav2vec2 model.

* Add module attribute to ORTModule to support HuggingFace Trainer save_model (#8088)

* Fix input schema extrator for ORTModule (#8098)

* Fix 32bit Android java API crash (#8122)

* Fix 32bit Android java API crash

* fix code formating

* [Mobile package] Update required operator config with additional ops for newer version of Wav2Vec 2. (#8123)

This is an update to https://github.com/microsoft/onnxruntime/pull/8079
The sample application motivating the original update changed to use an updated version of the model. Now, fewer ops are required. This change removes the previously added ops which are no longer needed.

* Add int64 as a required type to ConstantOfShape as it's used by the pytorch converter for Pad. (#8128)

It's also used pointlessly for torch.tensor.repeat (although that usage should always be able to be constant folded).

* Update logic in props.xml to account for shared provider library changes (#8138)

* Ortmodule override torch.manual_seed() (#8131)

* Ortmodule override torch.manual_seed()

* Fix Python Cuda loading issues (#7939)

* Fix mac shared_provider warning (#8153)

Co-authored-by: Guoyu Wang <62914304+gwang-msft@users.noreply.github.com>
Co-authored-by: Ye Wang <52801275+wangyems@users.noreply.github.com>
Co-authored-by: Bowen Bao <bowbao@microsoft.com>
Co-authored-by: Ryan Hill <38674843+RyanUnderhill@users.noreply.github.com>
Co-authored-by: Edward Chen <18449977+edgchen1@users.noreply.github.com>
Co-authored-by: baijumeswani <bmeswani@microsoft.com>
Co-authored-by: Thiago Crepaldi <thiago.crepaldi@microsoft.com>
Co-authored-by: Scott McKay <skottmckay@gmail.com>
Co-authored-by: Hariharan Seshadri <shariharan91@gmail.com>
Co-authored-by: Sherlock <baihan.huang@gmail.com>
2021-06-26 11:26:29 -07:00

105 lines
3.4 KiB
CMake

# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
set(BOOST_REQUESTED_VERSION 1.69.0 CACHE STRING "")
set(BOOST_SHA1 8f32d4617390d1c2d16f26a27ab60d97807b35440d45891fa340fc2648b04406 CACHE STRING "")
set(BOOST_USE_STATIC_LIBS true CACHE BOOL "")
set(BOOST_COMPONENTS program_options system thread)
# These components are only needed for Windows
if(WIN32)
list(APPEND BOOST_COMPONENTS date_time regex)
endif()
# MSVC doesn't set these variables
if(WIN32)
set(CMAKE_STATIC_LIBRARY_PREFIX lib)
set(CMAKE_SHARED_LIBRARY_PREFIX lib)
endif()
# Set lib prefixes and suffixes for linking
if(BOOST_USE_STATIC_LIBS)
set(LIBRARY_PREFIX ${CMAKE_STATIC_LIBRARY_PREFIX})
set(LIBRARY_SUFFIX ${CMAKE_STATIC_LIBRARY_SUFFIX})
else()
set(LIBRARY_PREFIX ${CMAKE_SHARED_LIBRARY_PREFIX})
set(LIBRARY_SUFFIX ${CMAKE_SHARED_LIBRARY_SUFFIX})
endif()
# Create list of components in Boost format
foreach(component ${BOOST_COMPONENTS})
list(APPEND BOOST_COMPONENTS_FOR_BUILD --with-${component})
endforeach()
set(BOOST_ROOT_DIR ${CMAKE_BINARY_DIR}/boost CACHE PATH "")
# TODO: let user give their own Boost installation
macro(DOWNLOAD_BOOST)
if(NOT BOOST_REQUESTED_VERSION)
message(FATAL_ERROR "BOOST_REQUESTED_VERSION is not defined.")
endif()
string(REPLACE "." "_" BOOST_REQUESTED_VERSION_UNDERSCORE ${BOOST_REQUESTED_VERSION})
set(BOOST_MAYBE_STATIC)
if(BOOST_USE_STATIC_LIBS)
set(BOOST_MAYBE_STATIC "link=static")
endif()
set(VARIANT "release")
if(CMAKE_BUILD_TYPE MATCHES Debug)
set(VARIANT "debug")
endif()
set(WINDOWS_B2_OPTIONS)
set(WINDOWS_LIB_NAME_SCHEME)
if(WIN32)
set(BOOTSTRAP_FILE_TYPE "bat")
set(WINDOWS_B2_OPTIONS "toolset=msvc-14.1" "architecture=x86" "address-model=64")
set(WINDOWS_LIB_NAME_SCHEME "-vc141-mt-gd-x64-1_69")
else()
set(BOOTSTRAP_FILE_TYPE "sh")
endif()
foreach(component ${BOOST_COMPONENTS})
list(APPEND BOOST_BUILD_BYPRODUCTS <INSTALL_DIR>/lib/${LIBRARY_PREFIX}boost_${component}${WINDOWS_LIB_NAME_SCHEME}${LIBRARY_SUFFIX})
endforeach()
message(STATUS "Adding Boost components")
include(ExternalProject)
ExternalProject_Add(
Boost
URL https://boostorg.jfrog.io/artifactory/main/release/${BOOST_REQUESTED_VERSION}/source/boost_${BOOST_REQUESTED_VERSION_UNDERSCORE}.tar.bz2
URL_HASH SHA256=${BOOST_SHA1}
DOWNLOAD_DIR ${BOOST_ROOT_DIR}
SOURCE_DIR ${BOOST_ROOT_DIR}
UPDATE_COMMAND ""
CONFIGURE_COMMAND ./bootstrap.${BOOTSTRAP_FILE_TYPE} --prefix=${BOOST_ROOT_DIR}
BUILD_COMMAND ./b2 install ${BOOST_MAYBE_STATIC} --prefix=${BOOST_ROOT_DIR} variant=${VARIANT} ${WINDOWS_B2_OPTIONS} ${BOOST_COMPONENTS_FOR_BUILD}
BUILD_IN_SOURCE true
BUILD_BYPRODUCTS ${BOOST_BUILD_BYPRODUCTS}
INSTALL_COMMAND ""
INSTALL_DIR ${BOOST_ROOT_DIR}
)
# Set include folders
ExternalProject_Get_Property(Boost INSTALL_DIR)
set(Boost_INCLUDE_DIR ${INSTALL_DIR}/include)
if(WIN32)
set(Boost_INCLUDE_DIR ${INSTALL_DIR}/include/boost-1_69)
endif()
# Set libraries to link
macro(libraries_to_fullpath varname)
set(${varname})
foreach(component ${BOOST_COMPONENTS})
list(APPEND ${varname} ${INSTALL_DIR}/lib/${LIBRARY_PREFIX}boost_${component}${WINDOWS_LIB_NAME_SCHEME}${LIBRARY_SUFFIX})
endforeach()
endmacro()
libraries_to_fullpath(Boost_LIBRARIES)
mark_as_advanced(Boost_LIBRARIES Boost_INCLUDE_DIR)
endmacro()
DOWNLOAD_BOOST()