DentonW / DevIL

Developer's Image Library (DevIL) is a cross-platform image library utilizing a simple syntax to load, save, convert, manipulate, filter, and display a variety of images with ease. It is highly portable and has been ported to several platforms.
http://openil.sourceforge.net/
GNU Lesser General Public License v2.1
446 stars 138 forks source link

Compile against newer versions of Jasper #91

Closed mitchblank closed 3 years ago

mitchblank commented 3 years ago

jasper changed the callback API (twice!) This is the workaround that gdal used to deal with the problem in https://github.com/OSGeo/gdal/commit/9ef8e16e27c5fc4c491debe50bf2b7f3e94ed334

fixes #90

kloczek commented 3 years ago

Looks like that PR solve #94. Is it possible to merge that PR and make new release?

kloczek commented 2 years ago

I've been trying to use this commit to compile DevIL against latest version of the Jasper and looks like it fails.

[tkloczko@devel-g2v x86_64-redhat-linux-gnu]$ make
/usr/bin/cmake -S/home/tkloczko/rpmbuild/BUILD/DevIL-1.8.0/DevIL -B/home/tkloczko/rpmbuild/BUILD/DevIL-1.8.0/DevIL/x86_64-redhat-linux-gnu --check-build-system CMakeFiles/Makefile.cmake 0
/usr/bin/cmake -E cmake_progress_start /home/tkloczko/rpmbuild/BUILD/DevIL-1.8.0/DevIL/x86_64-redhat-linux-gnu/CMakeFiles /home/tkloczko/rpmbuild/BUILD/DevIL-1.8.0/DevIL/x86_64-redhat-linux-gnu//CMakeFiles/progress.marks
make  -f CMakeFiles/Makefile2 all
make[1]: Entering directory '/home/tkloczko/rpmbuild/BUILD/DevIL-1.8.0/DevIL/x86_64-redhat-linux-gnu'
make  -f src-IL/CMakeFiles/IL.dir/build.make src-IL/CMakeFiles/IL.dir/depend
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/DevIL-1.8.0/DevIL/x86_64-redhat-linux-gnu'
cd /home/tkloczko/rpmbuild/BUILD/DevIL-1.8.0/DevIL/x86_64-redhat-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/tkloczko/rpmbuild/BUILD/DevIL-1.8.0/DevIL /home/tkloczko/rpmbuild/BUILD/DevIL-1.8.0/DevIL/src-IL /home/tkloczko/rpmbuild/BUILD/DevIL-1.8.0/DevIL/x86_64-redhat-linux-gnu /home/tkloczko/rpmbuild/BUILD/DevIL-1.8.0/DevIL/x86_64-redhat-linux-gnu/src-IL /home/tkloczko/rpmbuild/BUILD/DevIL-1.8.0/DevIL/x86_64-redhat-linux-gnu/src-IL/CMakeFiles/IL.dir/DependInfo.cmake --color=
Consolidate compiler generated dependencies of target IL
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/DevIL-1.8.0/DevIL/x86_64-redhat-linux-gnu'
make  -f src-IL/CMakeFiles/IL.dir/build.make src-IL/CMakeFiles/IL.dir/build
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/DevIL-1.8.0/DevIL/x86_64-redhat-linux-gnu'
[  1%] Building CXX object src-IL/CMakeFiles/IL.dir/src/il_jp2.cpp.o
cd /home/tkloczko/rpmbuild/BUILD/DevIL-1.8.0/DevIL/x86_64-redhat-linux-gnu/src-IL && /usr/bin/g++ -DIL_EXPORTS -I/home/tkloczko/rpmbuild/BUILD/DevIL-1.8.0/DevIL/src-IL/include -I/home/tkloczko/rpmbuild/BUILD/DevIL-1.8.0/DevIL/src-IL/../include -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -fno-rtti -DNDEBUG -fPIC -MD -MT src-IL/CMakeFiles/IL.dir/src/il_jp2.cpp.o -MF CMakeFiles/IL.dir/src/il_jp2.cpp.o.d -o CMakeFiles/IL.dir/src/il_jp2.cpp.o -c /home/tkloczko/rpmbuild/BUILD/DevIL-1.8.0/DevIL/src-IL/src/il_jp2.cpp
In file included from /usr/include/jasper/jasper.h:73,
                 from /home/tkloczko/rpmbuild/BUILD/DevIL-1.8.0/DevIL/src-IL/src/il_jp2.cpp:16:
