1
+ include (vcpkg_common_functions)
2
+
3
+ message (WARNING "This tensorflow port currently is experimental on Windows and Linux platforms." )
4
+
5
+ vcpkg_from_github(
6
+ OUT_SOURCE_PATH SOURCE_PATH
7
+ REPO tensorflow/tensorflow
8
+ REF v1.14.0
9
+ SHA512 ac9ea5a2d1c761aaafbdc335259e29c128127b8d069ec5b206067935180490aa95e93c7e13de57f7f54ce4ba4f34a822face22b4a028f60185edb380e5cd4787
10
+ HEAD_REF master
11
+ PATCHES
12
+ file -exists .patch # required or otherwise it cant find python lib path on windows
13
+ )
14
+
15
+ # due to https://github.com/bazelbuild/bazel/issues/8028, bazel must be version 25.0 or higher
16
+ vcpkg_find_acquire_program(BAZEL)
17
+ get_filename_component (BAZEL_DIR "${BAZEL} " DIRECTORY )
18
+ vcpkg_add_to_path(PREPEND ${BAZEL_DIR} )
19
+ set (ENV{BAZEL_BIN_PATH} "${BAZEL} " )
20
+
21
+ vcpkg_find_acquire_program(PYTHON3)
22
+ get_filename_component (PYTHON3_DIR "${PYTHON3} " DIRECTORY )
23
+ vcpkg_add_to_path(PREPEND ${PYTHON3_DIR} )
24
+ set (ENV{PYTHON_BIN_PATH} "${PYTHON3} " )
25
+
26
+ function (tensorflow_try_remove_recurse_wait PATH_TO_REMOVE)
27
+ file (REMOVE_RECURSE ${PATH_TO_REMOVE} )
28
+ if (EXISTS "${PATH_TO_REMOVE} " )
29
+ execute_process (COMMAND ${CMAKE_COMMAND} -E sleep 5)
30
+ file (REMOVE_RECURSE ${PATH_TO_REMOVE} )
31
+ endif ()
32
+ endfunction ()
33
+
34
+ # we currently only support the release version
35
+ tensorflow_try_remove_recurse_wait(${CURRENT_BUILDTREES_DIR} /${TARGET_TRIPLET} -rel)
36
+ file (MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR} /${TARGET_TRIPLET} -rel)
37
+ file (GLOB SOURCES ${SOURCE_PATH} /*)
38
+ file (COPY ${SOURCES} DESTINATION ${CURRENT_BUILDTREES_DIR} /${TARGET_TRIPLET} -rel)
39
+
40
+ if (CMAKE_HOST_WIN32 )
41
+ vcpkg_acquire_msys(MSYS_ROOT PACKAGES unzip patch diffutils git)
42
+ set (BASH ${MSYS_ROOT} /usr/bin/bash.exe)
43
+ set (ENV{BAZEL_SH} ${MSYS_ROOT} /usr/bin/bash.exe)
44
+
45
+ set (ENV{BAZEL_VS} $ENV{VSInstallDir} )
46
+ set (ENV{BAZEL_VC} $ENV{VCInstallDir} )
47
+ endif ()
48
+
49
+ # tensorflow has long file names, which will not work on windows
50
+ set (ENV{TEST_TMPDIR} ${CURRENT_BUILDTREES_DIR} /../.bzl)
51
+
52
+ set (ENV{USE_DEFAULT_PYTHON_LIB_PATH} 1)
53
+ set (ENV{TF_NEED_KAFKA} 0)
54
+ set (ENV{TF_NEED_OPENCL_SYCL} 0)
55
+ set (ENV{TF_NEED_AWS} 0)
56
+ set (ENV{TF_NEED_GCP} 0)
57
+ set (ENV{TF_NEED_HDFS} 0)
58
+ set (ENV{TF_NEED_S3} 0)
59
+ set (ENV{TF_ENABLE_XLA} 0)
60
+ set (ENV{TF_NEED_GDR} 0)
61
+ set (ENV{TF_NEED_VERBS} 0)
62
+ set (ENV{TF_NEED_OPENCL} 0)
63
+ set (ENV{TF_NEED_MPI} 0)
64
+ set (ENV{TF_NEED_TENSORRT} 0)
65
+ set (ENV{TF_NEED_NGRAPH} 0)
66
+ set (ENV{TF_NEED_IGNITE} 0)
67
+ set (ENV{TF_NEED_ROCM} 0)
68
+ set (ENV{TF_SET_ANDROID_WORKSPACE} 0)
69
+ set (ENV{TF_DOWNLOAD_CLANG} 0)
70
+ set (ENV{TF_NCCL_VERSION} 2.3)
71
+ set (ENV{NCCL_INSTALL_PATH} "" )
72
+ set (ENV{CC_OPT_FLAGS} "/arch:AVX" )
73
+ set (ENV{TF_NEED_CUDA} 0)
74
+
75
+ message (STATUS "Configuring TensorFlow" )
76
+
77
+ vcpkg_execute_required_process(
78
+ COMMAND ${PYTHON3} ${SOURCE_PATH} /configure.py
79
+ WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR} /${TARGET_TRIPLET} -rel
80
+ LOGNAME config-${TARGET_TRIPLET} -rel
81
+ )
82
+ message (STATUS "Warning: Building TensorFlow can take an hour or more." )
83
+
84
+ if (CMAKE_HOST_WIN32 )
85
+ vcpkg_execute_build_process(
86
+ COMMAND ${BASH} --noprofile --norc -c "${BAZEL} build --verbose_failures -c opt --python_path=${PYTHON3} --incompatible_disable_deprecated_attr_params=false --define=no_tensorflow_py_deps=true ///tensorflow:libtensorflow_cc.so ///tensorflow:install_headers"
87
+ WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR} /${TARGET_TRIPLET} -rel
88
+ LOGNAME build -${TARGET_TRIPLET} -rel
89
+ )
90
+ else ()
91
+ vcpkg_execute_build_process(
92
+ COMMAND ${BAZEL} build --verbose_failures -c opt --python_path=${PYTHON3} --incompatible_disable_deprecated_attr_params=false --define=no_tensorflow_py_deps=true //tensorflow:libtensorflow_cc.so //tensorflow:install_headers
93
+ WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR} /${TARGET_TRIPLET} -rel
94
+ LOGNAME build -${TARGET_TRIPLET} -rel
95
+ )
96
+ endif ()
97
+
98
+ file (COPY ${CURRENT_BUILDTREES_DIR} /${TARGET_TRIPLET} -rel/bazel-genfiles/tensorflow/include / DESTINATION ${CURRENT_PACKAGES_DIR} /include /tensorflow-external)
99
+
100
+ if (CMAKE_HOST_WIN32 )
101
+ file (COPY ${CURRENT_BUILDTREES_DIR} /${TARGET_TRIPLET} -rel/bazel-bin/tensorflow/libtensorflow_cc.so.1.14.0 DESTINATION ${CURRENT_PACKAGES_DIR} /lib)
102
+ file (COPY ${CURRENT_BUILDTREES_DIR} /${TARGET_TRIPLET} -rel/bazel-bin/tensorflow/libtensorflow_cc.so.1.14.0.if.lib DESTINATION ${CURRENT_PACKAGES_DIR} /lib)
103
+ file (COPY ${CURRENT_BUILDTREES_DIR} /${TARGET_TRIPLET} -rel/bazel-bin/tensorflow/libtensorflow_cc.so.1.14.0 DESTINATION ${CURRENT_PACKAGES_DIR} /debug/lib)
104
+ file (COPY ${CURRENT_BUILDTREES_DIR} /${TARGET_TRIPLET} -rel/bazel-bin/tensorflow/libtensorflow_cc.so.1.14.0.if.lib DESTINATION ${CURRENT_PACKAGES_DIR} /debug/lib)
105
+ else ()
106
+ file (COPY ${CURRENT_BUILDTREES_DIR} /${TARGET_TRIPLET} -rel/bazel-bin/tensorflow/libtensorflow_cc.so.1.14.0 DESTINATION ${CURRENT_PACKAGES_DIR} /lib)
107
+ file (COPY ${CURRENT_BUILDTREES_DIR} /${TARGET_TRIPLET} -rel/bazel-bin/tensorflow/libtensorflow_framework.so.1.14.0 DESTINATION ${CURRENT_PACKAGES_DIR} /lib)
108
+ file (COPY ${CURRENT_BUILDTREES_DIR} /${TARGET_TRIPLET} -rel/bazel-bin/tensorflow/libtensorflow_cc.so.1.14.0 DESTINATION ${CURRENT_PACKAGES_DIR} /debug/lib)
109
+ file (COPY ${CURRENT_BUILDTREES_DIR} /${TARGET_TRIPLET} -rel/bazel-bin/tensorflow/libtensorflow_framework.so.1.14.0 DESTINATION ${CURRENT_PACKAGES_DIR} /debug/lib)
110
+ endif ()
111
+
112
+ file (COPY ${SOURCE_PATH} /LICENSE DESTINATION ${CURRENT_PACKAGES_DIR} /share/tensorflow-cc)
113
+ file (RENAME ${CURRENT_PACKAGES_DIR} /share/tensorflow-cc/LICENSE ${CURRENT_PACKAGES_DIR} /share/tensorflow-cc/copyright)
114
+
115
+ file (COPY ${CMAKE_CURRENT_LIST_DIR} /TensorflowCCConfig.cmake DESTINATION ${CURRENT_PACKAGES_DIR} /share/unofficial-tensorflow-cc)
116
+ file (RENAME ${CURRENT_PACKAGES_DIR} /share/unofficial-tensorflow-cc/TensorflowCCConfig.cmake ${CURRENT_PACKAGES_DIR} /share/unofficial-tensorflow-cc/unofficial-tensorflow-cc-config.cmake)
0 commit comments