1. 22 Jun, 2018 1 commit
    • Brad King's avatar
      file: Drop error cases added by CMake 3.12.0-rc1 to avoid regressions · 142a6257
      Brad King authored
      Refactoring in commit v3.12.0-rc1~418^2~3 (Refactor HandleGlobCommand,
      2018-02-13) introduced error diagnostics for argument combinations that
      were previously accepted.  Restore acceptance to avoid regressing
      projects that used those combinations even if they do not make sense.
      Fixes: #18097
  2. 12 Jun, 2018 1 commit
  3. 04 Jun, 2018 2 commits
    • Jean-Christophe Fillion-Robin's avatar
      ExternalProject: Fix cache generation when args end with "-NOTFOUND" · 7ad5165c
      Jean-Christophe Fillion-Robin authored and Brad King's avatar Brad King committed
      Generalize the fix in commit v3.11.0-rc4~8^2 (ExternalProject: Fix cache
      generation when last args ends with "-NOTFOUND", 2018-03-10) to work for
      any argument rather than just the last one.
      ExternalProject can now successfully generate the cache file when any
      (not only the last one) cache variable associated with either
      `CMAKE_CACHE_ARGS` or `CMAKE_DEFAULT_CACHE_ARGS` configure step option
      is set to a `<value>` ending with `-NOTFOUND`.
    • luz.paz's avatar
      Fix misc. typos · be281068
      luz.paz authored and Brad King's avatar Brad King committed
      Found via `codespell` and `grep`
  4. 01 Jun, 2018 4 commits
    • Kitware Robot's avatar
      Revise C++ coding style using clang-format-6.0 · d7204e64
      Kitware Robot authored and Brad King's avatar Brad King committed
      Run the `clang-format.bash` script to update all our C and C++ code to a
      new style defined by `.clang-format`.  Use `clang-format` version 6.0.
      * If you reached this commit for a line in `git blame`, re-run the blame
        operation starting at the parent of this commit to see older history
        for the content.
      * See the parent commit for instructions to rebase a change across this
        style transition commit.
    • Brad King's avatar
      clang-format.bash: update to clang-format-6.0 · 523c443d
      Brad King authored
      Update `.clang-format` with configuration to make the 6.0 format as
      close as possible to what 3.8 produced before.  Then revise the style:
      * Indent preprocessor directives (a feature new since 3.8)
      * Add a newline and indentation before inheritance `:` and `,`
      Rename the Git attribute identifying the format to include the
      clang-format version number: `format.clang-format-6.0`.  This will aid
      external infrastructure in knowing what version of the tool to run.
    • Brad King's avatar
    • Daniele E. Domenichelli's avatar
  5. 31 May, 2018 1 commit
  6. 30 May, 2018 1 commit
  7. 29 May, 2018 1 commit
  8. 27 May, 2018 1 commit
  9. 25 May, 2018 1 commit
  10. 24 May, 2018 1 commit
  11. 22 May, 2018 1 commit
  12. 21 May, 2018 1 commit
  13. 16 May, 2018 1 commit
  14. 15 May, 2018 1 commit
  15. 14 May, 2018 1 commit
    • Brad King's avatar
      add_custom_{command,target}: Fix crash on empty expanded command · 6e594916
      Brad King authored
      Our custom command generation logic assumes that all command lines have
      at least `argv0`.  In `add_custom_{command,target}` we already check
      that at least a `COMMAND` was given, but using `COMMAND_EXPAND_LISTS` in
      combination with a generator expression that expands to an empty string
      may produce an empty command line.  In this case simply add an empty
      string as a command to maintain our internal invariant.
      Fixes: #17993
  16. 11 May, 2018 2 commits
    • Rolf Eike Beer's avatar
    • Alex Turbov's avatar
      CPack: Add NuGet support · f739752a
      Alex Turbov authored and Brad King's avatar Brad King committed
      Create a CPack generator that uses `nuget.exe` to create packages:
      NuGet packages could be easily produced from a `*.nuspec` file (running
      `nuget pack` in the directory w/ the spec file).  The spec filename does
      not affect the result `*.nupkg` name -- only `id` and `version` elements
      of the spec are used (by NuGet).
      Some implementation details:
      * Minimize C++ code -- use CMake script do to the job. It just let the
        base class (`cmCPackGenerator`) to preinstall everything to a temp
        directory, render the spec file and run `nuget pack` in it, harvesting
        `*.nupkg` files...;
      * Ignore package name (and use default paths) prepared by the base class
        (only `CPACK_TEMPORARY_DIRECTORY` is important) -- final package
        filename is a responsibility of NuGet, so after generation just scan the
        temp directory for the result `*.nupkg` file(s) and update
        `packageFileNames` data-member of the generator;
      * The generator supports _all-in-one_ (default), _one-group-per-package_
        and _one-component-per-package_ modes.
  17. 10 May, 2018 1 commit
    • Brad King's avatar
      add_library: Restore error on alias of non-global imported target · e567d7eb
      Brad King authored
      In commit v3.11.0-rc1~433^2~1 (Add support for IMPORTED GLOBAL targets
      to be aliased, 2017-09-14) we accidentally dropped the error on calling
      `add_library` to alias an imported target that is not globally visible.
      The `add_executable` command's equivalent check was properly updated.
      Restore the check in `add_library` with the same update.  Also fix the
      test case accordingly.
      Fixes: #17982
  18. 09 May, 2018 3 commits
  19. 07 May, 2018 2 commits
  20. 04 May, 2018 1 commit
  21. 03 May, 2018 3 commits
  22. 02 May, 2018 1 commit
    • Alex Turbov's avatar
      CPack: Use project version as default for `CPACK_PACKAGE_VERSION` · af1c4887
      Alex Turbov authored and Craig Scott's avatar Craig Scott committed
      * Introduce `CMAKE_PROJECT_VERSION` and the corresponsing components:
      * `CPack` module use `CMAKE_PROJECT_VERSION_MAJOR`,
        to initialize corresponsing CPack variables.
  23. 26 Apr, 2018 1 commit
    • Brad King's avatar
      Ninja: Avoid empty phony edges for target ordering · 625b8f90
      Brad King authored
      Since commit v3.9.0-rc1~230^2~2 (ninja: break unnecessary target
      dependencies, 2017-04-17) we unconditionally generate a phony edge for
      target ordering.  It is needed in case a later target depends on it.
      However, if the phony edge has no inputs then `ninja -d explain` prints:
          ninja explain: output ... of phony edge with no inputs doesn't exist
      Furthermore the phony edge's output is considered dirty and can cause
      dependents to be incorrectly considered dirty.  Avoid this by always
      generating at least one input to the target ordering phony edges.
      If we have no real dependencies just use a path that always exists.
      Fixes: #17942
  24. 24 Apr, 2018 1 commit
  25. 23 Apr, 2018 4 commits
    • Ephi Sinowitz's avatar
      Order SYSTEM include directories after non-system directories · 76ad2ecb
      Ephi Sinowitz authored and Brad King's avatar Brad King committed
      An effect of the `-isystem` flag is to search the directory after those
      specified via `-I` flags.  Make behavior more consistent on compilers
      that do not have any `-isystem` flag by explicitly moving system include
      directories to the end.
    • Raffi Enficiaud's avatar
      FindMatlab: Matlab Runtime Compiler support · 59fb9e89
      Raffi Enficiaud authored and Brad King's avatar Brad King committed
      * Determining automatically the MCR version on OSX and Windows
      * Distinguishing between MCR and Matlab
      * Specific tests for the MCR
      * mexext on windows does not work properly: the mexext is hardcoded
      * Doc updates for the MCR
      Fixes: #16487
    • Marc Chevrier's avatar
      Genex: Add $<TARGET_GENEX_EVAL:...> and $<GENEX_EVAL:...> · 4d15046e
      Marc Chevrier authored
      Fixes: #17884
    • Fujii Hironori's avatar
      VS: Generate a custom command only in the least dependent target · f59c33a7
      Fujii Hironori authored
      If a custom command is assigned to multiple targets, generate the build
      rule only in the least-dependent `.vcxproj` file.  Otherwise MSBuild
      will run the command on the first build of a dependent target even if
      its dependencies already brought the command up to date (in order to
      populates its build log).
      Generate targets in least-to-most-dependent order, and assign a custom
      command to the least dependent target.
      Added cmLocalVisualStudio10Generator::GenerateTargetsDepthFirst to call
      cmVisualStudio10TargetGenerator::Generate in least-dependent order.
      Moved SourcesVisited from cmVisualStudio10TargetGenerator to
      cmLocalVisualStudio10Generator to avoid attaching a custom command to
      multiple targets among the local generator.
      Fixes: #16767
  26. 22 Apr, 2018 1 commit
  27. 20 Apr, 2018 1 commit