mirror of
https://github.com/libjpeg-turbo/libjpeg-turbo.git
synced 2026-01-18 21:41:20 +01:00
Build: Various improvements to install/pkg system
- GNUInstallDirs: any directory variable can now reference any other directory variable by including its name in angle brackets (<>). - Changed the documentation of the directory variables in BUILDING.md accordingly. This commit also includes some formatting tweaks to that section (using boldface for directory names, as is our convention.) - Changed the package scripts such that they use CMAKE_INSTALL_DATAROOTDIR rather than CMAKE_INSTALL_DATADIR. - We no longer override the install dir. defaults on Windows unless performing an official build. It may be useful, for instance, to use the GNU defaults when installing into an MSYS environment.
This commit is contained in:
15
BUILDING.md
15
BUILDING.md
@@ -641,8 +641,8 @@ Un*x
|
||||
The default value of `CMAKE_INSTALL_PREFIX` causes the libjpeg-turbo files to
|
||||
be installed with a directory structure resembling that of the official
|
||||
libjpeg-turbo binary packages. Changing the value of `CMAKE_INSTALL_PREFIX`
|
||||
(for instance, to "/usr/local") causes the libjpeg-turbo files to be installed
|
||||
with a directory structure that conforms to GNU standards.
|
||||
(for instance, to **/usr/local**) causes the libjpeg-turbo files to be
|
||||
installed with a directory structure that conforms to GNU standards.
|
||||
|
||||
The `CMAKE_INSTALL_BINDIR`, `CMAKE_INSTALL_DATAROOTDIR`,
|
||||
`CMAKE_INSTALL_DOCDIR`, `CMAKE_INSTALL_INCLUDEDIR`, `CMAKE_INSTALL_JAVADIR`,
|
||||
@@ -650,11 +650,12 @@ The `CMAKE_INSTALL_BINDIR`, `CMAKE_INSTALL_DATAROOTDIR`,
|
||||
finer degree of control over where specific files in the libjpeg-turbo
|
||||
distribution should be installed. These directory variables can either be
|
||||
specified as absolute paths or as paths relative to `CMAKE_INSTALL_PREFIX` (for
|
||||
instance, setting `CMAKE_INSTALL_DOCDIR=doc` would cause the documentation to
|
||||
be installed in `${CMAKE_INSTALL_PREFIX}/doc`.) If `CMAKE_INSTALL_DOCDIR`,
|
||||
`CMAKE_INSTALL_JAVADIR`, or `CMAKE_INSTALL_MANDIR` contains the special string
|
||||
`<DATAROOTDIR>`, then that string is automatically replaced by the value of
|
||||
`CMAKE_INSTALL_DATAROOTDIR`.
|
||||
instance, setting `CMAKE_INSTALL_DOCDIR` to **doc** would cause the
|
||||
documentation to be installed in **${CMAKE\_INSTALL\_PREFIX}/doc**.) If a
|
||||
directory variable contains the name of another directory variable in angle
|
||||
brackets, then its final value will depend on the final value of that other
|
||||
variable. For instance, the default value of `CMAKE_INSTALL_MANDIR` is
|
||||
**\<CMAKE\_INSTALL\_DATAROOTDIR\>/man**.
|
||||
|
||||
NOTE: If setting one of these directory variables to a relative path using the
|
||||
CMake command line, you must specify that the variable is of type `PATH`.
|
||||
|
||||
@@ -90,13 +90,11 @@ message(STATUS "CMAKE_INSTALL_PREFIX = ${CMAKE_INSTALL_PREFIX}")
|
||||
# When the prefix is /opt/${CMAKE_PROJECT_NAME}, we assume that an "official"
|
||||
# build is being created, and thus we install things into specific locations.
|
||||
|
||||
if(CMAKE_INSTALL_PREFIX STREQUAL "${CMAKE_INSTALL_DEFAULT_PREFIX}" OR NOT UNIX)
|
||||
if(CMAKE_INSTALL_PREFIX STREQUAL "${CMAKE_INSTALL_DEFAULT_PREFIX}")
|
||||
set(CMAKE_INSTALL_DEFAULT_DATAROOTDIR "")
|
||||
set(CMAKE_INSTALL_DEFAULT_DOCDIR "<DATAROOTDIR>/doc")
|
||||
set(CMAKE_INSTALL_DEFAULT_JAVADIR "<DATAROOTDIR>/classes")
|
||||
endif()
|
||||
if(CMAKE_INSTALL_PREFIX STREQUAL "${CMAKE_INSTALL_DEFAULT_PREFIX}" AND UNIX)
|
||||
if(NOT APPLE)
|
||||
set(CMAKE_INSTALL_DEFAULT_DOCDIR "<CMAKE_INSTALL_DATAROOTDIR>/doc")
|
||||
set(CMAKE_INSTALL_DEFAULT_JAVADIR "<CMAKE_INSTALL_DATAROOTDIR>/classes")
|
||||
if(UNIX AND NOT APPLE)
|
||||
if(BITS EQUAL 64)
|
||||
set(CMAKE_INSTALL_DEFAULT_LIBDIR "lib64")
|
||||
else()
|
||||
|
||||
@@ -286,7 +286,7 @@ set_dir(DATAROOTDIR
|
||||
# not set explicitly. This auto-updates the defaults as DATAROOTDIR changes.
|
||||
|
||||
if(NOT DEFINED CMAKE_INSTALL_DEFAULT_DATADIR)
|
||||
set(CMAKE_INSTALL_DEFAULT_DATADIR "<DATAROOTDIR>")
|
||||
set(CMAKE_INSTALL_DEFAULT_DATADIR "<CMAKE_INSTALL_DATAROOTDIR>")
|
||||
endif()
|
||||
set_dir(DATADIR
|
||||
"The directory under which read-only architecture-independent data files should be installed")
|
||||
@@ -295,7 +295,7 @@ if(NOT DEFINED CMAKE_INSTALL_DEFAULT_INFODIR)
|
||||
if(CMAKE_SYSTEM_NAME MATCHES "^(.*BSD|DragonFly)$")
|
||||
set(CMAKE_INSTALL_DEFAULT_INFODIR "info")
|
||||
else()
|
||||
set(CMAKE_INSTALL_DEFAULT_INFODIR "<DATAROOTDIR>/info")
|
||||
set(CMAKE_INSTALL_DEFAULT_INFODIR "<CMAKE_INSTALL_DATAROOTDIR>/info")
|
||||
endif()
|
||||
endif()
|
||||
set_dir(INFODIR
|
||||
@@ -305,45 +305,64 @@ if(NOT DEFINED CMAKE_INSTALL_DEFAULT_MANDIR)
|
||||
if(CMAKE_SYSTEM_NAME MATCHES "^(.*BSD|DragonFly)$")
|
||||
set(CMAKE_INSTALL_DEFAULT_MANDIR "man")
|
||||
else()
|
||||
set(CMAKE_INSTALL_DEFAULT_MANDIR "<DATAROOTDIR>/man")
|
||||
set(CMAKE_INSTALL_DEFAULT_MANDIR "<CMAKE_INSTALL_DATAROOTDIR>/man")
|
||||
endif()
|
||||
endif()
|
||||
set_dir(MANDIR "The directory under which man pages should be installed")
|
||||
|
||||
if(NOT DEFINED CMAKE_INSTALL_DEFAULT_LOCALEDIR)
|
||||
set(CMAKE_INSTALL_DEFAULT_LOCALEDIR "<DATAROOTDIR>/locale")
|
||||
set(CMAKE_INSTALL_DEFAULT_LOCALEDIR "<CMAKE_INSTALL_DATAROOTDIR>/locale")
|
||||
endif()
|
||||
set_dir(LOCALEDIR
|
||||
"The directory under which locale-specific message catalogs should be installed")
|
||||
|
||||
if(NOT DEFINED CMAKE_INSTALL_DEFAULT_DOCDIR)
|
||||
set(CMAKE_INSTALL_DEFAULT_DOCDIR "<DATAROOTDIR>/doc/${PROJECT_NAME}")
|
||||
set(CMAKE_INSTALL_DEFAULT_DOCDIR "<CMAKE_INSTALL_DATAROOTDIR>/doc/${PROJECT_NAME}")
|
||||
endif()
|
||||
set_dir(DOCDIR
|
||||
"The directory into which documentation files (other than info files) should be installed")
|
||||
|
||||
if(NOT DEFINED CMAKE_INSTALL_DEFAULT_JAVADIR)
|
||||
set(CMAKE_INSTALL_DEFAULT_JAVADIR "<DATAROOTDIR>/java")
|
||||
set(CMAKE_INSTALL_DEFAULT_JAVADIR "<CMAKE_INSTALL_DATAROOTDIR>/java")
|
||||
endif()
|
||||
set_dir(JAVADIR "The directory into which Java classes should be installed")
|
||||
|
||||
string(REGEX REPLACE "<DATAROOTDIR>" "${CMAKE_INSTALL_DATAROOTDIR}"
|
||||
CMAKE_INSTALL_DATADIR "${CMAKE_INSTALL_DATADIR}")
|
||||
foreach(var INFODIR MANDIR LOCALEDIR DOCDIR JAVADIR)
|
||||
if(NOT CMAKE_INSTALL_DATAROOTDIR)
|
||||
string(REGEX REPLACE "<DATAROOTDIR>/" "${CMAKE_INSTALL_DATAROOTDIR}"
|
||||
CMAKE_INSTALL_${var} "${CMAKE_INSTALL_${var}}")
|
||||
else()
|
||||
string(REGEX REPLACE "<DATAROOTDIR>" "${CMAKE_INSTALL_DATAROOTDIR}"
|
||||
CMAKE_INSTALL_${var} "${CMAKE_INSTALL_${var}}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
# Save for next run
|
||||
set(_GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}" CACHE INTERNAL "CMAKE_INSTALL_PREFIX during last run")
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
foreach(dir
|
||||
BINDIR
|
||||
SBINDIR
|
||||
LIBEXECDIR
|
||||
SYSCONFDIR
|
||||
SHAREDSTATEDIR
|
||||
LOCALSTATEDIR
|
||||
LIBDIR
|
||||
INCLUDEDIR
|
||||
OLDINCLUDEDIR
|
||||
DATAROOTDIR
|
||||
DATADIR
|
||||
INFODIR
|
||||
LOCALEDIR
|
||||
MANDIR
|
||||
DOCDIR
|
||||
JAVADIR
|
||||
)
|
||||
string(REGEX REPLACE "[<>]" "@" CMAKE_INSTALL_${dir}
|
||||
"${CMAKE_INSTALL_${dir}}")
|
||||
# Handle the specific case of an empty CMAKE_INSTALL_DATAROOTDIR
|
||||
if(NOT CMAKE_INSTALL_DATAROOTDIR AND
|
||||
CMAKE_INSTALL_${dir} MATCHES "\@CMAKE_INSTALL_DATAROOTDIR\@/")
|
||||
string(CONFIGURE "${CMAKE_INSTALL_${dir}}" CMAKE_INSTALL_${dir} @ONLY)
|
||||
string(REGEX REPLACE "^/" "" CMAKE_INSTALL_${dir}
|
||||
"${CMAKE_INSTALL_${dir}}")
|
||||
else()
|
||||
string(CONFIGURE "${CMAKE_INSTALL_${dir}}" CMAKE_INSTALL_${dir} @ONLY)
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
mark_as_advanced(
|
||||
CMAKE_INSTALL_BINDIR
|
||||
CMAKE_INSTALL_SBINDIR
|
||||
|
||||
@@ -65,8 +65,8 @@ makedeb()
|
||||
if [ $SUPPLEMENT = 1 ]; then
|
||||
make install DESTDIR=$TMPDIR
|
||||
rm -rf $TMPDIR$BINDIR
|
||||
if [ "$DATADIR" != "$PREFIX" ]; then
|
||||
rm -rf $TMPDIR$DATADIR
|
||||
if [ "$DATAROOTDIR" != "$PREFIX" ]; then
|
||||
rm -rf $TMPDIR$DATAROOTDIR
|
||||
fi
|
||||
if [ "$JAVADIR" != "" ]; then
|
||||
rm -rf $TMPDIR$JAVADIR
|
||||
@@ -98,7 +98,7 @@ VERSION=@VERSION@
|
||||
DEBARCH=@DEBARCH@
|
||||
PREFIX=@CMAKE_INSTALL_PREFIX@
|
||||
BINDIR=@CMAKE_INSTALL_FULL_BINDIR@
|
||||
DATADIR=@CMAKE_INSTALL_FULL_DATADIR@
|
||||
DATAROOTDIR=@CMAKE_INSTALL_FULL_DATAROOTDIR@
|
||||
DOCDIR=@CMAKE_INSTALL_FULL_DOCDIR@
|
||||
INCLUDEDIR=@CMAKE_INSTALL_FULL_INCLUDEDIR@
|
||||
JAVADIR=@CMAKE_INSTALL_FULL_JAVADIR@
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
%define _prefix @CMAKE_INSTALL_PREFIX@
|
||||
%define _bindir @CMAKE_INSTALL_FULL_BINDIR@
|
||||
%define _datadir @CMAKE_INSTALL_FULL_DATADIR@
|
||||
%define _datarootdir @CMAKE_INSTALL_FULL_DATAROOTDIR@
|
||||
%define _docdir %{_defaultdocdir}/%{name}-%{version}
|
||||
%define _includedir @CMAKE_INSTALL_FULL_INCLUDEDIR@
|
||||
%define _javadir @CMAKE_INSTALL_FULL_JAVADIR@
|
||||
@@ -57,7 +57,7 @@ broader range of users and developers.
|
||||
#-->cmake -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=@CMAKE_BUILD_TYPE@ \
|
||||
#--> -DBUILD=%{release} \
|
||||
#--> -DCMAKE_INSTALL_BINDIR=%{_bindir} \
|
||||
#--> -DCMAKE_INSTALL_DATADIR=%{_datadir} \
|
||||
#--> -DCMAKE_INSTALL_DATAROOTDIR=%{_datarootdir} \
|
||||
#--> -DCMAKE_INSTALL_DOCDIR=%{_docdir} \
|
||||
#--> -DCMAKE_INSTALL_INCLUDEDIR=%{_includedir} \
|
||||
#--> -DCMAKE_INSTALL_JAVADIR=%{_javadir} \
|
||||
@@ -188,8 +188,8 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%{_mandir}/man1/jpegtran.1*
|
||||
%{_mandir}/man1/rdjpgcom.1*
|
||||
%{_mandir}/man1/wrjpgcom.1*
|
||||
%if "%{_prefix}" != "%{_datadir}"
|
||||
%dir %{_datadir}
|
||||
%if "%{_prefix}" != "%{_datarootdir}"
|
||||
%dir %{_datarootdir}
|
||||
%endif
|
||||
%if "%{_with_java}" == "1"
|
||||
%dir %{_javadir}
|
||||
|
||||
@@ -58,7 +58,7 @@ popd
|
||||
echo Removing package directories ...
|
||||
PREFIX=@CMAKE_INSTALL_PREFIX@
|
||||
BINDIR=@CMAKE_INSTALL_FULL_BINDIR@
|
||||
DATADIR=@CMAKE_INSTALL_FULL_DATADIR@
|
||||
DATAROOTDIR=@CMAKE_INSTALL_FULL_DATAROOTDIR@
|
||||
INCLUDEDIR=@CMAKE_INSTALL_FULL_INCLUDEDIR@
|
||||
JAVADIR=@CMAKE_INSTALL_FULL_JAVADIR@
|
||||
LIBDIR=@CMAKE_INSTALL_FULL_LIBDIR@
|
||||
@@ -93,8 +93,8 @@ fi
|
||||
if [ -d $JAVADIR ]; then
|
||||
rmdir $JAVADIR 2>&1 || EXITSTATUS=-1
|
||||
fi
|
||||
if [ -d $DATADIR -a "$DATADIR" != "$PREFIX" ]; then
|
||||
rmdir $DATADIR 2>&1 || EXITSTATUS=-1
|
||||
if [ -d $DATAROOTDIR -a "$DATAROOTDIR" != "$PREFIX" ]; then
|
||||
rmdir $DATAROOTDIR 2>&1 || EXITSTATUS=-1
|
||||
fi
|
||||
if [ "$PREFIX" = "@CMAKE_INSTALL_DEFAULT_PREFIX@" -a -h "$PREFIX/doc" ]; then
|
||||
rm $PREFIX/doc 2>&1 || EXITSTATUS=-1
|
||||
|
||||
Reference in New Issue
Block a user