svn commit: r53991 - head/en_US.ISO8859-1/books/porters-handbook/special

Tobias Kortkamp tobik at FreeBSD.org
Wed Mar 18 12:29:38 UTC 2020


Author: tobik (ports committer)
Date: Wed Mar 18 12:29:36 2020
New Revision: 53991
URL: https://svnweb.freebsd.org/changeset/doc/53991

Log:
  Porter's Handbook: Document CARGO_FEATURES==--no-default-features
  
  Approved by:	bcr
  Differential Revision:	https://reviews.freebsd.org/D23999

Modified:
  head/en_US.ISO8859-1/books/porters-handbook/special/chapter.xml

Modified: head/en_US.ISO8859-1/books/porters-handbook/special/chapter.xml
==============================================================================
--- head/en_US.ISO8859-1/books/porters-handbook/special/chapter.xml	Wed Mar 18 08:48:01 2020	(r53990)
+++ head/en_US.ISO8859-1/books/porters-handbook/special/chapter.xml	Wed Mar 18 12:29:36 2020	(r53991)
@@ -857,7 +857,14 @@ CMAKE_OFF=	VAR3</programlisting>
 	      <entry><varname>CARGO_FEATURES</varname></entry>
 	      <entry></entry>
 	      <entry>List of application features to build (space
-		separated list).</entry>
+		separated list).  To deactivate all default
+		features add the special token
+		<literal>--no-default-features</literal>
+		to <varname>CARGO_FEATURES</varname>.  Manually
+		passing it to <varname>CARGO_BUILD_ARGS</varname>,
+		<varname>CARGO_INSTALL_ARGS</varname>, and
+		<varname>CARGO_TEST_ARGS</varname> is not
+		needed.</entry>
 	    </row>
 
 	    <row>
@@ -1127,6 +1134,35 @@ rust/crates/atty-0.2.9.tar.gz                 100% of 
 	  <literal>yaml</literal> features:</para>
 
 	<programlisting>CARGO_FEATURES=	json yaml</programlisting>
+      </example>
+
+      <example xml:id="cargo-ex4">
+	<title>Encoding Application Features As Port Options</title>
+
+	<para>An example <literal>[features]</literal> section
+	  in <filename>Cargo.toml</filename> could look like
+	  this:</para>
+
+	<programlisting>[features]
+pulseaudio_backend = ["librespot-playback/pulseaudio-backend"]
+portaudio_backend = ["librespot-playback/portaudio-backend"]
+default = ["pulseaudio_backend"]</programlisting>
+
+	<para><literal>pulseaudio_backend</literal> is a default
+	  feature.  It is always enabled unless we explicitly turn
+	  off default features by adding
+	  <literal>--no-default-features</literal> to
+	  <varname>CARGO_FEATURES</varname>.  Here we turn the
+	  <literal>portaudio_backend</literal>
+	  and <literal>pulseaudio_backend</literal> features into
+	  port options:</para>
+
+	<programlisting>CARGO_FEATURES=	--no-default-features
+
+OPTIONS_DEFINE=	PORTAUDIO PULSEAUDIO
+
+PORTAUDIO_VARS=		CARGO_FEATURES+=portaudio_backend
+PULSEAUDIO_VARS=	CARGO_FEATURES+=pulseaudio_backend</programlisting>
       </example>
 
       <example xml:id="cargo-ex3">


More information about the svn-doc-all mailing list