2017-08-30 93 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屬性。 我還沒有測試它,但我相當有信心它會做到這一點。