如何处理构建过程中自动生成的源代码文件
Posted
技术标签:
【中文标题】如何处理构建过程中自动生成的源代码文件【英文标题】:How to deal with source code file auto-generated in the build process 【发布时间】:2010-05-06 21:21:27 【问题描述】:我正在尝试构建一个使用自动生成的第三方库 源代码文件。 通常情况下,这类文件是由 gnu 构建工具生成的。 我的问题是如何告诉 android NDK 构建工具生成和构建这种 的文件。
提前致谢
【问题讨论】:
【参考方案1】:ndk-build
工具是一个瘦包装脚本,它使用一些命令行参数调用 GNU Make。您可以将任何构建规则添加到您喜欢用 make 编写的 Android.mk 文件中,包括生成源文件。
如果你在LOCAL_SRC_FILES
变量中有生成的文件名以及生成这个文件的规则,make会计算出来。这是一个最小的 Android.mk 示例,它将“generated.in”复制到“generated.c”,然后对其进行编译:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := ndkexample
LOCAL_SRC_FILES := generated.c
$(LOCAL_PATH)/generated.c : $(LOCAL_PATH)/generated.in
echo "Generate file"
cp $< $@
【讨论】:
如果生成的源相互依赖(#includes),是否可以在实际编译开始之前强制生成所有源? 这样不会把生成的文件放到源码目录吗?有没有办法让它生成文件到构建目录?以上是关于如何处理构建过程中自动生成的源代码文件的主要内容,如果未能解决你的问题,请参考以下文章
将复杂项目从 Ant 迁移到 Maven - 如何处理不寻常的文件夹结构?