1. 21 Feb, 2019 2 commits
  2. 20 Feb, 2019 1 commit
  3. 19 Feb, 2019 7 commits
  4. 18 Feb, 2019 7 commits
    • Vitaly Stakhovsky's avatar
    • 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
      `target_include_directories` calls.
      
      Issue: #18936, #18944
      890bae52
    • Brad King's avatar
      Restore unconditional use of "standard" include directories · 5c171ca8
      Brad King authored
      `CMAKE_<LANG>_STANDARD_INCLUDE_DIRECTORIES` is meant to unconditionally
      add explicitly specified include directories to compile lines.  In
      commit 5f34bdc7 (cmLocalGenerator: Refactor
      `GetIncludeDirectoriesImplicit` method, 2019-01-25, v3.14.0-rc1~65^2~1)
      a condition was accidentally added to exclude implicit include
      directories.  Drop that condition.
      
      Fixes: #18936
      5c171ca8
    • 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
      does.
      
      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 because the
      compiler's real implicit include directories are not all under the
      sysroot.  Instead assume that all implicit include directories in
      `CMAKE_<LANG>_IMPLICIT_INCLUDE_DIRECTORIES` already have the sysroot
      prefix if needed.  Code that constructs the value must be responsible
      for that because it is the only place that knows.
      9502276f
    • Saleem Abdulrasool's avatar
      Ninja: remove duplicate local variable (NFC) · c489c3e7
      Saleem Abdulrasool authored
      Remove the second reference to the generator target.
      c489c3e7
    • Saleem Abdulrasool's avatar
      Ninja: add properties for Swift partial module and doc · c048cb75
      Saleem Abdulrasool authored
      When building a swift object, we emit a partial swiftmodule and swiftdoc
      that must be merged at the end.  However, in order to do that, we need
      to enumerate the swiftmodules and swiftdocs.  As a result, the path must
      be known to CMake.  Rather than hardcoding the rules into CMake, create
      a source property that we can query.  This will allow us to create a
      final placeholder to emit the merge rule.
      
      Issue: #18800
      c048cb75
    • Kitware Robot's avatar
      CMake Nightly Date Stamp · f1235fd3
      Kitware Robot authored
      f1235fd3
  5. 17 Feb, 2019 1 commit
  6. 16 Feb, 2019 2 commits
  7. 15 Feb, 2019 6 commits
    • Artur Ryt's avatar
      Modernize: C-arrays and loops over them · 706b93fa
      Artur Ryt authored
      It replaces C arrays with deduced std::initializer_lists
      or std::array what makes enables for-loop over them.
      706b93fa
    • Vitaly Stakhovsky's avatar
    • Brad King's avatar
      CMake 3.14.0-rc2 · e6897c72
      Brad King authored
      e6897c72
    • Albert Astals Cid's avatar
      Delete some default constructors and assignment operators · ae5e97a0
      Albert Astals Cid authored
      They are unused, but if someone used them they would lead to
      problems since they would copy the internal raw pointers
      and the destructor would cause double delete
      ae5e97a0
    • 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
      cde2596a
    • Kitware Robot's avatar
      CMake Nightly Date Stamp · a2a903fe
      Kitware Robot authored
      a2a903fe
  8. 14 Feb, 2019 6 commits
  9. 13 Feb, 2019 7 commits
    • Saleem Abdulrasool's avatar
      Add placeholder for Swift's library name · 157570b5
      Saleem Abdulrasool authored
      This allows us to set the proper link name for the Swift library
      (soname).  Because this needs to be passed to the object being compiled,
      we need to create a new placeholder so that it can be sent along to the
      frontend.  Default to the target name unless it is explicitly provided.
      157570b5
    • Zsolt Parragi's avatar
      cmListFileLexer: Add missing include to avoid possible pointer truncation · 76a5ac21
      Zsolt Parragi authored
      The `cmsys/Enconding.h` include had a typo in its surrounding ifdef,
      possibly causing a missing function declaration (`cmsysEncoding_DupToWide`).
      As this is C code, this resulted in the code compiling, but with a truncated
      return value, possibly causing crashes.
      76a5ac21
    • Brad King's avatar
      Update logic for sysroot in detected implicit include directories · 6fc33829
      Brad King authored
      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.  In this case the paths under the sysroot
      should already have the sysroot prefix so we should no longer have to
      add the sysroot prefix.  However, it is also possible for project code
      to add its own paths to `CMAKE_<LANG>_IMPLICIT_INCLUDE_DIRECTORIES`
      without the sysroot prefix and expect the historical addition of the
      sysroot prefix to be preserved.
      
      Try to account for both cases by conditionally adding the sysroot prefix
      on implicit include directories that do not already have it.
      6fc33829
    • Brad King's avatar
      2ad14ef4
    • 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
      557b2d6e
    • Marc Chevrier's avatar
      e429e9af
    • Kitware Robot's avatar
      CMake Nightly Date Stamp · 99ec095d
      Kitware Robot authored
      99ec095d
  10. 12 Feb, 2019 1 commit