gpt4 book ai didi

android - 在 Android Studio CMake 中使用 add_custom_target 构建

转载 作者:太空狗 更新时间:2023-10-29 14:39:25 24 4
gpt4 key购买 nike

我在模块的 CMakeLists.txt 中创建了一些自定义目标执行这是根据模块的 build.gradle 中的标准模板引用的具有以下内容:

externalNativeBuild {
cmake {
path "CMakeLists.txt"
}
}

CMakeLists.txt包含以下命令(我想我已经包含了此处相关的所有内容):

add_custom_command(
OUTPUT ${BUILT_PRODUCT_FILEPATH} # The library built by ${CUSTOM_BUILD_COMMAND}, defined elsewhere
COMMAND ${CUSTOM_BUILD_COMMAND} --product ${PRODUCT_NAME} ${CUSTOM_BUILD_ARGS}
DEPENDS ${SOURCE_FILES} ${BUILT_PRODUCT_DEPENDENCIES}
WORKING_DIRECTORY ${PROJECT_DIRECTORY}
VERBATIM
)

add_custom_command(
OUTPUT ${OUTPUT_PRODUCT_FILEPATH} # filename of BUILT_PRODUCT_FILEPATH in the CMAKE_LIBRARY_OUTPUT_DIRECTORY
COMMAND ${CMAKE_COMMAND} -E copy ${BUILT_PRODUCT_FILEPATH} ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
DEPENDS ${BUILT_PRODUCT_FILEPATH}
)

add_custom_target(
${PRODUCT_NAME} ALL # NOTE: I'm using ALL here - could this be part of the issue?
DEPENDS ${OUTPUT_PRODUCT_FILEPATH}
)

当我运行 cmake -G Ninja $MODULE_PATH && cmake --build .我的目标已经建立并且 .so库按预期登陆 APK。

另外,如果我运行 Refresh Linked C++ Projects在 Android Studio 中并导航到 $MODULE_PATH/.externalNativeBuild/cmake/debug/armeabi-v7a然后运行 ​​ninja构建也有效(如上所述)。

什么不起作用只是按Build , Make Project , Rebuild Project或 Android Studio 本身中的任何类似内容。 native 构建似乎在 0 秒内成功“完成”,但未构建任何内容。 build/intermediates/cmake甚至根本不会创建目录。

问题是:Android Studio在做工程的时候会构建哪些target?我如何让它构建我的自定义目标,因为在任何其他环境下似乎都可以正常工作?

最佳答案

我也刚好遇到这个问题。经过一番摆弄后,我想我找到了答案。 Android Studio 不构建 ALL_BUILD 目标。所以只需指定一个目标 add_custom_target(<my_target> ALL ...)不适用于 AS。我使用 add_dependencies(<my_exe> <my_custom_target>) 将我的自定义目标作为依赖项添加到我的主可执行文件中效果很好。

关于android - 在 Android Studio CMake 中使用 add_custom_target 构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51036669/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com