Мой build.gradle Файл содержит это для создания проекта с CMake:
externalNativeBuild {
cmake {
// Provides a relative path to your CMake build script.
version "3.13.0+"
path "../subproj/smcxx/CMakeLists.txt"
}
}
CMakeList.txt определяет несколько целей, но проблемныхэто:
set(SOURCES "src/lib.cc")
add_library(smcxx_obj OBJECT ${SOURCES})
Цель OBJECT не будет создавать файл .so
или .a
, вместо этого файлы .o
могут использоваться в других целях.
Проблема в том (насколько я понимаю), что Gradle анализирует цели CMake и ожидает выходной файл для каждой цели. Когда я компилирую весь проект, используя gradlew , я получаю следующее сообщение об ошибке:
> Task :app:externalNativeBuildDebug FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:externalNativeBuildDebug'.
> Expected output file at /home/cytrinox/src/androidapp/app/.cxx/cmake/debug/armeabi-v7a/smcxx_obj for target smcxx_obj but there was none
Объектный файл lib.cc.o был успешно скомпилирован и существует,Но нет папки smcxx_obj и файла smcxx_obj.so (что ожидается).
Возможно ли устранить эту ошибку, например, сообщив Gradleпропустить эту проверку для конкретной цели CMake?