Updates will be applied on October 27th between 12pm - 12:45pm EDT (UTC-0400). Gitlab may be slow during the maintenance window.

  1. 14 Mar, 2019 1 commit
  2. 05 Mar, 2019 1 commit
    • Ruslan Baratov's avatar
      iOS: Add IOS variable · e427c7c1
      Ruslan Baratov authored
      Since commit 11da882a (Apple: Introduce separate system name for iOS,
      tvOS, and watchOS, 2018-01-15, v3.14.0-rc1~14^2~1) we support setting
      `CMAKE_SYSTEM_NAME` to `iOS`.  Existing iOS toolchain files already
      set `IOS` as a short-hand variable, so do the same here.
  3. 04 Mar, 2019 1 commit
  4. 01 Mar, 2019 2 commits
    • Christian Pfeiffer's avatar
      FindJNI: Unify path search, fix support for Java 9 · 77cede09
      Christian Pfeiffer authored
      Java 9 restructured the standard location of the AWT libraries due to
      the removal of the JRE/JDK separation. We should check all possible
      combinations of subdirectories to the Java root directories to ensure
      that the libraries will be found after an upgrade.
      Furthermore, a root directory would contain both, include and library
      paths, so the search should be unified to ease maintenance on the
    • Brad King's avatar
      ExternalProject: Restore default log dir with custom stamp dir · a6d3fee7
      Brad King authored
      In commit b6f6cac3 (ExternalProject: add LOG_DIR option that allows
      overriding of log location, 2018-10-12, v3.14.0-rc1~515^2~1) the log
      directory got its own option.  The intention was to fall back to the
      stamp directory by default.  However, the implementation actually only
      falls back to the same default as the stamp directory and does not
      consider a custom stamp dir.
      Update the default log dir computation to fall back to whatever is the
      final selection for the stamp dir.
      Fixes: #19000
  5. 27 Feb, 2019 1 commit
    • Brad King's avatar
      FindThreads: Revert libc symbol check to pthread_create · 18320230
      Brad King authored
      Since commit e9a1ddc5 (FindThreads: Replace the pthread symbol
      checking in libc., 2018-11-18, v3.14.0-rc1~292^2) we check libc for
      `pthread_kill` instead of `pthread_create`.  However, on FreeBSD
      `pthread_kill` is in libc but not `pthread_create`.  Discussion in the
      original merge request for the above commit also considered
      `pthread_key_create`, `pthread_self`, and `pthread_attr_init`.  Every
      symbol seems to have some reason it is not an appropriate choice.
      Revert to the pre-3.14 behavior of using `pthread_create` pending
      further investigation.
  6. 26 Feb, 2019 3 commits
    • Brad King's avatar
      FindOctave: Remove module pending further work · 7a1f3fe0
      Brad King authored
      The `FindOctave` module added by commit 170bcb6f (FindOctave: Add
      module to find GNU octave, 2018-11-17, v3.14.0-rc1~283^2) has a few
      problems in its implementation that need to be worked out before the
      module can be included in a CMake release.  These were missed during
      review.  Remove the module for now.  It can be restored later with a
      fresh review.
      Issue: #18991
    • Brad King's avatar
      VS: Fix detection of clang-cl with -T llvm · 8375c303
      Brad King authored
      When using a VS generator with `-T llvm`, MSBuild relies on the "LLVM
      Compiler Toolchain" VS Extension.  This does not put `clang-cl` in the
      `PATH` inside the build, and LLVM no longer provides a `cl` replacement
      either.  Therefore we need another way to extract the path to the
      `CMAKE_{C,CXX}_COMPILER`.  Fortunately the LLVM VS integration provides
      a `$(ClangClExecutable)` macro we can reference to get the path.
      Fixes: #18983
    • Brad King's avatar
      FindThreads: Fix libc check to use proper header for pthread_kill · e0267eb1
      Brad King authored
      In commit e9a1ddc5 (FindThreads: Replace the pthread symbol checking
      in libc., 2018-11-18, v3.14.0-rc1~292^2) we switched to checking for
      `pthread_kill` in libc but did not update the symbol check's header file
      to match.  Add `signal.h` to get `pthread_kill`.  Keep `pthread.h`
      anyway since the purpose of the check is to verify that the pthread API
      Fixes: #18984
  7. 25 Feb, 2019 1 commit
  8. 23 Feb, 2019 1 commit
  9. 19 Feb, 2019 1 commit
  10. 18 Feb, 2019 3 commits
    • Brad King's avatar
      Do not explicitly report "standard" include directories as implicit · 890bae52
      Brad King authored
      In commit 1293ed85 (ParseImplicitIncludeInfo: keep implicit incl.
      consistent when rerunning cmake, 2019-01-30, v3.14.0-rc1~26^2) we did
      not account for `CMAKE_<LANG>_STANDARD_INCLUDE_DIRECTORIES`.  This
      variable lets platform modules or toolchain files specify directories
      that are to be explicitly passed as standard include directories.  These
      include directories are used by the test project from which we extract
      implicit include directories so they appear in the parsed results
      whether or not the compiler really considers them implicit.  Exclude
      these entries from the computed implicit include directories since they
      are not actually implied by the compiler when we invoke it with
      "standard" include directories passed explicitly.
      Instead teach the build system generators to treat the "standard"
      directories as implicit for purposes of excluding them from appearing
      earlier in the compiler command line due to `include_directories` and
    • Brad King's avatar
      Prefix implicit include directories with sysroot on construction · 9502276f
      Brad King authored
      Since commit 7cd65c97 (Add CMAKE_SYSROOT variable to set --sysroot
      when cross compiling., 2013-04-13, v3.0.0-rc1~342^2) we have prefixed
      the value of `CMAKE_SYSROOT` to implicit include directories.  This was
      done because we hard-coded `/usr/include` as an implicit include
      directory without accounting for the sysroot.  Instead we should prefix
      the hard-coded paths when they are constructed.  Update the
      `Platform/UnixPaths` module to do this as `Platform/Darwin` already
      Since commit 5990ecb7 (Compute implicit include directories from
      compiler output, 2018-12-07, v3.14.0-rc1~108^2) the values of the
      `CMAKE_<LANG>_IMPLICIT_INCLUDE_DIRECTORIES` variables are computed from
      a real compiler invocation so they already account for the sysroot
      prefix.  In commit 6fc33829 (Update logic for sysroot in detected
      implicit include directories, 2019-02-13, v3.14.0-rc2~6^2) we attempted
      to apply the prefix conditionally, but that is incorrect bec...
    • Yves Frederix's avatar
      FindBoost: Find boost libraries built with --layout=tagged · bee6597a
      Yves Frederix authored
      Pick up libraries of the form `boost_system-mt-x64`, which do not have
      the version suffix.
      Fixes: #18908
  11. 16 Feb, 2019 1 commit
  12. 15 Feb, 2019 2 commits
    • Saleem Abdulrasool's avatar
      FindLibXml2: Document LibXml2_FOUND as preferred case · fd86a4de
      Saleem Abdulrasool authored
      Both `LIBXML2_FOUND` and `LibXml2_FOUND` are provided but the modern
      convention is to use the case that matches the module name.
    • Brad King's avatar
      try_compile: Restore expansion of ;-list in COMPILE_DEFINITIONS · cde2596a
      Brad King authored
      The quoting added by commit 8c5221fb (try_compile: Preserve special
      characters in COMPILE_DEFINITIONS, 2019-01-21, v3.14.0-rc1~108^2~3)
      broke the case that the `COMPILE_DEFINITIONS` value contains a `;`.
      Without the quoting the `;` would be generated literally in an unquoted
      argument in the test `CMakeLists.txt` file and would then be expanded.
      With quoting the `;` is preserved, which is not the old behavior.
      Fix this by expanding the `;`-list ahead of time.  Add test cases for
      behavior with both `#` and `;`.
      This was noticed with the PGI compiler where we set
      `CMAKE_CXX*_STANDARD_COMPILE_OPTION` to values like `--c++17;-A`.  The
      symptom had also been observed while preparing commit ef8f2376
      (ParseImplicitIncludeInfo: add SunPro Fortran and PGI compiler, Cray
      fix, 2019-01-29, v3.14.0-rc1~26^2~2) but was not recognized at the time
      as a regression.  Revert the workaround added by that commit.
      Fixes: #18919
  13. 14 Feb, 2019 1 commit
    • Brad King's avatar
      Fortran: Fix submodule file names across compilers · d80ecba5
      Brad King authored
      The naming convention for submodule files varies across compilers.  Add
      a table to the compiler information modules and thread the information
      through to the Fortran module dependency parser.  Fill out the table for
      compiler ids known to support Fortran submodules.
      Fixes: #18746
  14. 13 Feb, 2019 2 commits
    • Brad King's avatar
      Fix regression in -I/usr/include exclusion logic · 557b2d6e
      Brad King authored
      The change in commit 15ad8300 (Refactor exclusion of -I/usr/include to
      avoid per-language values, 2019-01-21, v3.14.0-rc1~108^2~4) caused the
      exclusion to apply to Fortran, but it was only meant for C, CXX, and
      CUDA.  The purpose of the change was to prepare for the value of
      `CMAKE_<LANG>_IMPLICIT_INCLUDE_DIRECTORIES` to be computed from the
      actual compiler instead of hard-coded.  We need to preserve exclusion of
      `-I/usr/include` if the compiler has any implicit include directory that
      looks intended to replace it, e.g. `<sdk>/usr/include` on macOS.
      Fixes: #18914
    • Brad King's avatar
      macOS: Fix addition of <sdk>/usr/include to default implicit include dirs · 017598a4
      Brad King authored
      In commit 1293ed85 (ParseImplicitIncludeInfo: keep implicit incl.
      consistent when rerunning cmake, 2019-01-30, v3.14.0-rc1~26^2) the
      `Platform/UnixPaths` module was updated to add `/usr/include` to
      initialization variable used by `CMakeDetermineCompilerABI` instead of
      directly.  This approach makes it only a default that can be overridden
      by detection of the implicit include directories really used by the
      The addition of `<sdk>/usr/include` to default implicit include
      directories by the `Platform/Darwin` module needs the same update but
      was accidentally left out of the original commit.
  15. 11 Feb, 2019 1 commit
  16. 08 Feb, 2019 1 commit
  17. 07 Feb, 2019 4 commits
  18. 04 Feb, 2019 3 commits
  19. 31 Jan, 2019 2 commits
    • Brad King's avatar
      FindLAPACK: Distinguish check result variable name from FindBLAS · 6f5e4a53
      Brad King authored
      Since commit 192a9182 (FindLAPACK: MKL clean up and fix for windows,
      2013-10-08, v3.0.0-rc1~538^2), FindLAPACK accidentally used FindBLAS's
      `BLAS_` prefix for some of its check results.
      Since commit 5b8f69eb (FindBLAS: Detect implicitly linked BLAS
      library, 2018-08-28, v3.13.0-rc1~150^2~2), FindBLAS stores a check
      result in a plain `BLAS_WORKS` variable.  The typo in FindLAPACK happens
      to cause a collision with that name.
      The typo was already fixed in post-3.13 development as part of other
      work in commit 8b63265e (FindLAPACK: Unify internal variables related
      to MKL, 2018-11-18).  Fix the typo in the 3.13 version of FindLAPACK to
      avoid the collision.  Otherwise it could cause FindLAPACK to incorrectly
      determine that a certain library combination does not work (or
      incrrectly that it works).
      Fixes: #18860
    • Brad King's avatar
      Find{BLAS,LAPACK}: Drop unnecessary mark_as_advanced calls · bb735025
      Brad King authored
      Cache entries created by `try_compile` are already `INTERNAL`.
  20. 30 Jan, 2019 6 commits
    • Brad King's avatar
      Ninja: Use deps=gcc for Intel Compiler on Windows · a624a3e1
      Brad King authored
      Ninja 1.9 supports the depfile format generated by this compiler.
      Use `deps = gcc` when the version of Ninja is new enough.
      Unfortunately the Intel Compiler for Windows does not properly
      escape spaces in paths written to a depfile so if there is a
      space in the path we must still fall back to `deps = msvc`.
      Fixes: #18855
    • chuck cranor's avatar
      ParseImplicitIncludeInfo: keep implicit incl. consistent when rerunning cmake · 1293ed85
      chuck cranor authored
      The first time you run cmake, it sets the implicit include path
      to the value reported by the parser (and this value gets saved
      in CMake${lang}Compiler.cmake).  But if you re-run cmake,
      UnixPaths.cmake blindly appends an extra /usr/include to the
      value saved in CMake${lang}Compiler.cmake.  That should not be
      harmful in most cases, but we want later runs of cmake to be
      consistent with the initial one.  Resolve using a solution
      suggested by Brad King:
        - UnixPaths now sets the default implicit include path in a new
          variable named _CMAKE_${lang}_IMPLICIT_INCLUDE_DIRECTORIES_INIT
          This value is only used the first time cmake is run (by
          CMakeDetermineCompilerABI.cmake when it calls the implicit
          include parser).
        - if CMakeDetermineCompilerABI.cmake successfully calls the
          implicit include parser, it overwrites the value in
          value returned by the parser
        - CMakeDetermineCompilerABI.cmake always sets
          CMAKE_${lang}_IMPLICIT_INCLUDE_DIRECTORIES to the above value
        - the final value of CMAKE_${lang}_IMPLICIT_INCLUDE_DIRECTORIES gets
          saved to CMake${lang}Compiler.cmake when it is regenerated after
          the compiler tests are done.
        - CMakeDetermineCompilerABI.cmake is only executed the first time cmake
          is run.  Additional runs of cmake directly load the implicit include
          path from the value saved in CMake${lang}Compiler.cmake (the parser
          and _INIT variable are not used).
      The above depends on UnixPaths.cmake being loaded to set the _INIT value
      before CMakeDetermineCompilerABI.cmake runs the implicit include parser.
    • Michael Hirsch, Ph.D's avatar
    • Michael Hirsch, Ph.D's avatar
    • Roger Leigh's avatar
    • Michael Hirsch, Ph.D's avatar
  21. 29 Jan, 2019 2 commits
    • chuck cranor's avatar
      CrayPrgEnv/ParseImplicitIncludes: simplify for new implict include parser · eaf53158
      chuck cranor authored
      Remove now redundant implicit parser code from CrayPrgEnv.cmake, as
      this function is now supported in the general cmake code
      (e.g. Modules/CMakeParseImplicit{Include,Link}Info.cmake).
      This simplifies __CrayPrgEnv_setup() to take only one arg (${lang})
      and allows us to remove a level of inclusion as
      CrayPrgEnv-${lang}.cmake is now compiler independent we
      do not need the CrayPrgEnv-${compiler}-${lang} files any more.
    • chuck cranor's avatar
      ParseImplicitIncludeInfo: add SunPro Fortran and PGI compiler, Cray fix · ef8f2376
      chuck cranor authored
      Add implicit include parser for PGI compiler ID.  PGI verbose output
      for CXX differs from C and Fortran, so CXX is broken out into its own
      case.  The C and Fortran compilers take "-YI,path" and "-Mnostdinc" to
      change or disable the builtin include path.  The last arg on the command
      line appears to override previous args (e.g. "-YI,path1 -YI,path2" will
      set the path to "path2" ... the previous "-YI,path1" gets undone).
      The CXX compiler verbose output reports with "-I" rather than "-stdinc"
      for the built in path.  In addition with CXX "-Mnostdinc" does not
      completely zero the include path (e.g. "#include <stdio.h>" still works
      with "-Mnostdinc"... "-I/usr/include" still shows up in the verbose output).
      Minor adjustments to get the SunPro parser to handle Fortran as well.
      Fixes for Cray compiler support (Modules/Compiler/Cray-{C,CXX}.cmake):
      The *_COMPILE_OPTION flags contain options like "-h c99,gnu" ...
      these options need to be in double quotes (they are currently not).
      Otherwise, cmake treats them as lists and tries to run the compiler
      with "-h;c99,gnu" and fails when it is "Detecting C compile features"...
      Also, the Cray-CXX.cmake contains "__compiler_cray(C)" instead of
      "__compiler_cray(CXX)" -- this error prevents the correct VERBOSE
      flags for CXX from being defined which prevents the implicit include
      parser from running.
      Add additional test cases for PGI and SunPro Fortran to the
      Tests/RunCMake/ParseImplicitIncludeInfo area.