Files
macports-ports/R/R-RcppParallel/Portfile
T

84 lines
3.4 KiB
Tcl
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# -*- 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 R 1.0
R.setup cran RcppCore RcppParallel 5.1.7
revision 3
categories-append devel
maintainers {@barracuda156 gmail.com:vital.had} openmaintainer
license GPL-3
description High level functions for parallel programming with Rcpp
long_description {*}${description}
homepage https://rcppcore.github.io/RcppParallel
checksums rmd160 988c8b20fc31ac86c1d16ec54973b2c1c3f9b207 \
sha256 f9c30eb9ce1abffc590825d513d6d28dcbe970e36032dd7521febf04e905b29c \
size 1629119
patch.pre_args-replace -p0 -p1
patchfiles 0001-Fix-macos.inc.patch \
0002-proxy_overload-for-10.7.patch \
0003-patch-tbb-arch.diff
post-patch {
reinplace "s|@MACOS_V@|${macosx_deployment_target}|" ${worksrcpath}/src/tbb/build/macos.inc
# https://github.com/RcppCore/RcppParallel/issues/176
if {[string match *gcc* ${configure.compiler}]} {
# "gcc-mp-12" is not supported on macos. Add build/macos.gcc-mp-12.inc file with compiler-specific settings.
reinplace "s|@CC@|gcc|g" ${worksrcpath}/src/tbb/build/macos.inc
# Don't use libcxx with gcc.
reinplace "s|@STDLIB@|libstdc++|" ${worksrcpath}/src/tbb/build/macos.inc
} else {
# This just reverts the patch to Clang hardcoding:
reinplace "s|@CC@|clang|g" ${worksrcpath}/src/tbb/build/macos.inc
reinplace "s|@STDLIB@|libc++|" ${worksrcpath}/src/tbb/build/macos.inc
}
# Propagating arch via env does not work for tests. Notice, the following
# implies monoarch build. If R goes universal, alternative solution will be needed.
if {${build_arch} eq "arm64"} {
reinplace "s|@TBB_ARCH@|arm64|" ${worksrcpath}/src/Makevars.in
} elseif {${build_arch} eq "i386"} {
reinplace "s|@TBB_ARCH@|ia32|" ${worksrcpath}/src/Makevars.in
} elseif {${build_arch} eq "ppc"} {
reinplace "s|@TBB_ARCH@|ppc32|" ${worksrcpath}/src/Makevars.in
} elseif {${build_arch} eq "ppc64"} {
reinplace "s|@TBB_ARCH@|ppc64|" ${worksrcpath}/src/Makevars.in
} elseif {${build_arch} eq "x86_64"} {
reinplace "s|@TBB_ARCH@|intel64|" ${worksrcpath}/src/Makevars.in
}
}
platform powerpc {
# Otherwise configure script does nonsense, setting arch to ppc64 on G5 regardless of Macports settings and OS support of ppc64.
if {${build_arch} eq "ppc64"} {
configure.env-append \
arch=ppc64
build.env-append \
arch=ppc64
test.env-append \
arch=ppc64
} else {
configure.env-append \
arch=ppc32
build.env-append \
arch=ppc32
test.env-append \
arch=ppc32
}
}
# It is also possible to configure RcppParallel to use external TBB:
# https://github.com/RcppCore/RcppParallel
# This has not been tested though.
# depends_lib-append path:lib/libtbb.dylib:onetbb
# configure.args-append TBB=${prefix} \
# TBB_INC=${prefix}include/tbb \
# TBB_LIB=${prefix}/lib
depends_test-append port:R-knitr \
port:R-Rcpp \
port:R-rmarkdown \
port:R-RUnit
test.run yes