shake-build-system

    2热度

    1回答

    如何使用两种不同配置构建一组源文件,而无需重新构建所有内容? 我当前的设置添加了一个选项--config = rel,它将加载build_rel.cfg中的所有选项并将所有选项编译到目录build_rel /。 data Flags = FlagCfg String deriving (Show, Eq)

    1热度

    2回答

    我有以下构建系统 module Main where import Development.Shake main :: IO() main = shakeArgs shakeOptions $ do "a" %> \out -> do need ["a.in"] cmd_ "sleep" "10" cmd "touch" [out] 我建立与

    2热度

    1回答

    我觉得第一Shake使用演示模式,似乎很容易出错的example: contents <- readFileLines $ out -<.> "txt" need contents cmd "tar -cf" [out] contents 为什么我们需要need contents时readFileLines读取它们和cmd引用他们呢?这是否可以避免要求Applicative

    2热度

    1回答

    如何在摇动中传递参数然后在我们的规则中使用它们?我想提出的一些等价物: make ARCH=x86_64 或 make DEBUG=YES 等等 现在我一直在使用环境变量和getEnv函数来模拟这些。 我如何使一个给定参数(环境变量)的依赖关系,以便它可以在构建中读取一次,将其存储在某处并从多个规则访问它? 例如现在,我在多个规则中多次执行getEnv,但在编译期间,环境变量可能会更改。此外,例如

    2热度

    1回答

    我通过usingConfigFile为每个项目维护小配置文件。我希望能够覆盖命令行上的任何设置。它似乎使用shakeArgsWith(而不是shakeArgs)是第一步,但我没有看到一个明显的方式来连接到getConfig产生的值。有没有一个标准的方法来做到这一点?

    3热度

    1回答

    我想用摇动下载一堆网页,然后对它们做一些处理。不过,我还想选择下载页面以外的页面,告诉我已经这样做了,然后让其他处理步骤继续进行。现在我正在做第二步,“告诉我为它做了一些工作”。 举一个小例子,这里有一个很短的抖动脚本: import Development.Shake main = shakeArgs shakeOptions $ do want ["test.txt"]

    1热度

    1回答

    我需要在Actions中引用由名称withTempDir创建的目录。我猜测当前的工作目录被withTempDir所改变,这很可能在简单情况下起作用。但是,某些操作必须自己执行(Cwd somewhere)。 Action中有没有办法获得创建的临时目录的完整路径名?

    2热度

    1回答

    我试图找出我如何可以从进展型(在Development.Shake.Progress)进度信息输出它执行命令。可能期望的输出将是: [1/9] Compiling src/Window/Window.cpp [2/9] Compiling src/Window/GlfwError.cpp [3/9] Compiling src/Window/GlfwContext.cpp [4/9] Com

    1热度

    1回答

    我遇到不必要的重建,而使用这种匹配模式: getDirectoryFiles "" $ "foo" </> "//*.c" 我在Linux上所以从我的理解,第二个参数将评估为 "foo///*.c" 而且我相信,这将是不正确将其替换为 "foo" </> "/*.c" 因为这不适用于Windows?然而,在Linux上,这个工作正如我所期望的那样。 从测试我的结论是模式匹配“foo”之

    3热度

    1回答

    有时候,创建目录mkdir不是正确的工具。它可能是git clone或rsync或mount。所以,当我们有这样一条规则: needDir dirs = filterM ((fmap not) . doesDirectoryExist) dirs >>= need rules = do { "project" </> "tool" %> \out -> do { needD