Quantcast
Channel: Adobe Community: Message List - XMP SDK
Viewing all articles
Browse latest Browse all 801

XMP toolkit on Android device

$
0
0

I am trying to port XMP toolkit over to android device.  I was able to build xmpcore successfully, and have a libXMPCore.so.  When I try to make libXMPFile.so using ndk-build, I am running couple of problems I don't understand.

 

1) Seems like libXMPFile.so is depended on libXMPCore.so.  I managed to include libXMPCore.so in the Android.mk for libXMPFiles.  My Android.mk looks like this:

 

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

 

# Include all cpp file

LOCAL_SRC_FILES := \

    ../source/WXMPFiles.cpp \

    ../source/XMPFiles.cpp \

    ../source/XMPFiles_Impl.cpp \

    ../../source/XMP_LibUtils.cpp \

    ../../source/UnicodeConversions.cpp \

    ../../source/XML_Node.cpp \

    ../../third-party/zuid/interfaces/MD5.cpp \

    ../source/FileHandlers/ASF_Handler.cpp \

    ../source/FileHandlers/AVCHD_Handler.cpp \

    ../source/FileHandlers/RIFF_Handler.cpp \

    ../source/FileHandlers/Basic_Handler.cpp \

    ../source/FileHandlers/FLV_Handler.cpp \

    ../source/FileHandlers/InDesign_Handler.cpp \

    ../source/FileHandlers/JPEG_Handler.cpp \

    ../source/FileHandlers/MP3_Handler.cpp \

    ../source/FileHandlers/MPEG2_Handler.cpp \

    ../source/FileHandlers/MPEG4_Handler.cpp \

    ../source/FileHandlers/P2_Handler.cpp \

    ../source/FileHandlers/PNG_Handler.cpp \

    ../source/FileHandlers/PostScript_Handler.cpp \

    ../source/FileHandlers/PSD_Handler.cpp \

    ../source/FileHandlers/Scanner_Handler.cpp \

    ../source/FileHandlers/SonyHDV_Handler.cpp \

    ../source/FileHandlers/SWF_Handler.cpp \

    ../source/FileHandlers/TIFF_Handler.cpp \

    ../source/FileHandlers/Trivial_Handler.cpp \

    ../source/FileHandlers/UCF_Handler.cpp \

    ../source/FileHandlers/XDCAM_Handler.cpp \

    ../source/FileHandlers/XDCAMEX_Handler.cpp \

    ../source/FormatSupport/ASF_Support.cpp \

    ../source/FormatSupport/IPTC_Support.cpp \

    ../source/FormatSupport/MOOV_Support.cpp \

    ../source/FormatSupport/ISOBaseMedia_Support.cpp \

    ../source/FormatSupport/PNG_Support.cpp \

    ../source/FormatSupport/PSIR_FileWriter.cpp \

    ../source/FormatSupport/PSIR_MemoryReader.cpp \

    ../source/FormatSupport/QuickTime_Support.cpp \

    ../source/FormatSupport/Reconcile_Impl.cpp \

    ../source/FormatSupport/ReconcileIPTC.cpp \

    ../source/FormatSupport/ReconcileLegacy.cpp \

    ../source/FormatSupport/ReconcileTIFF.cpp \

    ../source/FormatSupport/RIFF.cpp \

    ../source/FormatSupport/RIFF_Support.cpp \

    ../source/FormatSupport/SWF_Support.cpp \

    ../source/FormatSupport/TIFF_FileWriter.cpp \

    ../source/FormatSupport/TIFF_MemoryReader.cpp \

    ../source/FormatSupport/TIFF_Support.cpp \

    ../source/FormatSupport/XDCAM_Support.cpp \

    ../source/FormatSupport/XMPScanner.cpp \

    ../source/HandlerRegistry.cpp \

    ../source/FileHandlers/AIFF_Handler.cpp \

    ../source/FileHandlers/WAVE_Handler.cpp \

    ../source/FormatSupport/ID3_Support.cpp \

    ../source/FormatSupport/AIFF/AIFFBehavior.cpp \

    ../source/FormatSupport/AIFF/AIFFMetadata.cpp \

    ../source/FormatSupport/AIFF/AIFFReconcile.cpp \

    ../source/FormatSupport/IFF/Chunk.cpp \

    ../source/FormatSupport/IFF/ChunkController.cpp\

    ../source/FormatSupport/IFF/ChunkPath.cpp \

    ../source/FormatSupport/IFF/IChunkBehavior.cpp \

    ../source/FormatSupport/WAVE/BEXTMetadata.cpp \

    ../source/FormatSupport/WAVE/CartMetadata.cpp \

    ../source/FormatSupport/WAVE/Cr8rMetadata.cpp \

    ../source/FormatSupport/WAVE/DISPMetadata.cpp \

    ../source/FormatSupport/WAVE/INFOMetadata.cpp \

    ../source/FormatSupport/WAVE/PrmLMetadata.cpp \

    ../source/FormatSupport/WAVE/WAVEBehavior.cpp \

    ../source/FormatSupport/WAVE/WAVEReconcile.cpp \

    ../source/NativeMetadataSupport/IMetadata.cpp \

    ../source/NativeMetadataSupport/IReconcile.cpp \

    ../source/NativeMetadataSupport/MetadataSet.cpp \

    ../source/PluginHandler/FileHandlerInstance.cpp \

    ../source/PluginHandler/HostAPIImpl.cpp \

    ../source/PluginHandler/Module.cpp \

    ../source/PluginHandler/OS_Utils_Linux.cpp \

    ../source/PluginHandler/PluginManager.cpp \

    ../source/PluginHandler/XMPAtoms.cpp \

    ../../source/Host_IO-UNIX.cpp \

    ../../source/XIO.cpp \

    ../../source/XMPFiles_IO.cpp \

    ../public/include/client-glue\TXMPMeta.incl_cpp

 

