gradle cmake在连接路径时添加意外的引号
Gradle + Cmake add unexpected Quotation marks when concatenate path
我正在将Android Studio与本机项目一起使用预编译的C 库。我使用gradle cmake将项目链接到包装器以调用图书馆
我在我的本地定义一个变量:
dependencies.common.dir="/home/vgonisanz/foo"
我的gradle.build致电cmake:
cmake {
cppFlags ""
arguments "-DANDROID_ABI=armeabi-v7a",
"-DDEPENDENCIES_COMMON_PATH=" + getCommonDir('dependencies.common.dir')
}
ndk {
abiFilters "armeabi-v7a"
}
我的cmakelists.txt包含以下代码:
set(COMMON_INCLUDE_PATH "${DEPENDENCIES_COMMON_PATH}/modules/module_foo/include")
message("Using dependency path: ${DEPENDENCIES_COMMON_PATH}")
message("Using include path: ${COMMON_INCLUDE_PATH}")
include_directories(${COMMON_INCLUDE_PATH})
,但是当我构建库时,找不到$ {common_include_path}中的预期路径。该路径是正确的,如果是硬编码,则可以工作,因此我在文件app/.externalNativeBuild/cmake/debug/armeabi-v7a/cmake_build_output.txt
,输出为:
Using dependency path: "/home/vgonisanz/foo"
Using include path: "/home/vgonisanz/foo"/modules/module_foo/include
Configuring done
问题在于,CMAKE变量在引号标记和打破构建之间。我通常会以这种方式使用CMAKE和变量,因此,为什么在Gradle环境中发生这种情况?
我可以在gradle中设置变量。build,但我想知道是否存在在cmakelists.txt中求解的方法,以避免以这种方式更改它。
呼叫此:
"-DDEPENDENCIES_COMMON_PATH=" + getCommonDir('dependencies.common.dir')
Gradle包括发送给CMAKE的句子的引号。您可以使用替换功能删除cmake中的引号。例如:
string(REPLACE """ "" DEPENDENCIES_COMMON_PATH ${DEPENDENCIES_COMMON_PATH})
相关文章:
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- 如何在C++中从两个单独的for循环中添加两个数组
- POCO::PostgreSQL:如何将std::vector支持添加到`Binder::bind`
- 如何仅为一个函数添加延迟
- 如何防止 c++ 在从浮点型转换为双精度型(不适用于 IO)时添加额外的小数?
- 使用std::transform将一个范围的元素添加到另一个范围中
- 如何将更多文件夹添加到c++include路径
- 如何将元素添加到数组的线程安全函数?
- QT通过C++添加映射QML项目
- 在C++中对T*类型执行std::move的意外行为
- 如何将点击的信号和插槽添加到qt中的自定义按钮中
- 如何使用重载的相等(==)运算符向测试用例添加描述
- 使用取消引用的指针的多态性会产生意外的结果.为什么?
- 为什么Mat类的两个对象可以在不重载运算符+的情况下添加
- 如何防止clang格式在流运算符调用之间添加换行符<<
- 只能向C++添加一定数量的字符
- gradle cmake在连接路径时添加意外的引号
- Openssl C++ AES 解密添加意外符号
- Qt网络请求自动添加意外问号
- 将'