Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 9217719

Browse filesBrowse files
committed
Build: Make package cfg files/install relocatable
This fully reverts c96e93b. Specifying a full path with install(TARGETS ...) causes the paths in the CMake package config files to be hard-coded, which effectively makes the package non-relocatable. Specifying a full path with other install() commands breaks the --prefix option to cmake --install. There is in fact no sane way to support blank install directories. Integrators who wish to install certain files into the main libjpeg-turbo install directory can set a particular CMAKE_INSTALL_*DIR variable to "<CMAKE_INSTALL_PREFIX>", with the understanding that doing so will break relocatability in the same way that c96e93b did. This commit also tweaks the RPM spec so that RPMs built from a source RPM will contain relocatable CMake package config files.
1 parent e352b02 commit 9217719
Copy full SHA for 9217719

5 files changed

+58-37Lines changed: 58 additions & 37 deletions

File tree

Expand file treeCollapse file tree
Open diff view settings
Filter options
Expand file treeCollapse file tree
Open diff view settings
Collapse file

‎CMakeLists.txt‎

Copy file name to clipboardExpand all lines: CMakeLists.txt
+33-28Lines changed: 33 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ if(CMAKE_C_FLAGS_RELWITHDEBINFO)
1414
endif()
1515

1616
project(libjpeg-turbo C)
17-
set(VERSION 3.1.4)
17+
set(VERSION 3.1.4.1)
1818
set(COPYRIGHT_YEAR "1991-2026")
1919
string(REPLACE "." ";" VERSION_TRIPLET ${VERSION})
2020
list(GET VERSION_TRIPLET 0 VERSION_MAJOR)
@@ -213,6 +213,13 @@ if(UNIX)
213213
list(APPEND DIRLIST "MANDIR")
214214
endif()
215215
foreach(dir ${DIRLIST})
216+
# CMAKE_INSTALL_BINDIR, CMAKE_INSTALL_DOCDIR, CMAKE_INSTALL_INCLUDEDIR,
217+
# CMAKE_INSTALL_LIBDIR, and CMAKE_INSTALL_MANDIR cannot be blank, because
218+
# either CMake will fail to configure the build, or install() will attempt to
219+
# install files to the root directory.
220+
if(NOT dir STREQUAL "DATAROOTDIR" AND NOT CMAKE_INSTALL_${dir})
221+
message(FATAL_ERROR "CMAKE_INSTALL_${dir} cannot be blank")
222+
endif()
216223
report_directory(${dir})
217224
endforeach()
218225

@@ -1839,24 +1846,24 @@ set(EXE ${CMAKE_EXECUTABLE_SUFFIX})
18391846
if(WITH_TURBOJPEG)
18401847
if(ENABLE_SHARED)
18411848
install(TARGETS turbojpeg EXPORT ${CMAKE_PROJECT_NAME}Targets
1842-
INCLUDES DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR}
1843-
ARCHIVE DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR} COMPONENT lib
1844-
LIBRARY DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR} COMPONENT lib
1845-
RUNTIME DESTINATION ${CMAKE_INSTALL_FULL_BINDIR} COMPONENT bin)
1849+
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
1850+
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT lib
1851+
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT lib
1852+
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT bin)
18461853
if(WITH_TOOLS)
18471854
install(TARGETS tjbench
1848-
RUNTIME DESTINATION ${CMAKE_INSTALL_FULL_BINDIR} COMPONENT bin)
1855+
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT bin)
18491856
endif()
18501857
if(NOT CMAKE_VERSION VERSION_LESS "3.1" AND MSVC_LIKE AND
18511858
CMAKE_C_LINKER_SUPPORTS_PDB)
18521859
install(FILES "$<TARGET_PDB_FILE:turbojpeg>"
1853-
DESTINATION ${CMAKE_INSTALL_FULL_BINDIR} COMPONENT bin OPTIONAL)
1860+
DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT bin OPTIONAL)
18541861
endif()
18551862
endif()
18561863
if(ENABLE_STATIC)
18571864
install(TARGETS turbojpeg-static EXPORT ${CMAKE_PROJECT_NAME}Targets
1858-
INCLUDES DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR}
1859-
ARCHIVE DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR} COMPONENT lib)
1865+
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
1866+
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT lib)
18601867
if(NOT ENABLE_SHARED)
18611868
if(GENERATOR_IS_MULTI_CONFIG)
18621869
set(DIR "${CMAKE_CURRENT_BINARY_DIR}/\${CMAKE_INSTALL_CONFIG_NAME}")
@@ -1865,19 +1872,19 @@ if(WITH_TURBOJPEG)
18651872
endif()
18661873
if(WITH_TOOLS)
18671874
install(PROGRAMS ${DIR}/tjbench-static${EXE}
1868-
DESTINATION ${CMAKE_INSTALL_FULL_BINDIR} COMPONENT bin
1875+
DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT bin
18691876
RENAME tjbench${EXE})
18701877
endif()
18711878
endif()
18721879
endif()
18731880
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/turbojpeg.h
1874-
DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR} COMPONENT include)
1881+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT include)
18751882
endif()
18761883

