基本上,我想在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
中使用的路径中,以便使用该库的模块可以享受头文件
答案 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中进行后期构建。