1. 26 Nov, 2018 2 commits
    • Brad King's avatar
      FindBoost: Restore finding without CXX language enabled · 03693621
      Brad King authored
      Since commit v3.13.0~7^2 (FindBoost: Improve compiler prefix
      detection for GCC 5+ and clang 4+, 2018-11-07) we run the internal
      `_Boost_COMPILER_DUMPVERSION` macro on all UNIX platforms.  Teach
      the macro to tolerate missing `CMAKE_CXX_COMPILER_VERSION`, which
      occurs when the CXX language is not enabled.
      
      Fixes: #18624
      03693621
    • Brad King's avatar
      Tests: Teach run_ctest to handle removal of CTestConfig.cmake · d9195ab0
      Brad King authored
      When running tests in a non-fresh build tree there may be files left
      from previous test runs.  In the case that a test removes
      `CTestConfig.cmake.in`, we must remove any `CTestConfig.cmake` that
      may have been left behind.
      d9195ab0
  2. 20 Nov, 2018 5 commits
  3. 19 Nov, 2018 2 commits
    • Kyle Edwards's avatar
      Genex: Add policy to handle empty list items in $<IN_LIST:...> · b5f8113c
      Kyle Edwards authored
      The old behavior of $<IN_LIST:...> is inconsistent with that of
      if(IN_LIST), in that it does not find an empty search item even if
      the list contains empty items. This change adds a new policy to
      correctly handle empty items and make the behavior more consistent
      with if(IN_LIST).
      
      Fixes: #18556
      b5f8113c
    • Frank Benkstein's avatar
      configure_file: canonicalize input and output path in dependencies · 57701227
      Frank Benkstein authored
      Represent the input file path internally in canonical form.  Otherwise
      multiple `configure_file` calls that share the same input file but specify
      it relative to different directories (e.g. via `../`) result in multiple
      copies of the dependency on the rule to re-run CMake.  This causes the
      Ninja generator to emit duplicate phony build statements for these
      dependencies, which generates an error with `-w dupbuild=err`, which
      will be default in Ninja 1.9.
      
      Also canonicalize the output path for consistency.
      
      Add a test case.
      
      Fixes: #18584
      57701227
  4. 15 Nov, 2018 3 commits
  5. 14 Nov, 2018 6 commits
  6. 13 Nov, 2018 3 commits
    • Frank Benkstein's avatar
      configure_file: canonicalize input and output path in dependencies · 6199637e
      Frank Benkstein authored
      Represent the input file path internally in canonical form.  Otherwise
      multiple `configure_file` calls that share the same input file but specify
      it relative to different directories (e.g. via `../`) result in multiple
      copies of the dependency on the rule to re-run CMake.  This causes the
      Ninja generator to emit duplicate phony build statements for these
      dependencies, which generates an error with `-w dupbuild=err`, which
      will be default in Ninja 1.9.
      
      Also canonicalize the output path for consistency.
      
      Add a test case.
      
      Fixes: #18584
      6199637e
    • Tobias C. Berner's avatar
      GNUInstallDirs: Update FreeBSD "info" destination to share/info · f835f189
      Tobias C. Berner authored
      FreeBSD ports commit r484628 (Install texinfo files (GNU info) into
      ${PREFIX}/share/info, 2018-11-10) changed the "info" destination
      from "info" to "share/info".  The commit included a patch to their
      distribution of CMake to fix the `GNUInstallDirs` module too.
      Apply a similar logic change to our upstream version of the module.
      
      We already made a similar change for GNU/kFreeBSD in commit
      v3.13.0-rc2~8^2 (GNUInstallDirs: Don't use BSD info and man paths on
      GNU/kFreeBSD, 2018-10-21).
      
      Fixes: #18585
      f835f189
    • Brad King's avatar
      1b8f0ca5
  7. 11 Nov, 2018 2 commits
  8. 09 Nov, 2018 1 commit
  9. 08 Nov, 2018 2 commits
  10. 07 Nov, 2018 1 commit
    • Kyle Edwards's avatar
      install: Add sane set of defaults for DESTINATION and file type parameters · 9fc20a4f
      Kyle Edwards authored
      If the user does not specify a DESTINATION for a target type, the
      install() command checks to see if the appropriate variable from
      GNUInstallDirs is set. If it is not, then it uses an appropriate
      hard-coded guess.
      
      In addition, for FILES and DIRECTORY, the user can specify a file
      type instead of a DESTINATION, and the command will use the
      appropriate variable from GNUInstallDirs, or a hard-coded guess if
      it is not set.
      9fc20a4f
  11. 06 Nov, 2018 2 commits
  12. 05 Nov, 2018 3 commits
  13. 03 Nov, 2018 3 commits
  14. 01 Nov, 2018 3 commits
  15. 31 Oct, 2018 2 commits
    • Brad King's avatar
      CSharp: Fix regression in VS project type selection for custom target · 1acd1c2b
      Brad King authored
      A target created by `add_custom_target` should always be a `.vcxproj`
      file even if it has `.cs` sources involved in custom commands and such.
      The latter case was broken by refactoring in commit v3.12.0-rc1~160^2~7
      (remove TargetIsCSharpOnly() and use methods from cmGeneratorTarget,
      2018-03-19).  The reason is that the `HasLanguage` method added by
      commit v3.12.0-rc1~239^2~6 (cmGeneratorTarget: add HasLanguage() as
      wrapper for GetLanguages(), 2018-03-19) does not check the target type
      and so is not a suitable check for deciding the project file extension.
      
      The `HasLanguage` method was an attempt at an abstraction that turns
      out not to work very well.  Replace it with a dedicated `IsCSharpOnly`
      method that considers the target type, sources, and non-transitive
      `LINKER_LANGUAGE`.
      
      Fixes: #18515
      1acd1c2b
    • Brad King's avatar
      CSharp: Fix regression in VS project type selection for custom target · a56edad6
      Brad King authored
      A target created by `add_custom_target` should always be a `.vcxproj`
      file even if it has `.cs` sources involved in custom commands and such.
      The latter case was broken by refactoring in commit v3.12.0-rc1~160^2~7
      (remove TargetIsCSharpOnly() and use methods from cmGeneratorTarget,
      2018-03-19).  The reason is that the `HasLanguage` method added by
      commit v3.12.0-rc1~239^2~6 (cmGeneratorTarget: add HasLanguage() as
      wrapper for GetLanguages(), 2018-03-19) does not check the target type
      and so is not a suitable check for deciding the project file extension.
      
      The `HasLanguage` method was an attempt at an abstraction that turns
      out not to work very well.  Replace it with a dedicated `IsCSharpOnly`
      method that considers the target type, sources, and non-transitive
      `LINKER_LANGUAGE`.
      
      Fixes: #18515
      a56edad6