初心者の質問で申し訳ありませんが、gradle プロジェクトで動的タスクを defaultTask として指定することに関連する例や質問をまだ見ていません。
では、動的な $boostLibName タスクを defaultTasks として指定するにはどうすればよいでしょうか?
build.gradle
defaultTasks 'whatgoeshere'
ext {
// The boost directory, which changes according to version
// there should be a better way to do this
boostDir = './boost_1_53_0'
// The list of boost libraries that we want to build
boostLibs = ['smart_ptr', 'filesystem', 'array.hpp']
}
// Create a task to build each boost library
boostLibs.each { def boostLibName ->
println boostLibName
tasks.create(name: boostLibName, dependsOn: aBoostBcp, type: Exec) {
workingDir project.boostDir
def b2compiler = 'toolset=' + System.properties['boost_toolset']
def b2target = '--with-' + boostLibName
def cmd
if(System.properties['platform'] == 'windows') {
//on windows
cmd = ['cmd', '/c', '.\\b2', b2compiler, b2target]
} else {
//on unix and mac
cmd = ['./b2', b2compiler, b2target]
}
// set exec commandLine
//commandLine cmd.split()
commandLine 'cmd', '/c', 'echo', "Command to execute: $cmd"
}
}
バックグラウンド
gradle でクロスプラットフォームの Boost C++ ビルドを実装しようとしています。ビルドをブートストラップし、bcp をビルドし、bcp を使用して名前空間をカスタマイズし、最後に、依存する各ブースト ライブラリをビルドします。