2017-08-30 86 views
0

我正在通过Android Studio构建一些C++库,并且我不想用这些.externalNativeBuild文件夹污染我的源代码树。如何指定Android NDK CMake构建目录

是否可以指定它们应该在哪里登陆,就像用于Java二进制文件的buildDir一样?

我试图用这样认为-B说法:

externalNativeBuild 
    { 
     cmake 
     { 
      arguments '-DANDROID_PLATFORM=android-14', 
        '-DANDROID_TOOLCHAIN=clang', '-DANDROID_STL=gnustl_static', 
        '-BC:/Dev/AndroidCMake' 
     } 
    } 

为创建指定的文件夹它可以在一定程度上和副产品包含一些构建的的。但是构建被破坏,并且.externalNativeBuild文件夹仍然被创建。它也包含一些文件。所以看起来该文件夹是在工具链的其他地方指定的。

这是我得到的错误:

Error:Expected json generation to create 'C:\Dev\Android\TestApp\app\.externalNativeBuild\cmake\debug\armeabi-v7a\android_gradle_build.json' but it didn't

这JSON文件中指定的文件夹-B降落,但工具链仍然期待它在其他文件夹中。

+1

污染你的源代码树?这意味着您的代码使用VCS进行版本控制?只是添加一个忽略规则,它是编译本机代码生成的唯一文件夹,所以它只是一个规则 – ahasbini

+0

是的,我的代码使用名为git的VCS进行版本控制。听说过它? 的确,我最终在.gitignore中添加了一些条目,但仍然很遗憾文件夹有点硬编码。 – Slion

回答

0

我偶然回答了我自己的问题。 显然你需要使用那个buildStagingDirectory属性。 我还没有测试它,但我相当有信心它会做到这一点。