18771884
if(ENABLE_STATIC)
18781885
install(TARGETS jpeg-static EXPORT ${CMAKE_PROJECT_NAME}Targets
1879-
INCLUDES DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR}
1880-
ARCHIVE DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR} COMPONENT lib)
1886+
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
1887+
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT lib)
18811888
if(NOT ENABLE_SHARED)
18821889
if(GENERATOR_IS_MULTI_CONFIG)
18831890
set(DIR "${CMAKE_CURRENT_BINARY_DIR}/\${CMAKE_INSTALL_CONFIG_NAME}")
@@ -1886,21 +1893,19 @@ if(ENABLE_STATIC)
18861893
endif()
18871894
if(WITH_TOOLS)
18881895
install(PROGRAMS ${DIR}/cjpeg-static${EXE}
1889-
DESTINATION ${CMAKE_INSTALL_FULL_BINDIR} COMPONENT bin
1890-
RENAME cjpeg${EXE})
1896+
DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT bin RENAME cjpeg${EXE})
18911897
install(PROGRAMS ${DIR}/djpeg-static${EXE}
1892-
DESTINATION ${CMAKE_INSTALL_FULL_BINDIR} COMPONENT bin
1893-
RENAME djpeg${EXE})
1898+
DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT bin RENAME djpeg${EXE})
18941899
install(PROGRAMS ${DIR}/jpegtran-static${EXE}
1895-
DESTINATION ${CMAKE_INSTALL_FULL_BINDIR} COMPONENT bin
1900+
DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT bin
18961901
RENAME jpegtran${EXE})
18971902
endif()
18981903
endif()
18991904
endif()
19001905

19011906
if(WITH_TOOLS)
19021907
install(TARGETS rdjpgcom wrjpgcom
1903-
RUNTIME DESTINATION ${CMAKE_INSTALL_FULL_BINDIR} COMPONENT bin)
1908+
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT bin)
19041909
endif()
19051910

19061911
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/README.ijg
@@ -1911,18 +1916,18 @@ install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/README.ijg
19111916
${CMAKE_CURRENT_SOURCE_DIR}/doc/usage.txt
19121917
${CMAKE_CURRENT_SOURCE_DIR}/doc/wizard.txt
19131918
${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.md
1914-
DESTINATION ${CMAKE_INSTALL_FULL_DOCDIR} COMPONENT doc)
1919+
DESTINATION ${CMAKE_INSTALL_DOCDIR} COMPONENT doc)
19151920
if(WITH_TURBOJPEG)
19161921
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/tjcomp.c
19171922
${CMAKE_CURRENT_SOURCE_DIR}/src/tjdecomp.c
19181923
${CMAKE_CURRENT_SOURCE_DIR}/src/tjtran.c
1919-
DESTINATION ${CMAKE_INSTALL_FULL_DOCDIR} COMPONENT doc)
1924+
DESTINATION ${CMAKE_INSTALL_DOCDIR} COMPONENT doc)
19201925
endif()
19211926
if(WITH_JAVA)
19221927
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/java/TJComp.java
19231928
${CMAKE_CURRENT_SOURCE_DIR}/java/TJDecomp.java
19241929
${CMAKE_CURRENT_SOURCE_DIR}/java/TJTran.java
1925-
DESTINATION ${CMAKE_INSTALL_FULL_DOCDIR} COMPONENT doc)
1930+
DESTINATION ${CMAKE_INSTALL_DOCDIR} COMPONENT doc)
19261931
endif()
19271932

