Simplify AddSphinxTarget.cmake by just including `GNUInstallDirs`

See the discussion in D30906 for how it must be robust to downstream
projects that might not use `GNUInstallDirs`.

I think an easier approach is just to include `GNUInstallDirs` so that
we can always rely on it. Looking at its definition in
https://gitlab.kitware.com/cmake/cmake/-/blob/master/Modules/GNUInstallDirs.cmake
it appears safe to include multiple times.

I am trying this out because we will face the same problem many times
over if we use `GNUInstallDirs` more widely, as proposed in D99484 and
its parent revisions, since we do not know what downstream projects do
and rather not break them.

Reviewed By: phosek

Differential Revision: https://reviews.llvm.org/D115601
This commit is contained in:
John Ericson 2021-12-12 17:07:13 +00:00
parent a6a07a514b
commit 5f7afa9607
1 changed files with 2 additions and 6 deletions

View File

@ -1,3 +1,4 @@
include(GNUInstallDirs)
# Create sphinx target # Create sphinx target
if (LLVM_ENABLE_SPHINX) if (LLVM_ENABLE_SPHINX)
@ -73,15 +74,10 @@ function (add_sphinx_target builder project)
# Handle installation # Handle installation
if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
if (builder STREQUAL man) if (builder STREQUAL man)
if (CMAKE_INSTALL_MANDIR)
set(INSTALL_MANDIR "${CMAKE_INSTALL_MANDIR}/")
else()
set(INSTALL_MANDIR share/man/)
endif()
# FIXME: We might not ship all the tools that these man pages describe # FIXME: We might not ship all the tools that these man pages describe
install(DIRECTORY "${SPHINX_BUILD_DIR}/" # Slash indicates contents of install(DIRECTORY "${SPHINX_BUILD_DIR}/" # Slash indicates contents of
COMPONENT "${project}-sphinx-man" COMPONENT "${project}-sphinx-man"
DESTINATION ${INSTALL_MANDIR}man1) DESTINATION "${CMAKE_INSTALL_MANDIR}/man1")
if(NOT LLVM_ENABLE_IDE) if(NOT LLVM_ENABLE_IDE)
add_llvm_install_targets("install-${SPHINX_TARGET_NAME}" add_llvm_install_targets("install-${SPHINX_TARGET_NAME}"