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