1. 08 Aug, 2017 1 commit
  2. 02 Aug, 2017 1 commit
  3. 28 Jul, 2017 1 commit
  4. 14 Jul, 2017 1 commit
    • Brad King's avatar
      Diagnose object library self-reference · d89e10cd
      Brad King authored
      The code
      
          add_library(A OBJECT a.c)
          target_sources(A PRIVATE $<TARGET_OBJECTS:A>)
      
      used to crash CMake via infinite recursion while evaluating the
      generator expression.  Then the change in commit v3.9.0-rc1~266^2~1
      (cmGeneratorTarget: Replace source classifier implementation,
      2017-04-07) avoided the infinite recursion because GetKindedSources now
      creates a map entry and initializes it once.  If it is called again on
      the same target during that initialization, the partially computed
      results are returned.  This is still wrong but does not crash.
      Detect and diagnose this case instead.
      
      Co-Author: Ben Boeckel <ben.boeckel@kitware.com>
      Fixes: #16578
      d89e10cd
  5. 13 Jul, 2017 1 commit
    • Brad King's avatar
      Android: Always add standard include directories last · 4bafa392
      Brad King authored
      The logic added in commit v3.6.0-rc1~30^2 (Add a variable to specify
      language-wide system include directories, 2016-05-24) to use
      `CMAKE_<LANG>_STANDARD_INCLUDE_DIRECTORIES` incorrectly filters them by
      `CMAKE_<LANG>_IMPLICIT_INCLUDE_DIRECTORIES`.  Rather than recognizing
      this, commit v3.8.0-rc1~60^2 (Android: Pass sysroot include directory
      explicitly, 2017-01-20) worked around the problem by incorrectly
      removing `/usr/include` from `CMAKE_<LANG>_IMPLICIT_INCLUDE_DIRECTORIES`
      so it worked in `CMAKE_<LANG>_STANDARD_INCLUDE_DIRECTORIES`.
      
      By not filtering out `/usr/include` from user-specified include
      directories, we allow the code
      
          include_directories(${CMAKE_SYSROOT}/usr/include)
      
      to place the include directory too early on the command line.
      
      Fix support for standard include directories to not be filtered by
      implicit include directories, and do not remove `/usr/include` from the
      list of implicit include directories for Android builds.  Add a test
      case to verify that an explicit `/usr/include` is ignored in favor
      of the standard directory at the end.
      
      Fixes: #17059
      4bafa392
  6. 11 Jul, 2017 2 commits
  7. 10 Jul, 2017 1 commit
    • Brad King's avatar
      bindexplib: Revert support for constants symbols · 3250b9a1
      Brad King authored
      Revert the main logic change of commit v3.9.0-rc1~192^2 (bindexplib: fix
      constants symbols export, 2017-04-26) and its test case.  Unfortunately
      some constants may be provided by multiple object files with different
      `@...` suffixes, leading to ambiguous references.  Revert support
      pending further investigation.
      
      Fixes: #17045
      3250b9a1
  8. 07 Jul, 2017 1 commit
    • Brad King's avatar
      find_package: Restore longer message when config files were considered · e7730d78
      Brad King authored
      Since commit v3.9.0-rc1~58^2 (find_package: shorten output for missing
      package in config mode, 2017-05-09) we print only the one line
      
          - Could NOT find Foo (missing: Foo_DIR)
      
      when package Foo cannot be found in CONFIG mode and it is not REQUIRED.
      However, in the case that package configuration files were found but not
      used, this one line message leaves out important information.  This can
      happen when a package configuration file sets `Foo_FOUND` to `FALSE` or
      when its package version file does not match the requested version.
      Restore the longer message in these cases.  Otherwise a seemingly valid
      explicit `Foo_DIR` setting appears to be silently ignored even if it was
      considered.
      
      Fixes: #17029
      e7730d78
  9. 26 Jun, 2017 2 commits
  10. 14 Jun, 2017 1 commit
    • Brad King's avatar
      IPO: Consider support for each language separately · ba247cca
      Brad King authored
      We only define `INTERPROCEDURAL_OPTIMIZATION` behavior for C, CXX, and
      Fortran languages.  Do not try to enable support for other languages.
      Furthermore, each language builds with a different compiler, so check
      for support by CMake and the compiler for each language independently.
      
      Fixes: #16944
      ba247cca
  11. 02 Jun, 2017 1 commit
  12. 29 May, 2017 1 commit
  13. 23 May, 2017 1 commit
  14. 22 May, 2017 1 commit
    • Matthew Woehlke's avatar
      Improve find_dependency argument handling · ab358d6a
      Matthew Woehlke authored
      Remove highly specialized and totally positional argument handling in
      find_dependency macro, and instead just pass arguments through to
      find_package. This gives users access to the full suite of arguments
      that find_package knows, and is backward compatible with the old
      arguments.
      
      Also, rewrite the unit tests for this, since the old tests are
      exclusively focused on testing the old argument handling and are no
      longer applicable, and add some success tests (the old tests did not
      even set up the CMake state in a way that CMake had any hope of ever
      finding the test package).
      ab358d6a
  15. 18 May, 2017 1 commit
    • Brad King's avatar
      Tests: Fix RunCMake.CMP0022 tll case for Debug configuration · 70c65572
      Brad King authored
      The `CMP0022-WARN-tll` case overrides legacy properties set by
      `target_link_libraries` so that we can verify that the policy
      warning is emitted.  When building in the Debug configuration,
      the `_DEBUG` variant of the legacy property is set/checked too.
      
      Fix the test case to override both variants.  Previously it only
      passed because `cmComputeTargetDepends::AddInterfaceDepends`
      always evaluated dependencies with the "" configuration.
      70c65572
  16. 16 May, 2017 2 commits
  17. 14 May, 2017 2 commits
  18. 09 May, 2017 1 commit
    • Bernhard Burgermeister's avatar
      Ninja: Fix command concatenation on Windows · 5e0e03d9
      Bernhard Burgermeister authored
      Put commands that contain `||` into brackets to avoid early abort of
      execution by `cmd.exe` because `||` has higher precedence than `&&` in
      `cmd.exe`.
      
      Add test to check for command execution after `||` as part of a
      parameter and as command separator.
      
      Fixes: #16850
      5e0e03d9
  19. 08 May, 2017 1 commit
  20. 04 May, 2017 1 commit
    • Zack Galbreath's avatar
      ctest_submit: Add HTTPHEADER option · 1a7d00bd
      Zack Galbreath authored
      Allow CTest script writers to specify additional HTTP headers to be sent
      to CDash during submission.
      
      The motivating case for this feature is a corresponding change in CDash.
      This will allow projects to refuse submissions from any site not bearing
      a valid authentication token.
      1a7d00bd
  21. 02 May, 2017 1 commit
  22. 01 May, 2017 1 commit
  23. 26 Apr, 2017 7 commits
  24. 24 Apr, 2017 2 commits
  25. 22 Apr, 2017 1 commit
  26. 21 Apr, 2017 4 commits
    • Brad King's avatar
      Add deprecation warnings for policies CMP0036 and below · 4f5bbbea
      Brad King authored
      The OLD behaviors of all policies are deprecated, but only by
      documentation.  Add an explicit deprecation diagnostic for some policies
      to encourage projects to port away from setting policies to OLD.
      4f5bbbea
    • Brad King's avatar
      Deprecate Visual Studio 8 2005 generator · 81f9c9e8
      Brad King authored
      Update documentation to mark the generator deprecated.  Add a warning at
      the end of generation plus an option to turn off the warning.
      81f9c9e8
    • Ben Boeckel's avatar
      RunCMake.Ninja: add a test for assumed sources · 664591ce
      Ben Boeckel authored
      This is a dark corner of the Ninja generator. It should be fixed in the
      future, but add a test which shows its behaviors.
      664591ce
    • Ben Boeckel's avatar
      ninja: break unnecessary target dependencies · adf60b28
      Ben Boeckel authored
      Previously, given two libraries, X and Y where X depends on Y, all
      object compilations of X would require the Y library to have been linked
      before being compiled. This is not necessary and can instead be loosened
      such that object compilations of X only depend on the order-only
      dependencies of Y to be completed. This is to ensure that generated
      sources, headers, custom commands, etc. are completed before X starts to
      compile its objects.
      
      This should help build performance in projects with many libraries which
      cause a deep library dependency chain. Previously, a library at the
      bottom would not start compilation until after all other libraries
      completed, but now only its link step needs to wait and its compilation
      jobs can be run in parallel with other tasks.
      
      Fixes: #15555
      adf60b28