# -*- 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 cxx11 1.1 PortGroup github 1.0 PortGroup mpi 1.0 PortGroup compiler_blacklist_versions 1.0 name py-pytorch version 1.1.0 revision 0 github.setup pytorch pytorch ${version} v fetch.type git platforms darwin supported_archs x86_64 license BSD maintainers {jonesc @cjones051073} openmaintainer description Tensors and dynamic neural networks in Python with strong GPU acceleration long_description ${description} homepage https://pytorch.org/ # Support python versions. python.versions 27 35 36 37 python.default_version 37 patch.pre_args -p1 mpi.setup -gcc44 -gcc45 -clang33 -clang34 -clang37 -clang39 -clang40 -gfortran -g95 # Compiler selection compiler.blacklist-append *gcc* {clang < 800} macports-clang-3.3 macports-clang-3.4 \ macports-clang-3.7 macports-clang-4.0 macports-clang-3.9 compiler.whitelist clang macports-clang-8.0 macports-clang-7.0 macports-clang-6.0 macports-clang-5.0 variant mkl description {Enable Intel Math Kernel Library support} { } # enable MKL by default on 10.12 and newer if {${os.major} >= 16} { default_variants-append +mkl } if {${name} ne ${subport}} { depends_build-append \ port:cctools \ path:bin/cmake:cmake \ port:py${python.version}-setuptools depends_lib-append \ port:eigen3 \ port:gmp \ port:mpfr \ port:OpenBLAS \ port:opencv \ port:zmq \ port:zstd \ port:py${python.version}-cffi \ port:py${python.version}-gmpy \ port:py${python.version}-numpy \ port:py${python.version}-pybind11 \ port:py${python.version}-yaml \ port:py${python.version}-torchvision \ port:py${python.version}-torchtext if {${python.version} < 35} { depends_lib-append \ port:py${python.version}-typing } post-fetch { system -W ${worksrcpath} "git submodule update --init" } set t_build_env "USE_OPENCV=ON USE_OPENMP=ON USE_CUDA=OFF USE_ZSTD=ON USE_ZMQ=ON CMAKE_LIBRARY_PATH=${prefix}:${prefix}/libomp LIBRARY_PATH=${prefix}:${prefix}/libomp" set PythonVersionWithDot [join [split ${python.version} ""] "."] set py_lib_root ${prefix}/Library/Frameworks/Python.framework/Versions/${PythonVersionWithDot} # Use Intel Math kernel Library if {[variant_isset mkl]} { patchfiles-append FindMKL-OMP.patch pre-build { # Hacks to get search paths into builds reinplace "s|/opt/intel/mkl|${py_lib_root}|g" cmake/Modules/FindMKL.cmake reinplace "s|mklvers \"intel64\"|mklvers \"\"|g" cmake/Modules/FindMKL.cmake reinplace "s|MACPORTS_PREFIX|${prefix}|g" cmake/Modules/FindMKL.cmake } depends_lib-append port:py${python.version}-mkl depends_build-append port:py${python.version}-mkl-include } build.cmd "${t_build_env} ${python.bin} setup.py" destroot.cmd "${t_build_env} ${python.bin} setup.py install" post-destroot { set py_torch_root ${py_lib_root}/lib/python${PythonVersionWithDot}/site-packages/torch foreach slib [glob -directory ${destroot}${py_torch_root} *.so] { system "install_name_tool -add_rpath ${py_torch_root}/lib ${slib}" } } livecheck.type none }