You've already forked macports-ports
mirror of
https://github.com/macports/macports-ports.git
synced 2026-07-12 18:20:25 -07:00
134 lines
5.3 KiB
Tcl
134 lines
5.3 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 cmake 1.1
|
|
PortGroup github 1.0
|
|
PortGroup legacysupport 1.1
|
|
|
|
# needed for strnlen
|
|
legacysupport.newest_darwin_requires_legacy 10
|
|
|
|
github.setup tpoechtrager apple-libtapi b8c5ac40267aa5f6004dd38cc2b2cd84f2d9d555
|
|
github.tarball_from archive
|
|
name libtapi
|
|
set libtapi_version 1300.6.5
|
|
version ${libtapi_version}-20231128
|
|
revision 0
|
|
categories devel
|
|
maintainers nomaintainer
|
|
|
|
license APSL-2
|
|
description ${name} adds ld64 linker support for text-based API libraries.
|
|
long_description ${description} Newer MacOS SDKs contain only these TAPI stubs.
|
|
|
|
homepage http://opensource.apple.com/source/tapi/
|
|
|
|
checksums rmd160 3d23582b49139c042574f3e46a81ae927eff9fe9 \
|
|
sha256 3b75098ee01571102e605c76b219075c607df0dd459e65fc04cb282fbe7c65cb \
|
|
size 38637843
|
|
|
|
set python_branch 3.11
|
|
set python_version [string map {. {}} ${python_branch}]
|
|
|
|
depends_build-append port:python${python_version}
|
|
configure.args-append -DPYTHON_EXECUTABLE=${prefix}/bin/python${python_branch}
|
|
|
|
# remove need for port:libxml2 dependency
|
|
configure.args-append -DLIBXML2_LIBRARIES=IGNORE
|
|
|
|
# avoid opportunistic linking zlib
|
|
configure.args-append -DLLVM_ENABLE_ZLIB=OFF
|
|
|
|
# avoid opportunistic linking ncuses
|
|
configure.args-append -DLLVM_ENABLE_TERMINFO=OFF
|
|
|
|
compiler.cxx_standard 2017
|
|
cmake.build_type Release
|
|
|
|
# needs support for llvm::Expect, which requires c++17 inline variables (clang 3.9+)
|
|
compiler.blacklist-append {clang < 801} {macports-clang-3.[3-8]}
|
|
|
|
# needs gcc8 or later to compile
|
|
# $SRC_DIR/src/llvm/projects/libtapi/lib/Core/APIJSONSerializer.cpp:1202:10: error: could not convert
|
|
# 'result' from 'tapi::internal::API' to 'llvm::Expected<tapi::internal::API>' return result;
|
|
compiler.blacklist-append *gcc-3.* *gcc-4.* *gcc-5.* *gcc-6.* *gcc-7.*
|
|
|
|
if {[string match macports-clang-* ${configure.compiler}]} {
|
|
depends_build-append port:cctools
|
|
depends_skip_archcheck-append cctools
|
|
configure.args-append -DCMAKE_LIBTOOL=${prefix}/bin/libtool
|
|
}
|
|
|
|
if {(${os.platform} eq "darwin" && ${os.major} < 11) || [string match macports-gcc-* ${configure.compiler}]} {
|
|
# the default ld64-127 linker cannot build this with LTO at present in this configuration
|
|
# if we could test the linker version, we might be able to enable it
|
|
# if a newer linker than 127 is installed -- not sure where the cutoff is
|
|
configure.args-append -DLLVM_ENABLE_LTO=OFF
|
|
} else {
|
|
# libtool will error on llvm bitcode generated by a clang version
|
|
# newer than the libLTO.dylib cctools is built against
|
|
# making sure cctools is built against the newest llvm in use prevents this, but we can't
|
|
# always guarantee that will be the case
|
|
|
|
# we can instead set DYLD_LIBRARY_PATH to the libLTO.dylib that matches the building clang
|
|
# then libtool will use that libLTO.dylib instead, which matches the clang objects
|
|
|
|
set clangversion [lindex [split ${configure.compiler} -] 2]
|
|
build.env DYLD_LIBRARY_PATH=${prefix}/libexec/llvm-$clangversion/lib/
|
|
}
|
|
|
|
# libtapi might be used as part of bootstrap process for clang, avoid dependency cycle
|
|
# when MacPorts decided to use MacPorts clang by replacing compiler to clang-11-bootstrap.
|
|
if {[string match macports-clang-* ${configure.compiler}]} {
|
|
configure.compiler.add_deps no
|
|
|
|
depends_build-append port:clang-11-bootstrap
|
|
depends_skip_archcheck-append \
|
|
clang-11-bootstrap
|
|
|
|
configure.cc ${prefix}/libexec/clang-11-bootstrap/bin/clang
|
|
configure.cxx ${prefix}/libexec/clang-11-bootstrap/bin/clang++
|
|
|
|
configure.cxx_stdlib libc++
|
|
depends_lib-append port:libcxx
|
|
}
|
|
|
|
if {${os.platform} eq "darwin" && ${os.major} < 11} {
|
|
# Proxy for eliminating the dependency on native TLS
|
|
# http://trac.macports.org/ticket/46887
|
|
configure.args-append -DLLVM_ENABLE_BACKTRACES=OFF
|
|
|
|
# https://llvm.org/bugs/show_bug.cgi?id=25680
|
|
configure.cxxflags-append -U__STRICT_ANSI__
|
|
}
|
|
|
|
if {${configure.build_arch} in [list ppc ppc64]} {
|
|
configure.args-append \
|
|
-DTAPI_SUPPORTED_ARCHS="ppc\;ppc64"
|
|
}
|
|
|
|
configure.post_args ${worksrcpath}/src/llvm
|
|
|
|
# needed for libtapi to find some required files
|
|
configure.cxxflags-append \
|
|
-I${worksrcpath}/src/llvm/projects/clang/include \
|
|
-I${cmake.build_dir}/projects/clang/include
|
|
|
|
configure.args-append -DLLVM_INCLUDE_TESTS=OFF \
|
|
-DTAPI_INCLUDE_DOCS=ON \
|
|
-DLLVM_ENABLE_PROJECTS="tapi\;clang" \
|
|
-DTAPI_REPOSITORY_STRING=${libtapi_version} \
|
|
-DTAPI_FULL_VERSION=${libtapi_version}
|
|
|
|
build.target libtapi \
|
|
tapi \
|
|
tapi-docs \
|
|
tapi-headers
|
|
|
|
destroot.target install-libtapi \
|
|
install-tapi \
|
|
install-tapi-docs \
|
|
install-tapi-headers
|
|
|
|
github.livecheck.branch ${version}
|