From f06cc1200fd5f61b63479d7099ccf4a7457a89bd Mon Sep 17 00:00:00 2001 From: DRC Date: Tue, 10 May 2016 19:36:34 -0500 Subject: [PATCH] Build: Add integer version macro to jconfig.h This makes it significantly easier to do conditional compilation based on the libjpeg-turbo version. Based on: https://github.com/hasinoff/libjpeg-turbo/commit/e6d5b3e50b8b07488cb7b4d26ab2061685bc6875 https://github.com/hasinoff/libjpeg-turbo/commit/1394a89ba6f3cd8abb556c1b65bac4a5f09760d0 Closes #80 --- CMakeLists.txt | 18 ++++++++++++++++++ configure.ac | 10 ++++++++++ jconfig.h.in | 3 +++ win/jconfig.h.in | 1 + 4 files changed, 32 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1ad29f0..5924f0c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,6 +10,24 @@ endif() project(libjpeg-turbo C) set(VERSION 1.4.90) +string(REPLACE "." ";" VERSION_TRIPLET ${VERSION}) +list(GET VERSION_TRIPLET 0 VERSION_MAJOR) +list(GET VERSION_TRIPLET 1 VERSION_MINOR) +list(GET VERSION_TRIPLET 2 VERSION_REVISION) +function(pad_number NUMBER OUTPUT_LEN) + string(LENGTH "${${NUMBER}}" INPUT_LEN) + if(INPUT_LEN LESS OUTPUT_LEN) + math(EXPR ZEROES "${OUTPUT_LEN} - ${INPUT_LEN} - 1") + set(NUM ${${NUMBER}}) + foreach(C RANGE ${ZEROES}) + set(NUM "0${NUM}") + endforeach() + set(${NUMBER} ${NUM} PARENT_SCOPE) + endif() +endfunction() +pad_number(VERSION_MINOR 3) +pad_number(VERSION_REVISION 3) +set(LIBJPEG_TURBO_VERSION_NUMBER ${VERSION_MAJOR}${VERSION_MINOR}${VERSION_REVISION}) if(NOT WIN32) message(FATAL_ERROR "Platform not supported by this build system. Use autotools instead.") diff --git a/configure.ac b/configure.ac index 9b2c573..c728ee8 100644 --- a/configure.ac +++ b/configure.ac @@ -224,6 +224,16 @@ AC_SUBST(MEM_SRCDST_FUNCTIONS) AC_DEFINE_UNQUOTED(LIBJPEG_TURBO_VERSION, [$VERSION], [libjpeg-turbo version]) +m4_define(version_triplet,m4_split(AC_PACKAGE_VERSION,[[.]])) +m4_define(version_major,m4_argn(1,version_triplet)) +m4_define(version_minor,m4_argn(2,version_triplet)) +m4_define(version_revision,m4_argn(3,version_triplet)) +VERSION_MAJOR=version_major +VERSION_MINOR=version_minor +VERSION_REVISION=version_revision +LIBJPEG_TURBO_VERSION_NUMBER=`printf "%d%03d%03d" $VERSION_MAJOR $VERSION_MINOR $VERSION_REVISION` +AC_DEFINE_UNQUOTED(LIBJPEG_TURBO_VERSION_NUMBER, [$LIBJPEG_TURBO_VERSION_NUMBER], [libjpeg-turbo version in integer form]) + VERSION_SCRIPT=yes AC_ARG_ENABLE([ld-version-script], AS_HELP_STRING([--disable-ld-version-script], diff --git a/jconfig.h.in b/jconfig.h.in index 42d86f2..02c12cc 100644 --- a/jconfig.h.in +++ b/jconfig.h.in @@ -6,6 +6,9 @@ /* libjpeg-turbo version */ #define LIBJPEG_TURBO_VERSION 0 +/* libjpeg-turbo version in integer form */ +#define LIBJPEG_TURBO_VERSION_NUMBER 0 + /* Support arithmetic encoding */ #undef C_ARITH_CODING_SUPPORTED diff --git a/win/jconfig.h.in b/win/jconfig.h.in index 8783900..9d35121 100644 --- a/win/jconfig.h.in +++ b/win/jconfig.h.in @@ -3,6 +3,7 @@ #define JPEG_LIB_VERSION @JPEG_LIB_VERSION@ #define LIBJPEG_TURBO_VERSION @VERSION@ +#define LIBJPEG_TURBO_VERSION_NUMBER @LIBJPEG_TURBO_VERSION_NUMBER@ #cmakedefine C_ARITH_CODING_SUPPORTED #cmakedefine D_ARITH_CODING_SUPPORTED #cmakedefine MEM_SRCDST_SUPPORTED -- 2.40.0