/usr/include/jasper/jas_config.h:115:2: warning: #warning "Your code is being built against an older version of the C standard than JasPer was.  Although this is supported, this may require some extra preprocessor defines when building." [-Wcpp]
  115 | #warning "Your code is being built against an older version of the C standard than JasPer was.  Although this is supported, this may require some extra preprocessor defines when building."
      |  ^~~~~~~
/home/tkloczko/rpmbuild/BUILD/DevIL-1.8.0/DevIL/src-IL/src/il_jp2.cpp: In function ‘int iJp2_file_read(jas_stream_obj_t*, char*, unsigned int)’:
/home/tkloczko/rpmbuild/BUILD/DevIL-1.8.0/DevIL/src-IL/src/il_jp2.cpp:332:9: warning: statement has no effect [-Wunused-value]
  332 |         obj;
      |         ^~~
/home/tkloczko/rpmbuild/BUILD/DevIL-1.8.0/DevIL/src-IL/src/il_jp2.cpp: In function ‘int iJp2_file_write(jas_stream_obj_t*, const char*, unsigned int)’:
/home/tkloczko/rpmbuild/BUILD/DevIL-1.8.0/DevIL/src-IL/src/il_jp2.cpp:344:9: warning: statement has no effect [-Wunused-value]
  344 |         obj;
      |         ^~~
/home/tkloczko/rpmbuild/BUILD/DevIL-1.8.0/DevIL/src-IL/src/il_jp2.cpp: In function ‘long int iJp2_file_seek(jas_stream_obj_t*, long int, int)’:
/home/tkloczko/rpmbuild/BUILD/DevIL-1.8.0/DevIL/src-IL/src/il_jp2.cpp:350:9: warning: statement has no effect [-Wunused-value]
  350 |         obj;
      |         ^~~
/home/tkloczko/rpmbuild/BUILD/DevIL-1.8.0/DevIL/src-IL/src/il_jp2.cpp: In function ‘int iJp2_file_close(jas_stream_obj_t*)’:
/home/tkloczko/rpmbuild/BUILD/DevIL-1.8.0/DevIL/src-IL/src/il_jp2.cpp:367:9: warning: statement has no effect [-Wunused-value]
  367 |         obj;
      |         ^~~
/home/tkloczko/rpmbuild/BUILD/DevIL-1.8.0/DevIL/src-IL/src/il_jp2.cpp: At global scope:
/home/tkloczko/rpmbuild/BUILD/DevIL-1.8.0/DevIL/src-IL/src/il_jp2.cpp:372:9: error: invalid conversion from ‘int (*)(jas_stream_obj_t*, char*, unsigned int)’ {aka ‘int (*)(void*, char*, unsigned int)’} to ‘ssize_t (*)(jas_stream_obj_t*, char*, size_t)’ {aka ‘long int (*)(void*, char*, long unsigned int)’} [-fpermissive]
  372 |         iJp2_file_read,
      |         ^~~~~~~~~~~~~~
      |         |
      |         int (*)(jas_stream_obj_t*, char*, unsigned int) {aka int (*)(void*, char*, unsigned int)}
/home/tkloczko/rpmbuild/BUILD/DevIL-1.8.0/DevIL/src-IL/src/il_jp2.cpp:373:9: error: invalid conversion from ‘int (*)(jas_stream_obj_t*, const char*, unsigned int)’ {aka ‘int (*)(void*, const char*, unsigned int)’} to ‘ssize_t (*)(jas_stream_obj_t*, const char*, size_t)’ {aka ‘long int (*)(void*, const char*, long unsigned int)’} [-fpermissive]
  373 |         iJp2_file_write,
      |         ^~~~~~~~~~~~~~~
      |         |
      |         int (*)(jas_stream_obj_t*, const char*, unsigned int) {aka int (*)(void*, const char*, unsigned int)}
make[2]: *** [src-IL/CMakeFiles/IL.dir/build.make:541: src-IL/CMakeFiles/IL.dir/src/il_jp2.cpp.o] Error 1
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/DevIL-1.8.0/DevIL/x86_64-redhat-linux-gnu'
make[1]: *** [CMakeFiles/Makefile2:137: src-IL/CMakeFiles/IL.dir/all] Error 2
make[1]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/DevIL-1.8.0/DevIL/x86_64-redhat-linux-gnu'
make: *** [Makefile:139: all] Error 2

Are you going to try port DevIL to be able use it with Jasper 3.x?