#    ../../source/Host_IO-POSIX.cpp \

    ../../source/XIO.cpp \

    ../../source/XMPFiles_IO.cpp

 

LOCAL_CPPFLAGS := -std=c++0x

LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../../../../../../android-ndk-r8e/sources/cxx-stl/gn u-libstdc++/4.6/libs/x86/include

LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../../../../../../android-ndk-r8e/sources/cxx-stl/gn u-libstdc++/4.6/include

LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../../../../../../

LOCAL_C_INCLUDES += $(LOCAL_PATH)/../source

LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../source

LOCAL_C_INCLUDES += $(LOCAL_PATH)/../..

LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../public/include

LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../XMPFilesPlugins/api/source

 

#LIB_PATH := $(LOCAL_PATH)/../obj/local/armeabi-v7a

#LOCAL_LDLIBS := $(LIB_PATH) -lXMPCore

 

LOCAL_LDLIBS := $(LOCAL_PATH)/../obj/local/armeabi-v7a/libXMPCore.so

#LOCAL_SHARED_LIBRARIES := libXMPCore

$(info "Alice shared lib done")

 

#LOCAL_SHARED_LIBRARIES += libutils liblog libcutils libc libgabi++ libexpat libz libXMPCore

 

LOCAL_MODULE := xmpfile

LOCAL_MODULE_TAGS := optional

include $(BUILD_SHARED_LIBRARY)

 

However, when I tried to run ndk-build, it complains link errors such as:

WXMPFiles.o: in function WXMPFiles_GetXMP_1:/home/w18656/workspace/xline2/main-jb-qcpro-4.2-xl ine/motorola/hal/ispbypass/xmp/XMP-Toolkit-SDK-CS6/XMPFiles/jni/../sou rce/WXMPFiles.cpp:288: error: undefined reference to 'TXMPMeta<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >::TXMPMeta(__XMPMeta__*)'

 

 

I am pretty confused as for TXMPMeta class implementation.  Seems like the definations are in TXMPMeta.hpp, and implmentation of the class in the client-glue/TXMPMeta.incl_cpp.

 

However, I checked the XMPFiles.mak, and TXMPMeta.incl_cpp is not one of file we compile.  How do we compile the implemenation of  class TXMPMeta in?  (Same issues with other TXMPxxx.incl_cpp)

 

I am using 8e android NDK, and trying to build a native shared lib for XMPCore and XMPFiles.

 

Thanks for all your help.


Viewing all articles
Browse latest Browse all 801


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>