From 75be88cfbd0d3b4ab982fc59edb93ea1804c4bc9 Mon Sep 17 00:00:00 2001 From: DRC Date: Mon, 11 Feb 2019 13:10:09 -0600 Subject: [PATCH 1/3] Build: Optionally install PDB files for MSVC DLLs Based on https://github.com/Youw/libjpeg-turbo/commit/333a36ae984a52e547ddeb23848873d3cc798047 Closes #329 Closes #324 --- CMakeLists.txt | 5 +++++ sharedlib/CMakeLists.txt | 8 +++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 252c769f..2bc34581 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1332,6 +1332,11 @@ if(WITH_TURBOJPEG) ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + if(NOT CMAKE_VERSION VERSION_LESS "3.1" AND MSVC AND + CMAKE_C_LINKER_SUPPORTS_PDB) + install(FILES "$" + DESTINATION ${CMAKE_INSTALL_BINDIR} OPTIONAL) + endif() endif() if(ENABLE_STATIC) install(TARGETS turbojpeg-static ARCHIVE diff --git a/sharedlib/CMakeLists.txt b/sharedlib/CMakeLists.txt index 2bab8320..a5c4e399 100755 --- a/sharedlib/CMakeLists.txt +++ b/sharedlib/CMakeLists.txt @@ -52,7 +52,8 @@ if(MAPFLAG) LINK_FLAGS "${MAPFLAG}${CMAKE_CURRENT_BINARY_DIR}/../libjpeg.map") endif() if(MSVC) - set_target_properties(jpeg PROPERTIES SUFFIX ${SO_MAJOR_VERSION}.dll) + set_target_properties(jpeg PROPERTIES + RUNTIME_OUTPUT_NAME jpeg${SO_MAJOR_VERSION}) # The jsimd_*.c file is built using /MT, so this prevents a linker warning. set_target_properties(jpeg PROPERTIES LINK_FLAGS "/NODEFAULTLIB:LIBCMT /NODEFAULTLIB:LIBCMTD") elseif(MINGW) @@ -91,3 +92,8 @@ install(TARGETS jpeg cjpeg djpeg jpegtran ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) +if(NOT CMAKE_VERSION VERSION_LESS "3.1" AND MSVC AND + CMAKE_C_LINKER_SUPPORTS_PDB) + install(FILES "$" + DESTINATION ${CMAKE_INSTALL_BINDIR} OPTIONAL) +endif() From 031e16ecffd21c6d648bbd94e222146cb1a24f1a Mon Sep 17 00:00:00 2001 From: DRC Date: Mon, 11 Feb 2019 22:43:15 -0600 Subject: [PATCH 2/3] tjbench.c: Fix GCC 8 compiler warning --- tjbench.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tjbench.c b/tjbench.c index 0eb41d50..0ddcd7b2 100644 --- a/tjbench.c +++ b/tjbench.c @@ -139,7 +139,7 @@ int decomp(unsigned char *srcBuf, unsigned char **jpegBuf, unsigned long *jpegSize, unsigned char *dstBuf, int w, int h, int subsamp, int jpegQual, char *fileName, int tilew, int tileh) { - char tempStr[1024], sizeStr[20] = "\0", qualStr[6] = "\0", *ptr; + char tempStr[1024], sizeStr[20] = "\0", qualStr[13] = "\0", *ptr; FILE *file = NULL; tjhandle handle = NULL; int row, col, iter = 0, dstBufAlloc = 0, retval = 0; @@ -152,8 +152,8 @@ int decomp(unsigned char *srcBuf, unsigned char **jpegBuf, unsigned char *dstPtr, *dstPtr2, *yuvBuf = NULL; if (jpegQual > 0) { - snprintf(qualStr, 6, "_Q%d", jpegQual); - qualStr[5] = 0; + snprintf(qualStr, 13, "_Q%d", jpegQual); + qualStr[12] = 0; } if ((handle = tjInitDecompress()) == NULL) From 6a8421fb4442dc68f8357dd508d4b8c3c644af61 Mon Sep 17 00:00:00 2001 From: DRC Date: Tue, 12 Feb 2019 13:30:15 -0600 Subject: [PATCH 3/3] GNUInstallDirs.cmake: Silence CMP0054 warning ... in CMake 3.11 and later --- cmakescripts/GNUInstallDirs.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmakescripts/GNUInstallDirs.cmake b/cmakescripts/GNUInstallDirs.cmake index ef564bb6..7c411965 100644 --- a/cmakescripts/GNUInstallDirs.cmake +++ b/cmakescripts/GNUInstallDirs.cmake @@ -118,7 +118,7 @@ # absolute paths where necessary, using the same logic. #============================================================================= -# Copyright 2016 D. R. Commander +# Copyright 2016, 2019 D. R. Commander # Copyright 2016 Dmitry Marakasov # Copyright 2016 Roger Leigh # Copyright 2015 Alex Turbov @@ -184,7 +184,7 @@ macro(GNUInstallDirs_set_install_dir var docstring) "${docstring} (Default: ${CMAKE_INSTALL_DEFAULT_${var}})" ${_GNUInstallDirs_CMAKE_INSTALL_FORCE_${var}}) - if(NOT "${CMAKE_INSTALL_${var}}" STREQUAL "${CMAKE_INSTALL_DEFAULT_${var}}") + if(NOT CMAKE_INSTALL_${var} STREQUAL CMAKE_INSTALL_DEFAULT_${var}) unset(_GNUInstallDirs_CMAKE_INSTALL_DEFAULT_${var} CACHE) endif()