为android ndk-build模块添加预构建步骤以获取头依赖性?

时间:2013-03-14 19:18:54

标签: android-ndk makefile

基本上,我想在Android.mk文件中做的是:

LOCAL_MODULE := foo
$(LOCAL_MODULE): pre-build
pre-build:
    @echo HI
.PHONY: pre-build
# ...
include $(BUILD_SHARED_LIBRARY)

ndk-build系统适用于ndk-build foo,并且预构建步骤有效,但如果您在应用程序中使用此库,则不会执行预构建步骤。

特别是,我正在尝试生成一个头文件(带有版本/日期戳等),该文件位于LOCAL_EXPORT_C_INCLUDES中使用的路径中,以便使用该库的模块可以享受头文件

2 个答案:

答案 0 :(得分:2)

这就是我所做的,有点像黑客。

您似乎可以相当轻松地添加构建后步骤,但不是预构建步骤。

在<{em> 之后include构建过程中,您可以向$(LOCAL_BUILT_MODULE)添加一个依赖项,这将成为一个始终执行的构建后过程。

include $(BUILD_SHARED_LIBRARY)
$(LOCAL_BUILT_MODULE): post_build

post_build:
    $echo Hi, I'm post-build.

如果您需要花哨并使用例如$(LOCAL_PATH)上的内容,那么

include $(BUILD_SHARED_LIBRARY)
$(LOCAL_BUILT_MODULE): post_build

define gen_post_build
post_build:
    $(hide) python $(1)/MyScript.py 
endef

$(eval $(call gen_post_build,$(LOCAL_PATH)))

答案 1 :(得分:1)

这是我在为一个或多个架构(ABI)构建动态库时发现预构建步骤的方法。这可能不适用于所有情况。

使用以下内容创建Application.mk文件(如果您还没有):

all: pre_build
pre_build:
    echo "This is the pre-build"

请注意,使用&#39; all&#39;如上所述最终在Application.mk中进行预构建,并在Android.mk中进行后期构建。