Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 17 Apr 2017 18:55:56 +0000 (UTC)
From:      Koop Mast <kwm@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r438747 - in head: . Mk Mk/Uses
Message-ID:  <201704171855.v3HItuvb056589@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kwm
Date: Mon Apr 17 18:55:56 2017
New Revision: 438747
URL: https://svnweb.freebsd.org/changeset/ports/438747

Log:
  Introduce new "meson" USES.
  
  This uses will handling building software that uses the meson
  build system. Expand the option framework to handle MESON options.
  
  Approved by:	portmgr (swills@)
  
  Differential Revision:	https://reviews.freebsd.org/D104091

Added:
  head/Mk/Uses/meson.mk   (contents, props changed)
Modified:
  head/CHANGES
  head/Mk/bsd.options.mk

Modified: head/CHANGES
==============================================================================
--- head/CHANGES	Mon Apr 17 18:51:20 2017	(r438746)
+++ head/CHANGES	Mon Apr 17 18:55:56 2017	(r438747)
@@ -10,6 +10,11 @@ in the release notes and/or placed into 
 
 All ports committers are allowed to commit to this file.
 
+20170417:
+AUTHOR:	kwm@FreeBSD.org
+
+  New USES: meson, to handle properly the meson building system.
+  
 20170313:
 AUTHOR: tijl@FreeBSD.org
 

Added: head/Mk/Uses/meson.mk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/Mk/Uses/meson.mk	Mon Apr 17 18:55:56 2017	(r438747)
@@ -0,0 +1,68 @@
+# $FreeBSD$
+#
+# Provide support for Meson based projects
+#
+# Feature:		meson
+# Usage:		USES=meson
+#
+# The following files are bundled in source tar files.
+# meson.build		- Instructions for meson like autoconf configure,
+#			there is no changeable parts in the file.
+# meson_options.txt	- All the options meson understands
+#
+# Variables for ports:
+# MESON_ARGS		- Arguments passed to meson
+#			format: -Denable_foo=true
+# MESON_BUILD_DIR	- Path to the build directory
+#			Default: ${WRKSRC}/_build
+#
+# MAINTAINER: gnome@FreeBSD.org
+
+.if !defined(_INCLUDE_USES_MESON_MK)
+_INCLUDE_USES_MESON_MK=	yes
+
+# Sanity check
+.if !empty(meson_ARGS)
+IGNORE=	Incorrect 'USES+= meson:${meson_ARGS}'. meson takes no arguments
+.endif
+
+BUILD_DEPENDS+=		meson:devel/meson
+
+# meson uses ninja
+.include "${USESDIR}/ninja.mk"
+
+# meson might have issues with non-unicode locales
+USE_LOCALE?=	en_US.UTF-8
+
+CONFIGURE_ARGS+=	--prefix ${PREFIX} \
+			--mandir man
+
+# meson has it own strip mechanic
+INSTALL_TARGET=		install
+
+# should we have strip separate from WITH_DEBUG?
+.if defined(WITH_DEBUG)
+CONFIGURE_ARGS+=	--buildtype debug
+.else
+CONFIGURE_ARGS+=	--buildtype release \
+			--strip
+.endif
+
+HAS_CONFIGURE=		yes
+CONFIGURE_CMD=		meson
+# Pull in manual set settings and from options
+CONFIGURE_ARGS+=	${MESON_ARGS}
+
+BUILD_WRKSRC=		${WRKSRC}/${MESON_BUILD_DIR}
+
+INSTALL_WRKSRC=		${WRKSRC}/${MESON_BUILD_DIR}
+
+TEST_WRKSRC=		${WRKSRC}/${MESON_BUILD_DIR}
+TEST_TARGET=		test
+
+MESON_BUILD_DIR?=	_build
+
+# Add meson build dir at the end.
+CONFIGURE_ARGS+=	${MESON_BUILD_DIR}
+
+.endif #!defined(_INCLUDE_USES_MESON_MK)

Modified: head/Mk/bsd.options.mk
==============================================================================
--- head/Mk/bsd.options.mk	Mon Apr 17 18:51:20 2017	(r438746)
+++ head/Mk/bsd.options.mk	Mon Apr 17 18:55:56 2017	(r438747)
@@ -112,6 +112,18 @@
 # ${opt}_QMAKE_OFF		When option is disabled, it will add its content to
 #				the QMAKE_ARGS.
 #
+# ${opt}_MESON_ON		When option is enabled, it will add its
+#				content to MESON_ARGS.
+# ${opt}_MESON_OFF		When option is disabled, it will add its
+#				content to MESON_ARGS.
+#
+# ${opt}_MESON_TRUE		Will add to MESON_ARGS:
+#				Option enabled	--${content} true
+#				Option disabled	--${content} false
+# ${opt}_MESON_FALSE		Will add to MESON_ARGS:
+#				Option enabled	--${content} false
+#				Option disabled	--${content} true
+#
 # ${opt}_IMPLIES		When opt is enabled, options named in IMPLIES will
 #				get enabled too.
 # ${opt}_PREVENTS		When opt is enabled, if any options in PREVENTS are
@@ -521,7 +533,13 @@ CMAKE_ARGS+=		${${opt}_CMAKE_BOOL:C/.*/-
 .    if defined(${opt}_CMAKE_BOOL_OFF)
 CMAKE_ARGS+=		${${opt}_CMAKE_BOOL_OFF:C/.*/-D&:BOOL=false/}
 .    endif
-.    for configure in CONFIGURE CMAKE QMAKE
+.    if defined(${opt}_MESON_TRUE)
+MESON_ARGS+=		${${opt}_MESON_TRUE:C/.*/-D&=true/}
+.    endif
+.    if defined(${opt}_MESON_TRUE_OFF)
+MESON_ARGS+=		${${opt}_MESON_TRUE_OFF:C/.*/-D&=false/}
+.    endif
+.    for configure in CONFIGURE CMAKE MESON QMAKE
 .      if defined(${opt}_${configure}_ON)
 ${configure}_ARGS+=	${${opt}_${configure}_ON}
 .      endif
@@ -571,7 +589,13 @@ CMAKE_ARGS+=		${${opt}_CMAKE_BOOL:C/.*/-
 .    if defined(${opt}_CMAKE_BOOL_OFF)
 CMAKE_ARGS+=		${${opt}_CMAKE_BOOL_OFF:C/.*/-D&:BOOL=true/}
 .    endif
-.    for configure in CONFIGURE CMAKE QMAKE
+.    if defined(${opt}_MESON_FALSE)
+MESON_ARGS+=            ${${opt}_MESON_FALSE:C/.*/-D&=false/}
+.    endif
+.    if defined(${opt}_MESON_FALSE_OFF)
+MESON_ARGS+=            ${${opt}_MESON_FALSE_OFF:C/.*/-D&=true/}
+.    endif
+.    for configure in CONFIGURE CMAKE MESON QMAKE
 .      if defined(${opt}_${configure}_OFF)
 ${configure}_ARGS+=	${${opt}_${configure}_OFF}
 .      endif



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201704171855.v3HItuvb056589>