GNUInstallDirs: Add test cases

Add a RunCMake.GNUInstallDirs test with cases covering various install
prefixes.  Hard-code the architecture information.  Tolerate all
platform-specific LIBDIR values.

Currently the root prefix is not handled well, but verify the current
behavior in the test anyway.  This can be addressed with a future
change.

Inspired-by: Alex Turbov <i.zaufi@gmail.com>
This commit is contained in:
Brad King 2015-06-16 14:59:51 -04:00
parent 1199ebf1c5
commit 5f30f1754a
12 changed files with 158 additions and 0 deletions

View File

@ -95,6 +95,7 @@ add_RunCMake_test(FPHSA)
add_RunCMake_test(GeneratorExpression)
add_RunCMake_test(GeneratorPlatform)
add_RunCMake_test(GeneratorToolset)
add_RunCMake_test(GNUInstallDirs)
add_RunCMake_test(TargetPropertyGeneratorExpressions)
add_RunCMake_test(Languages)
add_RunCMake_test(ObjectLibrary)

View File

@ -0,0 +1,3 @@
cmake_minimum_required(VERSION 3.3)
project(${RunCMake_TEST} NONE)
include(${RunCMake_TEST}.cmake)

View File

@ -0,0 +1,28 @@
set(CMAKE_SIZEOF_VOID_P 8)
set(CMAKE_LIBRARY_ARCHITECTURE "arch")
if(CMAKE_SYSTEM_NAME STREQUAL "OpenBSD")
set(CMAKE_SYSTEM_NAME "OpenBSD-Fake")
endif()
include(GNUInstallDirs)
set(dirs
BINDIR
DATADIR
DATAROOTDIR
DOCDIR
INCLUDEDIR
INFODIR
LIBDIR
LIBEXECDIR
LOCALEDIR
LOCALSTATEDIR
MANDIR
SBINDIR
SHAREDSTATEDIR
SYSCONFDIR
)
foreach(dir ${dirs})
message("CMAKE_INSTALL_${dir}='${CMAKE_INSTALL_${dir}}'")
endforeach()
foreach(dir ${dirs})
message("CMAKE_INSTALL_FULL_${dir}='${CMAKE_INSTALL_FULL_${dir}}'")
endforeach()

View File

@ -0,0 +1,28 @@
^CMAKE_INSTALL_BINDIR='bin'
CMAKE_INSTALL_DATADIR='share'
CMAKE_INSTALL_DATAROOTDIR='share'
CMAKE_INSTALL_DOCDIR='share/doc/Opt'
CMAKE_INSTALL_INCLUDEDIR='include'
CMAKE_INSTALL_INFODIR='share/info'
CMAKE_INSTALL_LIBDIR='(lib|lib64)'
CMAKE_INSTALL_LIBEXECDIR='libexec'
CMAKE_INSTALL_LOCALEDIR='share/locale'
CMAKE_INSTALL_LOCALSTATEDIR='var'
CMAKE_INSTALL_MANDIR='share/man'
CMAKE_INSTALL_SBINDIR='sbin'
CMAKE_INSTALL_SHAREDSTATEDIR='com'
CMAKE_INSTALL_SYSCONFDIR='etc'
CMAKE_INSTALL_FULL_BINDIR='/opt/Opt/bin'
CMAKE_INSTALL_FULL_DATADIR='/opt/Opt/share'
CMAKE_INSTALL_FULL_DATAROOTDIR='/opt/Opt/share'
CMAKE_INSTALL_FULL_DOCDIR='/opt/Opt/share/doc/Opt'
CMAKE_INSTALL_FULL_INCLUDEDIR='/opt/Opt/include'
CMAKE_INSTALL_FULL_INFODIR='/opt/Opt/share/info'
CMAKE_INSTALL_FULL_LIBDIR='/opt/Opt/(lib|lib64)'
CMAKE_INSTALL_FULL_LIBEXECDIR='/opt/Opt/libexec'
CMAKE_INSTALL_FULL_LOCALEDIR='/opt/Opt/share/locale'
CMAKE_INSTALL_FULL_LOCALSTATEDIR='/opt/Opt/var'
CMAKE_INSTALL_FULL_MANDIR='/opt/Opt/share/man'
CMAKE_INSTALL_FULL_SBINDIR='/opt/Opt/sbin'
CMAKE_INSTALL_FULL_SHAREDSTATEDIR='/opt/Opt/com'
CMAKE_INSTALL_FULL_SYSCONFDIR='/opt/Opt/etc'$

