mirror of
https://github.com/macports/macports-ports.git
synced 2026-07-12 18:20:25 -07:00
149 lines
5.5 KiB
Tcl
149 lines
5.5 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 boost 1.0
|
|
PortGroup cmake 1.1
|
|
PortGroup github 1.0
|
|
PortGroup legacysupport 1.1
|
|
PortGroup mpi 1.0
|
|
|
|
# clock_gettime
|
|
# On <10.15 built-in libc++ has no support for std::filesystem
|
|
legacysupport.use_mp_libcxx yes
|
|
legacysupport.newest_darwin_requires_legacy 18
|
|
|
|
github.setup pika-org pika 0.30.1
|
|
revision 1
|
|
categories devel parallel
|
|
license Boost-1
|
|
maintainers nomaintainer
|
|
description C++ library for concurrency and parallelism
|
|
long_description pika is a C++ library for concurrency and parallelism. \
|
|
It implements senders/receivers for CPU thread pools, MPI and CUDA.
|
|
checksums rmd160 56dd621b8cded126322d8fbff94ef5878acf8914 \
|
|
sha256 b0f3689a3edd30f8d674e19b5134fc5013813f843c45797c1015163e51989ac0 \
|
|
size 1179489
|
|
github.tarball_from archive
|
|
|
|
# Prefer a version with libcontext working across all archs (ppc64 is still not fixed):
|
|
boost.version 1.81
|
|
|
|
# https://github.com/pika-org/pika/issues/1236
|
|
patchfiles-append patch-fix-finding-boost.diff
|
|
|
|
# Keep in sync with spdlog port:
|
|
set port_libfmt libfmt10
|
|
cmake.prefix_path-append \
|
|
${prefix}/lib/${port_libfmt}/cmake
|
|
|
|
depends_lib-append port:hwloc \
|
|
port:${port_libfmt} \
|
|
port:spdlog
|
|
|
|
if {${os.platform} eq "darwin" && ${os.arch} eq "powerpc"} {
|
|
mpi.setup require -gcc6 -gcc7 -gcc8 -clang -fortran
|
|
} else {
|
|
mpi.setup require -gcc6 -gcc7 -gcc8
|
|
}
|
|
|
|
compiler.thread_local_storage yes
|
|
compiler.cxx_standard 2017
|
|
compiler.blacklist-append \
|
|
{clang < 1300} {macports-clang-[4-6].0}
|
|
|
|
configure.args-append \
|
|
-DPIKA_WITH_COMPILER_WARNINGS=ON \
|
|
-DPIKA_WITH_COMPILER_WARNINGS_AS_ERRORS=OFF \
|
|
-DPIKA_WITH_CUDA=OFF \
|
|
-DPIKA_WITH_DEPRECATION_WARNINGS=OFF \
|
|
-DPIKA_WITH_DISABLED_SIGNAL_EXCEPTION_HANDLERS=OFF \
|
|
-DPIKA_WITH_EXAMPLES=OFF \
|
|
-DPIKA_WITH_GPU_SUPPORT=OFF \
|
|
-DPIKA_WITH_HIDDEN_VISIBILITY=OFF \
|
|
-DPIKA_WITH_HIP=OFF \
|
|
-DPIKA_WITH_ITTNOTIFY=OFF \
|
|
-DPIKA_WITH_LOGGING=ON \
|
|
-DPIKA_WITH_MPI=ON \
|
|
-DPIKA_WITH_NICE_THREADLEVEL=OFF \
|
|
-DPIKA_WITH_PRECOMPILED_HEADERS=OFF \
|
|
-DPIKA_WITH_THREAD_LOCAL_STORAGE=ON \
|
|
-DPIKA_WITH_TESTS=OFF \
|
|
-DPIKA_WITH_TOOLS=OFF \
|
|
-DPIKA_WITH_UNITY_BUILD=ON
|
|
|
|
platform powerpc {
|
|
# For now disable multithreading until MPICH is verified to work correctly on PPC.
|
|
# Valgrind is broken on PPC. Sanitizers are currently unsupported.
|
|
configure.args-append \
|
|
-Dppc_support=ON \
|
|
-DPIKA_WITH_MPI_MULTITHREADED=OFF \
|
|
-DPIKA_WITH_VALGRIND=OFF \
|
|
-DPIKA_WITH_SANITIZERS=OFF
|
|
|
|
if {${build_arch} eq "ppc64"} {
|
|
# Remove this once Boost libcontext is fixed for ppc64:
|
|
configure.args-append \
|
|
-DPIKA_WITH_BOOST_CONTEXT=OFF
|
|
}
|
|
}
|
|
|
|
if {${os.platform} eq "darwin" && ${os.major} < 19} {
|
|
if {[string match macports-clang* ${configure.compiler}]} {
|
|
configure.cxxflags-append \
|
|
-fno-aligned-allocation \
|
|
-Wno-error=unused-command-line-argument
|
|
}
|
|
}
|
|
|
|
# https://github.com/pika-org/pika/issues/584
|
|
if {${cxx_stdlib} eq "libstdc++" && [string match macports-gcc* ${configure.compiler}]} {
|
|
set gcc_v [
|
|
string range ${configure.compiler} [
|
|
string length macports-gcc-
|
|
] end
|
|
]
|
|
if {${gcc_v} < 9} {
|
|
configure.ldflags-append -lstdc++fs
|
|
}
|
|
}
|
|
|
|
variant jemalloc conflicts tbb description "Use jemalloc instead of system malloc" {
|
|
depends_lib-append \
|
|
path:lib/pkgconfig/jemalloc.pc:jemalloc
|
|
configure.args-append \
|
|
-DPIKA_WITH_MALLOC=jemalloc
|
|
}
|
|
|
|
variant tbb conflicts jemalloc description "Use oneTBB instead of system malloc" {
|
|
depends_lib-append \
|
|
port:onetbb
|
|
configure.args-append \
|
|
-DPIKA_WITH_MALLOC=tbbmalloc
|
|
}
|
|
|
|
variant tests description "Enable testing" {
|
|
# Complete testsuite is massive. Enable only header tests by default.
|
|
configure.args-replace \
|
|
-DPIKA_WITH_TESTS=OFF -DPIKA_WITH_TESTS=ON
|
|
configure.args-append \
|
|
-DPIKA_WITH_ADDITIONAL_HWLOC_TESTING=ON \
|
|
-DPIKA_WITH_COMPILE_ONLY_TESTS=OFF \
|
|
-DPIKA_WITH_TESTS_BENCHMARKS=OFF \
|
|
-DPIKA_WITH_TESTS_EXAMPLES=OFF \
|
|
-DPIKA_WITH_TESTS_EXTERNAL_BUILD=OFF \
|
|
-DPIKA_WITH_TESTS_HEADERS=ON \
|
|
-DPIKA_WITH_TESTS_REGRESSIONS=OFF \
|
|
-DPIKA_WITH_TESTS_UNIT=OFF
|
|
test.run yes
|
|
test.cmd ctest
|
|
}
|
|
|
|
# Build system recommends against using system malloc.
|
|
if {${os.platform} eq "darwin" && ${os.major} < 10} {
|
|
# jemalloc does not build on <= 10.5.8 atm: https://trac.macports.org/ticket/65945
|
|
# Change this when either jemalloc or oneTBB is fixed for old systems.
|
|
default_variants
|
|
} else {
|
|
default_variants +jemalloc
|
|
}
|