Thursday, 15 March 2012

Building FreeImage 3.16.0 for Android -



Building FreeImage 3.16.0 for Android -

i'm having problem building freeimage 3.16.0 android. i've referenced both how build freeimage android source distribution? , http://recursify.com/blog/2013/05/25/building-freeimage-for-android (both freeimage 3.15.4) neither work due believe compiler issues freeimage 3.16.0.

here's configuration:

ubuntu 13.04 64-bit (also have tried os x 10.9.2 same results)

android-ndk-r9d (also have tried android-ndk-r8-crystax-1 , android-ndk-r8e same results)

file structure:

freeimageandroid/ -- jni/ -- android.mk -- application.mk -- makefile.srcs (from freeimage source archive root directory) -- source/ (freeimage source folder)

android.mk:

local_path := $(call my-dir) include $(local_path)/makefile.srcs include $(clear_vars) local_module := freeimage local_c_includes := $(local_path)/source \ $(local_path)/source/metadata \ $(local_path)/source/freeimagetoolkit \ $(local_path)/source/libjpeg \ $(local_path)/source/libpng \ $(local_path)/source/libtiff4 \ $(local_path)/source/zlib \ $(local_path)/source/libopenjpeg \ $(local_path)/source/openexr \ $(local_path)/source/openexr/half \ $(local_path)/source/openexr/iex \ $(local_path)/source/openexr/ilmimf \ $(local_path)/source/openexr/ilmthread \ $(local_path)/source/openexr/imath \ $(local_path)/source/librawlite \ $(local_path)/source/librawlite/dcraw \ $(local_path)/source/librawlite/internal \ $(local_path)/source/librawlite/libraw \ $(local_path)/source/librawlite/src local_src_files := $(srcs) local_cpp_features := rtti exceptions local_cflags := -o3 -fpic include $(build_static_library) include $(clear_vars) local_module := freeimageshared local_static_libraries := freeimage include $(build_shared_library)

application.mk:

app_stl := gnustl_static app_abi := app_optim := release

other steps:

commented #define have_search_h 1 out in source/libtiff4/tif_config.h

deleted "././source/freeimage/pluginjxr.cpp" srcs definition in makefile.srcs (b/c looked broken)

added swab function source\librawlite\internal\dcraw_common.cpp

here compiler errors after running ndk-build freeimageandroid directory:

