1. 10 May, 2016 1 commit
    • Drew's avatar
      Add only-platforms · 3e38cdc0
      Drew authored
      This is a new task-level property to allow the skipping of tasks on platforms other than the ones specified
      3e38cdc0
  2. 22 Apr, 2016 1 commit
  3. 15 Apr, 2016 1 commit
    • Drew's avatar
      Revise required-overlays check · 3bf876c1
      Drew authored
      It is inappropriate to check for required-overlays at parse-time,
      because we may not be interested in the task with the required-overlays.
      
      Specifically, a case arose where a build task required linux/macosx
      overlays, but a clean task did not.  However, the user was required to
      run clean with the platform overlay for the (unused) build task to be
      valid.
      
      The resolution here is to move the required overlays check to a separate
      API.  The downside here is that callers have to opt-in to this behavior.
      
      An alternate design would be to intercept this in the task subscript,
      but that was considered too invasive.
      
      Resolves https://github.com/AnarchyTools/atbuild/issues/66
      3bf876c1
  4. 07 Apr, 2016 1 commit
    • Drew's avatar
      Implement a substition engine for variable expansion · edafd8e4
      Drew authored
      For many reasons it is desireable to support custom variable expansion
      inside an atpkg file.  This commit does that.
      
      This feature is "opt-in", meaning an individual tool's field must opt in
      to varaible expansion.  This is because:
      
      * Variable substition is not appropriate for all fields and tools
      * The particular expansion I'm PRing here requires a complete parse in
        order to be well-defined.
      
      Here is the syntax:
      
      * `${VARIABLE}` means to substitite for the value `VARIABLE`
      
      * We require two tokens `${` to begin a substition.  This is because `$`
        alone is already in use, and we don't want to immediately break
        compatibility (and CI, etc.)  We reserve the right to deprecate
        unescaped `$` in a future release.
      * We support escape syntax `\${VARIABLE}`
      
      * We also support escape syntax `$?{VARIABLE}` (where `?` is a non-`{`
        character).  We reserve the right to deprecate unescaped `$` in a
        future release.
      
      We also implement the first expansion `${collect_sources:taskname}`.
      This expands to the "collected sources" of the specified task name,
      using the same definition as `atllbuild`.
      
      The intent here is to allow the creation of arbitrary tasks that accept
      source files as arguments.  `xcode-emit` is an obvious candidate, and
      would allow it to break its dependence on atpkg, which it only uses for
      this single feature.
      
      There are other obvious programs that we might want to call with "all
      sources" (e.g. preprocessors, etc.) and they may not want to take a
      dependency on atpkg either.
      edafd8e4
  5. 04 Feb, 2016 2 commits
    • Drew's avatar
      Publish appliedOverlays property · 79b2af45
      Drew authored
      We can provide a diagnostic for this inside atbuild
      79b2af45
    • Drew's avatar
      Strongly type Tool keys · 17c1df6f
      Drew authored
      We now strongly type the tool keys, continuing our saga of killing the
      stringly-typing.
      
      Additionally, this allows some tools to provide better diagnostics.
      17c1df6f
  6. 02 Feb, 2016 2 commits