Android Studio,一个带有NDK库的项目,使用ndkBuild和Android.mk。我的构建使用静态库依赖项,并且静态库作为调试和发布版本存在于单独的目录中。生成文件为:
#Ref to libfoo
include $(CLEAR_VARS)
LOCAL_MODULE := foo
LOCAL_SRC_FILES := $(FOOPROJECT)\foo\build\intermediates\ndkBuild\debug\obj\local\$(TARGET_ARCH_ABI)\libfoo.a
include $(PREBUILT_STATIC_LIBRARY)
LOCAL_SRC_FILES
具有debug
风格的硬编码,作为路径的一部分。不好。我想在其中使用“调试”或“发布”,具体取决于当前的构建类型。
makefile中当前的构建类型是否可以作为变量使用?如果没有,是否可以通过gradle文件将其传递给ndk-build?
答案 0 :(得分:1)
编辑:迈克尔的APP_OPTIM
更好。他写下后,我会接受的。现在,我将其留在这里。
找不到内置变量,做了Gradle技巧:
buildTypes {
release {
externalNativeBuild {
ndkBuild {
arguments "BUILD_TYPE=release"
}}
}
debug {
externalNativeBuild {
ndkBuild {
arguments "BUILD_TYPE=debug"
}}
}
}
然后Android.mk中的行变为:
LOCAL_SRC_FILES := $(FOOPROJECT)\foo\build\intermediates\ndkBuild\$(BUILD_TYPE)\obj\local\$(TARGET_ARCH_ABI)\libfoo.a