compile++ thumb : freeimage <= dcraw_common.cpp in file included /home/parallels/freeimageandroid/jni/source/librawlite/libraw/libraw.h:40:0, /home/parallels/freeimageandroid/jni/source/librawlite/./internal/dcraw_common.cpp:29: /home/parallels/freeimageandroid/jni/source/librawlite/libraw/libraw_datastream.h:93:35: warning: 'auto_ptr' deprecated (declared @ /home/parallels/android-ndk-r8-crystax-1/sources/cxx-stl/gnu-libstdc++/4.6/include/backward/auto_ptr.h:87) [-wdeprecated-declarations] /home/parallels/freeimageandroid/jni/source/librawlite/./internal/dcraw_common.cpp: in fellow member function 'void libraw::kodak_radc_load_raw()': /home/parallels/freeimageandroid/jni/source/librawlite/./internal/dcraw_common.cpp:2412:3: error: narrowing conversion of '-0x00000000000000002' 'int' 'const char' within { } [-fpermissive] /home/parallels/freeimageandroid/jni/source/librawlite/./internal/dcraw_common.cpp:2412:3: error: narrowing conversion of '-0x00000000000000003' 'int' 'const char' within { } [-fpermissive] /home/parallels/freeimageandroid/jni/source/librawlite/./internal/dcraw_common.cpp:2412:3: error: narrowing conversion of '-0x00000000000000011' 'int' 'const char' within { } [-fpermissive] /home/parallels/freeimageandroid/jni/source/librawlite/./internal/dcraw_common.cpp:2412:3: error: narrowing conversion of '-0x00000000000000005' 'int' 'const char' within { } [-fpermissive] /home/parallels/freeimageandroid/jni/source/librawlite/./internal/dcraw_common.cpp:2412:3: error: narrowing conversion of '-0x00000000000000007' 'int' 'const char' within { } [-fpermissive] /home/parallels/freeimageandroid/jni/source/librawlite/./internal/dcraw_common.cpp:2412:3: error: narrowing conversion of '-0x00000000000000012' 'int' 'const char' within { } [-fpermissive] /home/parallels/freeimageandroid/jni/source/librawlite/./internal/dcraw_common.cpp:2412:3: error: narrowing conversion of '-0x00000000000000009' 'int' 'const char' within { } [-fpermissive] /home/parallels/freeimageandroid/jni/source/librawlite/./internal/dcraw_common.cpp:2412:3: error: narrowing conversion of '-0x00000000000000002' 'int' 'const char' within { } [-fpermissive] /home/parallels/freeimageandroid/jni/source/librawlite/./internal/dcraw_common.cpp:2412:3: error: narrowing conversion of '-0x0000000000000001c' 'int' 'const char' within { } [-fpermissive] /home/parallels/freeimageandroid/jni/source/librawlite/./internal/dcraw_common.cpp:2412:3: error: narrowing conversion of '-0x00000000000000031' 'int' 'const char' within { } [-fpermissive] /home/parallels/freeimageandroid/jni/source/librawlite/./internal/dcraw_common.cpp:2412:3: error: narrowing conversion of '-0x00000000000000009' 'int' 'const char' within { } [-fpermissive] /home/parallels/freeimageandroid/jni/source/librawlite/./internal/dcraw_common.cpp:2412:3: error: narrowing conversion of '-0x0000000000000004f' 'int' 'const char' within { } [-fpermissive] /home/parallels/freeimageandroid/jni/source/librawlite/./internal/dcraw_common.cpp:2412:3: error: narrowing conversion of '-0x00000000000000001' 'int' 'const char' within { } [-fpermissive] /home/parallels/freeimageandroid/jni/source/librawlite/./internal/dcraw_common.cpp:2412:3: error: narrowing conversion of '-0x00000000000000010' 'int' 'const char' within { } [-fpermissive] /home/parallels/freeimageandroid/jni/source/librawlite/./internal/dcraw_common.cpp:2412:3: error: narrowing conversion of '-0x00000000000000025' 'int' 'const char' within { } [-fpermissive] /home/parallels/freeimageandroid/jni/source/librawlite/./internal/dcraw_common.cpp:2412:3: error: narrowing conversion of '-0x0000000000000001a' 'int' 'const char' within { } [-fpermissive] /home/parallels/freeimageandroid/jni/source/librawlite/./internal/dcraw_common.cpp:2412:3: error: narrowing conversion of '-0x0000000000000000d' 'int' 'const char' within { } [-fpermissive] /home/parallels/freeimageandroid/jni/source/librawlite/./internal/dcraw_common.cpp:2412:3: error: narrowing conversion of '-0x00000000000000027' 'int' 'const char' within { } [-fpermissive] /home/parallels/freeimageandroid/jni/source/librawlite/./internal/dcraw_common.cpp:2412:3: error: narrowing conversion of '-0x00000000000000037' 'int' 'const char' within { } [-fpermissive] /home/parallels/freeimageandroid/jni/source/librawlite/./internal/dcraw_common.cpp:2412:3: error: narrowing conversion of '-0x0000000000000004c' 'int' 'const char' within { } [-fpermissive] /home/parallels/freeimageandroid/jni/source/librawlite/./internal/dcraw_common.cpp: in fellow member function 'void libraw::vng_interpolate()': /home/parallels/freeimageandroid/jni/source/librawlite/./internal/dcraw_common.cpp:3965:3: error: narrowing conversion of '128' 'int' 'const signed char' within { } [-fpermissive] /home/parallels/freeimageandroid/jni/source/librawlite/./internal/dcraw_common.cpp:3965:3: error: narrowing conversion of '136' 'int' 'const signed char' within { } [-fpermissive] /home/parallels/freeimageandroid/jni/source/librawlite/./internal/dcraw_common.cpp:3965:3: error: narrowing conversion of '128' 'int' 'const signed char' within { } [-fpermissive] /home/parallels/freeimageandroid/jni/source/librawlite/./internal/dcraw_common.cpp:3965:3: error: narrowing conversion of '136' 'int' 'const signed char' within { } [-fpermissive] /home/parallels/freeimageandroid/jni/source/librawlite/./internal/dcraw_common.cpp:3965:3: error: narrowing conversion of '128' 'int' 'const signed char' within { } [-fpermissive] /home/parallels/freeimageandroid/jni/source/librawlite/./internal/dcraw_common.cpp:3965:3: error: narrowing conversion of '136' 'int' 'const signed char' within { } [-fpermissive] /home/parallels/freeimageandroid/jni/source/librawlite/./internal/dcraw_common.cpp: in fellow member function 'void libraw::adobe_coeff(const char*, const char*)': /home/parallels/freeimageandroid/jni/source/librawlite/./internal/dcraw_common.cpp:7270:3: error: narrowing conversion of '65535' 'int' 'short int' within { } [-fpermissive] /home/parallels/freeimageandroid/jni/source/librawlite/./internal/dcraw_common.cpp:7270:3: error: narrowing conversion of '65535' 'int' 'short int' within { } [-fpermissive] make: *** [/home/parallels/freeimageandroid/obj/local/armeabi-v7a/objs/freeimage/source/librawlite/./internal/dcraw_common.o] error 1

has else compiled freeimage 3.16.0 android? there other options can utilize build ndk?

i had same problem, , compiled on android ndk r10d workarounds.

since i'm using jpg , png formats, of changes made supposed work, untested (mostly webp , tiff support)

i disabled jxr plugin removing makefile , static plugin initialization, freeimage's plugin scheme nightmare, i'm not sure didn't break anything.

my patch available under http://j.mp/_fidroid

android android-ndk freeimage

No comments:

Post a Comment