Eclipseでビルド構成を変更するときに、Android NDKに特定のライブラリを再構築させる方法はありますか?
AndroidNDKを使用してC++ライブラリを構築するAndroidプロジェクトの構築を構築しています。SequoyahプラグインでEclipseを使用しています。すべてがセットアップされ、うまく機能します。
ただし、ビルド構成で問題が発生しました。プロジェクト->プロパティを右クリックし、C / C ++ビルドセクションに移動すると、ビルド構成を管理できます。これにより、ほとんどのC++ライブラリが何らかの方法で依存する従来のデバッグビルドとリリースビルドを作成できます。
これが私の「デバッグ」構成の例です。
V=1 NDK_DEBUG=1 NDK_APPLICATION_MK=config/debug/Application.mk
これらはうまく機能しますが、構成を切り替えても、構築しているライブラリの再構築がトリガーされない点が異なります。これは、各ビルド構成が異なるディレクトリにダンプされるVisual Studioのようなもので予想されますが、Eclipseではすべてが同じディレクトリにダンプされます。再構築をトリガーするために、関連するソースファイルを実際に変更する必要があります。したがって、最終的には、デバッグ構成で(たとえば)実行されますが、リリースで構築されたライブラリにリンクすることになります。
だから私の質問は:構成を変更するときにNDKにライブラリを再構築させる方法はありますか?追加できる-Bコマンドを知っていますが、それは毎回すべてを再構築します。1つの特定のライブラリ(この場合はlibBootInfo)に対してのみ再構築できれば、毎回再構築しても問題ありません。
ルートAndroid.mkファイルは次のようになります。
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := game$(MY_BUILD_CONFIG_EXTENSION)
# Include files are relative to the NDK root directly (fix by prepending with $(LOCAL_PATH))
# Source files are relative $(LOCAL_PATH)
#LOCAL_LDLIBS := -landroid
# Add all source file names to be included in lib separated by a whitespace
LOCAL_SRC_FILES := ../../../../../../engine/code/main/mainandroid.cpp
# Module dependencies are expressed with LOCAL_STATIC_LIBRARIES and LOCAL_SHARED_LIBRARIES.
# we're building the "main" entry point, so it doesn't depend on much
LOCAL_STATIC_LIBRARIES := libDebug$(MY_BUILD_CONFIG_EXTENSION) libCore$(MY_BUILD_CONFIG_EXTENSION)
include $(BUILD_SHARED_LIBRARY)
$(call import-module,libBdCore)
$(call import-module,libDebug)
##################################################################
## In addition to the core game library, we also build another
## *.so file here: "libBootInfo". This very small library is used
## by Java to find out which version of game to load based on
## the current build configuration.
##
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := libBootInfo
# Add all source file names to be included in lib separated by a whitespace
# TODO: This path is relative to "android-ndk\build\core" which seems
# different from the LOCAL_SRC_FILES in game above. It seems like
# the build process leaves us in a different directory than we started.
# We make need to look into a way to make sure that this path always
# works regardless of what came before it.
#
LOCAL_SRC_FILES := ../../../../engine/code/main/bootinfo.cpp
include $(BUILD_SHARED_LIBRARY)