1. 11 Nov, 2019 1 commit
  2. 05 Oct, 2019 1 commit
  3. 12 Sep, 2019 1 commit
  4. 14 May, 2019 1 commit
    • Rosen Matev's avatar
      Support job pools in custom commands and targets · 9f76961d
      Rosen Matev authored
      Provide a way for custom commands and targets to set the pool variable
      of the ninja build statement. Setting `JOB_POOL` is not compatible with
      `USES_TERMINAL`, which implies the `console` pool.
      
      The option is silently ignored with other generators.
      
      Closes: #18483
      9f76961d
  5. 25 Oct, 2018 1 commit
  6. 28 Sep, 2018 1 commit
  7. 02 May, 2018 1 commit
  8. 02 Apr, 2018 1 commit
  9. 16 Jan, 2018 1 commit
  10. 04 Sep, 2017 1 commit
  11. 19 Apr, 2017 1 commit
  12. 13 Jan, 2017 1 commit
  13. 30 Aug, 2016 1 commit
  14. 09 May, 2016 1 commit
  15. 28 Jan, 2016 1 commit
  16. 08 Jun, 2015 1 commit
    • Brad King's avatar
      Help: Reference TARGET_FILE genex in add_custom_command docs (#15605) · 0e708d17
      Brad King authored
      When documenting in the COMMAND option how to reference an executable,
      we previously only explicitly covered how to do it for argv[0] and left
      it to the reader to follow the reference to the generator expressions
      manual.  Add explicit mention of the TARGET_FILE genex in this
      documentation since it will be a commonly used generator expression in
      this context.
      0e708d17
  17. 04 Feb, 2015 1 commit
  18. 16 Dec, 2014 1 commit
  19. 14 Nov, 2014 3 commits
    • Brad King's avatar
      Add an option for explicit BYPRODUCTS of custom commands (#14963) · e15a7075
      Brad King authored
      A common idiom in CMake-based build systems is to have custom commands
      that generate files not listed explicitly as outputs so that these
      files do not have to be newer than the inputs.  The file modification
      times of such "byproducts" are updated only when their content changes.
      Then other build rules can depend on the byproducts explicitly so that
      their dependents rebuild when the content of the original byproducts
      really does change.
      
      This "undeclared byproduct" approach is necessary for Makefile, VS, and
      Xcode build tools because if a byproduct were listed as an output of a
      rule then the rule would always rerun when the input is newer than the
      byproduct but the byproduct may never be updated.
      
      Ninja solves this problem by offering a 'restat' feature to check
      whether an output was really modified after running a rule and tracking
      the fact that it is up to date separately from its timestamp.  However,
      Ninja also stats all dependencies up front and will only restat files
      that are listed as outputs of rules with the 'restat' option enabled.
      Therefore an undeclared byproduct that does not exist at the start of
      the build will be considered missing and the build will fail even if
      other dependencies would cause the byproduct to be available before its
      dependents build.
      
      CMake works around this limitation by adding 'phony' build rules for
      custom command dependencies in the build tree that do not have any
      explicit specification of what produces them.  This is not optimal
      because it prevents Ninja from reporting an error when an input to a
      rule really is missing.  A better approach is to allow projects to
      explicitly specify the byproducts of their custom commands so that no
      phony rules are needed for them.  In order to work with the non-Ninja
      generators, the byproducts must be known separately from the outputs.
      
      Add a new "BYPRODUCTS" option to the add_custom_command and
      add_custom_target commands to specify byproducts explicitly.  Teach the
      Ninja generator to specify byproducts as outputs of the custom commands.
      In the case of POST_BUILD, PRE_LINK, and PRE_BUILD events on targets
      that link, the byproducts must be specified as outputs of the link rule
      that runs the commands.  Activate 'restat' for such rules so that Ninja
      knows it needs to check the byproducts, but not for link rules that have
      no byproducts.
      e15a7075
    • Peter Collingbourne's avatar
      Add USES_TERMINAL option for custom commands · fe5d6e8c
      Peter Collingbourne authored and Brad King's avatar Brad King committed
      Teach the add_custom_command and add_custom_target commands a new
      USES_TERMINAL option.  Use it to tell the generator to give the command
      direct access to the terminal if possible.
      fe5d6e8c
    • Brad King's avatar
      0cacf739
  20. 08 Sep, 2014 1 commit
  21. 02 Sep, 2014 1 commit
  22. 05 Aug, 2014 3 commits
  23. 20 Mar, 2014 1 commit
  24. 06 Feb, 2014 1 commit
  25. 16 Oct, 2013 1 commit
    • Brad King's avatar
      Help: Factor out cmake-generator-expressions manual page · e7ca48f2
      Brad King authored
      Generator expressions are supported in many places and are a distinct
      concept worthy of their own manual page.  The old builtin documentation
      was previously represented by preprocessor macros to generate it into
      each place that supports them.  Factor out the duplicate content into a
      dedicated cmake-generator-expressions manual page and reference it from
      each original location.
      e7ca48f2
  26. 15 Oct, 2013 1 commit