Boost 如何将动态任务设置为defaultTask

Boost 如何将动态任务设置为defaultTask,boost,gradle,Boost,Gradle,很抱歉提出了一个新手问题,但我还没有看到与在gradle项目中指定为defaultTask相关的示例或问题 那么,如何将动态$boostLibName任务指定为defaultTasks呢 格雷德尔先生 背景 我试图在GADLE中实现跨平台的Boost C++构建,在其中引导构建、构建BCP,使用BCP来定制我们的命名空间,最后,构建我们依赖的每个提升库。 < P> >代码> Debug TraseSe= BuffSistBs< /Cuff>,并且必须在声明“代码> BooStIsbs/COD>”

很抱歉提出了一个新手问题,但我还没有看到与在gradle项目中指定为defaultTask相关的示例或问题

那么,如何将动态$boostLibName任务指定为defaultTasks呢

格雷德尔先生 背景

我试图在GADLE中实现跨平台的Boost C++构建,在其中引导构建、构建BCP,使用BCP来定制我们的命名空间,最后,构建我们依赖的每个提升库。

< P> >代码> Debug TraseSe= BuffSistBs< /Cuff>,并且必须在声明“代码> BooStIsbs/COD>”之后出现。或者,您可以声明一个名为
build
的任务,该任务依赖于
boostLibs
,并将
“build”
作为默认任务


除非您需要从其他构建脚本访问这些属性,否则可以将它们转换为局部变量(例如
def boostLibs=…
而不是
ext.boostLibs=…

它是
defaultTasks=boostLibs
,必须在声明
boostLibs
之后出现。或者,您可以声明一个名为
build
的任务,该任务依赖于
boostLibs
,并将
“build”
作为默认任务


除非需要从其他生成脚本访问这些属性,否则可以将它们转换为局部变量(例如
def boostLibs=…
而不是
ext.boostLibs=…

这应该是三个问题,而不是一个问题。此外,您应该从构建脚本中删除与问题无关的所有内容。我将集中讨论我的主要问题。这应该是三个问题,而不是一个。此外,您应该从构建脚本中删除与问题无关的所有内容。我会把重点放在我的主要问题上。工作得很有魅力。我不知道为什么我把事情复杂化了。感谢您提供有关添加构建任务的附加建议。我还没走到那一步,但这是有道理的。事实上,我仍然需要创建一个zip任务,将构建的lib归档到项目的工件中。不过,你可能已经想到了这一点工作得很有魅力。我不知道为什么我把事情复杂化了。感谢您提供有关添加构建任务的附加建议。我还没走到那一步,但这是有道理的。事实上,我仍然需要创建一个zip任务,将构建的lib归档到项目的工件中。不过,你可能已经想到了这一点
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"
    }
}