以前在 Android Studio 3.2.1上vuh库使用的例子 中实现了一个使用 vuh
库的例子。 那个例子中的 vuh
库是我们编译好 libvuh.so
之后直接引用的,我们下面实现通过直接编译代码实现整合。
尝试过使用 ExternalProject_add
跟 include
的方式包含 vuh
库,但是都不是很成功。
其中 ExternalProject_add
导入的项目只能编译一次,即使指定 BUILD_ALWAYS 1
也没用,这个应该是 Ninja
导致的问题,导致当出现多个 ABI
或者 vuh
库代码变动之后,不能重新编译,出现各种编译错误。
使用 include
包含的项目会导致路径信息不正确,无法找到源代码文件。
最后使用 add_subdirectory
实现。
修改之后的几个关键文件如下:
注意: VUH_ROOT_DIR
这个变量中指定 vuh
库代码的位置
注意:由于 vuh
库需要 CMake 3.8
。因此,我们需要手工指定CMake
版本为3.10.2
。
如下:
如果出现如下错误:
则执行如下操作:
如果出现如下错误:
则删除代码中的 jniLibs/armeabi-v7a/libvuh.so
即可解决问题。
完整的例子点击此处下载 vuhAndroid
参考链接
- How to use CMake to add Third Party Libraries to your Project
- Use ExternalProject_Add to include Opus in Android
- Unknown CMake command “ExternalProject_Add”
- How to use CMake ExternalProject_Add or alternatives in a cross platform way?
- ExternalProject
- Custom Directory for CMake Library Output
- [CMake] Force rebuild of external project with Ninja
- Ninja does not always rebuild resource files (*.rc) when they were changed
- How to force an action target to run on every build?
- ExternalProject: Additional command specified by COMMAND stop working
- [CMake] External projects and make clean
- Android 上的 Vulkan 着色器编译器
- How to properly find and link NDK shaderc lib into your project in Android Studio?>
- OpenGL Programming/Android GLUT Wrapper