Android.mk - 如何在源文件夹中执行通配符

时间:2012-10-10 17:27:52

标签: android-ndk makefile

这就是我在JNI文件夹中做通配符的方式

include $(CLEAR_VARS)
LOCAL_MODULE    := some_module_name
LOCAL_SRC_FILES := $(notdir $(wildcard $(LOCAL_PATH)/*.cpp)) 
include $(BUILD_SHARED_LIBRARY)

现在我想向JNI添加新的源文件夹 - some_src with foo.cpp and bar.cpp

include $(CLEAR_VARS)
LOCAL_MODULE    := some_module_name
FOLDER_PREFIX = some_scr
LOCAL_SRC_FILES := $(notdir $(wildcard $(LOCAL_PATH)/*.cpp)) $(FOLDER_PREFIX)/$(notdir $(wildcard $(LOCAL_PATH)/$(FOLDER_PREFIX)/*.cpp))
include $(BUILD_SHARED_LIBRARY)

但是这只将$(FOLDER_PREFIX)添加到bar.cpp,foo.cpp获取剥离路径(jni / foo.cpp),当然不是构建。

如何解决?

1 个答案:

答案 0 :(得分:3)

$(addprefix $(FOLDER_PREFIX),$(notdir $(wildcard $(LOCAL_PATH)/$(FOLDER_PREFIX)/*.cpp))`

或者甚至(你真的需要指定FOLDER_PREFIX吗?)

$(subst $(LOCAL_PATH)/,,$(wildcard $(LOCAL_PATH)/*/*.cpp)))

第二种形式允许以下快捷方式:

LOCAL_SRC_FILES := $(subst $(LOCAL_PATH)/,,$(wildcard $(LOCAL_PATH)/*.cpp) $(wildcard $(LOCAL_PATH)/*/*.cpp)))