7

Qt の上にプロジェクトをセットアップしました (そのため、ソースは C++ で記述されています)。その上で自動ビルド用に Gradle を試してみたかったのです。cpp-exeマルチ プロジェクト ビルド (実行可能ファイルと 2 つのライブラリがあります) の構成の詳細を理解するのに時間がかかりましたcpp-lib

すべてのソースセットを印刷するタスクを設定しました (少なくともデフォルトのものはあるはずです)。これは次のようになります。

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

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

このタスクを実行すると、Gradle はプロジェクトのプロパティ「sourceSets」がないことを通知します。プラグインのドキュメントによると、ソースの場所をカスタマイズすることは可能ですが、方法はカスタマイズできません。

私の質問は次のとおりです。どのcppソースファイルを使用するかをGradleプラグインに伝えるにはどうすればよいですか。cppAPIドキュメントとGradleユーザーガイド以外に、プラグインに関するドキュメントがあれば、それも役立ちます。

4

1 に答える 1

9

Adam MurdochによるGradle の「cpp プラグイン」の使用法をご覧ください。彼は Gradle の主要な提出者の 1 人だと思うので、これを誰よりもよく知っているはずです。

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/rlaren/GradleJNIを見てください。これはcpp プラグインを使用していますが、少し Windows 指向のようです。

更新- https://github.com/alkemist/gradle-cpp-demoも見つけました。これには、実行可能ファイルを構築する「cpp-exe」プラグインの例があります。

于 2012-11-27T00:53:46.387 に答える