You've already forked libjpeg-turbo
mirror of
https://github.com/libjpeg-turbo/libjpeg-turbo.git
synced 2026-10-23 11:48:53 +03:00
Build: Require CMake 3.15+
- This eliminates the need for any backward compatibility hacks in the build system. - CMake 3.4- is no longer supported by CMake 4+. - The only reason why we continued to support CMake 2.8.12 was that it was pre-installed on RHEL/CentOS 7, which was used by our official Docker image. That was already a weak argument, since CMake 3.x binaries worked on systems with glibc 2.12 and later (RHEL 6+ and equivalents or Ubuntu 12.04+.) Our official Docker image now uses Rocky Linux 8 in order to support cross-compilation of the Arm Neon SIMD extensions with GCC 12, which was necessary in order to eliminate the GNU assembler (GAS) fallback code. - CMake 3.15+ is pre-installed on RHEL 8+ and equivalents and Ubuntu 20.04+, and on other platforms, it is no more difficult to install than CMake 2.8.12. (In fact, newer CMake versions are easier to install on Mac systems. CMake 3.18- did not provide Apple Silicon binaries, and CMake 3.15- was deployed as a pkg installer rather than a standalone app bundle.)
This commit is contained in:
@@ -8,7 +8,7 @@ Build Requirements
|
||||
|
||||
### All Systems
|
||||
|
||||
- [CMake](https://cmake.org) v2.8.12 or later
|
||||
- [CMake](https://cmake.org) v3.15 or later
|
||||
|
||||
- [NASM](https://nasm.us) or [Yasm](https://yasm.tortall.net)
|
||||
(if building x86 or x86-64 SIMD extensions)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 2.8.12...3.28)
|
||||
cmake_minimum_required(VERSION 3.15...3.28)
|
||||
|
||||
if(CMAKE_EXECUTABLE_SUFFIX)
|
||||
set(CMAKE_EXECUTABLE_SUFFIX_TMP ${CMAKE_EXECUTABLE_SUFFIX})
|
||||
@@ -436,24 +436,14 @@ if(MSVC_LIKE)
|
||||
boolean_number(WITH_CRT_DLL)
|
||||
if(NOT WITH_CRT_DLL)
|
||||
# Use the static C library for all build types
|
||||
if(CMAKE_VERSION VERSION_EQUAL "3.15" OR
|
||||
CMAKE_VERSION VERSION_GREATER "3.15")
|
||||
if(CMAKE_BUILD_TYPE_UC STREQUAL "DEBUG")
|
||||
set(CMAKE_MSVC_RUNTIME_LIBRARY MultiThreadedDebug)
|
||||
elseif(MSVC_IDE)
|
||||
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
|
||||
else()
|
||||
set(CMAKE_MSVC_RUNTIME_LIBRARY MultiThreaded)
|
||||
endif()
|
||||
message(STATUS "Visual C++ run-time library: ${CMAKE_MSVC_RUNTIME_LIBRARY} (WITH_CRT_DLL = ${WITH_CRT_DLL})")
|
||||
elseif(MSVC)
|
||||
foreach(var CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE
|
||||
CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO)
|
||||
if(${var} MATCHES "/MD")
|
||||
string(REGEX REPLACE "/MD" "/MT" ${var} "${${var}}")
|
||||
endif()
|
||||
endforeach()
|
||||
if(CMAKE_BUILD_TYPE_UC STREQUAL "DEBUG")
|
||||
set(CMAKE_MSVC_RUNTIME_LIBRARY MultiThreadedDebug)
|
||||
elseif(MSVC_IDE)
|
||||
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
|
||||
else()
|
||||
set(CMAKE_MSVC_RUNTIME_LIBRARY MultiThreaded)
|
||||
endif()
|
||||
message(STATUS "Visual C++ run-time library: ${CMAKE_MSVC_RUNTIME_LIBRARY} (WITH_CRT_DLL = ${WITH_CRT_DLL})")
|
||||
endif()
|
||||
add_definitions(-D_CRT_NONSTDC_NO_WARNINGS)
|
||||
endif()
|
||||
@@ -1906,8 +1896,7 @@ if(WITH_TURBOJPEG)
|
||||
install(TARGETS tjbench
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_FULL_BINDIR} COMPONENT bin)
|
||||
endif()
|
||||
if(NOT CMAKE_VERSION VERSION_LESS "3.1" AND MSVC_LIKE AND
|
||||
CMAKE_C_LINKER_SUPPORTS_PDB)
|
||||
if(MSVC_LIKE AND CMAKE_C_LINKER_SUPPORTS_PDB)
|
||||
install(FILES "$<TARGET_PDB_FILE:turbojpeg>"
|
||||
DESTINATION ${CMAKE_INSTALL_FULL_BINDIR} COMPONENT bin OPTIONAL)
|
||||
endif()
|
||||
|
||||
@@ -44,10 +44,6 @@ GNUInstallDirs_get_absolute_install_dir(CMAKE_INSTALL_FULL_JAVADIR
|
||||
set(CMAKE_INSTALL_JAVADIR ${CMAKE_INSTALL_JAVADIR} PARENT_SCOPE)
|
||||
set(CMAKE_INSTALL_FULL_JAVADIR ${CMAKE_INSTALL_FULL_JAVADIR} PARENT_SCOPE)
|
||||
report_directory(JAVADIR)
|
||||
if(CMAKE_VERSION VERSION_EQUAL "3.4" OR CMAKE_VERSION VERSION_GREATER "3.4")
|
||||
install_jar(turbojpeg-jna DESTINATION ${CMAKE_INSTALL_FULL_JAVADIR}
|
||||
COMPONENT java)
|
||||
else()
|
||||
install_jar(turbojpeg-jna ${CMAKE_INSTALL_FULL_JAVADIR})
|
||||
endif()
|
||||
install_jar(turbojpeg-jna DESTINATION ${CMAKE_INSTALL_FULL_JAVADIR}
|
||||
COMPONENT java)
|
||||
mark_as_advanced(CLEAR CMAKE_INSTALL_JAVADIR)
|
||||
|
||||
@@ -11,24 +11,14 @@ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/..)
|
||||
|
||||
if(MSVC_LIKE)
|
||||
# Build all configurations against shared C library
|
||||
if(CMAKE_VERSION VERSION_EQUAL "3.15" OR
|
||||
CMAKE_VERSION VERSION_GREATER "3.15")
|
||||
if(CMAKE_BUILD_TYPE_UC STREQUAL "DEBUG")
|
||||
set(CMAKE_MSVC_RUNTIME_LIBRARY MultiThreadedDebugDLL)
|
||||
elseif(MSVC_IDE)
|
||||
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL")
|
||||
else()
|
||||
set(CMAKE_MSVC_RUNTIME_LIBRARY MultiThreadedDLL)
|
||||
endif()
|
||||
message(STATUS "Visual C++ run-time library for libjpeg API DLL: ${CMAKE_MSVC_RUNTIME_LIBRARY}")
|
||||
elseif(MSVC)
|
||||
foreach(var CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE
|
||||
CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO)
|
||||
if(${var} MATCHES "/MT")
|
||||
string(REGEX REPLACE "/MT" "/MD" ${var} "${${var}}")
|
||||
endif()
|
||||
endforeach()
|
||||
if(CMAKE_BUILD_TYPE_UC STREQUAL "DEBUG")
|
||||
set(CMAKE_MSVC_RUNTIME_LIBRARY MultiThreadedDebugDLL)
|
||||
elseif(MSVC_IDE)
|
||||
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL")
|
||||
else()
|
||||
set(CMAKE_MSVC_RUNTIME_LIBRARY MultiThreadedDLL)
|
||||
endif()
|
||||
message(STATUS "Visual C++ run-time library for libjpeg API DLL: ${CMAKE_MSVC_RUNTIME_LIBRARY}")
|
||||
endif()
|
||||
|
||||
foreach(src ${JPEG_SOURCES})
|
||||
@@ -164,8 +154,7 @@ if(WITH_TOOLS)
|
||||
install(TARGETS cjpeg djpeg jpegtran
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_FULL_BINDIR} COMPONENT bin)
|
||||
endif()
|
||||
if(NOT CMAKE_VERSION VERSION_LESS "3.1" AND MSVC_LIKE AND
|
||||
CMAKE_C_LINKER_SUPPORTS_PDB)
|
||||
if(MSVC_LIKE AND CMAKE_C_LINKER_SUPPORTS_PDB)
|
||||
install(FILES "$<TARGET_PDB_FILE:jpeg>"
|
||||
DESTINATION ${CMAKE_INSTALL_FULL_BINDIR} COMPONENT bin OPTIONAL)
|
||||
endif()
|
||||
|
||||
Reference in New Issue
Block a user