You've already forked macports-ports
mirror of
https://github.com/encounter/macports-ports.git
synced 2026-03-30 11:29:27 -07:00
183 lines
5.4 KiB
Tcl
183 lines
5.4 KiB
Tcl
# -*- 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 compiler_blacklist_versions 1.0
|
|
PortGroup github 1.0
|
|
PortGroup mpi 1.0
|
|
PortGroup python 1.0
|
|
|
|
name py-pytorch
|
|
version 1.8.1
|
|
revision 1
|
|
github.setup pytorch pytorch ${version} v
|
|
fetch.type git
|
|
|
|
platforms darwin
|
|
supported_archs x86_64
|
|
|
|
license BSD
|
|
|
|
maintainers nomaintainer
|
|
|
|
description Tensors and dynamic neural networks in Python\
|
|
with strong GPU acceleration
|
|
|
|
long_description PyTorch is a Python package that provides two\
|
|
high-level features: Tensor computation (like\
|
|
NumPy) with strong GPU acceleration\; Deep neural\
|
|
networks built on a tape-based autograd\
|
|
system. You can reuse your favorite Python\
|
|
packages such as NumPy, SciPy and Cython to extend\
|
|
PyTorch when needed.
|
|
|
|
homepage https://pytorch.org/
|
|
|
|
python.versions 37 38 39
|
|
|
|
patch.pre_args -p1
|
|
|
|
mpi.setup
|
|
|
|
# Compiler selection
|
|
compiler.cxx_standard 2017
|
|
|
|
compiler.blacklist-append *gcc* {clang < 800} {macports-clang-3.[0-9]} macports-clang-4.0
|
|
|
|
variant mkl description {Enable Intel Math Kernel Library support} { }
|
|
default_variants-append +mkl
|
|
|
|
if {${os.platform} eq "darwin" && ${os.major} <= 15} {
|
|
known_fail yes
|
|
pre-fetch {
|
|
ui_error "$subport is not supported on OS X 10.11 and older."
|
|
return -code error "unsupported platform"
|
|
}
|
|
}
|
|
|
|
if {${name} ne ${subport}} {
|
|
|
|
depends_build-append \
|
|
port:git \
|
|
port:doxygen \
|
|
port:cctools \
|
|
path:bin/cmake:cmake \
|
|
port:py${python.version}-setuptools
|
|
|
|
depends_lib-append \
|
|
port:eigen3 \
|
|
port:gmp \
|
|
port:mpfr \
|
|
port:OpenBLAS \
|
|
port:opencv4 \
|
|
port:zmq \
|
|
port:zstd \
|
|
port:tbb \
|
|
port:google-glog \
|
|
port:gflags \
|
|
port:leveldb \
|
|
port:lmdb \
|
|
port:libomp \
|
|
port:py${python.version}-click \
|
|
port:py${python.version}-cffi \
|
|
port:py${python.version}-future \
|
|
port:py${python.version}-gmpy \
|
|
port:py${python.version}-numpy \
|
|
port:py${python.version}-pybind11 \
|
|
port:py${python.version}-typing_extensions \
|
|
port:py${python.version}-yaml
|
|
|
|
if { ${python.version} < 37 } {
|
|
depends_lib-append port:py${python.version}-dataclasses
|
|
}
|
|
|
|
depends_run-append \
|
|
port:py${python.version}-onnx
|
|
|
|
post-fetch {
|
|
system -W ${worksrcpath} "git submodule update --init --recursive"
|
|
}
|
|
|
|
# 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|${python.prefix}|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
|
|
}
|
|
|
|
# ZSTD support broke with 1.2.0-1.3.1. Check with future releases.
|
|
build.env-append \
|
|
CMAKE_LIBRARY_PATH=${prefix}/lib:${prefix}/lib/libomp \
|
|
LIBRARY_PATH=${prefix}/lib:${prefix}/lib/libomp \
|
|
OpenCV_DIR=${prefix}/libexec/opencv4/cmake \
|
|
USE_CUDA=OFF \
|
|
USE_GFLAGS=ON \
|
|
USE_GLOG=ON \
|
|
USE_LEVELDB=ON \
|
|
USE_LITE_PROTO=ON \
|
|
USE_LMDB=ON \
|
|
USE_METAL=ON \
|
|
USE_NCCL=ON \
|
|
USE_OPENCV=ON \
|
|
USE_OPENMP=ON \
|
|
USE_ROCM=ON \
|
|
USE_TBB=ON \
|
|
USE_ZMQ=ON \
|
|
USE_ZSTD=OFF
|
|
|
|
# TODO: CCache support might be worth adding to Python portgroup
|
|
if {[tbool configure.ccache]} {
|
|
build.env-append \
|
|
CMAKE_C_COMPILER_LAUNCHER=${prefix}/bin/ccache \
|
|
CMAKE_CXX_COMPILER_LAUNCHER=${prefix}/bin/ccache
|
|
}
|
|
|
|
build.dir ${worksrcpath}
|
|
build.post_args
|
|
|
|
destroot.dir ${worksrcpath}
|
|
destroot.target install
|
|
|
|
post-destroot {
|
|
set py_torch_root ${python.pkgd}/torch
|
|
foreach slib [glob -directory ${destroot}${py_torch_root} *.so] {
|
|
system "install_name_tool -add_rpath ${py_torch_root}/lib ${slib}"
|
|
}
|
|
|
|
set docdir ${prefix}/share/doc/${subport}
|
|
xinstall -d ${destroot}${docdir}
|
|
xinstall -m 0644 -W ${worksrcpath} LICENSE README.md \
|
|
${destroot}${docdir}
|
|
}
|
|
|
|
# pytorch's tests all use GPU compilation
|
|
if { [lsearch build.env {USE_CUDA=OFF}] != -1 } {
|
|
depends_test-append \
|
|
port:py${python.version}-pytest
|
|
pre-test {
|
|
test.env \
|
|
PYTHONPATH=[glob -nocomplain ${worksrcpath}/build/lib*]
|
|
}
|
|
test.run yes
|
|
test.cmd py.test-${python.branch}
|
|
test.target test/run_test.py
|
|
}
|
|
|
|
livecheck.type none
|
|
|
|
} else {
|
|
|
|
# overload the github livecheck regex to look for versions that
|
|
# are just numbers and '.', no letters (e.g., "3.7.3_rc2").
|
|
github.livecheck.regex {([0-9.]+)}
|
|
|
|
}
|