Building a static library that contains others static libraries

53 views
Skip to first unread message

Jean-Philippe Déry

unread,
Mar 15, 2015, 7:35:27 PM3/15/15
to andro...@googlegroups.com
Hi,

I'm currently trying to build a static library which contains everything required to make it run, in this case it's V8 static libraries. I've tried most of the stuff I could find but still, the final .a file does not contains the required V8 libs. V8's libs are about 20 megabytes and once built my library is 1.1 megabyte.

Here my Application.mk

APP_ABI := armeabi-v7a armeabi x86
APP_STL
:= stlport_shared
APP_PLATFORM
:= android-15
APP_MODULES
:= MetisCore v8_base v8_libbase v8_nosnapshot v8_libplatform

And here my Android.mk


LOCAL_PATH
:= $(call my-dir)


#---------------------------------------------------------------------------------------------------
# v8_libplatform
#---------------------------------------------------------------------------------------------------


include $
(CLEAR_VARS)
LOCAL_MODULE
:= v8_libplatform


ifeq
($(TARGET_ARCH_ABI), armeabi)
  LOCAL_SRC_FILES
:= ../../../vendors/v8-3.29/libs/android_arm.release/libv8_libplatform.a
endif


ifeq
($(TARGET_ARCH_ABI), armeabi-v7a)
  LOCAL_SRC_FILES
:= ../../../vendors/v8-3.29/libs/android_arm.release/libv8_libplatform.a
endif


ifeq
($(TARGET_ARCH_ABI), x86)
  LOCAL_SRC_FILES
:= ../../../vendors/v8-3.29/libs/android_ia32.release/libv8_libplatform.a
endif


include $
(PREBUILT_STATIC_LIBRARY)


#---------------------------------------------------------------------------------------------------
# v8_libbase
#---------------------------------------------------------------------------------------------------


include $
(CLEAR_VARS)
LOCAL_MODULE
:= v8_libbase


ifeq
($(TARGET_ARCH_ABI), armeabi)
  LOCAL_SRC_FILES
:= ../../../vendors/v8-3.29/libs/android_arm.release/libv8_libbase.a
endif


ifeq
($(TARGET_ARCH_ABI), armeabi-v7a)
  LOCAL_SRC_FILES
:= ../../../vendors/v8-3.29/libs/android_arm.release/libv8_libbase.a
endif


ifeq
($(TARGET_ARCH_ABI), x86)
  LOCAL_SRC_FILES
:= ../../../vendors/v8-3.29/libs/android_ia32.release/libv8_libbase.a
endif


include $
(PREBUILT_STATIC_LIBRARY)


#---------------------------------------------------------------------------------------------------
# libv8_base
#---------------------------------------------------------------------------------------------------


include $
(CLEAR_VARS)
LOCAL_MODULE
:= v8_base


ifeq
($(TARGET_ARCH_ABI), armeabi)
  LOCAL_SRC_FILES
:= ../../../vendors/v8-3.29/libs/android_arm.release/libv8_base.a
endif


ifeq
($(TARGET_ARCH_ABI), armeabi-v7a)
  LOCAL_SRC_FILES
:= ../../../vendors/v8-3.29/libs/android_arm.release/libv8_base.a
endif


ifeq
($(TARGET_ARCH_ABI), x86)
  LOCAL_SRC_FILES
:= ../../../vendors/v8-3.29/libs/android_ia32.release/libv8_base.a
endif


include $
(PREBUILT_STATIC_LIBRARY)


#---------------------------------------------------------------------------------------------------
# libv8_nosnapshot
#---------------------------------------------------------------------------------------------------


include $
(CLEAR_VARS)
LOCAL_MODULE
:= v8_nosnapshot


ifeq
($(TARGET_ARCH_ABI), armeabi)
  LOCAL_SRC_FILES
:= ../../../vendors/v8-3.29/libs/android_arm.release/libv8_nosnapshot.a
endif


ifeq
($(TARGET_ARCH_ABI), armeabi-v7a)
  LOCAL_SRC_FILES
:= ../../../vendors/v8-3.29/libs/android_arm.release/libv8_nosnapshot.a
endif


ifeq
($(TARGET_ARCH_ABI), x86)
  LOCAL_SRC_FILES
:= ../../../vendors/v8-3.29/libs/android_ia32.release/libv8_nosnapshot.a
endif


include $
(PREBUILT_STATIC_LIBRARY)


#---------------------------------------------------------------------------------------------------
# v8_snapshot
#---------------------------------------------------------------------------------------------------


include $
(CLEAR_VARS)
LOCAL_MODULE
:= v8_snapshot


ifeq
($(TARGET_ARCH_ABI), armeabi)
  LOCAL_SRC_FILES
:= ../../../vendors/v8-3.29/libs/android_arm.release/libv8_snapshot.a
endif


ifeq
($(TARGET_ARCH_ABI), armeabi-v7a)
  LOCAL_SRC_FILES
:= ../../../vendors/v8-3.29/libs/android_arm.release/libv8_snapshot.a
endif


ifeq
($(TARGET_ARCH_ABI), x86)
  LOCAL_SRC_FILES
:= ../../../vendors/v8-3.29/libs/android_ia32.release/libv8_snapshot.a
endif


include $
(PREBUILT_STATIC_LIBRARY)


#---------------------------------------------------------------------------------------------------
# MetisCore
#---------------------------------------------------------------------------------------------------


include $
(CLEAR_VARS)


LOCAL_MODULE    
:= MetisCore
LOCAL_SRC_FILES
:= \
 
MJScopeRef.cpp \
 
MJScopeRefPrivate.cpp \
 
MJHandleRef.cpp \
 
MJHandleRefPrivate.cpp \
 
MJDelegateRef.cpp \
 
MJDelegateRefPrivate.cpp \
  $
(wildcard $(LOCAL_PATH)/../../../vendors/v8-3.29/src/*.cpp)


LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../../vendors/v8-3.29/include
LOCAL_CFLAGS += -Wl, -lrt -pthread
LOCAL_WHOLE_STATIC_LIBRARIES :=  v8_base v8_libbase v8_nosnapshot v8_libplatform
include $(BUILD_STATIC_LIBRARY)


I had a lot of hope when reading about LOCAL_WHOLE_STATIC_LIBRARIES but I could not find a case where the whole thing was built as a static library.

Can anyone tell me what's going on, or show me a similar example that should be working ?

Any help is really appreciated!
Thanks

Glenn Kasten

unread,
Mar 16, 2015, 10:15:05 AM3/16/15
to andro...@googlegroups.com
This is a duplicate post. Follow-ups at https://groups.google.com/forum/#!topic/android-ndk/OyvQX-KAAO4
please
...
Reply all
Reply to author
Forward
0 new messages