# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4 PortSystem 1.0 PortGroup python 1.0 PortGroup github 1.0 PortGroup compilers 1.0 PortGroup compiler_blacklist_versions 1.0 name py-tensorflow version 2.12.0 revision 0 github.setup tensorflow tensorflow ${version} v license Apache-2 maintainers {emcrisostomo @emcrisostomo} openmaintainer # Goal is darwin >= 18, but present failures prevent that for macOS 11.x+ platforms {darwin >= 18 <= 19} supported_archs x86_64 arm64 description TensorFlow helps the tensors flow long_description {*}${description} homepage https://www.tensorflow.org/ known_fail yes pre-fetch { ui_error "${subport}: This port is presently broken on all macOS platforms" return -code error "port broken" } github.livecheck.regex {([0-9.]+)} checksums rmd160 26051c2456224f94f82e896aff4cb8512c2f6dc3 \ sha256 2b1725eccba5ee42347462f5a65b274a905f7946181fadafc7b44b5c85ba3041 \ size 69709103 use_xcode yes compiler.cxx_standard 2017 compiler.blacklist-append {clang < 1000} {macports-clang-[4-9].0} # Supported python versions python.versions 39 310 if {${name} ne ${subport}} { PortGroup bazel 1.0 # TF versions 1 and 2 cannot be installed at once if { ${python.version} < 310 } { conflicts py${python.version}-tensorflow1 } # Conflicts with tensorflow-macos, tensorflow-metal conflicts-append \ py${python.version}-tensorflow-macos \ py${python.version}-tensorflow-metal # Relax Xcode minimum version, based on testing bazel.min_xcode 10.3 variant mkl description {Enable Intel Math Kernel Library support} { bazel.extra_build_opts-append --config=mkl depends_lib-append port:py${python.version}-mkl } # Enable MKL by default on 10.15 and newer. #if {${os.major} >= 19} { # default_variants-append +mkl #} depends_build-append \ port:cctools \ port:ld64 \ port:py${python.version}-future \ port:py${python.version}-mock \ port:py${python.version}-pip depends_lib-append \ port:py${python.version}-absl \ port:py${python.version}-astor \ port:py${python.version}-astunparse \ port:py${python.version}-flatbuffers \ port:py${python.version}-gast \ port:py${python.version}-google-pasta \ port:py${python.version}-grpcio \ port:py${python.version}-keras \ port:py${python.version}-numpy \ port:py${python.version}-opt_einsum \ port:py${python.version}-protobuf3 \ port:py${python.version}-six \ port:py${python.version}-tensorboard \ port:py${python.version}-tensorflow_estimator \ port:py${python.version}-termcolor \ port:py${python.version}-wheel \ port:py${python.version}-wrapt use_configure yes # Options passed to configure script via env vars bazel::add_to_envs PYTHON_LIB_PATH=${python.prefix}/lib/python${python.branch}/site-packages bazel::add_to_envs PYTHON_BIN_PATH=${prefix}/bin/python${python.branch} # Use correct python in bazel build bazel.python_version ${python.branch} bazel.build_target "//tensorflow/tools/pip_package:build_pip_package" bazel.post_build_cmd ./bazel-bin/tensorflow/tools/pip_package/build_pip_package [list $workpath] # add -fuse-ld becase https://github.com/tensorflow/tensorflow/issues/58368 bazel.extra_build_opts-append \ --config=opt \ --linkopt="-fuse-ld=/usr/bin/ld" bazel.limit_build_jobs no # Overstep: # target '@tf_runtime//:support' is not visible from target '//tensorflow/compiler/xla/pjrt:pjrt_future' # See: https://github.com/tensorflow/tensorflow/issues/58825 bazel.extra_build_opts-append \ --noincompatible_fix_package_group_reporoot_syntax \ --noincompatible_validate_top_level_header_inclusions destroot.cmd pip-${python.branch} destroot.args \ --ignore-installed \ --no-cache-dir \ --no-dependencies \ --root ${destroot} \ ${workpath}/tensorflow-*.whl destroot.post_args post-destroot { file delete ${destroot}${python.prefix}/bin/tensorboard file delete ${destroot}${prefix}/bin/tensorboard-${python.branch} } livecheck.type none # If tensorflow-macos is available for this OS advertise it if { ${os.major} > 19 } { notes-append " * A hardware accelerated MacOS optimised port of tensorflow from Apple\ is available as an alternative to ${subport}. To use run: sudo port uninstall -f ${subport} ${subport}-addons sudo port install ${subport}-macos " } }