1. 14 Aug, 2019 1 commit
    • Gregory Mitrano's avatar
      Clang: Fall back to llvm-rc when rc is unavailable · cea253a3
      Gregory Mitrano authored
      This change modifies how CMAKE_RC_COMPILER is configured to improve
      the out-of-box experience for developers using Clang on Windows.
      The previous behavior was to require the user to explicitly specify
      the resource compiler when CMake was called. The new behavior
      is to automatically attempt to locate the MSVC rc binary and use that
      if it's found. If rc is not available, CMake will now fall back to
      Clang's llvm-rc binary.
      
      With this change in place, trivial C/C++ programs can be generated
      with Ninja and Clang on Windows without running into errors about
      a missing resource compiler.
      
      Fixes: #19318
      cea253a3
  2. 12 Aug, 2019 1 commit
    • Saleem Abdulrasool's avatar
      Swift: honour `IMPLIB_LOCATION` property · 5480f65a
      Saleem Abdulrasool authored
      The rules did not account for the import library location (through
      `<TARGET_IMPLB>`) and instead would always write the import library to
      the default location (next to the shared library/executable).  This
      prevented the use of `CMAKE_RUNTIME_OUTPUT_LOCATION` and
      `CMAKE_ARCHIVE_OUTPUT_LOCATION`.
      5480f65a
  3. 11 Aug, 2019 1 commit
  4. 09 Aug, 2019 3 commits
    • Libor Bukata's avatar
      Solaris: Add support for Clang compiler · 47937219
      Libor Bukata authored
      Inspired-by: Rainer Orth
      Fixes: #19456
      47937219
    • Saleem Abdulrasool's avatar
      Generator: support per-language link library flag · 689be623
      Saleem Abdulrasool authored
      This enables the use of MSVC and Swift on Windows in a single project.
      MSVC uses no flag to indicate linked libraries while Swift uses `-l`.
      Add support for a language specific link library flag which takes
      precedence over the global `CMAKE_LINK_LIBRARY_FLAG` which preserves
      compatibility with earlier releases.
      689be623
    • Brad King's avatar
      Flang: Implement MSVC runtime library abstraction · ea0294c2
      Brad King authored
      In commit fb3370b6 (MSVC: Add abstraction for runtime library
      selection, 2019-04-10, v3.15.0-rc1~229^2) we overlooked updating flags
      for Flang on Windows.  Add them now and update the MSVCRuntimeLibrary
      Fortran test to work with Flang.  Base the flags on those we already
      use for the GNU-like Clang targeting the MSVC ABI.
      
      Fixes: #19583
      ea0294c2
  5. 06 Aug, 2019 5 commits
  6. 05 Aug, 2019 4 commits
  7. 02 Aug, 2019 1 commit
    • Brad King's avatar
      Make CMAKE_LINK_LIBRARY_FILE_FLAG work like CMAKE_LINK_LIBRARY_FLAG · f6d6dbc2
      Brad King authored
      The `CMAKE_LINK_LIBRARY_FILE_FLAG` variable is meant for linkers that
      want library file paths to be preceded by a flag.  This is used only
      for OpenWatcom to add the `library` argument before library file paths.
      Refactor the approach to treat `CMAKE_LINK_LIBRARY_FILE_FLAG` as a
      command-line string fragment to add just before the library file path.
      This has two advantages:
      
      * `CMAKE_LINK_LIBRARY_FILE_FLAG` now works like `CMAKE_LINK_LIBRARY_FLAG`.
      * `CMAKE_LINK_LIBRARY_FILE_FLAG` can now be an attached flag whose value
        is the library file path.
      
      Technically this is a change in behavior, but this setting was created
      for internal use and should be rarely used outside of CMake itself.
      
      Fixes: #19541
      f6d6dbc2
  8. 31 Jul, 2019 1 commit
  9. 30 Jul, 2019 2 commits
  10. 26 Jul, 2019 5 commits
  11. 25 Jul, 2019 1 commit
    • Robert Maynard's avatar
      FindMPI: make sure computed link flags are not de-duplicated · cf04da7e
      Robert Maynard authored
      In commit f7eaa342 (FindMPI: Store imported target link flags as a
      list instead of a string, 2019-06-14, v3.15.0-rc2~2^2) we used
      `separate_arguments` to parse the extracted link flags and add them to
      `INTERFACE_LINK_LIBRARIES`.  That property is not meant for link flags
      and CMake may de-duplicate them.  This is particularly problematic for
      flags like `-Wl,-rpath -Wl,/path1 -Wl,-rpath -Wl,/path2`.
      
      In commit 39c572c9 (FindMPI: Updated to use INTERFACE_LINK_OPTIONS,
      2019-06-24) we moved the parsed flags over to `INTERFACE_LINK_OPTIONS`,
      but that may still perform de-duplication.  Avoid the parsing and
      de-duplication of flags by passing the original string via `SHELL:`
      instead.
      
      Fixes: #19516
      cf04da7e
  12. 24 Jul, 2019 2 commits
    • Robert Maynard's avatar
      d6be117c
    • Brad King's avatar
      Clang: For MSVC ABI do not use modes older than C++14 · d50b31be
      Brad King authored
      Since commit d44c0db0 (clang: setup correct configuration in gnu mode,
      2019-02-20, v3.15.0-rc1~41^2~5) we support the GNU-like Clang that
      targets the MSVC ABI.  However, Clang cannot compile with the MSVC
      standard library unless it runs in a mode aware of C++14 (since MSVC
      itself does not even have a lower mode).  When `CMAKE_CXX_STANDARD` is
      set to 98 or 11, use C++14 anyway.
      
      Since Clang's default mode is aware of C++14, another option is to not
      add any flags for 98 or 11.  However, if a future Clang version ever
      defaults to a higher C++ standard, setting the standard to 98 or 11
      should at least not use a mode higher than 14.
      
      Also revert test updates from commit 4819ff96 (Tests: fix failures
      with gnu mode clang on windows, 2019-03-21, v3.15.0-rc1~41^2~3) that
      were meant to work around the standard selection problem.
      
      Fixes: #19496
      d50b31be
  13. 23 Jul, 2019 3 commits
  14. 22 Jul, 2019 2 commits
  15. 21 Jul, 2019 1 commit
    • Alex Turbov's avatar
      CPack: Introduce CPACK_INSTALL_SCRIPTS variable · 5f966016
      Alex Turbov authored
      The singular name `CPACK_INSTALL_SCRIPT` has existed but was not linked
      from the CPack documentation.  Also, it supported multiple values and
      should have had a plural name.  Add a plural-named alternative now.
      If both `CPACK_INSTALL_SCRIPTS` and `CPACK_INSTALL_SCRIPT` are set then
      ignore the latter with a warning.
      Signed-off-by: Alex Turbov's avatarAlex Turbov <i.zaufi@gmail.com>
      5f966016
  16. 18 Jul, 2019 3 commits
  17. 17 Jul, 2019 4 commits