19281933
if(UNIX OR MINGW)
@@ -1932,30 +1937,30 @@ if(UNIX OR MINGW)
19321937
${CMAKE_CURRENT_SOURCE_DIR}/doc/jpegtran.1
19331938
${CMAKE_CURRENT_SOURCE_DIR}/doc/rdjpgcom.1
19341939
${CMAKE_CURRENT_SOURCE_DIR}/doc/wrjpgcom.1
1935-
DESTINATION ${CMAKE_INSTALL_FULL_MANDIR}/man1 COMPONENT man)
1940+
DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 COMPONENT man)
19361941
endif()
19371942
endif()
19381943
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/pkgscripts/libjpeg.pc
1939-
DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}/pkgconfig COMPONENT lib)
1944+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig COMPONENT lib)
19401945
if(WITH_TURBOJPEG)
19411946
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/pkgscripts/libturbojpeg.pc
1942-
DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}/pkgconfig COMPONENT lib)
1947+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig COMPONENT lib)
19431948
endif()
19441949
install(FILES
19451950
${CMAKE_CURRENT_BINARY_DIR}/pkgscripts/${CMAKE_PROJECT_NAME}Config.cmake
19461951
${CMAKE_CURRENT_BINARY_DIR}/pkgscripts/${CMAKE_PROJECT_NAME}ConfigVersion.cmake
1947-
DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}/cmake/${CMAKE_PROJECT_NAME}
1952+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${CMAKE_PROJECT_NAME}
19481953
COMPONENT lib)
19491954
install(EXPORT ${CMAKE_PROJECT_NAME}Targets
19501955
NAMESPACE ${CMAKE_PROJECT_NAME}::
1951-
DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}/cmake/${CMAKE_PROJECT_NAME}
1956+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${CMAKE_PROJECT_NAME}
19521957
COMPONENT lib)
19531958

19541959
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/jconfig.h
19551960
${CMAKE_CURRENT_SOURCE_DIR}/src/jerror.h
19561961
${CMAKE_CURRENT_SOURCE_DIR}/src/jmorecfg.h
19571962
${CMAKE_CURRENT_SOURCE_DIR}/src/jpeglib.h
1958-
DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR} COMPONENT include)
1963+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT include)
19591964

19601965
include(cmakescripts/BuildPackages.cmake)
19611966

Collapse file

‎ChangeLog.md‎

Copy file name to clipboardExpand all lines: ChangeLog.md
+10Lines changed: 10 additions & 0 deletions
  • Display the source diff
  • Display the rich diff
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,13 @@
1+
3.1.4.1
2+
=======
3+
4+
### Significant changes relative to 3.1.4:
5+
6+
1. Fixed multiple issues, some long-standing and some that were regressions
7+
introduced in 3.1.4, that made the CMake package config files non-relocatable
8+
and broke the `--prefix` option to `cmake --install`.
9+
10+
111
3.1.4
212
=====
313

Collapse file

‎java/CMakeLists.txt‎