View File

@ -0,0 +1,2 @@
set(CMAKE_INSTALL_PREFIX "/opt/${PROJECT_NAME}")
include(Common.cmake)

View File

@ -0,0 +1,28 @@
^CMAKE_INSTALL_BINDIR='bin'
CMAKE_INSTALL_DATADIR='share'
CMAKE_INSTALL_DATAROOTDIR='share'
CMAKE_INSTALL_DOCDIR='share/doc/Root'
CMAKE_INSTALL_INCLUDEDIR='include'
CMAKE_INSTALL_INFODIR='share/info'
CMAKE_INSTALL_LIBDIR='(lib|lib64)'
CMAKE_INSTALL_LIBEXECDIR='libexec'
CMAKE_INSTALL_LOCALEDIR='share/locale'
CMAKE_INSTALL_LOCALSTATEDIR='var'
CMAKE_INSTALL_MANDIR='share/man'
CMAKE_INSTALL_SBINDIR='sbin'
CMAKE_INSTALL_SHAREDSTATEDIR='com'
CMAKE_INSTALL_SYSCONFDIR='etc'
CMAKE_INSTALL_FULL_BINDIR='//bin'
CMAKE_INSTALL_FULL_DATADIR='//share'
CMAKE_INSTALL_FULL_DATAROOTDIR='//share'
CMAKE_INSTALL_FULL_DOCDIR='//share/doc/Root'
CMAKE_INSTALL_FULL_INCLUDEDIR='//include'
CMAKE_INSTALL_FULL_INFODIR='//share/info'
CMAKE_INSTALL_FULL_LIBDIR='//(lib|lib64)'
CMAKE_INSTALL_FULL_LIBEXECDIR='//libexec'
CMAKE_INSTALL_FULL_LOCALEDIR='//share/locale'
CMAKE_INSTALL_FULL_LOCALSTATEDIR='//var'
CMAKE_INSTALL_FULL_MANDIR='//share/man'
CMAKE_INSTALL_FULL_SBINDIR='//sbin'
CMAKE_INSTALL_FULL_SHAREDSTATEDIR='//com'
CMAKE_INSTALL_FULL_SYSCONFDIR='//etc'$

View File

@ -0,0 +1,2 @@
set(CMAKE_INSTALL_PREFIX "/")
include(Common.cmake)

View File

@ -0,0 +1,6 @@
include(RunCMake)
run_cmake(Opt)
run_cmake(Root)
run_cmake(Usr)
run_cmake(UsrLocal)

View File

