[tensorflow] upgrade to 2.4.1 (#16364)
* fix build issues occurring from default bazel config being used because customized bazel config is stored in wrong directory
* [tensorflow-cc] Update CONTROL and ci.baseline.txt
* fix also applies to windows static build
* fix debug and static builds as well as library naming for non-linux
- add patch to fix debug builds
- add patch to fix exports for static linking
- really build debug (instead of cloning release)
- override bazel build options for debug (work around bazel bug)
- bazel doesn't support static libraries: work around by building dynamic library and constructing static linkage commands from build log
- Windows .pdb file can't be >4GB even on x64: work around using reduced debug information
- Windows doesn't support .lib files >4GB even on x64, so split into multiple libs
- vcpkg requires equal amount of libs for debug and release: work around using handcrafted empty dummy libs
- fix naming of libs (.dll on Windows and .dylib on macOS)
* upgrade tensorflow from v1.14 to v2.3
- adapt patch files to tensorflow code changes
- update bazel from v0.25.2 to v3.1
- on Windows use python installed on the host instead of embedded python obtained via vcpkg because embedded python lacks pip, which we need to obtain numpy
- on Windows add MSYS2 to the PATH so that bazel tools can access MSYS2 GIT
- add support for custom CA certificates when using HTTPS_PROXY
* fix execute process macro
The existing implementation totally screwed up commands if the command's arguments contained semicolons (this is the case, e.g., in the FindPython modules of the cmake distribution).
* extend overriden execute_process to more than one COMMAND as there actually are use cases for this
* added another patch required for tensorflow v2.3, fixed path and working directory
* Revert "incorporate changes from microsoft:master"
* Revert "Revert "incorporate changes from microsoft:master""
* final fixes for static build + improving out messages
* enabling linux and osx in CI to see if it works now
* simplified code, fixed version numbers, fixed generated include cmake file
* fix failing postbuild check on handcrafted empty dummy library by spreading the last real libraries contents over the required number of libraries
* remove dead code commit by mistake again
* improvements from code review
* cleaner fix for debug code
* find pip3 in PATH (PYTHON3_DIR apparently not valid for pip3)
* fix error in python helper script
* fix wrong libname in postbuild script
* fix python detection + switch to python on msys2 (instead of embedded python) for Windows as we need numpy
* fix order of arguments
* fix command (it may contain spaces such as C:\Program Files\...)
* revert last commit (root cause for CI failures is something different: there are line breaks in path)
* fix regex comparision
(value needs to be escaped as it may contains regex special characters such as brackets, eg C:/Program Files (x86)/...)
* fix linebreaks in generated file
* fix CRT linkage
(macOS doesn't support static CRT linkage; it's set to dynamic even static target triplets for macOS and linux)
* refactor implemenation to avoid as much code duplication as possible -- algorithmically identical
* fix version numbers in helper scripts
* enable work-around for Windows until bazel fix is available
* install missing python3-pip on linux
* fix linux build by patching
* apply timeout feature now available via merged master branch
* correct linux build patch
* improve debug build patches
(no functional difference because LOG(FATAL, ...) macro internally anyway calls abort(), which the compiler doesn't detect in debug mode...
* improve linux patch
* temporarily add debug to inspect what's going on on macOS CI
* remove temporary debug code and fix static linking scripts for linux and macOS
* fix regex escaping
* fix ambiguous match while grepping for the framework link command
* extend fix of ambiguous match while grepping for the framework link command
* fix what merge of master broke
* fix more what got broken by merging master
(all packages and their dependencies are now maintained manually instead of using pacman...)
* remove "unofficial" from filename
* added switch do distinct classic and manifest mode when generating config.cmake file
* create symlinks for libraries without version number
* fix linux postbuild script
* temporarily disable code making problems
* add note for linking on Linux and macOS
* forget to add README file in previous commit
* add file forgotton in macro fixing patch
* fix python library path
* fix macOS static link command
* update linkage instructions in README
* Update ports/tensorflow-cc/CONTROL
* Update ports/tensorflow-cc/portfile.cmake
* Update scripts/ci.baseline.txt
* use vcpkg_execute_required_process
* pass C_FLAGS and CXX_FLAGS to bazel
* fix INTERFACE_INCLUDE_DIRECTORIES
* fix optional c/cxx arguments
* also add linker opts
* update README
* merge static libs into one
to support force_load (cannot force_load both due to duplicate symbols)
* update README
* quote python path (it might contain spaces that don't get escaped inside outer quotes of bash command)
* fix python path also for static build
* add arm(64) as currently unsupported arch
* bazel 3.7 is available -> remove workaround
* update README, remove necessary c-ares from deps
* update msys package
* add uwp specific options, and minor general improvements
* fix string replace
* fix control file and windows path separator
* revert backslashes-fix -- the root cause was missing .exe extension
* upgrade to tf 2.3.1
* fix hard-coded version
* remove uwp work-in-progress code so that PR can be merged
* add [tensorflow] C API port
* missing in previous commit
* fix include file
* remove unnecessary suffix
* update README and print out usage info in portfile
* add UWP patches
* fix uwp patch file
* fix patch again
* fix patch again
* fix patch again
* move options from command line to .bazelrc
* fix include paths
* work around bazel restriction "The include path 'D:/buildtrees/tensorflow-cc/tools_clone' references a path outside of the execution root."
* go for a completely different approach: force-include uwppatch.h
* fix include path again
* choose different include location, which is available in bazel build tree
* fix compile errors
* update header (getenv redefinition)
* next try to get patched headers to work
* another try to fix include paths
* update patched header, bazel has its own naming for target triplet
* yet another try to fix patched include path
* next try to fix includes: patch bazel deps where required
* fix patch
* Update ports/tensorflow-cc/CONTROL
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* Update ports/tensorflow/portfile.cmake
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* follow-up to code review
* extend patch (further build deps)
* fix suffix parameter
* add more build deps
* fix quoting
* extend linux patch
* fix patch
* extend patch again
* yet another deps fix
* another try to fix quoting of possibly empty string parameter
* add another deps patch
* extend patch again
* different approach to fix empty string arguments
* fix portfiles, add more bazel deps
* update list of headers for tensorflow 2.3.1 (was still 2.3.0)
* update list of headers for v2.3.1
* extend bazel deps path again
* Update ports/tensorflow/CONTROL
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* fix bazel deps, bump port version
* add more bazel deps
* move common stuff into tensorflow-common as discussed in review
* go for a different approach (patch bazel toolchain) as adding bazel deps is a never-ending story...
* Apply suggestions from code review
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
* yet again a completely different approach to fix the include path
* fix path
* fix path again
* merge changes from C port
* fix cmake variable replacement (apparently @ cannot be escaped...)
* try again without escaping
* use absolute path
* fix escaping
* calculate absolute path
* fix replacement in configure_file
* handle directory exists error
* convert cygpath to windows path
* overcome backslash / escaping issues
* try include with build-root-relative path
* apply work-around until proper solution is available
* merge master
* resolved conflicts
* Revert "merge master"
This reverts commit f0804f184d107c68c6146e8f17afc33a2a8318fc.
* add uwp files to copy list
* update uwppatch.h
* fix typo
* patch the patch for UWP case
* fix patch (missing spaces)
* fix build error in AWS SDK prerequisit
* fix more compilation errors
* replace previous patch with more targeted patch
* add escaped quotes around Windows path with spaces
* cleanup
* merge patch (there can only be one patch file per external)
* add messages to user
* update versions files
* update tensorflow to 2.4.1
* port 0 seems to cause errors => remove port field
* remove patches that made it into tensorflow, correct line numbers in remaining patches
* fix patch line numbers, add copy rules for new header files
* fix patch line numbers
* fix versions for x86
* add more Windows and Linux specific patches
* add more Windows and Linux patches
* fix UWP patches
* fix x86 target
* remove UWP specific fixes from this branch as UWP PR doesn't get merged
* fix version shas
* Apply suggestions from code review
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* fix version hash again
* try an easier fix after discussion upstream
* fix hashes
Co-authored-by: Gehweiler <Joachim_Gehweiler@McAfee.com>
Co-authored-by: wangli28 <wangli28@beyondsoft.com>
Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>
Co-authored-by: Joachim Gehweiler <joachim@Joachims-iMac.local>
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
2021-03-27 05:55:50 +08:00
set ( TF_VERSION 2.4.1 )
set ( TF_VERSION_SHORT 2.4 )
[tensorflow] Add C port (#14392)
* fix build issues occurring from default bazel config being used because customized bazel config is stored in wrong directory
* [tensorflow-cc] Update CONTROL and ci.baseline.txt
* fix also applies to windows static build
* fix debug and static builds as well as library naming for non-linux
- add patch to fix debug builds
- add patch to fix exports for static linking
- really build debug (instead of cloning release)
- override bazel build options for debug (work around bazel bug)
- bazel doesn't support static libraries: work around by building dynamic library and constructing static linkage commands from build log
- Windows .pdb file can't be >4GB even on x64: work around using reduced debug information
- Windows doesn't support .lib files >4GB even on x64, so split into multiple libs
- vcpkg requires equal amount of libs for debug and release: work around using handcrafted empty dummy libs
- fix naming of libs (.dll on Windows and .dylib on macOS)
* upgrade tensorflow from v1.14 to v2.3
- adapt patch files to tensorflow code changes
- update bazel from v0.25.2 to v3.1
- on Windows use python installed on the host instead of embedded python obtained via vcpkg because embedded python lacks pip, which we need to obtain numpy
- on Windows add MSYS2 to the PATH so that bazel tools can access MSYS2 GIT
- add support for custom CA certificates when using HTTPS_PROXY
* fix execute process macro
The existing implementation totally screwed up commands if the command's arguments contained semicolons (this is the case, e.g., in the FindPython modules of the cmake distribution).
* extend overriden execute_process to more than one COMMAND as there actually are use cases for this
* added another patch required for tensorflow v2.3, fixed path and working directory
* Revert "incorporate changes from microsoft:master"
* Revert "Revert "incorporate changes from microsoft:master""
* final fixes for static build + improving out messages
* enabling linux and osx in CI to see if it works now
* simplified code, fixed version numbers, fixed generated include cmake file
* fix failing postbuild check on handcrafted empty dummy library by spreading the last real libraries contents over the required number of libraries
* remove dead code commit by mistake again
* improvements from code review
* cleaner fix for debug code
* find pip3 in PATH (PYTHON3_DIR apparently not valid for pip3)
* fix error in python helper script
* fix wrong libname in postbuild script
* fix python detection + switch to python on msys2 (instead of embedded python) for Windows as we need numpy
* fix order of arguments
* fix command (it may contain spaces such as C:\Program Files\...)
* revert last commit (root cause for CI failures is something different: there are line breaks in path)
* fix regex comparision
(value needs to be escaped as it may contains regex special characters such as brackets, eg C:/Program Files (x86)/...)
* fix linebreaks in generated file
* fix CRT linkage
(macOS doesn't support static CRT linkage; it's set to dynamic even static target triplets for macOS and linux)
* refactor implemenation to avoid as much code duplication as possible -- algorithmically identical
* fix version numbers in helper scripts
* enable work-around for Windows until bazel fix is available
* install missing python3-pip on linux
* fix linux build by patching
* apply timeout feature now available via merged master branch
* correct linux build patch
* improve debug build patches
(no functional difference because LOG(FATAL, ...) macro internally anyway calls abort(), which the compiler doesn't detect in debug mode...
* improve linux patch
* temporarily add debug to inspect what's going on on macOS CI
* remove temporary debug code and fix static linking scripts for linux and macOS
* fix regex escaping
* fix ambiguous match while grepping for the framework link command
* extend fix of ambiguous match while grepping for the framework link command
* fix what merge of master broke
* fix more what got broken by merging master
(all packages and their dependencies are now maintained manually instead of using pacman...)
* remove "unofficial" from filename
* added switch do distinct classic and manifest mode when generating config.cmake file
* create symlinks for libraries without version number
* fix linux postbuild script
* temporarily disable code making problems
* add note for linking on Linux and macOS
* forget to add README file in previous commit
* add file forgotton in macro fixing patch
* fix python library path
* fix macOS static link command
* update linkage instructions in README
* Update ports/tensorflow-cc/CONTROL
* Update ports/tensorflow-cc/portfile.cmake
* Update scripts/ci.baseline.txt
* use vcpkg_execute_required_process
* pass C_FLAGS and CXX_FLAGS to bazel
* fix INTERFACE_INCLUDE_DIRECTORIES
* fix optional c/cxx arguments
* also add linker opts
* update README
* merge static libs into one
to support force_load (cannot force_load both due to duplicate symbols)
* update README
* quote python path (it might contain spaces that don't get escaped inside outer quotes of bash command)
* fix python path also for static build
* add arm(64) as currently unsupported arch
* bazel 3.7 is available -> remove workaround
* update README, remove necessary c-ares from deps
* update msys package
* add uwp specific options, and minor general improvements
* fix string replace
* fix control file and windows path separator
* revert backslashes-fix -- the root cause was missing .exe extension
* upgrade to tf 2.3.1
* fix hard-coded version
* remove uwp work-in-progress code so that PR can be merged
* add [tensorflow] C API port
* missing in previous commit
* fix include file
* remove unnecessary suffix
* update README and print out usage info in portfile
* Update ports/tensorflow-cc/CONTROL
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* Update ports/tensorflow/portfile.cmake
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* follow-up to code review
* fix suffix parameter
* fix quoting
* extend linux patch
* another try to fix quoting of possibly empty string parameter
* different approach to fix empty string arguments
* update list of headers for tensorflow 2.3.1 (was still 2.3.0)
* Update ports/tensorflow/CONTROL
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* move common stuff into tensorflow-common as discussed in review
* Apply suggestions from code review
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
Co-authored-by: Gehweiler <Joachim_Gehweiler@McAfee.com>
Co-authored-by: wangli28 <wangli28@beyondsoft.com>
Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>
Co-authored-by: Joachim Gehweiler <joachim@Joachims-iMac.local>
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
2020-11-26 03:18:44 +08:00
vcpkg_find_acquire_program ( BAZEL )
get_filename_component ( BAZEL_DIR "${BAZEL}" DIRECTORY )
vcpkg_add_to_path ( PREPEND ${ BAZEL_DIR } )
set ( ENV{BAZEL_BIN_PATH} "${BAZEL}" )
function ( tensorflow_try_remove_recurse_wait PATH_TO_REMOVE )
file ( REMOVE_RECURSE ${ PATH_TO_REMOVE } )
if ( EXISTS "${PATH_TO_REMOVE}" )
vcpkg_execute_required_process ( COMMAND ${ CMAKE_COMMAND } -E sleep 5 WORKING_DIRECTORY ${ CURRENT_BUILDTREES_DIR } LOGNAME prerequesits-sleep- ${ TARGET_TRIPLET } )
file ( REMOVE_RECURSE ${ PATH_TO_REMOVE } )
endif ( )
endfunction ( )
vcpkg_find_acquire_program ( GIT )
get_filename_component ( GIT_DIR "${GIT}" DIRECTORY )
vcpkg_add_to_path ( PREPEND ${ GIT_DIR } )
if ( CMAKE_HOST_WIN32 )
vcpkg_acquire_msys ( MSYS_ROOT PACKAGES bash unzip patch diffutils libintl gzip coreutils mingw-w64-x86_64-python-numpy )
vcpkg_add_to_path ( ${ MSYS_ROOT } /usr/bin )
vcpkg_add_to_path ( ${ MSYS_ROOT } /mingw64/bin )
set ( BASH ${ MSYS_ROOT } /usr/bin/bash.exe )
set ( ENV{BAZEL_SH} ${ MSYS_ROOT } /usr/bin/bash.exe )
set ( ENV{BAZEL_VC} $ENV{ VCInstallDir } )
set ( ENV{BAZEL_VC_FULL_VERSION} $ENV{ VCToolsVersion } )
set ( PYTHON3 "${MSYS_ROOT}/mingw64/bin/python3.exe" )
vcpkg_execute_required_process ( COMMAND ${ PYTHON3 } -c "import site; print(site.getsitepackages()[0])" WORKING_DIRECTORY ${ CURRENT_BUILDTREES_DIR } LOGNAME prerequesits-pypath- ${ TARGET_TRIPLET } OUTPUT_VARIABLE PYTHON_LIB_PATH )
else ( )
vcpkg_find_acquire_program ( PYTHON3 )
get_filename_component ( PYTHON3_DIR "${PYTHON3}" DIRECTORY )
vcpkg_add_to_path ( PREPEND ${ PYTHON3_DIR } )
vcpkg_execute_required_process ( COMMAND ${ PYTHON3 } -m pip install --user -U numpy WORKING_DIRECTORY ${ CURRENT_BUILDTREES_DIR } LOGNAME prerequesits-pip- ${ TARGET_TRIPLET } )
vcpkg_execute_required_process ( COMMAND ${ PYTHON3 } -c "import site; print(site.getusersitepackages())" WORKING_DIRECTORY ${ CURRENT_BUILDTREES_DIR } LOGNAME prerequesits-pypath- ${ TARGET_TRIPLET } OUTPUT_VARIABLE PYTHON_LIB_PATH )
endif ( )
set ( ENV{PYTHON_BIN_PATH} "${PYTHON3}" )
set ( ENV{PYTHON_LIB_PATH} "${PYTHON_LIB_PATH}" )
# check if numpy can be loaded
vcpkg_execute_required_process ( COMMAND ${ PYTHON3 } -c "import numpy" WORKING_DIRECTORY ${ CURRENT_BUILDTREES_DIR } LOGNAME prerequesits-numpy- ${ TARGET_TRIPLET } )
# tensorflow has long file names, which will not work on windows
2021-04-27 01:27:45 +08:00
set ( ENV{TEST_TMPDIR} "${CURRENT_BUILDTREES_DIR}/.bzl" )
[tensorflow] Add C port (#14392)
* fix build issues occurring from default bazel config being used because customized bazel config is stored in wrong directory
* [tensorflow-cc] Update CONTROL and ci.baseline.txt
* fix also applies to windows static build
* fix debug and static builds as well as library naming for non-linux
- add patch to fix debug builds
- add patch to fix exports for static linking
- really build debug (instead of cloning release)
- override bazel build options for debug (work around bazel bug)
- bazel doesn't support static libraries: work around by building dynamic library and constructing static linkage commands from build log
- Windows .pdb file can't be >4GB even on x64: work around using reduced debug information
- Windows doesn't support .lib files >4GB even on x64, so split into multiple libs
- vcpkg requires equal amount of libs for debug and release: work around using handcrafted empty dummy libs
- fix naming of libs (.dll on Windows and .dylib on macOS)
* upgrade tensorflow from v1.14 to v2.3
- adapt patch files to tensorflow code changes
- update bazel from v0.25.2 to v3.1
- on Windows use python installed on the host instead of embedded python obtained via vcpkg because embedded python lacks pip, which we need to obtain numpy
- on Windows add MSYS2 to the PATH so that bazel tools can access MSYS2 GIT
- add support for custom CA certificates when using HTTPS_PROXY
* fix execute process macro
The existing implementation totally screwed up commands if the command's arguments contained semicolons (this is the case, e.g., in the FindPython modules of the cmake distribution).
* extend overriden execute_process to more than one COMMAND as there actually are use cases for this
* added another patch required for tensorflow v2.3, fixed path and working directory
* Revert "incorporate changes from microsoft:master"
* Revert "Revert "incorporate changes from microsoft:master""
* final fixes for static build + improving out messages
* enabling linux and osx in CI to see if it works now
* simplified code, fixed version numbers, fixed generated include cmake file
* fix failing postbuild check on handcrafted empty dummy library by spreading the last real libraries contents over the required number of libraries
* remove dead code commit by mistake again
* improvements from code review
* cleaner fix for debug code
* find pip3 in PATH (PYTHON3_DIR apparently not valid for pip3)
* fix error in python helper script
* fix wrong libname in postbuild script
* fix python detection + switch to python on msys2 (instead of embedded python) for Windows as we need numpy
* fix order of arguments
* fix command (it may contain spaces such as C:\Program Files\...)
* revert last commit (root cause for CI failures is something different: there are line breaks in path)
* fix regex comparision
(value needs to be escaped as it may contains regex special characters such as brackets, eg C:/Program Files (x86)/...)
* fix linebreaks in generated file
* fix CRT linkage
(macOS doesn't support static CRT linkage; it's set to dynamic even static target triplets for macOS and linux)
* refactor implemenation to avoid as much code duplication as possible -- algorithmically identical
* fix version numbers in helper scripts
* enable work-around for Windows until bazel fix is available
* install missing python3-pip on linux
* fix linux build by patching
* apply timeout feature now available via merged master branch
* correct linux build patch
* improve debug build patches
(no functional difference because LOG(FATAL, ...) macro internally anyway calls abort(), which the compiler doesn't detect in debug mode...
* improve linux patch
* temporarily add debug to inspect what's going on on macOS CI
* remove temporary debug code and fix static linking scripts for linux and macOS
* fix regex escaping
* fix ambiguous match while grepping for the framework link command
* extend fix of ambiguous match while grepping for the framework link command
* fix what merge of master broke
* fix more what got broken by merging master
(all packages and their dependencies are now maintained manually instead of using pacman...)
* remove "unofficial" from filename
* added switch do distinct classic and manifest mode when generating config.cmake file
* create symlinks for libraries without version number
* fix linux postbuild script
* temporarily disable code making problems
* add note for linking on Linux and macOS
* forget to add README file in previous commit
* add file forgotton in macro fixing patch
* fix python library path
* fix macOS static link command
* update linkage instructions in README
* Update ports/tensorflow-cc/CONTROL
* Update ports/tensorflow-cc/portfile.cmake
* Update scripts/ci.baseline.txt
* use vcpkg_execute_required_process
* pass C_FLAGS and CXX_FLAGS to bazel
* fix INTERFACE_INCLUDE_DIRECTORIES
* fix optional c/cxx arguments
* also add linker opts
* update README
* merge static libs into one
to support force_load (cannot force_load both due to duplicate symbols)
* update README
* quote python path (it might contain spaces that don't get escaped inside outer quotes of bash command)
* fix python path also for static build
* add arm(64) as currently unsupported arch
* bazel 3.7 is available -> remove workaround
* update README, remove necessary c-ares from deps
* update msys package
* add uwp specific options, and minor general improvements
* fix string replace
* fix control file and windows path separator
* revert backslashes-fix -- the root cause was missing .exe extension
* upgrade to tf 2.3.1
* fix hard-coded version
* remove uwp work-in-progress code so that PR can be merged
* add [tensorflow] C API port
* missing in previous commit
* fix include file
* remove unnecessary suffix
* update README and print out usage info in portfile
* Update ports/tensorflow-cc/CONTROL
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* Update ports/tensorflow/portfile.cmake
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* follow-up to code review
* fix suffix parameter
* fix quoting
* extend linux patch
* another try to fix quoting of possibly empty string parameter
* different approach to fix empty string arguments
* update list of headers for tensorflow 2.3.1 (was still 2.3.0)
* Update ports/tensorflow/CONTROL
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* move common stuff into tensorflow-common as discussed in review
* Apply suggestions from code review
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
Co-authored-by: Gehweiler <Joachim_Gehweiler@McAfee.com>
Co-authored-by: wangli28 <wangli28@beyondsoft.com>
Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>
Co-authored-by: Joachim Gehweiler <joachim@Joachims-iMac.local>
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
2020-11-26 03:18:44 +08:00
set ( ENV{USE_DEFAULT_PYTHON_LIB_PATH} 1 )
set ( ENV{TF_NEED_KAFKA} 0 )
set ( ENV{TF_NEED_OPENCL_SYCL} 0 )
set ( ENV{TF_NEED_AWS} 0 )
set ( ENV{TF_NEED_GCP} 0 )
set ( ENV{TF_NEED_HDFS} 0 )
set ( ENV{TF_NEED_S3} 0 )
set ( ENV{TF_ENABLE_XLA} 0 )
set ( ENV{TF_NEED_GDR} 0 )
set ( ENV{TF_NEED_VERBS} 0 )
set ( ENV{TF_NEED_OPENCL} 0 )
set ( ENV{TF_NEED_MPI} 0 )
set ( ENV{TF_NEED_TENSORRT} 0 )
set ( ENV{TF_NEED_NGRAPH} 0 )
set ( ENV{TF_NEED_IGNITE} 0 )
set ( ENV{TF_NEED_ROCM} 0 )
set ( ENV{TF_SET_ANDROID_WORKSPACE} 0 )
set ( ENV{TF_DOWNLOAD_CLANG} 0 )
set ( ENV{TF_NCCL_VERSION} ${ TF_VERSION_SHORT } )
set ( ENV{NCCL_INSTALL_PATH} "" )
set ( ENV{CC_OPT_FLAGS} "/arch:AVX" )
set ( ENV{TF_NEED_CUDA} 0 )
set ( ENV{TF_CONFIGURE_IOS} 0 )
if ( VCPKG_TARGET_IS_WINDOWS )
set ( BAZEL_LIB_NAME tensorflow ${ TF_LIB_SUFFIX } .dll )
set ( PLATFORM_SUFFIX windows )
set ( STATIC_LINK_CMD static_link.bat )
elseif ( VCPKG_TARGET_IS_OSX )
set ( BAZEL_LIB_NAME libtensorflow ${ TF_LIB_SUFFIX } .dylib )
set ( PLATFORM_SUFFIX macos )
set ( STATIC_LINK_CMD sh static_link.sh )
if ( VCPKG_LIBRARY_LINKAGE STREQUAL dynamic )
set ( TF_LIB_NAME "libtensorflow${TF_LIB_SUFFIX}.dylib" )
set ( TF_LIB_NAME_SHORT "libtensorflow${TF_LIB_SUFFIX}.2.dylib" )
set ( TF_LIB_NAME_FULL "libtensorflow${TF_LIB_SUFFIX}.${TF_VERSION}.dylib" )
set ( TF_FRAMEWORK_NAME "libtensorflow_framework.dylib" )
set ( TF_FRAMEWORK_NAME_SHORT "libtensorflow_framework.2.dylib" )
set ( TF_FRAMEWORK_NAME_FULL "libtensorflow_framework.${TF_VERSION}.dylib" )
else ( )
set ( TF_LIB_NAME "libtensorflow${TF_LIB_SUFFIX}.a" )
set ( TF_LIB_NAME_SHORT "libtensorflow${TF_LIB_SUFFIX}.2.a" )
set ( TF_LIB_NAME_FULL "libtensorflow${TF_LIB_SUFFIX}.${TF_VERSION}.a" )
endif ( )
else ( )
set ( BAZEL_LIB_NAME libtensorflow ${ TF_LIB_SUFFIX } .so )
set ( PLATFORM_SUFFIX linux )
set ( STATIC_LINK_CMD sh static_link.sh )
if ( VCPKG_LIBRARY_LINKAGE STREQUAL dynamic )
set ( TF_LIB_NAME "libtensorflow${TF_LIB_SUFFIX}.so" )
set ( TF_LIB_NAME_SHORT "libtensorflow${TF_LIB_SUFFIX}.so.2" )
set ( TF_LIB_NAME_FULL "libtensorflow${TF_LIB_SUFFIX}.so.${TF_VERSION}" )
set ( TF_FRAMEWORK_NAME "libtensorflow_framework.so" )
set ( TF_FRAMEWORK_NAME_SHORT "libtensorflow_framework.so.2" )
set ( TF_FRAMEWORK_NAME_FULL "libtensorflow_framework.so.${TF_VERSION}" )
else ( )
set ( TF_LIB_NAME "libtensorflow${TF_LIB_SUFFIX}.a" )
set ( TF_LIB_NAME_SHORT "libtensorflow${TF_LIB_SUFFIX}.a.2" )
set ( TF_LIB_NAME_FULL "libtensorflow${TF_LIB_SUFFIX}.a.${TF_VERSION}" )
endif ( )
endif ( )
foreach ( BUILD_TYPE dbg rel )
2021-01-11 06:31:30 +08:00
# prefer repeated source extraction here for each build type over extracting once above the loop and copying because users reported issues with copying symlinks
[tensorflow] Add C port (#14392)
* fix build issues occurring from default bazel config being used because customized bazel config is stored in wrong directory
* [tensorflow-cc] Update CONTROL and ci.baseline.txt
* fix also applies to windows static build
* fix debug and static builds as well as library naming for non-linux
- add patch to fix debug builds
- add patch to fix exports for static linking
- really build debug (instead of cloning release)
- override bazel build options for debug (work around bazel bug)
- bazel doesn't support static libraries: work around by building dynamic library and constructing static linkage commands from build log
- Windows .pdb file can't be >4GB even on x64: work around using reduced debug information
- Windows doesn't support .lib files >4GB even on x64, so split into multiple libs
- vcpkg requires equal amount of libs for debug and release: work around using handcrafted empty dummy libs
- fix naming of libs (.dll on Windows and .dylib on macOS)
* upgrade tensorflow from v1.14 to v2.3
- adapt patch files to tensorflow code changes
- update bazel from v0.25.2 to v3.1
- on Windows use python installed on the host instead of embedded python obtained via vcpkg because embedded python lacks pip, which we need to obtain numpy
- on Windows add MSYS2 to the PATH so that bazel tools can access MSYS2 GIT
- add support for custom CA certificates when using HTTPS_PROXY
* fix execute process macro
The existing implementation totally screwed up commands if the command's arguments contained semicolons (this is the case, e.g., in the FindPython modules of the cmake distribution).
* extend overriden execute_process to more than one COMMAND as there actually are use cases for this
* added another patch required for tensorflow v2.3, fixed path and working directory
* Revert "incorporate changes from microsoft:master"
* Revert "Revert "incorporate changes from microsoft:master""
* final fixes for static build + improving out messages
* enabling linux and osx in CI to see if it works now
* simplified code, fixed version numbers, fixed generated include cmake file
* fix failing postbuild check on handcrafted empty dummy library by spreading the last real libraries contents over the required number of libraries
* remove dead code commit by mistake again
* improvements from code review
* cleaner fix for debug code
* find pip3 in PATH (PYTHON3_DIR apparently not valid for pip3)
* fix error in python helper script
* fix wrong libname in postbuild script
* fix python detection + switch to python on msys2 (instead of embedded python) for Windows as we need numpy
* fix order of arguments
* fix command (it may contain spaces such as C:\Program Files\...)
* revert last commit (root cause for CI failures is something different: there are line breaks in path)
* fix regex comparision
(value needs to be escaped as it may contains regex special characters such as brackets, eg C:/Program Files (x86)/...)
* fix linebreaks in generated file
* fix CRT linkage
(macOS doesn't support static CRT linkage; it's set to dynamic even static target triplets for macOS and linux)
* refactor implemenation to avoid as much code duplication as possible -- algorithmically identical
* fix version numbers in helper scripts
* enable work-around for Windows until bazel fix is available
* install missing python3-pip on linux
* fix linux build by patching
* apply timeout feature now available via merged master branch
* correct linux build patch
* improve debug build patches
(no functional difference because LOG(FATAL, ...) macro internally anyway calls abort(), which the compiler doesn't detect in debug mode...
* improve linux patch
* temporarily add debug to inspect what's going on on macOS CI
* remove temporary debug code and fix static linking scripts for linux and macOS
* fix regex escaping
* fix ambiguous match while grepping for the framework link command
* extend fix of ambiguous match while grepping for the framework link command
* fix what merge of master broke
* fix more what got broken by merging master
(all packages and their dependencies are now maintained manually instead of using pacman...)
* remove "unofficial" from filename
* added switch do distinct classic and manifest mode when generating config.cmake file
* create symlinks for libraries without version number
* fix linux postbuild script
* temporarily disable code making problems
* add note for linking on Linux and macOS
* forget to add README file in previous commit
* add file forgotton in macro fixing patch
* fix python library path
* fix macOS static link command
* update linkage instructions in README
* Update ports/tensorflow-cc/CONTROL
* Update ports/tensorflow-cc/portfile.cmake
* Update scripts/ci.baseline.txt
* use vcpkg_execute_required_process
* pass C_FLAGS and CXX_FLAGS to bazel
* fix INTERFACE_INCLUDE_DIRECTORIES
* fix optional c/cxx arguments
* also add linker opts
* update README
* merge static libs into one
to support force_load (cannot force_load both due to duplicate symbols)
* update README
* quote python path (it might contain spaces that don't get escaped inside outer quotes of bash command)
* fix python path also for static build
* add arm(64) as currently unsupported arch
* bazel 3.7 is available -> remove workaround
* update README, remove necessary c-ares from deps
* update msys package
* add uwp specific options, and minor general improvements
* fix string replace
* fix control file and windows path separator
* revert backslashes-fix -- the root cause was missing .exe extension
* upgrade to tf 2.3.1
* fix hard-coded version
* remove uwp work-in-progress code so that PR can be merged
* add [tensorflow] C API port
* missing in previous commit
* fix include file
* remove unnecessary suffix
* update README and print out usage info in portfile
* Update ports/tensorflow-cc/CONTROL
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* Update ports/tensorflow/portfile.cmake
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* follow-up to code review
* fix suffix parameter
* fix quoting
* extend linux patch
* another try to fix quoting of possibly empty string parameter
* different approach to fix empty string arguments
* update list of headers for tensorflow 2.3.1 (was still 2.3.0)
* Update ports/tensorflow/CONTROL
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* move common stuff into tensorflow-common as discussed in review
* Apply suggestions from code review
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
Co-authored-by: Gehweiler <Joachim_Gehweiler@McAfee.com>
Co-authored-by: wangli28 <wangli28@beyondsoft.com>
Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>
Co-authored-by: Joachim Gehweiler <joachim@Joachims-iMac.local>
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
2020-11-26 03:18:44 +08:00
set ( STATIC_ONLY_PATCHES )
[tensorflow] upgrade to 2.4.1 (#16364)
* fix build issues occurring from default bazel config being used because customized bazel config is stored in wrong directory
* [tensorflow-cc] Update CONTROL and ci.baseline.txt
* fix also applies to windows static build
* fix debug and static builds as well as library naming for non-linux
- add patch to fix debug builds
- add patch to fix exports for static linking
- really build debug (instead of cloning release)
- override bazel build options for debug (work around bazel bug)
- bazel doesn't support static libraries: work around by building dynamic library and constructing static linkage commands from build log
- Windows .pdb file can't be >4GB even on x64: work around using reduced debug information
- Windows doesn't support .lib files >4GB even on x64, so split into multiple libs
- vcpkg requires equal amount of libs for debug and release: work around using handcrafted empty dummy libs
- fix naming of libs (.dll on Windows and .dylib on macOS)
* upgrade tensorflow from v1.14 to v2.3
- adapt patch files to tensorflow code changes
- update bazel from v0.25.2 to v3.1
- on Windows use python installed on the host instead of embedded python obtained via vcpkg because embedded python lacks pip, which we need to obtain numpy
- on Windows add MSYS2 to the PATH so that bazel tools can access MSYS2 GIT
- add support for custom CA certificates when using HTTPS_PROXY
* fix execute process macro
The existing implementation totally screwed up commands if the command's arguments contained semicolons (this is the case, e.g., in the FindPython modules of the cmake distribution).
* extend overriden execute_process to more than one COMMAND as there actually are use cases for this
* added another patch required for tensorflow v2.3, fixed path and working directory
* Revert "incorporate changes from microsoft:master"
* Revert "Revert "incorporate changes from microsoft:master""
* final fixes for static build + improving out messages
* enabling linux and osx in CI to see if it works now
* simplified code, fixed version numbers, fixed generated include cmake file
* fix failing postbuild check on handcrafted empty dummy library by spreading the last real libraries contents over the required number of libraries
* remove dead code commit by mistake again
* improvements from code review
* cleaner fix for debug code
* find pip3 in PATH (PYTHON3_DIR apparently not valid for pip3)
* fix error in python helper script
* fix wrong libname in postbuild script
* fix python detection + switch to python on msys2 (instead of embedded python) for Windows as we need numpy
* fix order of arguments
* fix command (it may contain spaces such as C:\Program Files\...)
* revert last commit (root cause for CI failures is something different: there are line breaks in path)
* fix regex comparision
(value needs to be escaped as it may contains regex special characters such as brackets, eg C:/Program Files (x86)/...)
* fix linebreaks in generated file
* fix CRT linkage
(macOS doesn't support static CRT linkage; it's set to dynamic even static target triplets for macOS and linux)
* refactor implemenation to avoid as much code duplication as possible -- algorithmically identical
* fix version numbers in helper scripts
* enable work-around for Windows until bazel fix is available
* install missing python3-pip on linux
* fix linux build by patching
* apply timeout feature now available via merged master branch
* correct linux build patch
* improve debug build patches
(no functional difference because LOG(FATAL, ...) macro internally anyway calls abort(), which the compiler doesn't detect in debug mode...
* improve linux patch
* temporarily add debug to inspect what's going on on macOS CI
* remove temporary debug code and fix static linking scripts for linux and macOS
* fix regex escaping
* fix ambiguous match while grepping for the framework link command
* extend fix of ambiguous match while grepping for the framework link command
* fix what merge of master broke
* fix more what got broken by merging master
(all packages and their dependencies are now maintained manually instead of using pacman...)
* remove "unofficial" from filename
* added switch do distinct classic and manifest mode when generating config.cmake file
* create symlinks for libraries without version number
* fix linux postbuild script
* temporarily disable code making problems
* add note for linking on Linux and macOS
* forget to add README file in previous commit
* add file forgotton in macro fixing patch
* fix python library path
* fix macOS static link command
* update linkage instructions in README
* Update ports/tensorflow-cc/CONTROL
* Update ports/tensorflow-cc/portfile.cmake
* Update scripts/ci.baseline.txt
* use vcpkg_execute_required_process
* pass C_FLAGS and CXX_FLAGS to bazel
* fix INTERFACE_INCLUDE_DIRECTORIES
* fix optional c/cxx arguments
* also add linker opts
* update README
* merge static libs into one
to support force_load (cannot force_load both due to duplicate symbols)
* update README
* quote python path (it might contain spaces that don't get escaped inside outer quotes of bash command)
* fix python path also for static build
* add arm(64) as currently unsupported arch
* bazel 3.7 is available -> remove workaround
* update README, remove necessary c-ares from deps
* update msys package
* add uwp specific options, and minor general improvements
* fix string replace
* fix control file and windows path separator
* revert backslashes-fix -- the root cause was missing .exe extension
* upgrade to tf 2.3.1
* fix hard-coded version
* remove uwp work-in-progress code so that PR can be merged
* add [tensorflow] C API port
* missing in previous commit
* fix include file
* remove unnecessary suffix
* update README and print out usage info in portfile
* add UWP patches
* fix uwp patch file
* fix patch again
* fix patch again
* fix patch again
* move options from command line to .bazelrc
* fix include paths
* work around bazel restriction "The include path 'D:/buildtrees/tensorflow-cc/tools_clone' references a path outside of the execution root."
* go for a completely different approach: force-include uwppatch.h
* fix include path again
* choose different include location, which is available in bazel build tree
* fix compile errors
* update header (getenv redefinition)
* next try to get patched headers to work
* another try to fix include paths
* update patched header, bazel has its own naming for target triplet
* yet another try to fix patched include path
* next try to fix includes: patch bazel deps where required
* fix patch
* Update ports/tensorflow-cc/CONTROL
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* Update ports/tensorflow/portfile.cmake
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* follow-up to code review
* extend patch (further build deps)
* fix suffix parameter
* add more build deps
* fix quoting
* extend linux patch
* fix patch
* extend patch again
* yet another deps fix
* another try to fix quoting of possibly empty string parameter
* add another deps patch
* extend patch again
* different approach to fix empty string arguments
* fix portfiles, add more bazel deps
* update list of headers for tensorflow 2.3.1 (was still 2.3.0)
* update list of headers for v2.3.1
* extend bazel deps path again
* Update ports/tensorflow/CONTROL
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* fix bazel deps, bump port version
* add more bazel deps
* move common stuff into tensorflow-common as discussed in review
* go for a different approach (patch bazel toolchain) as adding bazel deps is a never-ending story...
* Apply suggestions from code review
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
* yet again a completely different approach to fix the include path
* fix path
* fix path again
* merge changes from C port
* fix cmake variable replacement (apparently @ cannot be escaped...)
* try again without escaping
* use absolute path
* fix escaping
* calculate absolute path
* fix replacement in configure_file
* handle directory exists error
* convert cygpath to windows path
* overcome backslash / escaping issues
* try include with build-root-relative path
* apply work-around until proper solution is available
* merge master
* resolved conflicts
* Revert "merge master"
This reverts commit f0804f184d107c68c6146e8f17afc33a2a8318fc.
* add uwp files to copy list
* update uwppatch.h
* fix typo
* patch the patch for UWP case
* fix patch (missing spaces)
* fix build error in AWS SDK prerequisit
* fix more compilation errors
* replace previous patch with more targeted patch
* add escaped quotes around Windows path with spaces
* cleanup
* merge patch (there can only be one patch file per external)
* add messages to user
* update versions files
* update tensorflow to 2.4.1
* port 0 seems to cause errors => remove port field
* remove patches that made it into tensorflow, correct line numbers in remaining patches
* fix patch line numbers, add copy rules for new header files
* fix patch line numbers
* fix versions for x86
* add more Windows and Linux specific patches
* add more Windows and Linux patches
* fix UWP patches
* fix x86 target
* remove UWP specific fixes from this branch as UWP PR doesn't get merged
* fix version shas
* Apply suggestions from code review
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* fix version hash again
* try an easier fix after discussion upstream
* fix hashes
Co-authored-by: Gehweiler <Joachim_Gehweiler@McAfee.com>
Co-authored-by: wangli28 <wangli28@beyondsoft.com>
Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>
Co-authored-by: Joachim Gehweiler <joachim@Joachims-iMac.local>
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
2021-03-27 05:55:50 +08:00
set ( WINDOWS_ONLY_PATCHES )
[tensorflow] Add C port (#14392)
* fix build issues occurring from default bazel config being used because customized bazel config is stored in wrong directory
* [tensorflow-cc] Update CONTROL and ci.baseline.txt
* fix also applies to windows static build
* fix debug and static builds as well as library naming for non-linux
- add patch to fix debug builds
- add patch to fix exports for static linking
- really build debug (instead of cloning release)
- override bazel build options for debug (work around bazel bug)
- bazel doesn't support static libraries: work around by building dynamic library and constructing static linkage commands from build log
- Windows .pdb file can't be >4GB even on x64: work around using reduced debug information
- Windows doesn't support .lib files >4GB even on x64, so split into multiple libs
- vcpkg requires equal amount of libs for debug and release: work around using handcrafted empty dummy libs
- fix naming of libs (.dll on Windows and .dylib on macOS)
* upgrade tensorflow from v1.14 to v2.3
- adapt patch files to tensorflow code changes
- update bazel from v0.25.2 to v3.1
- on Windows use python installed on the host instead of embedded python obtained via vcpkg because embedded python lacks pip, which we need to obtain numpy
- on Windows add MSYS2 to the PATH so that bazel tools can access MSYS2 GIT
- add support for custom CA certificates when using HTTPS_PROXY
* fix execute process macro
The existing implementation totally screwed up commands if the command's arguments contained semicolons (this is the case, e.g., in the FindPython modules of the cmake distribution).
* extend overriden execute_process to more than one COMMAND as there actually are use cases for this
* added another patch required for tensorflow v2.3, fixed path and working directory
* Revert "incorporate changes from microsoft:master"
* Revert "Revert "incorporate changes from microsoft:master""
* final fixes for static build + improving out messages
* enabling linux and osx in CI to see if it works now
* simplified code, fixed version numbers, fixed generated include cmake file
* fix failing postbuild check on handcrafted empty dummy library by spreading the last real libraries contents over the required number of libraries
* remove dead code commit by mistake again
* improvements from code review
* cleaner fix for debug code
* find pip3 in PATH (PYTHON3_DIR apparently not valid for pip3)
* fix error in python helper script
* fix wrong libname in postbuild script
* fix python detection + switch to python on msys2 (instead of embedded python) for Windows as we need numpy
* fix order of arguments
* fix command (it may contain spaces such as C:\Program Files\...)
* revert last commit (root cause for CI failures is something different: there are line breaks in path)
* fix regex comparision
(value needs to be escaped as it may contains regex special characters such as brackets, eg C:/Program Files (x86)/...)
* fix linebreaks in generated file
* fix CRT linkage
(macOS doesn't support static CRT linkage; it's set to dynamic even static target triplets for macOS and linux)
* refactor implemenation to avoid as much code duplication as possible -- algorithmically identical
* fix version numbers in helper scripts
* enable work-around for Windows until bazel fix is available
* install missing python3-pip on linux
* fix linux build by patching
* apply timeout feature now available via merged master branch
* correct linux build patch
* improve debug build patches
(no functional difference because LOG(FATAL, ...) macro internally anyway calls abort(), which the compiler doesn't detect in debug mode...
* improve linux patch
* temporarily add debug to inspect what's going on on macOS CI
* remove temporary debug code and fix static linking scripts for linux and macOS
* fix regex escaping
* fix ambiguous match while grepping for the framework link command
* extend fix of ambiguous match while grepping for the framework link command
* fix what merge of master broke
* fix more what got broken by merging master
(all packages and their dependencies are now maintained manually instead of using pacman...)
* remove "unofficial" from filename
* added switch do distinct classic and manifest mode when generating config.cmake file
* create symlinks for libraries without version number
* fix linux postbuild script
* temporarily disable code making problems
* add note for linking on Linux and macOS
* forget to add README file in previous commit
* add file forgotton in macro fixing patch
* fix python library path
* fix macOS static link command
* update linkage instructions in README
* Update ports/tensorflow-cc/CONTROL
* Update ports/tensorflow-cc/portfile.cmake
* Update scripts/ci.baseline.txt
* use vcpkg_execute_required_process
* pass C_FLAGS and CXX_FLAGS to bazel
* fix INTERFACE_INCLUDE_DIRECTORIES
* fix optional c/cxx arguments
* also add linker opts
* update README
* merge static libs into one
to support force_load (cannot force_load both due to duplicate symbols)
* update README
* quote python path (it might contain spaces that don't get escaped inside outer quotes of bash command)
* fix python path also for static build
* add arm(64) as currently unsupported arch
* bazel 3.7 is available -> remove workaround
* update README, remove necessary c-ares from deps
* update msys package
* add uwp specific options, and minor general improvements
* fix string replace
* fix control file and windows path separator
* revert backslashes-fix -- the root cause was missing .exe extension
* upgrade to tf 2.3.1
* fix hard-coded version
* remove uwp work-in-progress code so that PR can be merged
* add [tensorflow] C API port
* missing in previous commit
* fix include file
* remove unnecessary suffix
* update README and print out usage info in portfile
* Update ports/tensorflow-cc/CONTROL
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* Update ports/tensorflow/portfile.cmake
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* follow-up to code review
* fix suffix parameter
* fix quoting
* extend linux patch
* another try to fix quoting of possibly empty string parameter
* different approach to fix empty string arguments
* update list of headers for tensorflow 2.3.1 (was still 2.3.0)
* Update ports/tensorflow/CONTROL
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* move common stuff into tensorflow-common as discussed in review
* Apply suggestions from code review
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
Co-authored-by: Gehweiler <Joachim_Gehweiler@McAfee.com>
Co-authored-by: wangli28 <wangli28@beyondsoft.com>
Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>
Co-authored-by: Joachim Gehweiler <joachim@Joachims-iMac.local>
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
2020-11-26 03:18:44 +08:00
set ( LINUX_ONLY_PATCHES )
if ( VCPKG_LIBRARY_LINKAGE STREQUAL static )
2021-01-11 06:31:30 +08:00
set ( STATIC_ONLY_PATCHES "${CMAKE_CURRENT_LIST_DIR}/change-macros-for-static-lib.patch" ) # there is no static build option - change macros via patch and link library manually at the end
[tensorflow] Add C port (#14392)
* fix build issues occurring from default bazel config being used because customized bazel config is stored in wrong directory
* [tensorflow-cc] Update CONTROL and ci.baseline.txt
* fix also applies to windows static build
* fix debug and static builds as well as library naming for non-linux
- add patch to fix debug builds
- add patch to fix exports for static linking
- really build debug (instead of cloning release)
- override bazel build options for debug (work around bazel bug)
- bazel doesn't support static libraries: work around by building dynamic library and constructing static linkage commands from build log
- Windows .pdb file can't be >4GB even on x64: work around using reduced debug information
- Windows doesn't support .lib files >4GB even on x64, so split into multiple libs
- vcpkg requires equal amount of libs for debug and release: work around using handcrafted empty dummy libs
- fix naming of libs (.dll on Windows and .dylib on macOS)
* upgrade tensorflow from v1.14 to v2.3
- adapt patch files to tensorflow code changes
- update bazel from v0.25.2 to v3.1
- on Windows use python installed on the host instead of embedded python obtained via vcpkg because embedded python lacks pip, which we need to obtain numpy
- on Windows add MSYS2 to the PATH so that bazel tools can access MSYS2 GIT
- add support for custom CA certificates when using HTTPS_PROXY
* fix execute process macro
The existing implementation totally screwed up commands if the command's arguments contained semicolons (this is the case, e.g., in the FindPython modules of the cmake distribution).
* extend overriden execute_process to more than one COMMAND as there actually are use cases for this
* added another patch required for tensorflow v2.3, fixed path and working directory
* Revert "incorporate changes from microsoft:master"
* Revert "Revert "incorporate changes from microsoft:master""
* final fixes for static build + improving out messages
* enabling linux and osx in CI to see if it works now
* simplified code, fixed version numbers, fixed generated include cmake file
* fix failing postbuild check on handcrafted empty dummy library by spreading the last real libraries contents over the required number of libraries
* remove dead code commit by mistake again
* improvements from code review
* cleaner fix for debug code
* find pip3 in PATH (PYTHON3_DIR apparently not valid for pip3)
* fix error in python helper script
* fix wrong libname in postbuild script
* fix python detection + switch to python on msys2 (instead of embedded python) for Windows as we need numpy
* fix order of arguments
* fix command (it may contain spaces such as C:\Program Files\...)
* revert last commit (root cause for CI failures is something different: there are line breaks in path)
* fix regex comparision
(value needs to be escaped as it may contains regex special characters such as brackets, eg C:/Program Files (x86)/...)
* fix linebreaks in generated file
* fix CRT linkage
(macOS doesn't support static CRT linkage; it's set to dynamic even static target triplets for macOS and linux)
* refactor implemenation to avoid as much code duplication as possible -- algorithmically identical
* fix version numbers in helper scripts
* enable work-around for Windows until bazel fix is available
* install missing python3-pip on linux
* fix linux build by patching
* apply timeout feature now available via merged master branch
* correct linux build patch
* improve debug build patches
(no functional difference because LOG(FATAL, ...) macro internally anyway calls abort(), which the compiler doesn't detect in debug mode...
* improve linux patch
* temporarily add debug to inspect what's going on on macOS CI
* remove temporary debug code and fix static linking scripts for linux and macOS
* fix regex escaping
* fix ambiguous match while grepping for the framework link command
* extend fix of ambiguous match while grepping for the framework link command
* fix what merge of master broke
* fix more what got broken by merging master
(all packages and their dependencies are now maintained manually instead of using pacman...)
* remove "unofficial" from filename
* added switch do distinct classic and manifest mode when generating config.cmake file
* create symlinks for libraries without version number
* fix linux postbuild script
* temporarily disable code making problems
* add note for linking on Linux and macOS
* forget to add README file in previous commit
* add file forgotton in macro fixing patch
* fix python library path
* fix macOS static link command
* update linkage instructions in README
* Update ports/tensorflow-cc/CONTROL
* Update ports/tensorflow-cc/portfile.cmake
* Update scripts/ci.baseline.txt
* use vcpkg_execute_required_process
* pass C_FLAGS and CXX_FLAGS to bazel
* fix INTERFACE_INCLUDE_DIRECTORIES
* fix optional c/cxx arguments
* also add linker opts
* update README
* merge static libs into one
to support force_load (cannot force_load both due to duplicate symbols)
* update README
* quote python path (it might contain spaces that don't get escaped inside outer quotes of bash command)
* fix python path also for static build
* add arm(64) as currently unsupported arch
* bazel 3.7 is available -> remove workaround
* update README, remove necessary c-ares from deps
* update msys package
* add uwp specific options, and minor general improvements
* fix string replace
* fix control file and windows path separator
* revert backslashes-fix -- the root cause was missing .exe extension
* upgrade to tf 2.3.1
* fix hard-coded version
* remove uwp work-in-progress code so that PR can be merged
* add [tensorflow] C API port
* missing in previous commit
* fix include file
* remove unnecessary suffix
* update README and print out usage info in portfile
* Update ports/tensorflow-cc/CONTROL
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* Update ports/tensorflow/portfile.cmake
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* follow-up to code review
* fix suffix parameter
* fix quoting
* extend linux patch
* another try to fix quoting of possibly empty string parameter
* different approach to fix empty string arguments
* update list of headers for tensorflow 2.3.1 (was still 2.3.0)
* Update ports/tensorflow/CONTROL
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* move common stuff into tensorflow-common as discussed in review
* Apply suggestions from code review
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
Co-authored-by: Gehweiler <Joachim_Gehweiler@McAfee.com>
Co-authored-by: wangli28 <wangli28@beyondsoft.com>
Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>
Co-authored-by: Joachim Gehweiler <joachim@Joachims-iMac.local>
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
2020-11-26 03:18:44 +08:00
endif ( )
[tensorflow] upgrade to 2.4.1 (#16364)
* fix build issues occurring from default bazel config being used because customized bazel config is stored in wrong directory
* [tensorflow-cc] Update CONTROL and ci.baseline.txt
* fix also applies to windows static build
* fix debug and static builds as well as library naming for non-linux
- add patch to fix debug builds
- add patch to fix exports for static linking
- really build debug (instead of cloning release)
- override bazel build options for debug (work around bazel bug)
- bazel doesn't support static libraries: work around by building dynamic library and constructing static linkage commands from build log
- Windows .pdb file can't be >4GB even on x64: work around using reduced debug information
- Windows doesn't support .lib files >4GB even on x64, so split into multiple libs
- vcpkg requires equal amount of libs for debug and release: work around using handcrafted empty dummy libs
- fix naming of libs (.dll on Windows and .dylib on macOS)
* upgrade tensorflow from v1.14 to v2.3
- adapt patch files to tensorflow code changes
- update bazel from v0.25.2 to v3.1
- on Windows use python installed on the host instead of embedded python obtained via vcpkg because embedded python lacks pip, which we need to obtain numpy
- on Windows add MSYS2 to the PATH so that bazel tools can access MSYS2 GIT
- add support for custom CA certificates when using HTTPS_PROXY
* fix execute process macro
The existing implementation totally screwed up commands if the command's arguments contained semicolons (this is the case, e.g., in the FindPython modules of the cmake distribution).
* extend overriden execute_process to more than one COMMAND as there actually are use cases for this
* added another patch required for tensorflow v2.3, fixed path and working directory
* Revert "incorporate changes from microsoft:master"
* Revert "Revert "incorporate changes from microsoft:master""
* final fixes for static build + improving out messages
* enabling linux and osx in CI to see if it works now
* simplified code, fixed version numbers, fixed generated include cmake file
* fix failing postbuild check on handcrafted empty dummy library by spreading the last real libraries contents over the required number of libraries
* remove dead code commit by mistake again
* improvements from code review
* cleaner fix for debug code
* find pip3 in PATH (PYTHON3_DIR apparently not valid for pip3)
* fix error in python helper script
* fix wrong libname in postbuild script
* fix python detection + switch to python on msys2 (instead of embedded python) for Windows as we need numpy
* fix order of arguments
* fix command (it may contain spaces such as C:\Program Files\...)
* revert last commit (root cause for CI failures is something different: there are line breaks in path)
* fix regex comparision
(value needs to be escaped as it may contains regex special characters such as brackets, eg C:/Program Files (x86)/...)
* fix linebreaks in generated file
* fix CRT linkage
(macOS doesn't support static CRT linkage; it's set to dynamic even static target triplets for macOS and linux)
* refactor implemenation to avoid as much code duplication as possible -- algorithmically identical
* fix version numbers in helper scripts
* enable work-around for Windows until bazel fix is available
* install missing python3-pip on linux
* fix linux build by patching
* apply timeout feature now available via merged master branch
* correct linux build patch
* improve debug build patches
(no functional difference because LOG(FATAL, ...) macro internally anyway calls abort(), which the compiler doesn't detect in debug mode...
* improve linux patch
* temporarily add debug to inspect what's going on on macOS CI
* remove temporary debug code and fix static linking scripts for linux and macOS
* fix regex escaping
* fix ambiguous match while grepping for the framework link command
* extend fix of ambiguous match while grepping for the framework link command
* fix what merge of master broke
* fix more what got broken by merging master
(all packages and their dependencies are now maintained manually instead of using pacman...)
* remove "unofficial" from filename
* added switch do distinct classic and manifest mode when generating config.cmake file
* create symlinks for libraries without version number
* fix linux postbuild script
* temporarily disable code making problems
* add note for linking on Linux and macOS
* forget to add README file in previous commit
* add file forgotton in macro fixing patch
* fix python library path
* fix macOS static link command
* update linkage instructions in README
* Update ports/tensorflow-cc/CONTROL
* Update ports/tensorflow-cc/portfile.cmake
* Update scripts/ci.baseline.txt
* use vcpkg_execute_required_process
* pass C_FLAGS and CXX_FLAGS to bazel
* fix INTERFACE_INCLUDE_DIRECTORIES
* fix optional c/cxx arguments
* also add linker opts
* update README
* merge static libs into one
to support force_load (cannot force_load both due to duplicate symbols)
* update README
* quote python path (it might contain spaces that don't get escaped inside outer quotes of bash command)
* fix python path also for static build
* add arm(64) as currently unsupported arch
* bazel 3.7 is available -> remove workaround
* update README, remove necessary c-ares from deps
* update msys package
* add uwp specific options, and minor general improvements
* fix string replace
* fix control file and windows path separator
* revert backslashes-fix -- the root cause was missing .exe extension
* upgrade to tf 2.3.1
* fix hard-coded version
* remove uwp work-in-progress code so that PR can be merged
* add [tensorflow] C API port
* missing in previous commit
* fix include file
* remove unnecessary suffix
* update README and print out usage info in portfile
* add UWP patches
* fix uwp patch file
* fix patch again
* fix patch again
* fix patch again
* move options from command line to .bazelrc
* fix include paths
* work around bazel restriction "The include path 'D:/buildtrees/tensorflow-cc/tools_clone' references a path outside of the execution root."
* go for a completely different approach: force-include uwppatch.h
* fix include path again
* choose different include location, which is available in bazel build tree
* fix compile errors
* update header (getenv redefinition)
* next try to get patched headers to work
* another try to fix include paths
* update patched header, bazel has its own naming for target triplet
* yet another try to fix patched include path
* next try to fix includes: patch bazel deps where required
* fix patch
* Update ports/tensorflow-cc/CONTROL
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* Update ports/tensorflow/portfile.cmake
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* follow-up to code review
* extend patch (further build deps)
* fix suffix parameter
* add more build deps
* fix quoting
* extend linux patch
* fix patch
* extend patch again
* yet another deps fix
* another try to fix quoting of possibly empty string parameter
* add another deps patch
* extend patch again
* different approach to fix empty string arguments
* fix portfiles, add more bazel deps
* update list of headers for tensorflow 2.3.1 (was still 2.3.0)
* update list of headers for v2.3.1
* extend bazel deps path again
* Update ports/tensorflow/CONTROL
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* fix bazel deps, bump port version
* add more bazel deps
* move common stuff into tensorflow-common as discussed in review
* go for a different approach (patch bazel toolchain) as adding bazel deps is a never-ending story...
* Apply suggestions from code review
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
* yet again a completely different approach to fix the include path
* fix path
* fix path again
* merge changes from C port
* fix cmake variable replacement (apparently @ cannot be escaped...)
* try again without escaping
* use absolute path
* fix escaping
* calculate absolute path
* fix replacement in configure_file
* handle directory exists error
* convert cygpath to windows path
* overcome backslash / escaping issues
* try include with build-root-relative path
* apply work-around until proper solution is available
* merge master
* resolved conflicts
* Revert "merge master"
This reverts commit f0804f184d107c68c6146e8f17afc33a2a8318fc.
* add uwp files to copy list
* update uwppatch.h
* fix typo
* patch the patch for UWP case
* fix patch (missing spaces)
* fix build error in AWS SDK prerequisit
* fix more compilation errors
* replace previous patch with more targeted patch
* add escaped quotes around Windows path with spaces
* cleanup
* merge patch (there can only be one patch file per external)
* add messages to user
* update versions files
* update tensorflow to 2.4.1
* port 0 seems to cause errors => remove port field
* remove patches that made it into tensorflow, correct line numbers in remaining patches
* fix patch line numbers, add copy rules for new header files
* fix patch line numbers
* fix versions for x86
* add more Windows and Linux specific patches
* add more Windows and Linux patches
* fix UWP patches
* fix x86 target
* remove UWP specific fixes from this branch as UWP PR doesn't get merged
* fix version shas
* Apply suggestions from code review
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* fix version hash again
* try an easier fix after discussion upstream
* fix hashes
Co-authored-by: Gehweiler <Joachim_Gehweiler@McAfee.com>
Co-authored-by: wangli28 <wangli28@beyondsoft.com>
Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>
Co-authored-by: Joachim Gehweiler <joachim@Joachims-iMac.local>
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
2021-03-27 05:55:50 +08:00
if ( VCPKG_TARGET_IS_WINDOWS )
set ( WINDOWS_ONLY_PATCHES "${CMAKE_CURRENT_LIST_DIR}/fix-windows-build.patch" )
endif ( )
[tensorflow] Add C port (#14392)
* fix build issues occurring from default bazel config being used because customized bazel config is stored in wrong directory
* [tensorflow-cc] Update CONTROL and ci.baseline.txt
* fix also applies to windows static build
* fix debug and static builds as well as library naming for non-linux
- add patch to fix debug builds
- add patch to fix exports for static linking
- really build debug (instead of cloning release)
- override bazel build options for debug (work around bazel bug)
- bazel doesn't support static libraries: work around by building dynamic library and constructing static linkage commands from build log
- Windows .pdb file can't be >4GB even on x64: work around using reduced debug information
- Windows doesn't support .lib files >4GB even on x64, so split into multiple libs
- vcpkg requires equal amount of libs for debug and release: work around using handcrafted empty dummy libs
- fix naming of libs (.dll on Windows and .dylib on macOS)
* upgrade tensorflow from v1.14 to v2.3
- adapt patch files to tensorflow code changes
- update bazel from v0.25.2 to v3.1
- on Windows use python installed on the host instead of embedded python obtained via vcpkg because embedded python lacks pip, which we need to obtain numpy
- on Windows add MSYS2 to the PATH so that bazel tools can access MSYS2 GIT
- add support for custom CA certificates when using HTTPS_PROXY
* fix execute process macro
The existing implementation totally screwed up commands if the command's arguments contained semicolons (this is the case, e.g., in the FindPython modules of the cmake distribution).
* extend overriden execute_process to more than one COMMAND as there actually are use cases for this
* added another patch required for tensorflow v2.3, fixed path and working directory
* Revert "incorporate changes from microsoft:master"
* Revert "Revert "incorporate changes from microsoft:master""
* final fixes for static build + improving out messages
* enabling linux and osx in CI to see if it works now
* simplified code, fixed version numbers, fixed generated include cmake file
* fix failing postbuild check on handcrafted empty dummy library by spreading the last real libraries contents over the required number of libraries
* remove dead code commit by mistake again
* improvements from code review
* cleaner fix for debug code
* find pip3 in PATH (PYTHON3_DIR apparently not valid for pip3)
* fix error in python helper script
* fix wrong libname in postbuild script
* fix python detection + switch to python on msys2 (instead of embedded python) for Windows as we need numpy
* fix order of arguments
* fix command (it may contain spaces such as C:\Program Files\...)
* revert last commit (root cause for CI failures is something different: there are line breaks in path)
* fix regex comparision
(value needs to be escaped as it may contains regex special characters such as brackets, eg C:/Program Files (x86)/...)
* fix linebreaks in generated file
* fix CRT linkage
(macOS doesn't support static CRT linkage; it's set to dynamic even static target triplets for macOS and linux)
* refactor implemenation to avoid as much code duplication as possible -- algorithmically identical
* fix version numbers in helper scripts
* enable work-around for Windows until bazel fix is available
* install missing python3-pip on linux
* fix linux build by patching
* apply timeout feature now available via merged master branch
* correct linux build patch
* improve debug build patches
(no functional difference because LOG(FATAL, ...) macro internally anyway calls abort(), which the compiler doesn't detect in debug mode...
* improve linux patch
* temporarily add debug to inspect what's going on on macOS CI
* remove temporary debug code and fix static linking scripts for linux and macOS
* fix regex escaping
* fix ambiguous match while grepping for the framework link command
* extend fix of ambiguous match while grepping for the framework link command
* fix what merge of master broke
* fix more what got broken by merging master
(all packages and their dependencies are now maintained manually instead of using pacman...)
* remove "unofficial" from filename
* added switch do distinct classic and manifest mode when generating config.cmake file
* create symlinks for libraries without version number
* fix linux postbuild script
* temporarily disable code making problems
* add note for linking on Linux and macOS
* forget to add README file in previous commit
* add file forgotton in macro fixing patch
* fix python library path
* fix macOS static link command
* update linkage instructions in README
* Update ports/tensorflow-cc/CONTROL
* Update ports/tensorflow-cc/portfile.cmake
* Update scripts/ci.baseline.txt
* use vcpkg_execute_required_process
* pass C_FLAGS and CXX_FLAGS to bazel
* fix INTERFACE_INCLUDE_DIRECTORIES
* fix optional c/cxx arguments
* also add linker opts
* update README
* merge static libs into one
to support force_load (cannot force_load both due to duplicate symbols)
* update README
* quote python path (it might contain spaces that don't get escaped inside outer quotes of bash command)
* fix python path also for static build
* add arm(64) as currently unsupported arch
* bazel 3.7 is available -> remove workaround
* update README, remove necessary c-ares from deps
* update msys package
* add uwp specific options, and minor general improvements
* fix string replace
* fix control file and windows path separator
* revert backslashes-fix -- the root cause was missing .exe extension
* upgrade to tf 2.3.1
* fix hard-coded version
* remove uwp work-in-progress code so that PR can be merged
* add [tensorflow] C API port
* missing in previous commit
* fix include file
* remove unnecessary suffix
* update README and print out usage info in portfile
* Update ports/tensorflow-cc/CONTROL
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* Update ports/tensorflow/portfile.cmake
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* follow-up to code review
* fix suffix parameter
* fix quoting
* extend linux patch
* another try to fix quoting of possibly empty string parameter
* different approach to fix empty string arguments
* update list of headers for tensorflow 2.3.1 (was still 2.3.0)
* Update ports/tensorflow/CONTROL
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* move common stuff into tensorflow-common as discussed in review
* Apply suggestions from code review
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
Co-authored-by: Gehweiler <Joachim_Gehweiler@McAfee.com>
Co-authored-by: wangli28 <wangli28@beyondsoft.com>
Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>
Co-authored-by: Joachim Gehweiler <joachim@Joachims-iMac.local>
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
2020-11-26 03:18:44 +08:00
if ( VCPKG_TARGET_IS_LINUX )
2021-01-11 06:31:30 +08:00
set ( LINUX_ONLY_PATCHES "${CMAKE_CURRENT_LIST_DIR}/fix-linux-build.patch" )
[tensorflow] Add C port (#14392)
* fix build issues occurring from default bazel config being used because customized bazel config is stored in wrong directory
* [tensorflow-cc] Update CONTROL and ci.baseline.txt
* fix also applies to windows static build
* fix debug and static builds as well as library naming for non-linux
- add patch to fix debug builds
- add patch to fix exports for static linking
- really build debug (instead of cloning release)
- override bazel build options for debug (work around bazel bug)
- bazel doesn't support static libraries: work around by building dynamic library and constructing static linkage commands from build log
- Windows .pdb file can't be >4GB even on x64: work around using reduced debug information
- Windows doesn't support .lib files >4GB even on x64, so split into multiple libs
- vcpkg requires equal amount of libs for debug and release: work around using handcrafted empty dummy libs
- fix naming of libs (.dll on Windows and .dylib on macOS)
* upgrade tensorflow from v1.14 to v2.3
- adapt patch files to tensorflow code changes
- update bazel from v0.25.2 to v3.1
- on Windows use python installed on the host instead of embedded python obtained via vcpkg because embedded python lacks pip, which we need to obtain numpy
- on Windows add MSYS2 to the PATH so that bazel tools can access MSYS2 GIT
- add support for custom CA certificates when using HTTPS_PROXY
* fix execute process macro
The existing implementation totally screwed up commands if the command's arguments contained semicolons (this is the case, e.g., in the FindPython modules of the cmake distribution).
* extend overriden execute_process to more than one COMMAND as there actually are use cases for this
* added another patch required for tensorflow v2.3, fixed path and working directory
* Revert "incorporate changes from microsoft:master"
* Revert "Revert "incorporate changes from microsoft:master""
* final fixes for static build + improving out messages
* enabling linux and osx in CI to see if it works now
* simplified code, fixed version numbers, fixed generated include cmake file
* fix failing postbuild check on handcrafted empty dummy library by spreading the last real libraries contents over the required number of libraries
* remove dead code commit by mistake again
* improvements from code review
* cleaner fix for debug code
* find pip3 in PATH (PYTHON3_DIR apparently not valid for pip3)
* fix error in python helper script
* fix wrong libname in postbuild script
* fix python detection + switch to python on msys2 (instead of embedded python) for Windows as we need numpy
* fix order of arguments
* fix command (it may contain spaces such as C:\Program Files\...)
* revert last commit (root cause for CI failures is something different: there are line breaks in path)
* fix regex comparision
(value needs to be escaped as it may contains regex special characters such as brackets, eg C:/Program Files (x86)/...)
* fix linebreaks in generated file
* fix CRT linkage
(macOS doesn't support static CRT linkage; it's set to dynamic even static target triplets for macOS and linux)
* refactor implemenation to avoid as much code duplication as possible -- algorithmically identical
* fix version numbers in helper scripts
* enable work-around for Windows until bazel fix is available
* install missing python3-pip on linux
* fix linux build by patching
* apply timeout feature now available via merged master branch
* correct linux build patch
* improve debug build patches
(no functional difference because LOG(FATAL, ...) macro internally anyway calls abort(), which the compiler doesn't detect in debug mode...
* improve linux patch
* temporarily add debug to inspect what's going on on macOS CI
* remove temporary debug code and fix static linking scripts for linux and macOS
* fix regex escaping
* fix ambiguous match while grepping for the framework link command
* extend fix of ambiguous match while grepping for the framework link command
* fix what merge of master broke
* fix more what got broken by merging master
(all packages and their dependencies are now maintained manually instead of using pacman...)
* remove "unofficial" from filename
* added switch do distinct classic and manifest mode when generating config.cmake file
* create symlinks for libraries without version number
* fix linux postbuild script
* temporarily disable code making problems
* add note for linking on Linux and macOS
* forget to add README file in previous commit
* add file forgotton in macro fixing patch
* fix python library path
* fix macOS static link command
* update linkage instructions in README
* Update ports/tensorflow-cc/CONTROL
* Update ports/tensorflow-cc/portfile.cmake
* Update scripts/ci.baseline.txt
* use vcpkg_execute_required_process
* pass C_FLAGS and CXX_FLAGS to bazel
* fix INTERFACE_INCLUDE_DIRECTORIES
* fix optional c/cxx arguments
* also add linker opts
* update README
* merge static libs into one
to support force_load (cannot force_load both due to duplicate symbols)
* update README
* quote python path (it might contain spaces that don't get escaped inside outer quotes of bash command)
* fix python path also for static build
* add arm(64) as currently unsupported arch
* bazel 3.7 is available -> remove workaround
* update README, remove necessary c-ares from deps
* update msys package
* add uwp specific options, and minor general improvements
* fix string replace
* fix control file and windows path separator
* revert backslashes-fix -- the root cause was missing .exe extension
* upgrade to tf 2.3.1
* fix hard-coded version
* remove uwp work-in-progress code so that PR can be merged
* add [tensorflow] C API port
* missing in previous commit
* fix include file
* remove unnecessary suffix
* update README and print out usage info in portfile
* Update ports/tensorflow-cc/CONTROL
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* Update ports/tensorflow/portfile.cmake
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* follow-up to code review
* fix suffix parameter
* fix quoting
* extend linux patch
* another try to fix quoting of possibly empty string parameter
* different approach to fix empty string arguments
* update list of headers for tensorflow 2.3.1 (was still 2.3.0)
* Update ports/tensorflow/CONTROL
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* move common stuff into tensorflow-common as discussed in review
* Apply suggestions from code review
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
Co-authored-by: Gehweiler <Joachim_Gehweiler@McAfee.com>
Co-authored-by: wangli28 <wangli28@beyondsoft.com>
Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>
Co-authored-by: Joachim Gehweiler <joachim@Joachims-iMac.local>
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
2020-11-26 03:18:44 +08:00
endif ( )
vcpkg_from_github (
O U T _ S O U R C E _ P A T H S O U R C E _ P A T H
R E P O t e n s o r f l o w / t e n s o r f l o w
R E F " v $ { T F _ V E R S I O N } "
[tensorflow] upgrade to 2.4.1 (#16364)
* fix build issues occurring from default bazel config being used because customized bazel config is stored in wrong directory
* [tensorflow-cc] Update CONTROL and ci.baseline.txt
* fix also applies to windows static build
* fix debug and static builds as well as library naming for non-linux
- add patch to fix debug builds
- add patch to fix exports for static linking
- really build debug (instead of cloning release)
- override bazel build options for debug (work around bazel bug)
- bazel doesn't support static libraries: work around by building dynamic library and constructing static linkage commands from build log
- Windows .pdb file can't be >4GB even on x64: work around using reduced debug information
- Windows doesn't support .lib files >4GB even on x64, so split into multiple libs
- vcpkg requires equal amount of libs for debug and release: work around using handcrafted empty dummy libs
- fix naming of libs (.dll on Windows and .dylib on macOS)
* upgrade tensorflow from v1.14 to v2.3
- adapt patch files to tensorflow code changes
- update bazel from v0.25.2 to v3.1
- on Windows use python installed on the host instead of embedded python obtained via vcpkg because embedded python lacks pip, which we need to obtain numpy
- on Windows add MSYS2 to the PATH so that bazel tools can access MSYS2 GIT
- add support for custom CA certificates when using HTTPS_PROXY
* fix execute process macro
The existing implementation totally screwed up commands if the command's arguments contained semicolons (this is the case, e.g., in the FindPython modules of the cmake distribution).
* extend overriden execute_process to more than one COMMAND as there actually are use cases for this
* added another patch required for tensorflow v2.3, fixed path and working directory
* Revert "incorporate changes from microsoft:master"
* Revert "Revert "incorporate changes from microsoft:master""
* final fixes for static build + improving out messages
* enabling linux and osx in CI to see if it works now
* simplified code, fixed version numbers, fixed generated include cmake file
* fix failing postbuild check on handcrafted empty dummy library by spreading the last real libraries contents over the required number of libraries
* remove dead code commit by mistake again
* improvements from code review
* cleaner fix for debug code
* find pip3 in PATH (PYTHON3_DIR apparently not valid for pip3)
* fix error in python helper script
* fix wrong libname in postbuild script
* fix python detection + switch to python on msys2 (instead of embedded python) for Windows as we need numpy
* fix order of arguments
* fix command (it may contain spaces such as C:\Program Files\...)
* revert last commit (root cause for CI failures is something different: there are line breaks in path)
* fix regex comparision
(value needs to be escaped as it may contains regex special characters such as brackets, eg C:/Program Files (x86)/...)
* fix linebreaks in generated file
* fix CRT linkage
(macOS doesn't support static CRT linkage; it's set to dynamic even static target triplets for macOS and linux)
* refactor implemenation to avoid as much code duplication as possible -- algorithmically identical
* fix version numbers in helper scripts
* enable work-around for Windows until bazel fix is available
* install missing python3-pip on linux
* fix linux build by patching
* apply timeout feature now available via merged master branch
* correct linux build patch
* improve debug build patches
(no functional difference because LOG(FATAL, ...) macro internally anyway calls abort(), which the compiler doesn't detect in debug mode...
* improve linux patch
* temporarily add debug to inspect what's going on on macOS CI
* remove temporary debug code and fix static linking scripts for linux and macOS
* fix regex escaping
* fix ambiguous match while grepping for the framework link command
* extend fix of ambiguous match while grepping for the framework link command
* fix what merge of master broke
* fix more what got broken by merging master
(all packages and their dependencies are now maintained manually instead of using pacman...)
* remove "unofficial" from filename
* added switch do distinct classic and manifest mode when generating config.cmake file
* create symlinks for libraries without version number
* fix linux postbuild script
* temporarily disable code making problems
* add note for linking on Linux and macOS
* forget to add README file in previous commit
* add file forgotton in macro fixing patch
* fix python library path
* fix macOS static link command
* update linkage instructions in README
* Update ports/tensorflow-cc/CONTROL
* Update ports/tensorflow-cc/portfile.cmake
* Update scripts/ci.baseline.txt
* use vcpkg_execute_required_process
* pass C_FLAGS and CXX_FLAGS to bazel
* fix INTERFACE_INCLUDE_DIRECTORIES
* fix optional c/cxx arguments
* also add linker opts
* update README
* merge static libs into one
to support force_load (cannot force_load both due to duplicate symbols)
* update README
* quote python path (it might contain spaces that don't get escaped inside outer quotes of bash command)
* fix python path also for static build
* add arm(64) as currently unsupported arch
* bazel 3.7 is available -> remove workaround
* update README, remove necessary c-ares from deps
* update msys package
* add uwp specific options, and minor general improvements
* fix string replace
* fix control file and windows path separator
* revert backslashes-fix -- the root cause was missing .exe extension
* upgrade to tf 2.3.1
* fix hard-coded version
* remove uwp work-in-progress code so that PR can be merged
* add [tensorflow] C API port
* missing in previous commit
* fix include file
* remove unnecessary suffix
* update README and print out usage info in portfile
* add UWP patches
* fix uwp patch file
* fix patch again
* fix patch again
* fix patch again
* move options from command line to .bazelrc
* fix include paths
* work around bazel restriction "The include path 'D:/buildtrees/tensorflow-cc/tools_clone' references a path outside of the execution root."
* go for a completely different approach: force-include uwppatch.h
* fix include path again
* choose different include location, which is available in bazel build tree
* fix compile errors
* update header (getenv redefinition)
* next try to get patched headers to work
* another try to fix include paths
* update patched header, bazel has its own naming for target triplet
* yet another try to fix patched include path
* next try to fix includes: patch bazel deps where required
* fix patch
* Update ports/tensorflow-cc/CONTROL
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* Update ports/tensorflow/portfile.cmake
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* follow-up to code review
* extend patch (further build deps)
* fix suffix parameter
* add more build deps
* fix quoting
* extend linux patch
* fix patch
* extend patch again
* yet another deps fix
* another try to fix quoting of possibly empty string parameter
* add another deps patch
* extend patch again
* different approach to fix empty string arguments
* fix portfiles, add more bazel deps
* update list of headers for tensorflow 2.3.1 (was still 2.3.0)
* update list of headers for v2.3.1
* extend bazel deps path again
* Update ports/tensorflow/CONTROL
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* fix bazel deps, bump port version
* add more bazel deps
* move common stuff into tensorflow-common as discussed in review
* go for a different approach (patch bazel toolchain) as adding bazel deps is a never-ending story...
* Apply suggestions from code review
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
* yet again a completely different approach to fix the include path
* fix path
* fix path again
* merge changes from C port
* fix cmake variable replacement (apparently @ cannot be escaped...)
* try again without escaping
* use absolute path
* fix escaping
* calculate absolute path
* fix replacement in configure_file
* handle directory exists error
* convert cygpath to windows path
* overcome backslash / escaping issues
* try include with build-root-relative path
* apply work-around until proper solution is available
* merge master
* resolved conflicts
* Revert "merge master"
This reverts commit f0804f184d107c68c6146e8f17afc33a2a8318fc.
* add uwp files to copy list
* update uwppatch.h
* fix typo
* patch the patch for UWP case
* fix patch (missing spaces)
* fix build error in AWS SDK prerequisit
* fix more compilation errors
* replace previous patch with more targeted patch
* add escaped quotes around Windows path with spaces
* cleanup
* merge patch (there can only be one patch file per external)
* add messages to user
* update versions files
* update tensorflow to 2.4.1
* port 0 seems to cause errors => remove port field
* remove patches that made it into tensorflow, correct line numbers in remaining patches
* fix patch line numbers, add copy rules for new header files
* fix patch line numbers
* fix versions for x86
* add more Windows and Linux specific patches
* add more Windows and Linux patches
* fix UWP patches
* fix x86 target
* remove UWP specific fixes from this branch as UWP PR doesn't get merged
* fix version shas
* Apply suggestions from code review
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* fix version hash again
* try an easier fix after discussion upstream
* fix hashes
Co-authored-by: Gehweiler <Joachim_Gehweiler@McAfee.com>
Co-authored-by: wangli28 <wangli28@beyondsoft.com>
Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>
Co-authored-by: Joachim Gehweiler <joachim@Joachims-iMac.local>
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
2021-03-27 05:55:50 +08:00
S H A 5 1 2 b e 8 2 7 3 f 4 6 4 c 1 c 1 c 3 9 2 f 3 a b 0 1 9 0 d b b a 3 6 d 5 6 a 0 e d c c 7 9 9 1 c 1 a 8 6 f 1 6 6 0 4 c 8 5 9 0 5 6 d 3 1 8 8 7 3 7 d 1 1 c 3 b 4 1 e c 7 9 1 8 e 1 c f 4 6 d 1 3 8 1 4 c 5 0 c 0 0 b e 8 f 4 5 9 d d e 9 f 0 f b 6 1 8 7 4 0 e e 3 c
[tensorflow] Add C port (#14392)
* fix build issues occurring from default bazel config being used because customized bazel config is stored in wrong directory
* [tensorflow-cc] Update CONTROL and ci.baseline.txt
* fix also applies to windows static build
* fix debug and static builds as well as library naming for non-linux
- add patch to fix debug builds
- add patch to fix exports for static linking
- really build debug (instead of cloning release)
- override bazel build options for debug (work around bazel bug)
- bazel doesn't support static libraries: work around by building dynamic library and constructing static linkage commands from build log
- Windows .pdb file can't be >4GB even on x64: work around using reduced debug information
- Windows doesn't support .lib files >4GB even on x64, so split into multiple libs
- vcpkg requires equal amount of libs for debug and release: work around using handcrafted empty dummy libs
- fix naming of libs (.dll on Windows and .dylib on macOS)
* upgrade tensorflow from v1.14 to v2.3
- adapt patch files to tensorflow code changes
- update bazel from v0.25.2 to v3.1
- on Windows use python installed on the host instead of embedded python obtained via vcpkg because embedded python lacks pip, which we need to obtain numpy
- on Windows add MSYS2 to the PATH so that bazel tools can access MSYS2 GIT
- add support for custom CA certificates when using HTTPS_PROXY
* fix execute process macro
The existing implementation totally screwed up commands if the command's arguments contained semicolons (this is the case, e.g., in the FindPython modules of the cmake distribution).
* extend overriden execute_process to more than one COMMAND as there actually are use cases for this
* added another patch required for tensorflow v2.3, fixed path and working directory
* Revert "incorporate changes from microsoft:master"
* Revert "Revert "incorporate changes from microsoft:master""
* final fixes for static build + improving out messages
* enabling linux and osx in CI to see if it works now
* simplified code, fixed version numbers, fixed generated include cmake file
* fix failing postbuild check on handcrafted empty dummy library by spreading the last real libraries contents over the required number of libraries
* remove dead code commit by mistake again
* improvements from code review
* cleaner fix for debug code
* find pip3 in PATH (PYTHON3_DIR apparently not valid for pip3)
* fix error in python helper script
* fix wrong libname in postbuild script
* fix python detection + switch to python on msys2 (instead of embedded python) for Windows as we need numpy
* fix order of arguments
* fix command (it may contain spaces such as C:\Program Files\...)
* revert last commit (root cause for CI failures is something different: there are line breaks in path)
* fix regex comparision
(value needs to be escaped as it may contains regex special characters such as brackets, eg C:/Program Files (x86)/...)
* fix linebreaks in generated file
* fix CRT linkage
(macOS doesn't support static CRT linkage; it's set to dynamic even static target triplets for macOS and linux)
* refactor implemenation to avoid as much code duplication as possible -- algorithmically identical
* fix version numbers in helper scripts
* enable work-around for Windows until bazel fix is available
* install missing python3-pip on linux
* fix linux build by patching
* apply timeout feature now available via merged master branch
* correct linux build patch
* improve debug build patches
(no functional difference because LOG(FATAL, ...) macro internally anyway calls abort(), which the compiler doesn't detect in debug mode...
* improve linux patch
* temporarily add debug to inspect what's going on on macOS CI
* remove temporary debug code and fix static linking scripts for linux and macOS
* fix regex escaping
* fix ambiguous match while grepping for the framework link command
* extend fix of ambiguous match while grepping for the framework link command
* fix what merge of master broke
* fix more what got broken by merging master
(all packages and their dependencies are now maintained manually instead of using pacman...)
* remove "unofficial" from filename
* added switch do distinct classic and manifest mode when generating config.cmake file
* create symlinks for libraries without version number
* fix linux postbuild script
* temporarily disable code making problems
* add note for linking on Linux and macOS
* forget to add README file in previous commit
* add file forgotton in macro fixing patch
* fix python library path
* fix macOS static link command
* update linkage instructions in README
* Update ports/tensorflow-cc/CONTROL
* Update ports/tensorflow-cc/portfile.cmake
* Update scripts/ci.baseline.txt
* use vcpkg_execute_required_process
* pass C_FLAGS and CXX_FLAGS to bazel
* fix INTERFACE_INCLUDE_DIRECTORIES
* fix optional c/cxx arguments
* also add linker opts
* update README
* merge static libs into one
to support force_load (cannot force_load both due to duplicate symbols)
* update README
* quote python path (it might contain spaces that don't get escaped inside outer quotes of bash command)
* fix python path also for static build
* add arm(64) as currently unsupported arch
* bazel 3.7 is available -> remove workaround
* update README, remove necessary c-ares from deps
* update msys package
* add uwp specific options, and minor general improvements
* fix string replace
* fix control file and windows path separator
* revert backslashes-fix -- the root cause was missing .exe extension
* upgrade to tf 2.3.1
* fix hard-coded version
* remove uwp work-in-progress code so that PR can be merged
* add [tensorflow] C API port
* missing in previous commit
* fix include file
* remove unnecessary suffix
* update README and print out usage info in portfile
* Update ports/tensorflow-cc/CONTROL
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* Update ports/tensorflow/portfile.cmake
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* follow-up to code review
* fix suffix parameter
* fix quoting
* extend linux patch
* another try to fix quoting of possibly empty string parameter
* different approach to fix empty string arguments
* update list of headers for tensorflow 2.3.1 (was still 2.3.0)
* Update ports/tensorflow/CONTROL
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* move common stuff into tensorflow-common as discussed in review
* Apply suggestions from code review
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
Co-authored-by: Gehweiler <Joachim_Gehweiler@McAfee.com>
Co-authored-by: wangli28 <wangli28@beyondsoft.com>
Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>
Co-authored-by: Joachim Gehweiler <joachim@Joachims-iMac.local>
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
2020-11-26 03:18:44 +08:00
H E A D _ R E F m a s t e r
P A T C H E S
2021-01-11 06:31:30 +08:00
" $ { C M A K E _ C U R R E N T _ L I S T _ D I R } / f i x - b u i l d - e r r o r . p a t c h " # Fix namespace error
[tensorflow] Add C port (#14392)
* fix build issues occurring from default bazel config being used because customized bazel config is stored in wrong directory
* [tensorflow-cc] Update CONTROL and ci.baseline.txt
* fix also applies to windows static build
* fix debug and static builds as well as library naming for non-linux
- add patch to fix debug builds
- add patch to fix exports for static linking
- really build debug (instead of cloning release)
- override bazel build options for debug (work around bazel bug)
- bazel doesn't support static libraries: work around by building dynamic library and constructing static linkage commands from build log
- Windows .pdb file can't be >4GB even on x64: work around using reduced debug information
- Windows doesn't support .lib files >4GB even on x64, so split into multiple libs
- vcpkg requires equal amount of libs for debug and release: work around using handcrafted empty dummy libs
- fix naming of libs (.dll on Windows and .dylib on macOS)
* upgrade tensorflow from v1.14 to v2.3
- adapt patch files to tensorflow code changes
- update bazel from v0.25.2 to v3.1
- on Windows use python installed on the host instead of embedded python obtained via vcpkg because embedded python lacks pip, which we need to obtain numpy
- on Windows add MSYS2 to the PATH so that bazel tools can access MSYS2 GIT
- add support for custom CA certificates when using HTTPS_PROXY
* fix execute process macro
The existing implementation totally screwed up commands if the command's arguments contained semicolons (this is the case, e.g., in the FindPython modules of the cmake distribution).
* extend overriden execute_process to more than one COMMAND as there actually are use cases for this
* added another patch required for tensorflow v2.3, fixed path and working directory
* Revert "incorporate changes from microsoft:master"
* Revert "Revert "incorporate changes from microsoft:master""
* final fixes for static build + improving out messages
* enabling linux and osx in CI to see if it works now
* simplified code, fixed version numbers, fixed generated include cmake file
* fix failing postbuild check on handcrafted empty dummy library by spreading the last real libraries contents over the required number of libraries
* remove dead code commit by mistake again
* improvements from code review
* cleaner fix for debug code
* find pip3 in PATH (PYTHON3_DIR apparently not valid for pip3)
* fix error in python helper script
* fix wrong libname in postbuild script
* fix python detection + switch to python on msys2 (instead of embedded python) for Windows as we need numpy
* fix order of arguments
* fix command (it may contain spaces such as C:\Program Files\...)
* revert last commit (root cause for CI failures is something different: there are line breaks in path)
* fix regex comparision
(value needs to be escaped as it may contains regex special characters such as brackets, eg C:/Program Files (x86)/...)
* fix linebreaks in generated file
* fix CRT linkage
(macOS doesn't support static CRT linkage; it's set to dynamic even static target triplets for macOS and linux)
* refactor implemenation to avoid as much code duplication as possible -- algorithmically identical
* fix version numbers in helper scripts
* enable work-around for Windows until bazel fix is available
* install missing python3-pip on linux
* fix linux build by patching
* apply timeout feature now available via merged master branch
* correct linux build patch
* improve debug build patches
(no functional difference because LOG(FATAL, ...) macro internally anyway calls abort(), which the compiler doesn't detect in debug mode...
* improve linux patch
* temporarily add debug to inspect what's going on on macOS CI
* remove temporary debug code and fix static linking scripts for linux and macOS
* fix regex escaping
* fix ambiguous match while grepping for the framework link command
* extend fix of ambiguous match while grepping for the framework link command
* fix what merge of master broke
* fix more what got broken by merging master
(all packages and their dependencies are now maintained manually instead of using pacman...)
* remove "unofficial" from filename
* added switch do distinct classic and manifest mode when generating config.cmake file
* create symlinks for libraries without version number
* fix linux postbuild script
* temporarily disable code making problems
* add note for linking on Linux and macOS
* forget to add README file in previous commit
* add file forgotton in macro fixing patch
* fix python library path
* fix macOS static link command
* update linkage instructions in README
* Update ports/tensorflow-cc/CONTROL
* Update ports/tensorflow-cc/portfile.cmake
* Update scripts/ci.baseline.txt
* use vcpkg_execute_required_process
* pass C_FLAGS and CXX_FLAGS to bazel
* fix INTERFACE_INCLUDE_DIRECTORIES
* fix optional c/cxx arguments
* also add linker opts
* update README
* merge static libs into one
to support force_load (cannot force_load both due to duplicate symbols)
* update README
* quote python path (it might contain spaces that don't get escaped inside outer quotes of bash command)
* fix python path also for static build
* add arm(64) as currently unsupported arch
* bazel 3.7 is available -> remove workaround
* update README, remove necessary c-ares from deps
* update msys package
* add uwp specific options, and minor general improvements
* fix string replace
* fix control file and windows path separator
* revert backslashes-fix -- the root cause was missing .exe extension
* upgrade to tf 2.3.1
* fix hard-coded version
* remove uwp work-in-progress code so that PR can be merged
* add [tensorflow] C API port
* missing in previous commit
* fix include file
* remove unnecessary suffix
* update README and print out usage info in portfile
* Update ports/tensorflow-cc/CONTROL
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* Update ports/tensorflow/portfile.cmake
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* follow-up to code review
* fix suffix parameter
* fix quoting
* extend linux patch
* another try to fix quoting of possibly empty string parameter
* different approach to fix empty string arguments
* update list of headers for tensorflow 2.3.1 (was still 2.3.0)
* Update ports/tensorflow/CONTROL
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* move common stuff into tensorflow-common as discussed in review
* Apply suggestions from code review
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
Co-authored-by: Gehweiler <Joachim_Gehweiler@McAfee.com>
Co-authored-by: wangli28 <wangli28@beyondsoft.com>
Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>
Co-authored-by: Joachim Gehweiler <joachim@Joachims-iMac.local>
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
2020-11-26 03:18:44 +08:00
$ { S T A T I C _ O N L Y _ P A T C H E S }
[tensorflow] upgrade to 2.4.1 (#16364)
* fix build issues occurring from default bazel config being used because customized bazel config is stored in wrong directory
* [tensorflow-cc] Update CONTROL and ci.baseline.txt
* fix also applies to windows static build
* fix debug and static builds as well as library naming for non-linux
- add patch to fix debug builds
- add patch to fix exports for static linking
- really build debug (instead of cloning release)
- override bazel build options for debug (work around bazel bug)
- bazel doesn't support static libraries: work around by building dynamic library and constructing static linkage commands from build log
- Windows .pdb file can't be >4GB even on x64: work around using reduced debug information
- Windows doesn't support .lib files >4GB even on x64, so split into multiple libs
- vcpkg requires equal amount of libs for debug and release: work around using handcrafted empty dummy libs
- fix naming of libs (.dll on Windows and .dylib on macOS)
* upgrade tensorflow from v1.14 to v2.3
- adapt patch files to tensorflow code changes
- update bazel from v0.25.2 to v3.1
- on Windows use python installed on the host instead of embedded python obtained via vcpkg because embedded python lacks pip, which we need to obtain numpy
- on Windows add MSYS2 to the PATH so that bazel tools can access MSYS2 GIT
- add support for custom CA certificates when using HTTPS_PROXY
* fix execute process macro
The existing implementation totally screwed up commands if the command's arguments contained semicolons (this is the case, e.g., in the FindPython modules of the cmake distribution).
* extend overriden execute_process to more than one COMMAND as there actually are use cases for this
* added another patch required for tensorflow v2.3, fixed path and working directory
* Revert "incorporate changes from microsoft:master"
* Revert "Revert "incorporate changes from microsoft:master""
* final fixes for static build + improving out messages
* enabling linux and osx in CI to see if it works now
* simplified code, fixed version numbers, fixed generated include cmake file
* fix failing postbuild check on handcrafted empty dummy library by spreading the last real libraries contents over the required number of libraries
* remove dead code commit by mistake again
* improvements from code review
* cleaner fix for debug code
* find pip3 in PATH (PYTHON3_DIR apparently not valid for pip3)
* fix error in python helper script
* fix wrong libname in postbuild script
* fix python detection + switch to python on msys2 (instead of embedded python) for Windows as we need numpy
* fix order of arguments
* fix command (it may contain spaces such as C:\Program Files\...)
* revert last commit (root cause for CI failures is something different: there are line breaks in path)
* fix regex comparision
(value needs to be escaped as it may contains regex special characters such as brackets, eg C:/Program Files (x86)/...)
* fix linebreaks in generated file
* fix CRT linkage
(macOS doesn't support static CRT linkage; it's set to dynamic even static target triplets for macOS and linux)
* refactor implemenation to avoid as much code duplication as possible -- algorithmically identical
* fix version numbers in helper scripts
* enable work-around for Windows until bazel fix is available
* install missing python3-pip on linux
* fix linux build by patching
* apply timeout feature now available via merged master branch
* correct linux build patch
* improve debug build patches
(no functional difference because LOG(FATAL, ...) macro internally anyway calls abort(), which the compiler doesn't detect in debug mode...
* improve linux patch
* temporarily add debug to inspect what's going on on macOS CI
* remove temporary debug code and fix static linking scripts for linux and macOS
* fix regex escaping
* fix ambiguous match while grepping for the framework link command
* extend fix of ambiguous match while grepping for the framework link command
* fix what merge of master broke
* fix more what got broken by merging master
(all packages and their dependencies are now maintained manually instead of using pacman...)
* remove "unofficial" from filename
* added switch do distinct classic and manifest mode when generating config.cmake file
* create symlinks for libraries without version number
* fix linux postbuild script
* temporarily disable code making problems
* add note for linking on Linux and macOS
* forget to add README file in previous commit
* add file forgotton in macro fixing patch
* fix python library path
* fix macOS static link command
* update linkage instructions in README
* Update ports/tensorflow-cc/CONTROL
* Update ports/tensorflow-cc/portfile.cmake
* Update scripts/ci.baseline.txt
* use vcpkg_execute_required_process
* pass C_FLAGS and CXX_FLAGS to bazel
* fix INTERFACE_INCLUDE_DIRECTORIES
* fix optional c/cxx arguments
* also add linker opts
* update README
* merge static libs into one
to support force_load (cannot force_load both due to duplicate symbols)
* update README
* quote python path (it might contain spaces that don't get escaped inside outer quotes of bash command)
* fix python path also for static build
* add arm(64) as currently unsupported arch
* bazel 3.7 is available -> remove workaround
* update README, remove necessary c-ares from deps
* update msys package
* add uwp specific options, and minor general improvements
* fix string replace
* fix control file and windows path separator
* revert backslashes-fix -- the root cause was missing .exe extension
* upgrade to tf 2.3.1
* fix hard-coded version
* remove uwp work-in-progress code so that PR can be merged
* add [tensorflow] C API port
* missing in previous commit
* fix include file
* remove unnecessary suffix
* update README and print out usage info in portfile
* add UWP patches
* fix uwp patch file
* fix patch again
* fix patch again
* fix patch again
* move options from command line to .bazelrc
* fix include paths
* work around bazel restriction "The include path 'D:/buildtrees/tensorflow-cc/tools_clone' references a path outside of the execution root."
* go for a completely different approach: force-include uwppatch.h
* fix include path again
* choose different include location, which is available in bazel build tree
* fix compile errors
* update header (getenv redefinition)
* next try to get patched headers to work
* another try to fix include paths
* update patched header, bazel has its own naming for target triplet
* yet another try to fix patched include path
* next try to fix includes: patch bazel deps where required
* fix patch
* Update ports/tensorflow-cc/CONTROL
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* Update ports/tensorflow/portfile.cmake
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* follow-up to code review
* extend patch (further build deps)
* fix suffix parameter
* add more build deps
* fix quoting
* extend linux patch
* fix patch
* extend patch again
* yet another deps fix
* another try to fix quoting of possibly empty string parameter
* add another deps patch
* extend patch again
* different approach to fix empty string arguments
* fix portfiles, add more bazel deps
* update list of headers for tensorflow 2.3.1 (was still 2.3.0)
* update list of headers for v2.3.1
* extend bazel deps path again
* Update ports/tensorflow/CONTROL
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* fix bazel deps, bump port version
* add more bazel deps
* move common stuff into tensorflow-common as discussed in review
* go for a different approach (patch bazel toolchain) as adding bazel deps is a never-ending story...
* Apply suggestions from code review
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
* yet again a completely different approach to fix the include path
* fix path
* fix path again
* merge changes from C port
* fix cmake variable replacement (apparently @ cannot be escaped...)
* try again without escaping
* use absolute path
* fix escaping
* calculate absolute path
* fix replacement in configure_file
* handle directory exists error
* convert cygpath to windows path
* overcome backslash / escaping issues
* try include with build-root-relative path
* apply work-around until proper solution is available
* merge master
* resolved conflicts
* Revert "merge master"
This reverts commit f0804f184d107c68c6146e8f17afc33a2a8318fc.
* add uwp files to copy list
* update uwppatch.h
* fix typo
* patch the patch for UWP case
* fix patch (missing spaces)
* fix build error in AWS SDK prerequisit
* fix more compilation errors
* replace previous patch with more targeted patch
* add escaped quotes around Windows path with spaces
* cleanup
* merge patch (there can only be one patch file per external)
* add messages to user
* update versions files
* update tensorflow to 2.4.1
* port 0 seems to cause errors => remove port field
* remove patches that made it into tensorflow, correct line numbers in remaining patches
* fix patch line numbers, add copy rules for new header files
* fix patch line numbers
* fix versions for x86
* add more Windows and Linux specific patches
* add more Windows and Linux patches
* fix UWP patches
* fix x86 target
* remove UWP specific fixes from this branch as UWP PR doesn't get merged
* fix version shas
* Apply suggestions from code review
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* fix version hash again
* try an easier fix after discussion upstream
* fix hashes
Co-authored-by: Gehweiler <Joachim_Gehweiler@McAfee.com>
Co-authored-by: wangli28 <wangli28@beyondsoft.com>
Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>
Co-authored-by: Joachim Gehweiler <joachim@Joachims-iMac.local>
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
2021-03-27 05:55:50 +08:00
$ { W I N D O W S _ O N L Y _ P A T C H E S }
[tensorflow] Add C port (#14392)
* fix build issues occurring from default bazel config being used because customized bazel config is stored in wrong directory
* [tensorflow-cc] Update CONTROL and ci.baseline.txt
* fix also applies to windows static build
* fix debug and static builds as well as library naming for non-linux
- add patch to fix debug builds
- add patch to fix exports for static linking
- really build debug (instead of cloning release)
- override bazel build options for debug (work around bazel bug)
- bazel doesn't support static libraries: work around by building dynamic library and constructing static linkage commands from build log
- Windows .pdb file can't be >4GB even on x64: work around using reduced debug information
- Windows doesn't support .lib files >4GB even on x64, so split into multiple libs
- vcpkg requires equal amount of libs for debug and release: work around using handcrafted empty dummy libs
- fix naming of libs (.dll on Windows and .dylib on macOS)
* upgrade tensorflow from v1.14 to v2.3
- adapt patch files to tensorflow code changes
- update bazel from v0.25.2 to v3.1
- on Windows use python installed on the host instead of embedded python obtained via vcpkg because embedded python lacks pip, which we need to obtain numpy
- on Windows add MSYS2 to the PATH so that bazel tools can access MSYS2 GIT
- add support for custom CA certificates when using HTTPS_PROXY
* fix execute process macro
The existing implementation totally screwed up commands if the command's arguments contained semicolons (this is the case, e.g., in the FindPython modules of the cmake distribution).
* extend overriden execute_process to more than one COMMAND as there actually are use cases for this
* added another patch required for tensorflow v2.3, fixed path and working directory
* Revert "incorporate changes from microsoft:master"
* Revert "Revert "incorporate changes from microsoft:master""
* final fixes for static build + improving out messages
* enabling linux and osx in CI to see if it works now
* simplified code, fixed version numbers, fixed generated include cmake file
* fix failing postbuild check on handcrafted empty dummy library by spreading the last real libraries contents over the required number of libraries
* remove dead code commit by mistake again
* improvements from code review
* cleaner fix for debug code
* find pip3 in PATH (PYTHON3_DIR apparently not valid for pip3)
* fix error in python helper script
* fix wrong libname in postbuild script
* fix python detection + switch to python on msys2 (instead of embedded python) for Windows as we need numpy
* fix order of arguments
* fix command (it may contain spaces such as C:\Program Files\...)
* revert last commit (root cause for CI failures is something different: there are line breaks in path)
* fix regex comparision
(value needs to be escaped as it may contains regex special characters such as brackets, eg C:/Program Files (x86)/...)
* fix linebreaks in generated file
* fix CRT linkage
(macOS doesn't support static CRT linkage; it's set to dynamic even static target triplets for macOS and linux)
* refactor implemenation to avoid as much code duplication as possible -- algorithmically identical
* fix version numbers in helper scripts
* enable work-around for Windows until bazel fix is available
* install missing python3-pip on linux
* fix linux build by patching
* apply timeout feature now available via merged master branch
* correct linux build patch
* improve debug build patches
(no functional difference because LOG(FATAL, ...) macro internally anyway calls abort(), which the compiler doesn't detect in debug mode...
* improve linux patch
* temporarily add debug to inspect what's going on on macOS CI
* remove temporary debug code and fix static linking scripts for linux and macOS
* fix regex escaping
* fix ambiguous match while grepping for the framework link command
* extend fix of ambiguous match while grepping for the framework link command
* fix what merge of master broke
* fix more what got broken by merging master
(all packages and their dependencies are now maintained manually instead of using pacman...)
* remove "unofficial" from filename
* added switch do distinct classic and manifest mode when generating config.cmake file
* create symlinks for libraries without version number
* fix linux postbuild script
* temporarily disable code making problems
* add note for linking on Linux and macOS
* forget to add README file in previous commit
* add file forgotton in macro fixing patch
* fix python library path
* fix macOS static link command
* update linkage instructions in README
* Update ports/tensorflow-cc/CONTROL
* Update ports/tensorflow-cc/portfile.cmake
* Update scripts/ci.baseline.txt
* use vcpkg_execute_required_process
* pass C_FLAGS and CXX_FLAGS to bazel
* fix INTERFACE_INCLUDE_DIRECTORIES
* fix optional c/cxx arguments
* also add linker opts
* update README
* merge static libs into one
to support force_load (cannot force_load both due to duplicate symbols)
* update README
* quote python path (it might contain spaces that don't get escaped inside outer quotes of bash command)
* fix python path also for static build
* add arm(64) as currently unsupported arch
* bazel 3.7 is available -> remove workaround
* update README, remove necessary c-ares from deps
* update msys package
* add uwp specific options, and minor general improvements
* fix string replace
* fix control file and windows path separator
* revert backslashes-fix -- the root cause was missing .exe extension
* upgrade to tf 2.3.1
* fix hard-coded version
* remove uwp work-in-progress code so that PR can be merged
* add [tensorflow] C API port
* missing in previous commit
* fix include file
* remove unnecessary suffix
* update README and print out usage info in portfile
* Update ports/tensorflow-cc/CONTROL
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* Update ports/tensorflow/portfile.cmake
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* follow-up to code review
* fix suffix parameter
* fix quoting
* extend linux patch
* another try to fix quoting of possibly empty string parameter
* different approach to fix empty string arguments
* update list of headers for tensorflow 2.3.1 (was still 2.3.0)
* Update ports/tensorflow/CONTROL
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* move common stuff into tensorflow-common as discussed in review
* Apply suggestions from code review
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
Co-authored-by: Gehweiler <Joachim_Gehweiler@McAfee.com>
Co-authored-by: wangli28 <wangli28@beyondsoft.com>
Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>
Co-authored-by: Joachim Gehweiler <joachim@Joachims-iMac.local>
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
2020-11-26 03:18:44 +08:00
$ { L I N U X _ O N L Y _ P A T C H E S }
)
message ( STATUS "Configuring TensorFlow (${BUILD_TYPE})" )
tensorflow_try_remove_recurse_wait ( ${ CURRENT_BUILDTREES_DIR } / ${ TARGET_TRIPLET } - ${ BUILD_TYPE } )
file ( RENAME ${ SOURCE_PATH } ${ CURRENT_BUILDTREES_DIR } / ${ TARGET_TRIPLET } - ${ BUILD_TYPE } )
set ( SOURCE_PATH "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${BUILD_TYPE}" )
vcpkg_execute_required_process (
C O M M A N D $ { P Y T H O N 3 } $ { S O U R C E _ P A T H } / c o n f i g u r e . p y - - w o r k s p a c e " $ { C U R R E N T _ B U I L D T R E E S _ D I R } / $ { T A R G E T _ T R I P L E T } - $ { B U I L D _ T Y P E } "
W O R K I N G _ D I R E C T O R Y $ { C U R R E N T _ B U I L D T R E E S _ D I R } / $ { T A R G E T _ T R I P L E T } - $ { B U I L D _ T Y P E }
L O G N A M E c o n f i g - $ { T A R G E T _ T R I P L E T } - $ { B U I L D _ T Y P E }
)
if ( DEFINED ENV{BAZEL_CUSTOM_CACERTS} )
file ( APPEND ${ CURRENT_BUILDTREES_DIR } / ${ TARGET_TRIPLET } - ${ BUILD_TYPE } /.bazelrc "startup --host_jvm_args=-Djavax.net.ssl.trustStore='$ENV{BAZEL_CUSTOM_CACERTS}'\n" )
message ( STATUS "Using custom CA certificate store at: $ENV{BAZEL_CUSTOM_CACERTS}" )
if ( DEFINED ENV{BAZEL_CUSTOM_CACERTS_PASSWORD} )
file ( APPEND ${ CURRENT_BUILDTREES_DIR } / ${ TARGET_TRIPLET } - ${ BUILD_TYPE } /.bazelrc "startup --host_jvm_args=-Djavax.net.ssl.trustStorePassword='$ENV{BAZEL_CUSTOM_CACERTS_PASSWORD}'\n" )
message ( STATUS "Using supplied custom CA certificate store password." )
endif ( )
else ( )
if ( DEFINED ENV{HTTPS_PROXY} )
message ( STATUS "You are using HTTPS_PROXY. In case you encounter bazel certificate errors, you might want to set: BAZEL_CUSTOM_CACERTS=/path/to/trust.store (and optionally BAZEL_CUSTOM_CACERTS_PASSWORD), and to enable vcpkg to actually use it: VCPKG_KEEP_ENV_VARS=BAZEL_CUSTOM_CACERTS;BAZEL_CUSTOM_CACERTS_PASSWORD" )
if ( CMAKE_HOST_WIN32 )
message ( STATUS "(For BAZEL_CUSTOM_CACERTS please use forward slashes instead of backslashes on Windows systems." )
endif ( )
endif ( )
endif ( )
message ( STATUS "Warning: Building TensorFlow can take an hour or more." )
set ( COPTS )
set ( CXXOPTS )
set ( LINKOPTS )
if ( VCPKG_TARGET_IS_WINDOWS )
set ( PLATFORM_COMMAND WINDOWS_COMMAND )
else ( )
set ( PLATFORM_COMMAND UNIX_COMMAND )
endif ( )
if ( BUILD_TYPE STREQUAL dbg )
if ( VCPKG_TARGET_IS_WINDOWS )
set ( BUILD_OPTS "--compilation_mode=dbg --features=fastbuild" ) # link with /DEBUG:FASTLINK instead of /DEBUG:FULL to avoid .pdb >4GB error
else ( )
set ( BUILD_OPTS "--compilation_mode=dbg" )
endif ( )
separate_arguments ( VCPKG_C_FLAGS ${ PLATFORM_COMMAND } ${ VCPKG_C_FLAGS } )
separate_arguments ( VCPKG_C_FLAGS_DEBUG ${ PLATFORM_COMMAND } ${ VCPKG_C_FLAGS_DEBUG } )
foreach ( OPT IN LISTS VCPKG_C_FLAGS VCPKG_C_FLAGS_DEBUG )
list ( APPEND COPTS "--copt='${OPT}'" )
endforeach ( )
separate_arguments ( VCPKG_CXX_FLAGS ${ PLATFORM_COMMAND } ${ VCPKG_CXX_FLAGS } )
separate_arguments ( VCPKG_CXX_FLAGS_DEBUG ${ PLATFORM_COMMAND } ${ VCPKG_CXX_FLAGS_DEBUG } )
foreach ( OPT IN LISTS VCPKG_CXX_FLAGS VCPKG_CXX_FLAGS_DEBUG )
list ( APPEND CXXOPTS "--cxxopt='${OPT}'" )
endforeach ( )
separate_arguments ( VCPKG_LINKER_FLAGS ${ PLATFORM_COMMAND } ${ VCPKG_LINKER_FLAGS } )
separate_arguments ( VCPKG_LINKER_FLAGS_DEBUG ${ PLATFORM_COMMAND } ${ VCPKG_LINKER_FLAGS_DEBUG } )
foreach ( OPT IN LISTS VCPKG_LINKER_FLAGS VCPKG_LINKER_FLAGS_DEBUG )
list ( APPEND LINKOPTS "--linkopt='${OPT}'" )
endforeach ( )
else ( )
set ( BUILD_OPTS "--compilation_mode=opt" )
separate_arguments ( VCPKG_C_FLAGS ${ PLATFORM_COMMAND } ${ VCPKG_C_FLAGS } )
separate_arguments ( VCPKG_C_FLAGS_RELEASE ${ PLATFORM_COMMAND } ${ VCPKG_C_FLAGS_RELEASE } )
foreach ( OPT IN LISTS VCPKG_C_FLAGS VCPKG_C_FLAGS_RELEASE )
list ( APPEND COPTS "--copt='${OPT}'" )
endforeach ( )
separate_arguments ( VCPKG_CXX_FLAGS ${ PLATFORM_COMMAND } ${ VCPKG_CXX_FLAGS } )
separate_arguments ( VCPKG_CXX_FLAGS_RELEASE ${ PLATFORM_COMMAND } ${ VCPKG_CXX_FLAGS_RELEASE } )
foreach ( OPT IN LISTS VCPKG_CXX_FLAGS VCPKG_CXX_FLAGS_RELEASE )
list ( APPEND CXXOPTS "--cxxopt='${OPT}'" )
endforeach ( )
separate_arguments ( VCPKG_LINKER_FLAGS ${ PLATFORM_COMMAND } ${ VCPKG_LINKER_FLAGS } )
separate_arguments ( VCPKG_LINKER_FLAGS_RELEASE ${ PLATFORM_COMMAND } ${ VCPKG_LINKER_FLAGS_RELEASE } )
foreach ( OPT IN LISTS VCPKG_LINKER_FLAGS VCPKG_LINKER_FLAGS_RELEASE )
list ( APPEND LINKOPTS "--linkopt='${OPT}'" )
endforeach ( )
endif ( )
if ( VCPKG_LIBRARY_LINKAGE STREQUAL dynamic )
if ( VCPKG_TARGET_IS_WINDOWS )
list ( JOIN COPTS " " COPTS )
list ( JOIN CXXOPTS " " CXXOPTS )
list ( JOIN LINKOPTS " " LINKOPTS )
vcpkg_execute_build_process (
C O M M A N D $ { B A S H } - - n o p r o f i l e - - n o r c - c " ' $ { B A Z E L } ' b u i l d - - v e r b o s e _ f a i l u r e s $ { B U I L D _ O P T S } $ { C O P T S } $ { C X X O P T S } $ { L I N K O P T S } - - p y t h o n _ p a t h = ' $ { P Y T H O N 3 } ' - - d e f i n e = n o _ t e n s o r f l o w _ p y _ d e p s = t r u e / / / t e n s o r f l o w : $ { B A Z E L _ L I B _ N A M E } / / / t e n s o r f l o w : i n s t a l l _ h e a d e r s "
W O R K I N G _ D I R E C T O R Y $ { C U R R E N T _ B U I L D T R E E S _ D I R } / $ { T A R G E T _ T R I P L E T } - $ { B U I L D _ T Y P E }
L O G N A M E b u i l d - $ { T A R G E T _ T R I P L E T } - $ { B U I L D _ T Y P E }
)
else ( )
vcpkg_execute_build_process (
C O M M A N D $ { B A Z E L } b u i l d - - v e r b o s e _ f a i l u r e s $ { B U I L D _ O P T S } - - p y t h o n _ p a t h = $ { P Y T H O N 3 } $ { C O P T S } $ { C X X O P T S } $ { L I N K O P T S } - - d e f i n e = n o _ t e n s o r f l o w _ p y _ d e p s = t r u e / / t e n s o r f l o w : $ { B A Z E L _ L I B _ N A M E } / / t e n s o r f l o w : i n s t a l l _ h e a d e r s
W O R K I N G _ D I R E C T O R Y $ { C U R R E N T _ B U I L D T R E E S _ D I R } / $ { T A R G E T _ T R I P L E T } - $ { B U I L D _ T Y P E }
L O G N A M E b u i l d - $ { T A R G E T _ T R I P L E T } - $ { B U I L D _ T Y P E }
)
endif ( )
else ( )
if ( VCPKG_TARGET_IS_WINDOWS )
if ( VCPKG_CRT_LINKAGE STREQUAL static )
if ( BUILD_TYPE STREQUAL dbg )
list ( APPEND COPTS "--copt=-MTd" )
else ( )
list ( APPEND COPTS "--copt=-MT" )
endif ( )
endif ( )
list ( JOIN COPTS " " COPTS )
list ( JOIN CXXOPTS " " CXXOPTS )
list ( JOIN LINKOPTS " " LINKOPTS )
vcpkg_execute_build_process (
C O M M A N D $ { B A S H } - - n o p r o f i l e - - n o r c - c " $ { B A Z E L } b u i l d - s - - v e r b o s e _ f a i l u r e s $ { B U I L D _ O P T S } - - f e a t u r e s = f u l l y _ s t a t i c _ l i n k $ { C O P T S } $ { C X X O P T S } $ { L I N K O P T S } - - p y t h o n _ p a t h = ' $ { P Y T H O N 3 } ' - - d e f i n e = n o _ t e n s o r f l o w _ p y _ d e p s = t r u e / / / t e n s o r f l o w : $ { B A Z E L _ L I B _ N A M E } / / / t e n s o r f l o w : i n s t a l l _ h e a d e r s "
W O R K I N G _ D I R E C T O R Y $ { C U R R E N T _ B U I L D T R E E S _ D I R } / $ { T A R G E T _ T R I P L E T } - $ { B U I L D _ T Y P E }
L O G N A M E b u i l d - $ { T A R G E T _ T R I P L E T } - $ { B U I L D _ T Y P E }
)
else ( )
vcpkg_execute_build_process (
C O M M A N D $ { B A Z E L } b u i l d - s - - v e r b o s e _ f a i l u r e s $ { B U I L D _ O P T S } $ { C O P T S } $ { C X X O P T S } $ { L I N K O P T S } - - p y t h o n _ p a t h = $ { P Y T H O N 3 } - - d e f i n e = n o _ t e n s o r f l o w _ p y _ d e p s = t r u e / / t e n s o r f l o w : $ { B A Z E L _ L I B _ N A M E } / / t e n s o r f l o w : i n s t a l l _ h e a d e r s
W O R K I N G _ D I R E C T O R Y $ { C U R R E N T _ B U I L D T R E E S _ D I R } / $ { T A R G E T _ T R I P L E T } - $ { B U I L D _ T Y P E }
L O G N A M E b u i l d - $ { T A R G E T _ T R I P L E T } - $ { B U I L D _ T Y P E }
)
endif ( )
if ( NOT VCPKG_TARGET_IS_OSX )
if ( VCPKG_TARGET_IS_WINDOWS )
vcpkg_execute_build_process (
C O M M A N D $ { P Y T H O N 3 } " $ { C M A K E _ C U R R E N T _ L I S T _ D I R } / c o n v e r t _ l i b _ p a r a m s _ $ { P L A T F O R M _ S U F F I X } . p y " $ { T F _ L I B _ S U F F I X }
W O R K I N G _ D I R E C T O R Y $ { C U R R E N T _ B U I L D T R E E S _ D I R } / $ { T A R G E T _ T R I P L E T } - $ { B U I L D _ T Y P E } / b a z e l - b i n / t e n s o r f l o w
L O G N A M E p o s t b u i l d 1 - $ { T A R G E T _ T R I P L E T } - $ { B U I L D _ T Y P E }
)
else ( )
vcpkg_execute_build_process (
C O M M A N D $ { P Y T H O N 3 } " $ { C M A K E _ C U R R E N T _ L I S T _ D I R } / c o n v e r t _ l i b _ p a r a m s _ $ { P L A T F O R M _ S U F F I X } . p y " $ { T F _ V E R S I O N } $ { T F _ L I B _ S U F F I X }
W O R K I N G _ D I R E C T O R Y $ { C U R R E N T _ B U I L D T R E E S _ D I R } / $ { T A R G E T _ T R I P L E T } - $ { B U I L D _ T Y P E } / b a z e l - b i n / t e n s o r f l o w
L O G N A M E p o s t b u i l d 1 - $ { T A R G E T _ T R I P L E T } - $ { B U I L D _ T Y P E }
)
endif ( )
endif ( )
# for some reason stdout of bazel ends up in stderr, so use err log file in the following command
vcpkg_execute_build_process (
C O M M A N D $ { P Y T H O N 3 } " $ { C M A K E _ C U R R E N T _ L I S T _ D I R } / g e n e r a t e _ s t a t i c _ l i n k _ c m d _ $ { P L A T F O R M _ S U F F I X } . p y " " $ { C U R R E N T _ B U I L D T R E E S _ D I R } / b u i l d - $ { T A R G E T _ T R I P L E T } - $ { B U I L D _ T Y P E } - e r r . l o g " $ { T F _ L I B _ S U F F I X }
W O R K I N G _ D I R E C T O R Y $ { C U R R E N T _ B U I L D T R E E S _ D I R } / $ { T A R G E T _ T R I P L E T } - $ { B U I L D _ T Y P E } / b a z e l - $ { T A R G E T _ T R I P L E T } - $ { B U I L D _ T Y P E }
L O G N A M E p o s t b u i l d 2 - $ { T A R G E T _ T R I P L E T } - $ { B U I L D _ T Y P E }
)
vcpkg_execute_build_process (
C O M M A N D $ { S T A T I C _ L I N K _ C M D }
W O R K I N G _ D I R E C T O R Y $ { C U R R E N T _ B U I L D T R E E S _ D I R } / $ { T A R G E T _ T R I P L E T } - $ { B U I L D _ T Y P E } / b a z e l - $ { T A R G E T _ T R I P L E T } - $ { B U I L D _ T Y P E }
L O G N A M E p o s t b u i l d 3 - $ { T A R G E T _ T R I P L E T } - $ { B U I L D _ T Y P E }
)
endif ( )
if ( BUILD_TYPE STREQUAL "dbg" )
set ( DIR_PREFIX "/debug" )
else ( )
set ( DIR_PREFIX "" )
endif ( )
if ( VCPKG_TARGET_IS_WINDOWS )
if ( VCPKG_LIBRARY_LINKAGE STREQUAL dynamic )
file ( COPY ${ CURRENT_BUILDTREES_DIR } / ${ TARGET_TRIPLET } - ${ BUILD_TYPE } /bazel-bin/tensorflow/tensorflow ${ TF_LIB_SUFFIX } .dll DESTINATION ${ CURRENT_PACKAGES_DIR } ${ DIR_PREFIX } /bin )
# rename before copy because after copy the file might be locked by anti-malware scanners for some time so that renaming fails
file ( RENAME ${ CURRENT_BUILDTREES_DIR } / ${ TARGET_TRIPLET } - ${ BUILD_TYPE } /bazel-bin/tensorflow/tensorflow ${ TF_LIB_SUFFIX } .dll.if.lib ${ CURRENT_BUILDTREES_DIR } / ${ TARGET_TRIPLET } - ${ BUILD_TYPE } /bazel-bin/tensorflow/tensorflow ${ TF_LIB_SUFFIX } .lib )
file ( COPY ${ CURRENT_BUILDTREES_DIR } / ${ TARGET_TRIPLET } - ${ BUILD_TYPE } /bazel-bin/tensorflow/tensorflow ${ TF_LIB_SUFFIX } .lib DESTINATION ${ CURRENT_PACKAGES_DIR } ${ DIR_PREFIX } /lib )
if ( BUILD_TYPE STREQUAL dbg )
file ( COPY ${ CURRENT_BUILDTREES_DIR } / ${ TARGET_TRIPLET } - ${ BUILD_TYPE } /bazel-bin/tensorflow/tensorflow ${ TF_LIB_SUFFIX } .pdb DESTINATION ${ CURRENT_PACKAGES_DIR } ${ DIR_PREFIX } /bin )
message ( STATUS "Warning: debug information tensorflow${TF_LIB_SUFFIX}.pdb will be of limited use because only a reduced set could be produced due to the 4GB internal PDB file limit even on x64." )
endif ( )
else ( )
if ( BUILD_TYPE STREQUAL dbg )
set ( library_parts_variable TF_LIB_PARTS_DEBUG )
else ( )
set ( library_parts_variable TF_LIB_PARTS_RELEASE )
endif ( )
set ( ${ library_parts_variable } )
# library might have been split because no more than 4GB are supported even on x64 Windows
foreach ( PART_NO RANGE 1 100 )
set ( source "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${BUILD_TYPE}/bazel-bin/tensorflow/tensorflow${TF_LIB_SUFFIX}-part${PART_NO}.lib" )
if ( EXISTS "${source}" )
file ( COPY "${source}" DESTINATION "${CURRENT_PACKAGES_DIR}${DIR_PREFIX}/lib" )
list ( APPEND ${ library_parts_variable } "tensorflow${TF_LIB_SUFFIX}-part${PART_NO}.lib" )
else ( )
break ( )
endif ( )
endforeach ( )
endif ( )
else ( )
file ( COPY
$ { C U R R E N T _ B U I L D T R E E S _ D I R } / $ { T A R G E T _ T R I P L E T } - $ { B U I L D _ T Y P E } / b a z e l - b i n / t e n s o r f l o w / $ { T F _ L I B _ N A M E _ F U L L }
D E S T I N A T I O N $ { C U R R E N T _ P A C K A G E S _ D I R } $ { D I R _ P R E F I X } / l i b
)
# Note: these use relative links
file ( CREATE_LINK ${ TF_LIB_NAME_FULL }
$ { C U R R E N T _ P A C K A G E S _ D I R } $ { D I R _ P R E F I X } / l i b / $ { T F _ L I B _ N A M E _ S H O R T }
S Y M B O L I C
)
file ( CREATE_LINK ${ TF_LIB_NAME_FULL }
$ { C U R R E N T _ P A C K A G E S _ D I R } $ { D I R _ P R E F I X } / l i b / $ { T F _ L I B _ N A M E }
S Y M B O L I C
)
if ( VCPKG_LIBRARY_LINKAGE STREQUAL dynamic )
file ( COPY
$ { C U R R E N T _ B U I L D T R E E S _ D I R } / $ { T A R G E T _ T R I P L E T } - $ { B U I L D _ T Y P E } / b a z e l - b i n / t e n s o r f l o w / $ { T F _ F R A M E W O R K _ N A M E _ F U L L }
D E S T I N A T I O N $ { C U R R E N T _ P A C K A G E S _ D I R } $ { D I R _ P R E F I X } / l i b
)
file ( CREATE_LINK
$ { T F _ F R A M E W O R K _ N A M E _ F U L L }
$ { C U R R E N T _ P A C K A G E S _ D I R } $ { D I R _ P R E F I X } / l i b / $ { T F _ F R A M E W O R K _ N A M E _ S H O R T }
S Y M B O L I C
)
file ( CREATE_LINK
$ { T F _ F R A M E W O R K _ N A M E _ F U L L }
$ { C U R R E N T _ P A C K A G E S _ D I R } $ { D I R _ P R E F I X } / l i b / $ { T F _ F R A M E W O R K _ N A M E }
S Y M B O L I C
)
endif ( )
endif ( )
endforeach ( )
if ( VCPKG_LIBRARY_LINKAGE STREQUAL static )
message ( STATUS "Warning: Static TensorFlow build contains several external dependencies that may cause linking conflicts (for example, one cannot use both openssl and TensorFlow in the same project, since TensorFlow contains boringssl)." )
if ( VCPKG_TARGET_IS_WINDOWS )
message ( STATUS "Note: For some TensorFlow features (e.g. OpRegistry), it might be necessary to tell the linker to include the whole library, i.e., link using options '/WHOLEARCHIVE:tensorflow${TF_LIB_SUFFIX}-part1.lib /WHOLEARCHIVE:tensorflow${TF_LIB_SUFFIX}-part2.lib ...'" )
else ( )
message ( STATUS "Note: There is no separate libtensorflow_framework.a as it got merged into libtensorflow${TF_LIB_SUFFIX}.a to avoid linking conflicts." )
if ( VCPKG_TARGET_IS_OSX )
message ( STATUS "Note: Beside TensorFlow itself, you'll need to also pass its dependancies to the linker, for example '-ltensorflow${TF_LIB_SUFFIX} -framework CoreFoundation'" )
message ( STATUS "Note: For some TensorFlow features (e.g. OpRegistry), it might be necessary to tell the linker to include the whole library: '-Wl,-force_load,path/to/libtensorflow${TF_LIB_SUFFIX}.a -framework CoreFoundation -framework Security [rest of linker arguments]'" )
else ( )
message ( STATUS "Note: Beside TensorFlow itself, you'll need to also pass its dependancies to the linker, for example '-ltensorflow${TF_LIB_SUFFIX} -lm -ldl -lpthread'" )
message ( STATUS "Note: For some TensorFlow features (e.g. OpRegistry), it might be necessary to tell the linker to include the whole library: '-Wl,--whole-archive -ltensorflow${TF_LIB_SUFFIX} -Wl,--no-whole-archive [rest of linker arguments]'" )
endif ( )
endif ( )
configure_file (
$ { C M A K E _ C U R R E N T _ L I S T _ D I R } / R E A D M E - $ { P L A T F O R M _ S U F F I X }
$ { C U R R E N T _ P A C K A G E S _ D I R } / s h a r e / t e n s o r f l o w $ { T F _ P O R T _ S U F F I X } / R E A D M E
C O P Y O N L Y )
endif ( )
file ( COPY ${ SOURCE_PATH } /LICENSE DESTINATION ${ CURRENT_PACKAGES_DIR } /share/tensorflow ${ TF_PORT_SUFFIX } )
file ( RENAME ${ CURRENT_PACKAGES_DIR } /share/tensorflow ${ TF_PORT_SUFFIX } /LICENSE ${ CURRENT_PACKAGES_DIR } /share/tensorflow ${ TF_PORT_SUFFIX } /copyright )
# NOTE: if this port ever supports VCPKG_BUILD_TYPE, use that to set these.
set ( TENSORFLOW_HAS_RELEASE ON )
set ( TENSORFLOW_HAS_DEBUG ON )
if ( VCPKG_TARGET_IS_WINDOWS )
if ( VCPKG_LIBRARY_LINKAGE STREQUAL dynamic )
configure_file (
$ { C M A K E _ C U R R E N T _ L I S T _ D I R } / t e n s o r f l o w - c o n f i g - w i n d o w s - d l l . c m a k e . i n
$ { C U R R E N T _ P A C K A G E S _ D I R } / s h a r e / t e n s o r f l o w $ { T F _ P O R T _ S U F F I X } / t e n s o r f l o w $ { T F _ P O R T _ S U F F I X } - c o n f i g . c m a k e
@ O N L Y )
else ( )
configure_file (
$ { C M A K E _ C U R R E N T _ L I S T _ D I R } / t e n s o r f l o w - c o n f i g - w i n d o w s - l i b . c m a k e . i n
$ { C U R R E N T _ P A C K A G E S _ D I R } / s h a r e / t e n s o r f l o w $ { T F _ P O R T _ S U F F I X } / t e n s o r f l o w $ { T F _ P O R T _ S U F F I X } - c o n f i g . c m a k e
@ O N L Y )
set ( VCPKG_POLICY_MISMATCHED_NUMBER_OF_BINARIES enabled )
set ( prefix [[ ${ TENSORFLOW_INSTALL_PREFIX } ]] )
set ( libs_to_link )
foreach ( lib IN LISTS TF_LIB_PARTS_RELEASE )
list ( APPEND libs_to_link "$<$<CONFIG:Release>:${prefix}/lib/${lib}>" )
endforeach ( )
foreach ( lib IN LISTS TF_LIB_PARTS_DEBUG )
list ( APPEND libs_to_link "$<$<CONFIG:Debug>:${prefix}/debug/lib/${lib}>" )
endforeach ( )
if ( TENSORFLOW_HAS_RELEASE )
set ( TF_LIB_PARTS_DEFAULT ${ TF_LIB_PARTS_RELEASE } )
set ( prefix_DEFAULT "${prefix}" )
elseif ( TENSORFLOW_HAS_DEBUG )
set ( TF_LIB_PARTS_DEFAULT ${ TF_LIB_PARTS_DEBUG } )
set ( prefix_DEFAULT "${prefix}/debug" )
endif ( )
foreach ( lib IN LISTS TF_LIB_PARTS_DEFAULT )
list ( APPEND libs_to_link
" $ < $ < N O T : $ < O R : $ < C O N F I G : R e l e a s e > , $ < C O N F I G : D e b u g > > > : $ { p r e f i x } / l i b / $ { l i b } > " )
endforeach ( )
string ( REPLACE ";" "\n\t\t" libs_to_link "${libs_to_link}" )
file ( APPEND ${ CURRENT_PACKAGES_DIR } /share/tensorflow ${ TF_PORT_SUFFIX } /tensorflow ${ TF_PORT_SUFFIX } -config.cmake "
target_link_libraries ( tensorflow ${ TF_LIB_SUFFIX } ::tensorflow ${ TF_LIB_SUFFIX }
I N T E R F A C E
$ { l i b s _ t o _ l i n k }
) "
)
endif ( )
else ( )
if ( VCPKG_LIBRARY_LINKAGE STREQUAL dynamic )
configure_file (
$ { C M A K E _ C U R R E N T _ L I S T _ D I R } / t e n s o r f l o w - c o n f i g - s h a r e d . c m a k e . i n
$ { C U R R E N T _ P A C K A G E S _ D I R } / s h a r e / t e n s o r f l o w $ { T F _ P O R T _ S U F F I X } / t e n s o r f l o w $ { T F _ P O R T _ S U F F I X } - c o n f i g . c m a k e
@ O N L Y )
else ( )
configure_file (
$ { C M A K E _ C U R R E N T _ L I S T _ D I R } / t e n s o r f l o w - c o n f i g - s t a t i c . c m a k e . i n
$ { C U R R E N T _ P A C K A G E S _ D I R } / s h a r e / t e n s o r f l o w $ { T F _ P O R T _ S U F F I X } / t e n s o r f l o w $ { T F _ P O R T _ S U F F I X } - c o n f i g . c m a k e
@ O N L Y )
endif ( )
endif ( )
2021-04-27 01:27:45 +08:00
message ( STATUS "You may want to delete ${CURRENT_BUILDTREES_DIR} to free diskspace." )