From a99141acd7874bfe027d2bd945a4bd1d7192178b Mon Sep 17 00:00:00 2001 From: Kumataro Date: Wed, 3 Jun 2026 08:31:27 +0900 Subject: [PATCH] build: show libjpeg-turbo version for bundled and system-wide libraries --- 3rdparty/libjpeg-turbo/CMakeLists.txt | 3 --- cmake/OpenCVFindLibsGrfmt.cmake | 15 +++++++++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/3rdparty/libjpeg-turbo/CMakeLists.txt b/3rdparty/libjpeg-turbo/CMakeLists.txt index fe9b574805..b257116755 100644 --- a/3rdparty/libjpeg-turbo/CMakeLists.txt +++ b/3rdparty/libjpeg-turbo/CMakeLists.txt @@ -136,9 +136,6 @@ endif() set(JPEG_LIB_VERSION 70) -# OpenCV -set(JPEG_LIB_VERSION "${VERSION}-${JPEG_LIB_VERSION}" PARENT_SCOPE) - set(THREAD_LOCAL "") # WITH_TURBOJPEG is not used add_definitions(-DNO_GETENV -DNO_PUTENV) diff --git a/cmake/OpenCVFindLibsGrfmt.cmake b/cmake/OpenCVFindLibsGrfmt.cmake index 15e8a133cd..9a1b9d01c2 100644 --- a/cmake/OpenCVFindLibsGrfmt.cmake +++ b/cmake/OpenCVFindLibsGrfmt.cmake @@ -102,8 +102,23 @@ if(WITH_JPEG) macro(ocv_detect_jpeg_version header_file) if(NOT DEFINED JPEG_LIB_VERSION AND EXISTS "${header_file}") ocv_parse_header("${header_file}" JPEG_VERSION_LINES JPEG_LIB_VERSION) + + if(DEFINED JPEG_LIB_VERSION) + # Extract libjpeg-turbo version from the header file if JPEG_LIB_VERSION is found. + file(STRINGS "${header_file}" JPEG_TURBO_VERSION_LINE REGEX "^#define[\t ]+LIBJPEG_TURBO_VERSION[\t ]") + + if(JPEG_TURBO_VERSION_LINE) + # Support both raw values (e.g., 3.1.2) and quoted strings (e.g., "3.1.2"). + string(REGEX REPLACE "^#define[\t ]+LIBJPEG_TURBO_VERSION[\t ]+\"?([^\"]+)\"?.*" "\\1" JPEG_TURBO_VERSION_STRING "${JPEG_TURBO_VERSION_LINE}") + if(JPEG_TURBO_VERSION_STRING) + string(STRIP "${JPEG_TURBO_VERSION_STRING}" JPEG_TURBO_VERSION_STRING) + set(JPEG_LIB_VERSION "${JPEG_TURBO_VERSION_STRING}-${JPEG_LIB_VERSION}") + endif() + endif() + endif() endif() endmacro() + ocv_detect_jpeg_version("${JPEG_INCLUDE_DIR}/jpeglib.h") if(DEFINED CMAKE_CXX_LIBRARY_ARCHITECTURE) ocv_detect_jpeg_version("${JPEG_INCLUDE_DIR}/${CMAKE_CXX_LIBRARY_ARCHITECTURE}/jconfig.h")