@ -0,0 +1,28 @@
^CMAKE_INSTALL_BINDIR='bin'
CMAKE_INSTALL_DATADIR='share'
CMAKE_INSTALL_DATAROOTDIR='share'
CMAKE_INSTALL_DOCDIR='share/doc/Usr'
CMAKE_INSTALL_INCLUDEDIR='include'
CMAKE_INSTALL_INFODIR='share/info'
CMAKE_INSTALL_LIBDIR='(lib|lib64|lib/arch)'
CMAKE_INSTALL_LIBEXECDIR='libexec'
CMAKE_INSTALL_LOCALEDIR='share/locale'
CMAKE_INSTALL_LOCALSTATEDIR='var'
CMAKE_INSTALL_MANDIR='share/man'
CMAKE_INSTALL_SBINDIR='sbin'
CMAKE_INSTALL_SHAREDSTATEDIR='com'
CMAKE_INSTALL_SYSCONFDIR='etc'
CMAKE_INSTALL_FULL_BINDIR='/usr/bin'
CMAKE_INSTALL_FULL_DATADIR='/usr/share'
CMAKE_INSTALL_FULL_DATAROOTDIR='/usr/share'
CMAKE_INSTALL_FULL_DOCDIR='/usr/share/doc/Usr'
CMAKE_INSTALL_FULL_INCLUDEDIR='/usr/include'
CMAKE_INSTALL_FULL_INFODIR='/usr/share/info'
CMAKE_INSTALL_FULL_LIBDIR='/usr/(lib|lib64|lib/arch)'
CMAKE_INSTALL_FULL_LIBEXECDIR='/usr/libexec'
CMAKE_INSTALL_FULL_LOCALEDIR='/usr/share/locale'
CMAKE_INSTALL_FULL_LOCALSTATEDIR='/usr/var'
CMAKE_INSTALL_FULL_MANDIR='/usr/share/man'
CMAKE_INSTALL_FULL_SBINDIR='/usr/sbin'
CMAKE_INSTALL_FULL_SHAREDSTATEDIR='/usr/com'
CMAKE_INSTALL_FULL_SYSCONFDIR='/usr/etc'$

View File

@ -0,0 +1,2 @@
set(CMAKE_INSTALL_PREFIX "/usr")
include(Common.cmake)

View File

@ -0,0 +1,28 @@
^CMAKE_INSTALL_BINDIR='bin'
CMAKE_INSTALL_DATADIR='share'
CMAKE_INSTALL_DATAROOTDIR='share'
CMAKE_INSTALL_DOCDIR='share/doc/UsrLocal'
CMAKE_INSTALL_INCLUDEDIR='include'
CMAKE_INSTALL_INFODIR='share/info'
CMAKE_INSTALL_LIBDIR='(lib|lib64)'
CMAKE_INSTALL_LIBEXECDIR='libexec'
CMAKE_INSTALL_LOCALEDIR='share/locale'
CMAKE_INSTALL_LOCALSTATEDIR='var'
CMAKE_INSTALL_MANDIR='share/man'
CMAKE_INSTALL_SBINDIR='sbin'
CMAKE_INSTALL_SHAREDSTATEDIR='com'
CMAKE_INSTALL_SYSCONFDIR='etc'
CMAKE_INSTALL_FULL_BINDIR='/usr/local/bin'
CMAKE_INSTALL_FULL_DATADIR='/usr/local/share'
CMAKE_INSTALL_FULL_DATAROOTDIR='/usr/local/share'
CMAKE_INSTALL_FULL_DOCDIR='/usr/local/share/doc/UsrLocal'
CMAKE_INSTALL_FULL_INCLUDEDIR='/usr/local/include'
CMAKE_INSTALL_FULL_INFODIR='/usr/local/share/info'
CMAKE_INSTALL_FULL_LIBDIR='/usr/local/(lib|lib64)'
CMAKE_INSTALL_FULL_LIBEXECDIR='/usr/local/libexec'
CMAKE_INSTALL_FULL_LOCALEDIR='/usr/local/share/locale'
CMAKE_INSTALL_FULL_LOCALSTATEDIR='/usr/local/var'
CMAKE_INSTALL_FULL_MANDIR='/usr/local/share/man'
CMAKE_INSTALL_FULL_SBINDIR='/usr/local/sbin'
CMAKE_INSTALL_FULL_SHAREDSTATEDIR='/usr/local/com'
CMAKE_INSTALL_FULL_SYSCONFDIR='/usr/local/etc'$

View File

@ -0,0 +1,2 @@
set(CMAKE_INSTALL_PREFIX "/usr/local")
include(Common.cmake)