diff --git a/BUILDING.md b/BUILDING.md index 642468f5..8ae7eb75 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -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) diff --git a/CMakeLists.txt b/CMakeLists.txt index e73455ac..6c2bc5cd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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$<$: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$<$: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 "$" DESTINATION ${CMAKE_INSTALL_FULL_BINDIR} COMPONENT bin OPTIONAL) endif() diff --git a/jna/CMakeLists.txt b/jna/CMakeLists.txt index 1871ac50..c41c767c 100644 --- a/jna/CMakeLists.txt +++ b/jna/CMakeLists.txt @@ -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) diff --git a/sharedlib/CMakeLists.txt b/sharedlib/CMakeLists.txt index ee744a48..c422cad2 100644 --- a/sharedlib/CMakeLists.txt +++ b/sharedlib/CMakeLists.txt @@ -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$<$: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$<$: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 "$" DESTINATION ${CMAKE_INSTALL_FULL_BINDIR} COMPONENT bin OPTIONAL) endif()