Copy file name to clipboardExpand all lines: java/CMakeLists.txt
+5-2Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,11 +90,14 @@ GNUInstallDirs_get_absolute_install_dir(CMAKE_INSTALL_FULL_JAVADIR
9090
CMAKE_INSTALL_JAVADIR)
9191
set(CMAKE_INSTALL_JAVADIR ${CMAKE_INSTALL_JAVADIR} PARENT_SCOPE)
9292
set(CMAKE_INSTALL_FULL_JAVADIR ${CMAKE_INSTALL_FULL_JAVADIR} PARENT_SCOPE)
93+
if(NOT CMAKE_INSTALL_JAVADIR)
94+
message(FATAL_ERROR "CMAKE_INSTALL_JAVADIR cannot be blank")
95+
endif()
9396
report_directory(JAVADIR)
9497
if(CMAKE_VERSION VERSION_EQUAL "3.4" OR CMAKE_VERSION VERSION_GREATER "3.4")
95-
install_jar(turbojpeg-java DESTINATION ${CMAKE_INSTALL_FULL_JAVADIR}
98+
install_jar(turbojpeg-java DESTINATION ${CMAKE_INSTALL_JAVADIR}
9699
COMPONENT java)
97100
else()
98-
install_jar(turbojpeg-java ${CMAKE_INSTALL_FULL_JAVADIR})
101+
install_jar(turbojpeg-java ${CMAKE_INSTALL_JAVADIR})
99102
endif()
100103
mark_as_advanced(CLEAR CMAKE_INSTALL_JAVADIR)
Collapse file

‎release/rpm.spec.in‎

Copy file name to clipboardExpand all lines: release/rpm.spec.in
+5-2Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,16 @@
3232
#-->%if 1
3333
%if "%{_bits}" == "64"
3434
%define _libdir %{_exec_prefix}/lib64
35+
%define _rellibdir lib64
3536
%else
3637
%if "%{_prefix}" == "/opt/libjpeg-turbo"
3738
%define _libdir %{_exec_prefix}/lib32
39+
%define _rellibdir lib32
3840
%endif
3941
%endif
4042
#-->%else
4143
%define _libdir @CMAKE_INSTALL_FULL_LIBDIR@
44+
%define _rellibdir @CMAKE_INSTALL_LIBDIR@
4245
#-->%endif
4346

4447
%define __requires_exclude_from ^%{_libdir}/cmake/@CMAKE_PROJECT_NAME@/.*$
@@ -93,9 +96,9 @@ reference implementation of the JPEG standard.
9396
#--> -DCMAKE_INSTALL_BINDIR=%{_bindir} \
9497
#--> -DCMAKE_INSTALL_DATAROOTDIR=%{_datarootdir} \
9598
#--> -DCMAKE_INSTALL_DOCDIR=%{_docdir} \
96-
#--> -DCMAKE_INSTALL_INCLUDEDIR=%{_includedir} \
99+
#--> -DCMAKE_INSTALL_INCLUDEDIR=@CMAKE_INSTALL_INCLUDEDIR@ \
97100
#--> -DCMAKE_INSTALL_JAVADIR=%{_javadir} \
98-
#--> -DCMAKE_INSTALL_LIBDIR=%{_libdir} \
101+
#--> -DCMAKE_INSTALL_LIBDIR=%{_rellibdir} \
99102
#--> -DCMAKE_INSTALL_MANDIR=%{_mandir} \
100103
#--> -DCMAKE_INSTALL_PREFIX=%{_prefix} \
101104
#--> -DCMAKE_POSITION_INDEPENDENT_CODE=@CMAKE_POSITION_INDEPENDENT_CODE@ \
Collapse file

‎sharedlib/CMakeLists.txt‎

Copy file name to clipboardExpand all lines: sharedlib/CMakeLists.txt
+5-5Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -136,15 +136,15 @@ endif()
136136

137137
install(TARGETS jpeg EXPORT ${CMAKE_PROJECT_NAME}Targets
138138
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
139-
ARCHIVE DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR} COMPONENT lib
140-
LIBRARY DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR} COMPONENT lib
141-
RUNTIME DESTINATION ${CMAKE_INSTALL_FULL_BINDIR} COMPONENT bin)
139+
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT lib
140+
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT lib
141+
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT bin)
142142
if(WITH_TOOLS)
143143
install(TARGETS cjpeg djpeg jpegtran
144-
RUNTIME DESTINATION ${CMAKE_INSTALL_FULL_BINDIR} COMPONENT bin)
144+
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT bin)
145145
endif()
146146
if(NOT CMAKE_VERSION VERSION_LESS "3.1" AND MSVC_LIKE AND
147147
CMAKE_C_LINKER_SUPPORTS_PDB)
148148
install(FILES "$<TARGET_PDB_FILE:jpeg>"
149-
DESTINATION ${CMAKE_INSTALL_FULL_BINDIR} COMPONENT bin OPTIONAL)
149+
DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT bin OPTIONAL)
150150
endif()

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.