mirror of
https://git.FreeBSD.org/ports.git
synced 2024-12-20 04:02:27 +00:00
Mk/Uses/ninja.mk: Add support for devel/samurai (D29353)
Samurai is a Ninja-compatible build tool with fewer dependencies than Ninja. Hook it to the framework via a new NINJA_DEFAULT. This also adds %p to NINJA_STATUS to make Ninja or Samurai print the percentage of completed jobs to make it easier to eyeball how much of the build is done. PR: 254678 Exp-run by: antoine
This commit is contained in:
parent
18f78deb53
commit
a91d65363f
@ -2,26 +2,77 @@
|
||||
#
|
||||
# Feature: ninja
|
||||
# Usage: USES=ninja
|
||||
# Valid ARGS: build, make (default), run
|
||||
#
|
||||
# build add a build dependency on ninja
|
||||
# make use ninja for the build instead of make, implies "build"
|
||||
# run add a run dependency on ninja
|
||||
#
|
||||
# MAINTAINER: portmgr@FreeBSD.org
|
||||
|
||||
.if !defined(_INCLUDE_USES_NINJA_MK)
|
||||
_INCLUDE_USES_NINJA_MK= yes
|
||||
|
||||
.if !empty(ninja_ARGS)
|
||||
IGNORE= Incorrect 'USES+= ninja:${ninja_ARGS}' ninja takes no arguments
|
||||
_valid_ARGS= build make run
|
||||
|
||||
.for _arg in ${ninja_ARGS}
|
||||
. if empty(_valid_ARGS:M${_arg})
|
||||
IGNORE= 'USES+= ninja:${ninja_ARGS}' usage: argument [${_arg}] is not recognized
|
||||
. endif
|
||||
.endfor
|
||||
|
||||
.if empty(ninja_ARGS)
|
||||
ninja_ARGS+= make
|
||||
.endif
|
||||
|
||||
.if ${ninja_ARGS:Mmake}
|
||||
ninja_ARGS+= build
|
||||
.endif
|
||||
|
||||
.if ${NINJA_DEFAULT} == ninja
|
||||
NINJA_CMD= ninja
|
||||
_NINJA_PORT= devel/ninja
|
||||
.elif ${NINJA_DEFAULT} == samurai
|
||||
NINJA_CMD= samu
|
||||
_NINJA_PORT= devel/samurai
|
||||
MAKE_ENV+= SAMUFLAGS="-v -j${MAKE_JOBS_NUMBER}"
|
||||
. if ${ninja_ARGS:Mbuild} && !${BINARY_ALIAS:U:Mninja=*}
|
||||
# Cmake and Meson have native support for Samurai and detect and
|
||||
# use it when Ninja is not available in the build environment. The
|
||||
# alias is needed for other ports which call Ninja directly and do
|
||||
# not fall back to Samurai. There should be no harm in providing it
|
||||
# generally.
|
||||
BINARY_ALIAS+= ninja=samu
|
||||
. endif
|
||||
.else
|
||||
IGNORE= invalid DEFAULT_VERSIONS+=ninja=${NINJA_DEFAULT}
|
||||
.endif
|
||||
|
||||
.if ${ninja_ARGS:Mbuild}
|
||||
BUILD_DEPENDS+= ${NINJA_CMD}:${_NINJA_PORT}
|
||||
# Humanize build log and include percentage of completed jobs %p in it.
|
||||
# See samu(1) or the Ninja manual.
|
||||
MAKE_ENV+= NINJA_STATUS="[%p %s/%t] "
|
||||
.endif
|
||||
|
||||
.if ${ninja_ARGS:Mmake}
|
||||
. if ${NINJA_DEFAULT} == ninja
|
||||
# samu does not support GNU-style args, so we cannot just append
|
||||
# -v last. samu gets this via SAMUFLAGS above but ninja does not
|
||||
# support an equivalent environment variable.
|
||||
MAKE_ARGS+= -v
|
||||
|
||||
BUILD_DEPENDS+= ninja:devel/ninja
|
||||
|
||||
. endif
|
||||
CMAKE_ARGS+= -GNinja
|
||||
MAKEFILE=
|
||||
MAKE_CMD= ninja
|
||||
MAKE_CMD= ${NINJA_CMD}
|
||||
MAKE_FLAGS=
|
||||
# Set a minimal job of 1
|
||||
_MAKE_JOBS= -j${MAKE_JOBS_NUMBER}
|
||||
_DESTDIR_VIA_ENV= yes
|
||||
.endif
|
||||
|
||||
.if ${ninja_ARGS:Mrun}
|
||||
RUN_DEPENDS+= ${NINJA_CMD}:${_NINJA_PORT}
|
||||
.endif
|
||||
|
||||
.endif
|
||||
|
@ -18,7 +18,7 @@ _INCLUDE_BSD_DEFAULT_VERSIONS_MK= yes
|
||||
LOCALBASE?= /usr/local
|
||||
|
||||
.for lang in APACHE BDB COROSYNC EMACS FIREBIRD FORTRAN FPC GCC GHOSTSCRIPT \
|
||||
IMAGEMAGICK JAVA LAZARUS LIBRSVG2 LINUX LLVM LUA MYSQL PERL5 \
|
||||
IMAGEMAGICK JAVA LAZARUS LIBRSVG2 LINUX LLVM LUA MYSQL NINJA PERL5 \
|
||||
PGSQL PHP PYTHON PYTHON2 PYTHON3 RUBY RUST SAMBA SSL TCLTK VARNISH
|
||||
.if defined(${lang}_DEFAULT)
|
||||
ERROR+= "The variable ${lang}_DEFAULT is set and it should only be defined through DEFAULT_VERSIONS+=${lang:tl}=${${lang}_DEFAULT} in /etc/make.conf"
|
||||
@ -81,6 +81,8 @@ LUA_DEFAULT?= 5.2
|
||||
MONO_DEFAULT= 5.10
|
||||
# Possible values: 5.5, 5.6, 5.7, 8.0, 10.3m, 10.4m, 10.5m, 5.5p, 5.6p, 5.7p, 5.6w, 5.7w
|
||||
MYSQL_DEFAULT?= 5.7
|
||||
# Possible values: ninja, samurai
|
||||
NINJA_DEFAULT?= ninja
|
||||
# Possible values: 5.28, 5.30, 5.32, devel
|
||||
.if !exists(${LOCALBASE}/bin/perl) || (!defined(_PORTS_ENV_CHECK) && \
|
||||
defined(PACKAGE_BUILDING))
|
||||
|
@ -11,11 +11,10 @@ COMMENT= Tool for multi-repo development
|
||||
LICENSE= BSD3CLAUSE
|
||||
LICENSE_FILE= ${WRKSRC}/LICENSE
|
||||
|
||||
BUILD_DEPENDS= cmake:devel/cmake \
|
||||
ninja:devel/ninja
|
||||
BUILD_DEPENDS= cmake:devel/cmake
|
||||
RUN_DEPENDS= git:devel/git
|
||||
|
||||
USES= go:modules
|
||||
USES= go:modules ninja:build
|
||||
|
||||
GITHASH= 1eee1043d12d1baabae7f2466cc0b1646395e32c
|
||||
TIMESTAMP= 2020-08-28T00:00:00.000000
|
||||
|
@ -11,10 +11,9 @@ COMMENT= High performance build system
|
||||
LICENSE= APACHE20
|
||||
LICENSE_FILE= ${WRKSRC}/COPYING
|
||||
|
||||
RUN_DEPENDS= ninja:devel/ninja
|
||||
TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytest-xdist>0:devel/py-pytest-xdist@${PY_FLAVOR}
|
||||
|
||||
USES= python:3.6+ shebangfix
|
||||
USES= ninja:run python:3.6+ shebangfix
|
||||
USE_PYTHON= autoplist distutils noflavors
|
||||
SHEBANG_FILES= mesonbuild/rewriter.py \
|
||||
mesonbuild/scripts/cmake_run_ctgt.py
|
||||
|
@ -9,11 +9,10 @@ COMMENT= Go compiler for small places
|
||||
LICENSE= BSD3CLAUSE
|
||||
LICENSE_FILE= ${WRKSRC}/LICENSE
|
||||
|
||||
BUILD_DEPENDS= cmake:devel/cmake \
|
||||
ninja:devel/ninja
|
||||
BUILD_DEPENDS= cmake:devel/cmake
|
||||
TEST_DEPENDS= qemu-system-arm:emulators/qemu
|
||||
|
||||
USES= gmake go:modules,run python:build
|
||||
USES= gmake go:modules,run ninja:build python:build
|
||||
|
||||
USE_GITHUB= yes
|
||||
GH_ACCOUNT= tinygo-org
|
||||
|
@ -14,13 +14,12 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
|
||||
|
||||
BUILD_DEPENDS= cmake:devel/cmake \
|
||||
h3>=${PORTVERSION:R}:graphics/h3 \
|
||||
ninja:devel/ninja \
|
||||
${PYTHON_PKGNAMEPREFIX}scikit-build>=0:devel/py-scikit-build@${PY_FLAVOR}
|
||||
LIB_DEPENDS= libh3.so:graphics/h3
|
||||
TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}numpy>=0,1:math/py-numpy@${PY_FLAVOR} \
|
||||
${PYTHON_PKGNAMEPREFIX}pytest>=0:devel/py-pytest@${PY_FLAVOR}
|
||||
|
||||
USES= localbase:ldflags python:3.6+
|
||||
USES= localbase:ldflags ninja:build python:3.6+
|
||||
USE_PYTHON= autoplist concurrent cython distutils
|
||||
|
||||
CFLAGS+= -I${LOCALBASE}/include/h3
|
||||
|
@ -9,8 +9,7 @@ CATEGORIES= japanese
|
||||
MAINTAINER= hrs@FreeBSD.org
|
||||
COMMENT?= Mozc Japanese Input Method, Server
|
||||
|
||||
BUILD_DEPENDS= ninja:devel/ninja \
|
||||
${PYTHON_PKGNAMEPREFIX}gyp>=20200512:devel/py-gyp@${PY_FLAVOR}
|
||||
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}gyp>=20200512:devel/py-gyp@${PY_FLAVOR}
|
||||
EXTRACT_DEPENDS=${PYTHON_CMD}:${PYTHON_PORTSDIR}
|
||||
LIB_DEPENDS= libprotobuf.so:devel/protobuf \
|
||||
libzinnia.so:japanese/zinnia
|
||||
@ -25,8 +24,8 @@ USE_GITHUB= yes
|
||||
GH_ACCOUNT= hrs-allbsd
|
||||
GH_TUPLE= hiroyuki-komatsu:japanese-usage-dictionary:e5b3425:udic
|
||||
|
||||
USES= compiler:c++11-lang pkgconfig gmake \
|
||||
tar:bzip2 python:3.5+,build shebangfix
|
||||
USES= compiler:c++11-lang gmake ninja:build pkgconfig \
|
||||
python:3.5+,build shebangfix tar:bzip2
|
||||
SHEBANG_FILES= src/build_mozc.py
|
||||
BUILD_WRKSRC= ${WRKSRC}/src
|
||||
|
||||
|
@ -79,7 +79,7 @@ MONODEV_CONFIGURE_ON= --enable-icall-symbol-map --enable-icall-export --with-cra
|
||||
|
||||
NINJA_DESC= Use ninja to build wherever possible
|
||||
NINJA_CONFIGURE_ON= ninja
|
||||
NINJA_BUILD_DEPENDS= ninja>0:devel/ninja
|
||||
NINJA_USES= ninja:build
|
||||
|
||||
NLS_DESC= NLS Localization Support
|
||||
NLS_CONFIGURE_OFF= --disable-nls
|
||||
|
@ -29,7 +29,6 @@ ONLY_FOR_ARCHS_REASON= untested on other archs
|
||||
|
||||
BUILD_DEPENDS= cmake:devel/cmake \
|
||||
gmake:devel/gmake \
|
||||
ninja:devel/ninja \
|
||||
rust>=${PORTVERSION}:lang/rust
|
||||
|
||||
FLAVORS= aarch64 amd64 armv6 armv7 i386 powerpc64_elfv1 powerpc64_elfv2 powerpc64le
|
||||
@ -46,7 +45,7 @@ powerpc64_elfv1_BUILD_DEPENDS= powerpc64-gcc9>0:devel/freebsd-gcc9@powerpc64
|
||||
powerpc64_elfv2_PKGNAMEPREFIX= powerpc64-elfv2-
|
||||
powerpc64le_PKGNAMEPREFIX= powerpc64le-
|
||||
|
||||
USES= perl5 python:3.6+,build tar:xz
|
||||
USES= ninja:build perl5 python:3.6+,build tar:xz
|
||||
.if ${FLAVOR} == powerpc64_elfv1
|
||||
USE_GCC= 9:build
|
||||
.endif
|
||||
|
@ -28,11 +28,10 @@ IGNORE_FreeBSD_11_powerpc64= is missing a bootstrap for FreeBSD 11.x powerpc64
|
||||
ONLY_FOR_ARCHS?= aarch64 amd64 armv6 armv7 i386 powerpc64 powerpc64le
|
||||
ONLY_FOR_ARCHS_REASON?= requires prebuilt bootstrap compiler
|
||||
|
||||
BUILD_DEPENDS= cmake:devel/cmake \
|
||||
ninja:devel/ninja
|
||||
BUILD_DEPENDS= cmake:devel/cmake
|
||||
LIB_DEPENDS= libcurl.so:ftp/curl
|
||||
|
||||
USES= pkgconfig python:3.6+,build ssl tar:xz
|
||||
USES= ninja:build pkgconfig python:3.6+,build ssl tar:xz
|
||||
|
||||
MAKE_ENV= DESTDIR=${STAGEDIR} \
|
||||
OPENSSL_DIR="${OPENSSLBASE}" \
|
||||
|
@ -12,13 +12,12 @@ LICENSE= BSD3CLAUSE
|
||||
|
||||
BUILD_DEPENDS= ${PYNUMPY} \
|
||||
${PYTHON_PKGNAMEPREFIX}scikit-build>0:devel/py-scikit-build@${PY_FLAVOR} \
|
||||
${LOCALBASE}/bin/cmake:devel/cmake \
|
||||
${LOCALBASE}/bin/ninja:devel/ninja
|
||||
cmake:devel/cmake
|
||||
LIB_DEPENDS= libpdal_base.so:math/pdal
|
||||
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}packaging>=0:devel/py-packaging@${PY_FLAVOR} \
|
||||
${PYNUMPY}
|
||||
|
||||
USES= compiler:c++11-lang python:3.6+
|
||||
USES= compiler:c++11-lang ninja:build python:3.6+
|
||||
USE_PYTHON= autoplist cython distutils
|
||||
|
||||
post-install:
|
||||
|
@ -142,7 +142,6 @@ BUILD_DEPENDS= bash:shells/bash \
|
||||
pari-nftables>0:math/pari_nftables \
|
||||
pari-seadata>0:math/pari_seadata\
|
||||
QuadraticSieve:math/flintqs \
|
||||
ninja:devel/ninja \
|
||||
gpatch:devel/patch \
|
||||
rubiks>0:math/rubiks \
|
||||
sympow:math/sympow \
|
||||
@ -338,9 +337,10 @@ RUN_DEPENDS= bash:shells/bash \
|
||||
yasm:devel/yasm \
|
||||
pixz:archivers/pixz
|
||||
|
||||
USES= autoreconf blaslapack:openblas compiler:c++11-lib fortran \
|
||||
gettext gmake gnome iconv jpeg libtool localbase ncurses perl5 \
|
||||
pkgconfig python:3.7+ readline shebangfix sqlite tk xorg
|
||||
USES= autoreconf blaslapack:openblas compiler:c++11-lib fortran \
|
||||
gettext gmake gnome iconv jpeg libtool localbase ncurses \
|
||||
ninja:build perl5 pkgconfig python:3.7+ readline shebangfix \
|
||||
sqlite tk xorg
|
||||
USE_TEX= latex:build pdftex:build tex:build
|
||||
USE_XORG= x11 xext xscrnsaver
|
||||
USE_GNOME= cairo glib20 pango
|
||||
|
@ -37,8 +37,8 @@ LIB_DEPENDS= libdbus-1.so:devel/dbus \
|
||||
libopus.so:audio/opus \
|
||||
libjansson.so:devel/jansson
|
||||
|
||||
USES= autoreconf:build compiler:c11 gmake iconv \
|
||||
libtool:build localbase:ldflags pkgconfig python:3.6+,build
|
||||
USES= autoreconf:build compiler:c11 gmake iconv libtool:build \
|
||||
localbase:ldflags ninja:build pkgconfig python:3.6+,build
|
||||
|
||||
CONTRIB_FILES= fdk-aac-2.0.1.tar.gz \
|
||||
ffmpeg-4.2.3.tar.bz2 \
|
||||
|
@ -8,9 +8,7 @@ COMMENT= USB floppy disk interface for reading and writing non-PC disk formats
|
||||
LICENSE= MIT
|
||||
LICENSE_FILE= ${WRKSRC}/COPYING.md
|
||||
|
||||
BUILD_DEPENDS= ninja:devel/ninja
|
||||
|
||||
USES= pkgconfig gmake compiler:gcc-c++11-lib sqlite
|
||||
USES= compiler:gcc-c++11-lib gmake ninja:build pkgconfig sqlite
|
||||
|
||||
USE_GITHUB= yes
|
||||
GH_ACCOUNT= davidgiven
|
||||
|
@ -15,7 +15,7 @@ BUILD_DEPENDS= binutils>0:devel/binutils \
|
||||
gn:devel/gn \
|
||||
libunwind>0:devel/libunwind
|
||||
|
||||
USES= cargo ninja pkgconfig:build python:3.6+,build
|
||||
USES= cargo ninja:build pkgconfig:build python:3.6+,build
|
||||
|
||||
USE_GITHUB= yes
|
||||
GH_ACCOUNT= denoland
|
||||
@ -27,7 +27,7 @@ RUSTY_VERS= 0.21.0
|
||||
|
||||
CARGO_ENV+= CLANG_BASE_PATH=/usr \
|
||||
GN=${PREFIX}/bin/gn \
|
||||
NINJA=${PREFIX}/bin/ninja \
|
||||
NINJA=${NINJA_CMD} \
|
||||
V8_FROM_SOURCE=1
|
||||
RUSTFLAGS+= -C link-arg=-fuse-ld=lld
|
||||
|
||||
|
@ -24,7 +24,6 @@ MAINTAINER= kde@FreeBSD.org
|
||||
COMMENT= Qt 5 library to render web content
|
||||
|
||||
BUILD_DEPENDS= bison:devel/bison \
|
||||
ninja:devel/ninja \
|
||||
yasm:devel/yasm \
|
||||
${LOCALBASE}/include/linux/input.h:devel/evdev-proto \
|
||||
${LOCALBASE}/include/linux/videodev2.h:multimedia/v4l_compat
|
||||
@ -72,7 +71,7 @@ SNDIO_VARS_OFF= QMAKE_CONFIGURE_ARGS+=-no-sndio
|
||||
# We pass `norecursive' to USES=qmake because src/plugins/plugins.pro checks
|
||||
# whether webenginewidgets is available, which fails when qmake processes all
|
||||
# .pro files at once.
|
||||
USES= gl gnome gperf jpeg python:2.7,build pkgconfig \
|
||||
USES= gl gnome gperf jpeg ninja:build pkgconfig python:2.7,build \
|
||||
qmake:norecursive,outsource qt-dist:5,webengine shebangfix xorg
|
||||
USE_GL= gl
|
||||
USE_GNOME= glib20 libxml2 libxslt
|
||||
|
Loading…
Reference in New Issue
Block a user