Makefile.am (doc, html): Use intra_rustdoc_links

This is enabled by default in nightly, and is not available at all in
stable.  Considering the PITA that it will be to go back and rewrite docs to
use the new format, and how important of a feature this is, we will just
make use of it now.
master
Mike Gerwitz 2019-12-04 11:18:12 -05:00
parent 0147cb7cb4
commit 3248c429fe
3 changed files with 43 additions and 1 deletions

View File

@ -27,7 +27,7 @@ all:
doc: html
html-am:
@CARGO@ doc
@CARGO@ @CARGO_DOC_FLAGS@ doc
# note that 'cargo check' is something else; see 'cargo --help'
test: check

View File

@ -0,0 +1,23 @@
// Feature check for `test`
//
// Copyright (C) 2014-2019 Ryan Specialty Group, LLC.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
// As of the time of writing, this feature is unstable and can only be
// enabled in nightly. This file is intended to be used in the `configure`
// script to determine whether a nightly version of Rust must be used to
// build documentation.
#![feature(intra_rustdoc_links)]

View File

@ -55,6 +55,16 @@ AX_COMPARE_VERSION([$rustc_version], [ge], [$rustc_ver_req],
AC_ARG_VAR([CARGO_BUILD_FLAGS],
[Flags to be passed to `cargo build' when invoked via Make])
# The `intra_rustdoc_links` feature is required for building
# documentation. If unavailable, then it's still an unstable feature and
# we'll need to use nightly. We don't check for nightly here, though---if
# it's missing, then cargo will tell the user what to do.
AC_MSG_CHECKING([`intra_rustdoc_links_check` feature support])
AS_IF(["$RUSTC" --crate-type lib build_aux/intra_rustdoc_links_check.rs &>/dev/null],
[AC_MSG_RESULT(available)],
[AC_MSG_RESULT([no (nightly required)])
AC_SUBST([CARGO_DOC_FLAGS], [+nightly])])
# The `test` feature is required for benchmarking. If unavailable, then
# it's still an unstable feature and we'll need to use nightly. We don't
# check for nightly here, though---if it's missing, then cargo will tell the
@ -74,6 +84,15 @@ AS_IF([cargo fmt --help &>/dev/null],
cargo fmt --help # run again so user can see output
AC_MSG_ERROR([missing cargo-fmt for active toolchain])])
# Cargo commands may be available but not necessarily installed for the
# active toolchain. Let's check that.
AC_MSG_CHECKING([whether cargo-doc is available for toolchain])
AS_IF([cargo $CARGO_DOC_FLAGS doc --help &>/dev/null],
[AC_MSG_RESULT(yes)],
[AC_MSG_RESULT(no)
cargo $CARGO_DOC_FLAGS doc --help # run again so user can see output
AC_MSG_ERROR([missing cargo-doc for toolchain])])
AC_CONFIG_FILES([Makefile])
AC_OUTPUT