Gradle не может построить проект CMake с библиотеками OBJECT, потому что он ожидает выходной файл - PullRequest
1 голос
/ 06 ноября 2019

Мой 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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...