2012-07-11 17 views
7

私はQtの上にプロジェクトを設定しています(ソースはC++で書かれています)、私はそれを自動ビルドするためにGradleを試したかったのです。複数のプロジェクトビルド(実行可能ファイルと2つのlibsがあります)の設定の詳細に入るまでには時間がかかっていましたが、cpp-execpp-libプラグインにソースツリーの構造を伝えようとしています。grappleでcppソースを設定する

私はソース・セットのすべてを印刷する必要があり、タスクを設定している(右少なくともデフォルトのものがあるはず?)、それはこのようになります

task projectinfo { 
description = "Informations about the current project" 
group = INFORMATIONS_GROUP 

doFirst { 
    task -> print ("""${task.project.sourceSets.all}""") 
} 

私はこのタスクを実行する場合のGradleを伝えます私にはプロジェクトのプロパティ "sourceSets"はありません。 The documentation of the pluginは、ソースの場所をカスタマイズすることは可能だが、方法はカスタマイズできないと伝えている。

私の質問は次のようなものです:cppプラグインに使用するソースファイルをGradleに伝えるにはどうすればよいですか? cppプラグインについてのドキュメントがAPIドキュメント以外であれば、Gradleのユーザーガイドも参考になります。

答えて

9

Gradle's 'cpp plugin'Adam Murdoch's usageをご覧ください。私は彼がメインのGradleの提出者の一つだと考えているので、彼は誰よりもこの優れたを使用する方法を知っている必要があります。

発揮native-platform/build.gradle

cpp { 
    sourceSets { 
     main { 
      source.exclude 'curses.cpp' 
     } 
     curses { 
      source.srcDirs = ['src/main/cpp'] 
      source.include 'curses.cpp' 
      source.include 'generic.cpp' 
      source.include 'generic_posix.cpp' 
     } 
    } 
} 

Then, within the 'libraries' node, refer to all/any combination of architecture and source sets: 

sourceSets << cpp.sourceSets.main 
sourceSets << cpp.sourceSets.curses 

から、私はそれの上に自分自身を見て、あまりにも長い間持っていませんでしたが、彼は多くのOSアーキテクチャベースのソースコードを含む組合せを定義し、バリアント変数にこれらを格納するように見えます。その後、それらをプラットフォームJARに処理します(私はまだ実際にビルドを実行していません、おそらく私はすべきです)。

また、https://github.com/rklaren/GradleJNIをご覧ください。cpp pluginが使用されていますが、少しWindows対応のようです。

更新 - 実行ファイルを作成する 'cpp-exe'プラグインの例があるhttps://github.com/alkemist/gradle-cpp-demoも見つかりました。

関連する問題