1. 02 Apr, 2019 1 commit
  2. 23 Mar, 2019 1 commit
  3. 06 Mar, 2019 1 commit
    • Luca Cappa's avatar
      VS: Encode newlines in XML attributes · 0bf44180
      Luca Cappa authored
      Encode `\n` as `
` to avoid generating a literal newline inside an
      XML attribute.  This is more readable and also fixes custom commands in
      `.csproj` files with VS 2019 RC.
      
      Fixes: #19001
      0bf44180
  4. 20 Feb, 2019 1 commit
  5. 18 Feb, 2019 1 commit
  6. 11 Feb, 2019 1 commit
    • Saleem Abdulrasool's avatar
      Create and use `cmGeneratorTarget::Names` · fc8b90af
      Saleem Abdulrasool authored
      Rather than taking a number of out parameters for the various names,
      create a structure that is reused for both `GetLibraryNames` and
      `GetExecutableNames`.  Replace uses according to the new interface.
      fc8b90af
  7. 05 Feb, 2019 1 commit
  8. 01 Feb, 2019 2 commits
    • Wil Stark's avatar
      VS: Fix deployment for WinCE projects · f5d72be5
      Wil Stark authored
      Fixes: #18868
      f5d72be5
    • Gilles Khouzam's avatar
      VS: Fix WinRT component references · cff026db
      Gilles Khouzam authored
      WinRT components need to be referenced in a similar way that managed
      code libraries are referenced.  Validate that the library reference is a
      WinRT component and reference it through the project.
      
      Add test coverage for `VS_WINRT_COMPONENT`.  While at it, fix the IOT
      reference failing on Win10 SDK 17763 which doesn't include it anymore.
      
      Fixes: #18846
      cff026db
  9. 27 Jan, 2019 1 commit
  10. 16 Jan, 2019 3 commits
  11. 14 Jan, 2019 1 commit
    • Brad King's avatar
      Restore support for a custom source group for CMakeLists.txt · 77303314
      Brad King authored
      Since commit v3.11.0-rc1~467^2 (VS,Xcode: Add CMakeLists.txt sources
      without mutating targets, 2017-10-18) we do not add `CMakeLists.txt` to
      target sources but instead generate references to them directly.  This
      accidentally dropped generation of the `.vcxproj.filters` entry for a
      source group in which `CMakeLists.txt` is the only member.
      
      Fixes: #18795
      77303314
  12. 11 Jan, 2019 1 commit
  13. 10 Jan, 2019 1 commit
  14. 11 Dec, 2018 1 commit
  15. 07 Dec, 2018 1 commit
  16. 05 Dec, 2018 1 commit
  17. 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
  18. 23 Oct, 2018 1 commit
  19. 16 Oct, 2018 1 commit
  20. 14 Oct, 2018 1 commit
  21. 10 Oct, 2018 2 commits
    • Brad King's avatar
      VS: Add workaround for CUDA compiler PDB location with space · faf3d7d2
      Brad King authored
      CUDA Toolkit Visual Studio Integration for version 9.2 and above does
      honor the `ClCompile.ProgramDataBaseFileName` field when telling `nvcc`
      how to invoke `cl`.  Unfortunately it does not quote paths with spaces
      correctly:
      
          -Xcompiler "... /Fd"C:\path\with space\foo.pdb" ..."
      
      Work around this by converting the PDB location to a relative path.
      Likely we could always do this, but for now make a minimal change
      just for CUDA support.
      
      Fixes: #18440
      faf3d7d2
    • Brad King's avatar
      VS: Drop workaround for CUDA compiler PDB location on CUDA 9.2+ · 592064e0
      Brad King authored
      The workaround added by commit v3.12.0-rc1~227^2 (VS: Add workaround for
      CUDA compiler PDB location, 2018-04-13) is not necessary on CUDA 9.2+
      because the CUDA Toolkit Visual Studio Integration has fixed the
      original bug and forwards the `ProgramDataBaseFileName` to the host
      compiler itself.  Make the workaround conditional on the CUDA version.
      
      Issue: #18440
      592064e0
  22. 08 Oct, 2018 1 commit
  23. 02 Oct, 2018 1 commit
    • Brad King's avatar
      VS: Fix CSharp flag selection when linking to a static C++ library · 8b21aa0a
      Brad King authored
      When a CSharp target links to a static C++ library, CMake will compute
      the link language as C++ instead of CSharp.  That may be incorrect and
      needs further investigation, but it does not affect how VS drives C#
      linking.  However, it does break our flag language selection logic
      and causes C++ flags to be used for CSharp.  In particular, this
      drops the `-platform:x86` flag on 32-bit builds.
      
      Fix this by always selecting the CSharp flags when generating a
      `.csproj` project type.
      
      Issue: #18239
      8b21aa0a
  24. 18 Sep, 2018 1 commit
  25. 17 Sep, 2018 2 commits
  26. 07 Sep, 2018 1 commit
    • Brad King's avatar
      genex: Simplify cmGeneratorExpressionInterpreter · 1b57f495
      Brad King authored
      All callers were constructing with a non-empty target name using the
      target whose pointer was passed anyway.  Drop this argument.  Simplify
      logic accordingly.  Re-order constructor arguments to match the
      cmCompiledGeneratorExpression::Evaluate arguments.
      
      Also remove unnecessary getters.
      1b57f495
  27. 05 Sep, 2018 3 commits
    • Vitaly Stakhovsky's avatar
      cmMakefile: Make GetRequiredDefinition return std::string · 4d89830d
      Vitaly Stakhovsky authored
      In all cases the return value is converted to std::string anyway.
      
      Also remove unnecessary `c_str()` calls in arguments to
      `GetRequiredDefinition`.
      4d89830d
    • Vitaly Stakhovsky's avatar
      Remove unnecessary c_str() calls · 6f16be6a
      Vitaly Stakhovsky authored
      Use the new IsOn(),IsOff() overloads.
      6f16be6a
    • Brad King's avatar
      VS: Restore CMakeLists.txt references in each target · 0b82e68f
      Brad King authored
      The custom command de-duplication added by commit v3.12.0-rc1~171^2 (VS:
      Generate a custom command only in the least dependent target,
      2018-03-23) accidentally also applied to the `CMakeLists.txt` file
      reference we put in each target.  This file reference comes with a
      custom command that has no dependencies and that is safe to run
      repeatedly across multiple targets (via internal stamp checking).
      Therefore it should be excluded from the de-duplication so that
      `CMakeLists.txt` references appear in all targets for human reference.
      
      Fixes: #18310
      0b82e68f
  28. 30 Aug, 2018 1 commit
  29. 28 Aug, 2018 1 commit
  30. 27 Aug, 2018 2 commits
  31. 23 Aug, 2018 1 commit
    • Brad King's avatar
      VS: Avoid VS 2017 toolset default use of /FC flag · 1bd76817
      Brad King authored
      VS 2017 toolsets now use this flag by default if `UseFullPaths` is
      not explicitly set to `false` in the .vcxproj file.  Since there is
      no negative form of this flag there is no way for projects to turn
      it off through our flag map.  Also, the Makefile and Ninja generators
      do not add this flag unless it is explicitly specified by the project.
      
      Teach our generator to set `UseFullPaths` to `false` in VS 2017
      unless the project or use has explicitly specified `/FC`.
      
      Fixes: #18261
      1bd76817