SDL: do not build prebuilt libs if they are not used by the app
This commit is contained in:
2
build.sh
2
build.sh
@@ -142,7 +142,7 @@ strip_libs() {
|
||||
return 0
|
||||
}
|
||||
|
||||
cd project && env PATH=$NDKBUILDPATH BUILD_NUM_CPUS=$NCPU nice -n19 ndk-build -j$NCPU V=1 $QUICK_REBUILD_ARGS && \
|
||||
cd project && env PATH=$NDKBUILDPATH BUILD_NUM_CPUS=$NCPU ndk-build -j$NCPU V=1 $QUICK_REBUILD_ARGS && \
|
||||
strip_libs && \
|
||||
cd .. && ./copyAssets.sh && cd project && \
|
||||
{ if $build_release ; then \
|
||||
|
||||
@@ -1118,10 +1118,15 @@ fi
|
||||
|
||||
echo Compiling prebuilt libraries
|
||||
|
||||
#if echo "$CompiledLibraries" | grep -E 'iconv|charset|icu|crypto|ssl|harfbuzz' > /dev/null; then
|
||||
make -C project/jni -f Makefile.prebuilt
|
||||
#fi
|
||||
if echo "$CompiledLibraries" | grep 'boost' > /dev/null; then
|
||||
if echo "$CompiledLibraries" | grep -E 'crypto|ssl' > /dev/null; then
|
||||
make -C project/jni -f Makefile.prebuilt openssl
|
||||
fi
|
||||
|
||||
if echo "$CompiledLibraries" | grep -E 'iconv|charset|icu|harfbuzz' > /dev/null; then
|
||||
make -C project/jni -f Makefile.prebuilt icu
|
||||
fi
|
||||
|
||||
if echo "$CompiledLibraries" | grep 'boost_' > /dev/null; then
|
||||
make -C project/jni -f Makefile.prebuilt boost
|
||||
fi
|
||||
|
||||
|
||||
@@ -13,9 +13,14 @@ OPENSSL := $(foreach ARCH, $(ARCHES32) $(ARCHES64), openssl/lib-$(ARCH)/libcrypt
|
||||
|
||||
LIBS := $(ICONV) $(ICU) $(OPENSSL)
|
||||
|
||||
prebuilt-libraries: $(LIBS)
|
||||
.PHONY: all boost openssl icu
|
||||
all: $(LIBS)
|
||||
|
||||
.NOTPARALLEL: $(LIBS)
|
||||
openssl: $(OPENSSL)
|
||||
|
||||
icu: $(ICONV) $(ICU)
|
||||
|
||||
#.NOTPARALLEL: $(LIBS) $(BOOST)
|
||||
|
||||
$(ICONV) $(ICU): iconv/src/build.sh
|
||||
cd iconv/src && \
|
||||
@@ -34,9 +39,6 @@ $(ICONV) $(ICU): iconv/src/build.sh
|
||||
$(OPENSSL): openssl/compile.sh
|
||||
cd openssl && ./compile.sh
|
||||
|
||||
iconv/src/build.sh openssl/compile.sh:
|
||||
git submodule update --init --recursive
|
||||
|
||||
BOOST_LIBS := atomic chrono container context coroutine date_time exception filesystem \
|
||||
graph iostreams log log_setup \
|
||||
prg_exec_monitor program_options random regex serialization signals stacktrace_basic stacktrace_noop \
|
||||
@@ -47,16 +49,18 @@ BOOST_LIBS := atomic chrono container context coroutine date_time exception file
|
||||
|
||||
BOOST := $(foreach ARCH, $(ARCHES32) $(ARCHES64), $(foreach NAME, $(BOOST_LIBS), boost/lib/$(ARCH)/libboost_$(NAME).a))
|
||||
|
||||
$(BOOST):
|
||||
$(BOOST): boost/src/build-android.sh
|
||||
rm -rf boost/include boost/lib ; \
|
||||
cd boost/src && \
|
||||
./build-android.sh --boost=1.65.1 --arch=$(shell echo $(foreach ARCH, $(ARCHES32) $(ARCHES64),$(ARCH),) | tr -d ' ') && \
|
||||
./build-android.sh --boost=1.68.0 --arch=$(shell echo $(foreach ARCH, $(ARCHES32) $(ARCHES64),$(ARCH),) | tr -d ' ') && \
|
||||
for ARCH in $(ARCHES32) $(ARCHES64); do \
|
||||
mkdir -p ../lib/$$ARCH ../include ; \
|
||||
$(foreach NAME, $(BOOST_LIBS), cp -f build/out/$$ARCH/lib/libboost_$(NAME)-clang-mt-1_65_1.a ../lib/$$ARCH/libboost_$(NAME).a || exit 1 ;) \
|
||||
cp -r -f build/out/$$ARCH/include/boost-1_65_1/* ../include/ || exit 1 ; \
|
||||
$(foreach NAME, $(BOOST_LIBS), cp -f build/out/$$ARCH/lib/libboost_$(NAME)-clang-mt-1_68_0.a ../lib/$$ARCH/libboost_$(NAME).a || exit 1 ;) \
|
||||
cp -r -f build/out/$$ARCH/include/boost-1.68.0/* ../include/ || exit 1 ; \
|
||||
done || exit 1 ; \
|
||||
$(foreach NAME, $(BOOST_LIBS), ln -sf boost ../../boost_$(NAME) ;)
|
||||
|
||||
.PHONY: boost
|
||||
boost: $(BOOST)
|
||||
|
||||
iconv/src/build.sh boost/src/build-android.sh:
|
||||
git submodule update --init --recursive
|
||||
|
||||
@@ -274,19 +274,19 @@ MultiABI='armeabi-v7a arm64-v8a x86 x86_64'
|
||||
# Optional shared libraries to compile - removing some of them will save space
|
||||
# MP3 support by libMAD is encumbered by patents and libMAD is GPL-ed
|
||||
# Available libraries: mad (GPL-ed!) sdl_mixer sdl_image sdl_ttf sdl_net sdl_blitpool sdl_gfx sdl_sound intl xml2 lua jpeg png ogg flac tremor vorbis freetype xerces curl theora fluidsynth lzma lzo2 mikmod openal timidity zzip bzip2 yaml-cpp python boost_date_time boost_filesystem boost_iostreams boost_program_options boost_regex boost_signals boost_system boost_thread glu avcodec avdevice avfilter avformat avresample avutil swscale swresample bzip2
|
||||
CompiledLibraries="sdl_image boost_filesystem"
|
||||
CompiledLibraries="sdl_image boost_filesystem boost_system crypto ssl curl openal vorbis ogg"
|
||||
|
||||
# Application uses custom build script AndroidBuild.sh instead of Android.mk (y) or (n)
|
||||
CustomBuildScript=n
|
||||
|
||||
# Aditional CFLAGS for application
|
||||
AppCflags='-Oz'
|
||||
AppCflags=''
|
||||
|
||||
# Aditional C++-specific compiler flags for application, added after AppCflags
|
||||
AppCppflags='-frtti -fexceptions'
|
||||
AppCppflags=''
|
||||
|
||||
# Additional LDFLAGS for application
|
||||
AppLdflags='-frtti -fexceptions'
|
||||
AppLdflags=''
|
||||
|
||||
# If application has headers with the same name as system headers, this option tries to fix compiler flags to make it compilable
|
||||
AppOverlapsSystemHeaders=
|
||||
|
||||
@@ -5,6 +5,7 @@ include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := $(notdir $(LOCAL_PATH))
|
||||
|
||||
ifneq (boost,$(LOCAL_MODULE))
|
||||
ifneq ($(filter $(LOCAL_MODULE), $(APP_MODULES)),)
|
||||
|
||||
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
|
||||
LOCAL_SRC_FILES := lib/$(TARGET_ARCH_ABI)/lib$(LOCAL_MODULE).a
|
||||
@@ -16,3 +17,4 @@ obj/local/$(TARGET_ARCH_ABI)/lib$(LOCAL_MODULE).a: $(LOCAL_PATH)/$(LOCAL_SRC_FIL
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
endif
|
||||
endif
|
||||
|
||||
Submodule project/jni/boost/src updated: d0f4626c93...1bd9aa1346
@@ -68,6 +68,9 @@ CURL_HEADERS := \
|
||||
stdcheaders.h \
|
||||
typecheck-gcc.h
|
||||
|
||||
# Hide libcurl from the project if openssl is not compiled
|
||||
ifneq ($(filter ssl, $(APP_MODULES)),)
|
||||
|
||||
LOCAL_SRC_FILES := $(addprefix lib/,$(CSOURCES))
|
||||
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include/ $(LOCAL_PATH)/lib $(LOCAL_PATH)/../openssl/include
|
||||
LOCAL_CFLAGS += $(common_CFLAGS) -DBUILDING_LIBCURL
|
||||
@@ -76,7 +79,6 @@ LOCAL_COPY_HEADERS_TO := libcurl/curl
|
||||
LOCAL_COPY_HEADERS := $(addprefix include/curl/,$(CURL_HEADERS))
|
||||
|
||||
LOCAL_MODULE:= libcurl
|
||||
LOCAL_MODULE_TAGS := optional
|
||||
|
||||
LOCAL_MODULE_FILENAME := libcurl-sdl # It clashes with system libcurl in Android 4.3 and older
|
||||
|
||||
@@ -85,3 +87,5 @@ LOCAL_SHARED_LIBRARIES := ssl crypto
|
||||
LOCAL_LDLIBS := -lz
|
||||
|
||||
include $(BUILD_SHARED_LIBRARY)
|
||||
|
||||
endif
|
||||
|
||||
@@ -4,9 +4,12 @@ include $(CLEAR_VARS)
|
||||
|
||||
LOCAL_MODULE := $(notdir $(LOCAL_PATH))
|
||||
|
||||
ifneq ($(filter $(LOCAL_MODULE), $(APP_MODULES)),)
|
||||
|
||||
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
|
||||
|
||||
LOCAL_SRC_FILES := lib/$(TARGET_ARCH_ABI)/lib$(LOCAL_MODULE).so
|
||||
|
||||
include $(PREBUILT_SHARED_LIBRARY)
|
||||
|
||||
endif
|
||||
|
||||
@@ -4,6 +4,8 @@ include $(CLEAR_VARS)
|
||||
|
||||
LOCAL_MODULE := $(notdir $(LOCAL_PATH))
|
||||
|
||||
ifneq ($(filter $(LOCAL_MODULE), $(APP_MODULES)),)
|
||||
|
||||
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
|
||||
|
||||
LOCAL_SRC_FILES := lib/$(TARGET_ARCH_ABI)/lib$(LOCAL_MODULE).a
|
||||
@@ -13,3 +15,5 @@ obj/local/$(TARGET_ARCH_ABI)/lib$(LOCAL_MODULE).a: $(LOCAL_PATH)/$(LOCAL_SRC_FIL
|
||||
cp -f $< $@
|
||||
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
endif
|
||||
|
||||
@@ -3,11 +3,11 @@ LOCAL_PATH:=$(call my-dir)
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
LOCAL_MODULE := $(notdir $(LOCAL_PATH))
|
||||
LOCAL_MODULE_FILENAME := lib$(notdir $(LOCAL_PATH)).so.sdl.1 # It clashes with system libcrypto and libssl in Android 4.3 and older
|
||||
|
||||
|
||||
ifneq (openssl,$(LOCAL_MODULE))
|
||||
ifneq ($(filter arm mips x86 arm64 x86_64, $(TARGET_ARCH)),)
|
||||
ifneq ($(filter $(LOCAL_MODULE), $(APP_MODULES)),)
|
||||
|
||||
LOCAL_MODULE_FILENAME := lib$(notdir $(LOCAL_PATH)).so.sdl.1 # It clashes with system libcrypto and libssl in Android 4.3 and older
|
||||
|
||||
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
|
||||
LOCAL_SRC_FILES := lib-$(TARGET_ARCH_ABI)/lib$(LOCAL_MODULE).so.sdl.1.so
|
||||
|
||||
@@ -4,7 +4,7 @@ include $(CLEAR_VARS)
|
||||
|
||||
LOCAL_SRC_FILES := $(notdir $(wildcard $(LOCAL_PATH)/*.c))
|
||||
|
||||
LOCAL_CFLAGS :=
|
||||
LOCAL_CFLAGS := -DPNG_ARM_NEON_OPT=0
|
||||
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
|
||||
# LOCAL_LDLIBS := z
|
||||
|
||||
|
||||
@@ -1,6 +1,11 @@
|
||||
LOCAL_PATH:= $(call my-dir)
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
LOCAL_MODULE := vncserver
|
||||
|
||||
# Hide vncserver from the project if openssl is not compiled
|
||||
ifneq ($(filter ssl, $(APP_MODULES)),)
|
||||
|
||||
LIBVNCSERVER_ROOT:=src
|
||||
|
||||
LIBVNCSERVER_SRC_FILES:= \
|
||||
@@ -59,6 +64,6 @@ LOCAL_C_INCLUDES += include
|
||||
|
||||
LOCAL_STATIC_LIBRARIES := jpeg png ssl crypto
|
||||
|
||||
LOCAL_MODULE := vncserver
|
||||
|
||||
include $(BUILD_SHARED_LIBRARY)
|
||||
|
||||
endif
|
||||
|
||||
Reference in New Issue
Block a user