From: mayeut Date: Sun, 24 Sep 2023 11:54:28 +0000 (+0200) Subject: Require `stdint.h` & `inttypes.h` X-Git-Tag: v2.5.1~13^2 X-Git-Url: https://main.carlh.net/gitweb/?p=openjpeg.git;a=commitdiff_plain;h=c4b3a91ede1d0301f7f5f50287c0bda35aa7ca7e Require `stdint.h` & `inttypes.h` With #1450 which goes with 480cc9d49775d018c19ce0e01f6be27858d63d39 "Remove support for non-C99 compilers (like VS2010) that don't support snprintf()", support for MSVC versions prior to vs2015 is dropped: https://stackoverflow.com/questions/2915672/snprintf-and-visual-studio-2010 This means that all supported MSVC versions do have `stdint.h` & `inttypes.h` now. For non windows platforms, those headers were already mandatory. Make them mandatory for all builds. --- diff --git a/CMakeLists.txt b/CMakeLists.txt index 8acca166..c6dd7080 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -184,20 +184,18 @@ endif() # Check if some include files are provided by the system include(EnsureFileInclude) # These files are mandatory -ensure_file_include("string.h" HAVE_STRING_H YES) -ensure_file_include("memory.h" HAVE_MEMORY_H YES) -ensure_file_include("stdlib.h" HAVE_STDLIB_H YES) -ensure_file_include("stdio.h" HAVE_STDIO_H YES) -ensure_file_include("math.h" HAVE_MATH_H YES) -ensure_file_include("float.h" HAVE_FLOAT_H YES) -ensure_file_include("time.h" HAVE_TIME_H YES) -ensure_file_include("stdarg.h" HAVE_STDARG_H YES) -ensure_file_include("ctype.h" HAVE_CTYPE_H YES) -ensure_file_include("assert.h" HAVE_ASSERT_H YES) - -# For the following files, we provide an alternative, they are not mandatory -ensure_file_include("stdint.h" OPJ_HAVE_STDINT_H NO) -ensure_file_include("inttypes.h" OPJ_HAVE_INTTYPES_H NO) +ensure_file_include("string.h" HAVE_STRING_H YES) +ensure_file_include("memory.h" HAVE_MEMORY_H YES) +ensure_file_include("stdlib.h" HAVE_STDLIB_H YES) +ensure_file_include("stdio.h" HAVE_STDIO_H YES) +ensure_file_include("math.h" HAVE_MATH_H YES) +ensure_file_include("float.h" HAVE_FLOAT_H YES) +ensure_file_include("time.h" HAVE_TIME_H YES) +ensure_file_include("stdarg.h" HAVE_STDARG_H YES) +ensure_file_include("ctype.h" HAVE_CTYPE_H YES) +ensure_file_include("assert.h" HAVE_ASSERT_H YES) +ensure_file_include("stdint.h" HAVE_STDINT_H YES) +ensure_file_include("inttypes.h" HAVE_INTTYPES_H YES) # why check this one ? for openjpip ? include (${CMAKE_ROOT}/Modules/CheckIncludeFile.cmake) diff --git a/src/bin/jp2/converttif.c b/src/bin/jp2/converttif.c index c2e7d1cb..e47a48d7 100644 --- a/src/bin/jp2/converttif.c +++ b/src/bin/jp2/converttif.c @@ -43,6 +43,7 @@ #include #include #include +#include #ifndef OPJ_HAVE_LIBTIFF # error OPJ_HAVE_LIBTIFF_NOT_DEFINED @@ -51,7 +52,6 @@ #include #include "openjpeg.h" #include "convert.h" -#include "opj_inttypes.h" /* -->> -->> -->> -->> diff --git a/src/bin/jp2/index.c b/src/bin/jp2/index.c index 3eae2f97..100945bf 100644 --- a/src/bin/jp2/index.c +++ b/src/bin/jp2/index.c @@ -34,9 +34,9 @@ #include #include #include +#include #include "openjpeg.h" #include "index.h" -#include "opj_inttypes.h" /* ------------------------------------------------------------------------------------ */ diff --git a/src/lib/openjp2/CMakeLists.txt b/src/lib/openjp2/CMakeLists.txt index f92044e8..8fda14dc 100644 --- a/src/lib/openjp2/CMakeLists.txt +++ b/src/lib/openjp2/CMakeLists.txt @@ -54,7 +54,6 @@ set(OPENJPEG_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/opj_intmath.h ${CMAKE_CURRENT_SOURCE_DIR}/opj_malloc.c ${CMAKE_CURRENT_SOURCE_DIR}/opj_malloc.h - ${CMAKE_CURRENT_SOURCE_DIR}/opj_stdint.h ${CMAKE_CURRENT_SOURCE_DIR}/sparse_array.c ${CMAKE_CURRENT_SOURCE_DIR}/sparse_array.h ) @@ -123,7 +122,7 @@ install(TARGETS ${INSTALL_LIBS} ) # Install includes files -install(FILES openjpeg.h opj_stdint.h +install(FILES openjpeg.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${OPENJPEG_INSTALL_SUBDIR} COMPONENT Headers ) diff --git a/src/lib/openjp2/openjpeg.h b/src/lib/openjp2/openjpeg.h index ebe78444..a421143a 100644 --- a/src/lib/openjp2/openjpeg.h +++ b/src/lib/openjp2/openjpeg.h @@ -122,7 +122,7 @@ typedef float OPJ_FLOAT32; typedef double OPJ_FLOAT64; typedef unsigned char OPJ_BYTE; -#include "opj_stdint.h" +#include typedef int8_t OPJ_INT8; typedef uint8_t OPJ_UINT8; diff --git a/src/lib/openjp2/opj_config.h.cmake.in b/src/lib/openjp2/opj_config.h.cmake.in index 5f762ca3..50015fb9 100644 --- a/src/lib/openjp2/opj_config.h.cmake.in +++ b/src/lib/openjp2/opj_config.h.cmake.in @@ -1,5 +1,4 @@ /* create opj_config.h for CMake */ -#cmakedefine OPJ_HAVE_STDINT_H @OPJ_HAVE_STDINT_H@ /*--------------------------------------------------------------------------*/ /* OpenJPEG Versioning */ diff --git a/src/lib/openjp2/opj_config_private.h.cmake.in b/src/lib/openjp2/opj_config_private.h.cmake.in index c41f9066..c559282c 100644 --- a/src/lib/openjp2/opj_config_private.h.cmake.in +++ b/src/lib/openjp2/opj_config_private.h.cmake.in @@ -1,5 +1,4 @@ /* create opj_config_private.h for CMake */ -#cmakedefine OPJ_HAVE_INTTYPES_H @OPJ_HAVE_INTTYPES_H@ #define OPJ_PACKAGE_VERSION "@PACKAGE_VERSION@" @@ -11,6 +10,8 @@ /*#cmakedefine HAVE_SYS_STAT_H @HAVE_SYS_STAT_H@*/ /*#cmakedefine HAVE_SYS_TYPES_H @HAVE_SYS_TYPES_H@ */ /*#cmakedefine HAVE_UNISTD_H @HAVE_UNISTD_H@*/ +/*#cmakedefine HAVE_INTTYPES_H @HAVE_INTTYPES_H@ */ +/*#cmakedefine HAVE_STDINT_H @HAVE_STDINT_H@ */ #cmakedefine _LARGEFILE_SOURCE #cmakedefine _LARGE_FILES diff --git a/src/lib/openjp2/opj_includes.h b/src/lib/openjp2/opj_includes.h index 0a8628c9..13613ce5 100644 --- a/src/lib/openjp2/opj_includes.h +++ b/src/lib/openjp2/opj_includes.h @@ -55,6 +55,8 @@ #include #include #include +#include +#include /* Use fseeko() and ftello() if they are available since they use @@ -218,7 +220,6 @@ typedef unsigned int OPJ_BITFIELD; #define OPJ_UNUSED(x) (void)x -#include "opj_inttypes.h" #include "opj_clock.h" #include "opj_malloc.h" #include "event.h" diff --git a/src/lib/openjp2/opj_inttypes.h b/src/lib/openjp2/opj_inttypes.h deleted file mode 100644 index 2c9749a1..00000000 --- a/src/lib/openjp2/opj_inttypes.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * The copyright in this software is being made available under the 2-clauses - * BSD License, included below. This software may be subject to other third - * party and contributor rights, including patent rights, and no such rights - * are granted under this license. - * - * Copyright (c) 2012, Mathieu Malaterre - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS' - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ -#ifndef OPJ_INTTYPES_H -#define OPJ_INTTYPES_H - -#include "opj_config_private.h" -#ifdef OPJ_HAVE_INTTYPES_H -#include -#else -#if defined(_WIN32) -#define PRId64 "I64d" -#define PRIi64 "I64i" -#define PRIu64 "I64u" -#define PRIx64 "I64x" -#else -#error unsupported platform -#endif -#endif - -#endif /* OPJ_INTTYPES_H */ diff --git a/src/lib/openjp2/opj_stdint.h b/src/lib/openjp2/opj_stdint.h deleted file mode 100644 index f26c921c..00000000 --- a/src/lib/openjp2/opj_stdint.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * The copyright in this software is being made available under the 2-clauses - * BSD License, included below. This software may be subject to other third - * party and contributor rights, including patent rights, and no such rights - * are granted under this license. - * - * Copyright (c) 2012, Mathieu Malaterre - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS' - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ -#ifndef OPJ_STDINT_H -#define OPJ_STDINT_H - -#include "opj_config.h" -#ifdef OPJ_HAVE_STDINT_H -#include -#else -#if defined(_WIN32) -typedef signed __int8 int8_t; -typedef unsigned __int8 uint8_t; -typedef signed __int16 int16_t; -typedef unsigned __int16 uint16_t; -typedef signed __int32 int32_t; -typedef unsigned __int32 uint32_t; -typedef signed __int64 int64_t; -typedef unsigned __int64 uint64_t; -#else -#error unsupported platform -#endif -#endif - -#endif /* OPJ_STDINT_H */ diff --git a/src/lib/openjp2/t1_ht_generate_luts.c b/src/lib/openjp2/t1_ht_generate_luts.c index 6876e3fd..22382a5a 100644 --- a/src/lib/openjp2/t1_ht_generate_luts.c +++ b/src/lib/openjp2/t1_ht_generate_luts.c @@ -38,12 +38,7 @@ #include #include #include - -typedef int OPJ_BOOL; -#define OPJ_TRUE 1 -#define OPJ_FALSE 0 - -#include "opj_stdint.h" +#include typedef int8_t OPJ_INT8; typedef uint8_t OPJ_UINT8; @@ -53,6 +48,9 @@ typedef int32_t OPJ_INT32; typedef uint32_t OPJ_UINT32; typedef int64_t OPJ_INT64; typedef uint64_t OPJ_UINT64; +typedef int OPJ_BOOL; +#define OPJ_TRUE 1 +#define OPJ_FALSE 0 //************************************************************************/ /** @brief HT decoding tables, as given in the standard diff --git a/src/lib/openjpip/box_manager.c b/src/lib/openjpip/box_manager.c index eb6b9d4c..fc3550a7 100644 --- a/src/lib/openjpip/box_manager.c +++ b/src/lib/openjpip/box_manager.c @@ -33,8 +33,8 @@ #include #include #include +#include #include "box_manager.h" -#include "opj_inttypes.h" #ifdef SERVER #include "fcgi_stdio.h" diff --git a/src/lib/openjpip/boxheader_manager.c b/src/lib/openjpip/boxheader_manager.c index f5958f64..d8f6ae6f 100644 --- a/src/lib/openjpip/boxheader_manager.c +++ b/src/lib/openjpip/boxheader_manager.c @@ -32,8 +32,8 @@ #include #include #include +#include #include "boxheader_manager.h" -#include "opj_inttypes.h" #ifdef SERVER #include "fcgi_stdio.h" diff --git a/src/lib/openjpip/byte_manager.h b/src/lib/openjpip/byte_manager.h index 57a7d501..02c806e0 100644 --- a/src/lib/openjpip/byte_manager.h +++ b/src/lib/openjpip/byte_manager.h @@ -32,8 +32,8 @@ #define BYTE_MANAGER_H_ #include +#include #include "openjpeg.h" -#include "opj_stdint.h" typedef uint8_t Byte_t; typedef uint16_t Byte2_t; typedef uint32_t Byte4_t; diff --git a/src/lib/openjpip/cachemodel_manager.c b/src/lib/openjpip/cachemodel_manager.c index 0888fc9c..3e825b8e 100644 --- a/src/lib/openjpip/cachemodel_manager.c +++ b/src/lib/openjpip/cachemodel_manager.c @@ -30,9 +30,9 @@ #include #include +#include #include "cachemodel_manager.h" #include "faixbox_manager.h" -#include "opj_inttypes.h" #ifdef SERVER #include "fcgi_stdio.h" diff --git a/src/lib/openjpip/codestream_manager.c b/src/lib/openjpip/codestream_manager.c index 76a1a34f..56ddd39c 100644 --- a/src/lib/openjpip/codestream_manager.c +++ b/src/lib/openjpip/codestream_manager.c @@ -29,8 +29,8 @@ */ #include +#include #include "codestream_manager.h" -#include "opj_inttypes.h" #ifdef SERVER #include "fcgi_stdio.h" diff --git a/src/lib/openjpip/dec_clientmsg_handler.c b/src/lib/openjpip/dec_clientmsg_handler.c index c257255a..07d51630 100644 --- a/src/lib/openjpip/dec_clientmsg_handler.c +++ b/src/lib/openjpip/dec_clientmsg_handler.c @@ -33,11 +33,11 @@ #include #include #include +#include #include "dec_clientmsg_handler.h" #include "ihdrbox_manager.h" #include "jpipstream_manager.h" #include "jp2k_encoder.h" -#include "opj_inttypes.h" void handle_JPIPstreamMSG(SOCKET connected_socket, cachelist_param_t *cachelist, Byte_t **jpipstream, OPJ_SIZE_T *streamlen, msgqueue_param_t *msgqueue) diff --git a/src/lib/openjpip/faixbox_manager.c b/src/lib/openjpip/faixbox_manager.c index d0b410a2..55253afa 100644 --- a/src/lib/openjpip/faixbox_manager.c +++ b/src/lib/openjpip/faixbox_manager.c @@ -30,8 +30,8 @@ #include #include +#include #include "faixbox_manager.h" -#include "opj_inttypes.h" #ifdef SERVER #include "fcgi_stdio.h" diff --git a/src/lib/openjpip/index_manager.c b/src/lib/openjpip/index_manager.c index 64e760d7..17f5887a 100644 --- a/src/lib/openjpip/index_manager.c +++ b/src/lib/openjpip/index_manager.c @@ -32,8 +32,8 @@ #include #include #include +#include -#include "opj_inttypes.h" #include "index_manager.h" #include "box_manager.h" #include "manfbox_manager.h" diff --git a/src/lib/openjpip/jp2k_encoder.c b/src/lib/openjpip/jp2k_encoder.c index 80b98c7e..296c1efb 100644 --- a/src/lib/openjpip/jp2k_encoder.c +++ b/src/lib/openjpip/jp2k_encoder.c @@ -34,10 +34,10 @@ #include #include #include +#include #include "jp2k_encoder.h" #include "j2kheader_manager.h" #include "imgreg_manager.h" -#include "opj_inttypes.h" #ifdef SERVER diff --git a/src/lib/openjpip/metadata_manager.c b/src/lib/openjpip/metadata_manager.c index d7128b94..697f96fb 100644 --- a/src/lib/openjpip/metadata_manager.c +++ b/src/lib/openjpip/metadata_manager.c @@ -29,7 +29,7 @@ */ #include "metadata_manager.h" -#include "opj_inttypes.h" +#include #include #include #include diff --git a/src/lib/openjpip/mhixbox_manager.c b/src/lib/openjpip/mhixbox_manager.c index 1a8eaa08..5f3bdfd6 100644 --- a/src/lib/openjpip/mhixbox_manager.c +++ b/src/lib/openjpip/mhixbox_manager.c @@ -31,8 +31,8 @@ #include #include +#include #include "mhixbox_manager.h" -#include "opj_inttypes.h" #ifdef SERVER #include "fcgi_stdio.h" diff --git a/src/lib/openjpip/msgqueue_manager.c b/src/lib/openjpip/msgqueue_manager.c index c6596271..5f939a95 100644 --- a/src/lib/openjpip/msgqueue_manager.c +++ b/src/lib/openjpip/msgqueue_manager.c @@ -37,6 +37,7 @@ #include #include #include +#include #ifdef _WIN32 #include #else @@ -45,7 +46,6 @@ #include "msgqueue_manager.h" #include "metadata_manager.h" #include "index_manager.h" -#include "opj_inttypes.h" #ifdef SERVER #include "fcgi_stdio.h" diff --git a/src/lib/openjpip/placeholder_manager.c b/src/lib/openjpip/placeholder_manager.c index 2ffa2034..9d73567f 100644 --- a/src/lib/openjpip/placeholder_manager.c +++ b/src/lib/openjpip/placeholder_manager.c @@ -31,8 +31,8 @@ #include #include #include +#include #include "placeholder_manager.h" -#include "opj_inttypes.h" #ifdef SERVER #include "fcgi_stdio.h" diff --git a/src/lib/openjpip/query_parser.c b/src/lib/openjpip/query_parser.c index 9b2fac2d..e192c73c 100644 --- a/src/lib/openjpip/query_parser.c +++ b/src/lib/openjpip/query_parser.c @@ -42,8 +42,8 @@ #include #include #include +#include #include "query_parser.h" -#include "opj_stdint.h" #ifdef SERVER #include "fcgi_stdio.h" diff --git a/src/lib/openjpip/sock_manager.h b/src/lib/openjpip/sock_manager.h index 01d97574..f33306c0 100644 --- a/src/lib/openjpip/sock_manager.h +++ b/src/lib/openjpip/sock_manager.h @@ -32,7 +32,7 @@ # define SOCK_MANAGER_H_ #include "byte_manager.h" -#include "opj_stdint.h" +#include #ifdef _WIN32 #include