Android NDKでメイクファイルを書きたくない!
Android NDKでC/C++コードをビルドするために、Android.mkファイルを編集する必要がありますが出来る限り書きたくないです。
だって、面倒くさい…。
ソースファイル追加するたびに、LOCAL_SRC_FILESに追記していくのは、ちょっと…。なので、jniフォルダ以下のC/C++コードを検索してビルドされる形にAndroid.mkを変更しました。
Android.mk
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) # モジュール名 LOCAL_MODULE := ndk-application # # インクルードディレクトリを追加したい場合はココに追記 # # 現在はコメントアウトしてある # LOCAL_C_INCLUDES += $(LOCAL_PATH)/hoge # # リンクさせたいライブラリがある場合はココに追記 # # 現在はコメントアウトしてある # LOCAL_LDLIBS += -llog # LOCAL_LDLIBS += -lGLESv1_CM # ソースファイルのリストアップ # コンパイル対象(c/cpp)のファイルをリストアップする LOCAL_SRC_FILES += $(shell find -name '*.c') LOCAL_SRC_FILES += $(shell find -name '*.cpp') # 検索直後はパスに./jni/が含まれてしまっているので削除 LOCAL_SRC_FILES := $(subst ./jni/,, $(LOCAL_SRC_FILES)) include $(BUILD_SHARED_LIBRARY)
こんな感じです。
とりあえずこれでjniフォルダ以下の全てのc/cppファイルがコンパイル対象になってビルドが走るようになります。この方法だとjni以下のソースコードが否応なしにコンパイル対象になってしまうので、それはそれで問題かもしれません。コンパイルを通したくない場合、jniフォルダ(以下)から退避させておく必要があるので注意です。
まぁ、ソースファイルをいちいちメイクファイルに書き出したくないって人で、とりあえずビルドできればいいやって方は参考にしてみてください。
……というか、自分は勘違いしていて、そもそもAndroid.mkなんて触らなくていいんだけど…ってオチはないんでしょうか?Eclipse側で管理できるよ〜とか、何かその辺の情報持っている方居られたら是非教えて欲しいです…。
このままだと、自分でNDKのプロジェクト管理ツールを作ってしまいそうなので。