1. 14 Oct, 2016 1 commit
    • Brad King's avatar
      VS: Provide an option to use x64 host tools · d079e71c
      Brad King authored
      Visual Studio provides toolchains that are themselves built for 32-bit
      or 64-bit host architectures.  By default it uses the 32-bit tools, but
      it can be told to prefer the 64-bit tools on 64-bit hosts.  Extend the
      `CMAKE_GENERATOR_TOOLSET` specification to provide a way to request
      use of the 64-bit host tools.
      
      Closes: #15622
      d079e71c
  2. 27 Sep, 2016 1 commit
    • Brad King's avatar
      Simplify CMake per-source license notices · 86578ecc
      Brad King authored
      Per-source copyright/license notice headers that spell out copyright holder
      names and years are hard to maintain and often out-of-date or plain wrong.
      Precise contributor information is already maintained automatically by the
      version control tool.  Ultimately it is the receiver of a file who is
      responsible for determining its licensing status, and per-source notices are
      merely a convenience.  Therefore it is simpler and more accurate for
      each source to have a generic notice of the license name and references to
      more detailed information on copyright holders and full license terms.
      
      Our `Copyright.txt` file now contains a list of Contributors whose names
      appeared source-level copyright notices.  It also references version control
      history for more precise information.  Therefore we no longer need to spell
      out the list of Contributors in each source file notice.
      
      Replace CMake per-source copyright/license notice headers with a short
      description of the license and links to `Copyright.txt` and online information
      available from "https://cmake.org/licensing".  The online URL also handles
      cases of modules being copied out of our source into other projects, so we
      can drop our notices about replacing links with full license text.
      
      Run the `Utilities/Scripts/filter-notices.bash` script to perform the majority
      of the replacements mechanically.  Manually fix up shebang lines and trailing
      newlines in a few files.  Manually update the notices in a few files that the
      script does not handle.
      86578ecc
  3. 23 Sep, 2016 1 commit
  4. 27 Jul, 2016 1 commit
    • Daniel Pfeifer's avatar
      Use string(APPEND) in Modules · 5d0d980d
      Daniel Pfeifer authored
      Automate with:
      
      find Modules -type f -print0 | xargs -0 perl -i -0pe \
      's/set\(([a-zA-Z0-9_]+)(\s+)"\$\{\1\}([^"])/string(APPEND \1\2"\3/g'
      5d0d980d
  5. 02 Jun, 2016 1 commit
  6. 03 May, 2016 1 commit
  7. 10 Mar, 2016 1 commit
  8. 09 Mar, 2016 1 commit
    • Brad King's avatar
      Drop Visual Studio 6 generator · b42866a3
      Brad King authored
      This generator has been deprecated since CMake 3.3.  Remove it.
      Update documentation, modules, and tests to drop content specific
      to this generator.
      b42866a3
  9. 21 Dec, 2015 1 commit
    • Brad King's avatar
      CMakeDetermineCompilerId: Fix VS Itanium platform name (#15889) · d9bf5206
      Brad King authored
      VS expects the platform to be just `Itanium`, so drop the incorrect
      special case mapping it to `ia64`.  This platform name has been wrong
      since the logic was added by commit v2.8.10~148^2~8 (VS: Detect the
      compiler id and tool location, 2012-08-16).
      d9bf5206
  10. 07 Dec, 2015 1 commit
  11. 23 Nov, 2015 1 commit
    • Brad King's avatar
      Revert "Disable shared library support when compiler links statically" (#15855) · 9682de56
      Brad King authored
      In commit v3.4.0-rc1~18^2 (Disable shared library support when compiler
      links statically, 2015-09-30) we tried to detect when the compiler is
      not capable of linking shared libraries (possibly due to flags in use).
      However, the approach is not robust against flags like `-nostdlib`.
      Revert it for now pending another solution to the original problem.
      9682de56
  12. 02 Oct, 2015 1 commit
    • Gilles Khouzam's avatar
      VS: Add support for selecting the Windows 10 SDK (#15670) · 3f077996
      Gilles Khouzam authored
      Teach the VS 2015 generator to produce a WindowsTargetPlatformVersion
      value.  Use the CMAKE_SYSTEM_VERSION to specify the version and if not
      set choose a default based on available SDKs.  Activate this behavior
      when targeting Windows 10.
      
      Co-Author: Brad King <brad.king@kitware.com>
      3f077996
  13. 30 Sep, 2015 1 commit
    • Brad King's avatar
      Disable shared library support when compiler links statically · 8b4873a1
      Brad King authored
      When a user or a compiler wrapper adds '-static' to the compiler flags
      then it will always link static binaries.  Detect this from the compiler
      id binary and disable TARGET_SUPPORTS_SHARED_LIBS.  This will prevent
      projects from accidentally adding shared libraries when the toolchain
      does not support them.  It also helps CMake avoid linking with flags
      that require shared libraries to be supported.
      8b4873a1
  14. 18 Sep, 2015 3 commits
  15. 30 Jun, 2015 1 commit
  16. 25 Jun, 2015 1 commit
    • Brad King's avatar
      CMakeDetermineCompilerId: Simplify src reference in IDE projects · 8306108f
      Brad King authored
      When constructing the "id_src" value for substitution into VS or Xcode
      compiler id projects, the input "src" variable already contains the file
      name with no path so we do not need get_filename_component.  We know
      this because CMAKE_DETERMINE_COMPILER_ID_WRITE already references
      "${src}" with this assumption.
      8306108f
  17. 18 Jun, 2015 3 commits
    • Brad King's avatar
      CMakeDetermineCompilerId: Try matching compiler output to detect id · 0d204c1c
      Brad King authored
      Some compilers can only be distinguished by their compilation output
      rather than preprocessor symbols or special flags.  Add infrastructure
      to determine the compiler id by matching output.
      0d204c1c
    • Brad King's avatar
      CMakeDetermineCompilerId: Refactor id build/check loop logic · 5f0dad75
      Brad King authored
      Callers of CMAKE_DETERMINE_COMPILER_ID initialize the
      CMAKE_${lang}_COMPILER_ID to unset so we can check it at the end of each
      loop iteration instead of the beginning.  This approach allows us to
      break out of the loop as soon as we succeed.  It will also allow checks
      to be added in more places within the loop later.
      5f0dad75
    • Brad King's avatar
      CMakeDetermineCompilerId: Optionally try some flags before no flags · c65a060e
      Brad King authored
      Teach CMAKE_DETERMINE_COMPILER_ID to optionally try detecting the
      compiler id using some given flags before trying to detect it with no
      special flags.  This will be useful for Fortran detection to distinguish
      some compilers that use the preprocessors of others but have no macro of
      their own by getting verbose output.
      c65a060e
  18. 24 Feb, 2015 1 commit
  19. 19 Feb, 2015 1 commit
    • Brad King's avatar
      Fortran: Add infrastructure to detect compiler version (#15372) · e6ebc814
      Brad King authored
      Fortran does not offer syntax to compose a string literal at
      preprocessing time from numeric compuations.  Instead encode each digit
      of each component as a separate INFO string and compose them in CMake
      code after extraction.  Support MAJOR, MINOR, PATCH, and TWEAK
      components with up to 8 digits each.
      e6ebc814
  20. 14 Jan, 2015 1 commit
    • Brad King's avatar
      QNX: Fix detection of QCC compiler id (#15349) · 9c9bc712
      Brad King authored
      In commit v3.1.0-rc1~113^2 (Use a more reliable regex for extracting
      binary INFO strings, 2014-09-03) the matching of INFO: strings was made
      more strict and no longer matches just "INFO:qnxnto".  Use
      "INFO:qnxnto[]" instead to conform to the new pattern.
      9c9bc712
  21. 11 Jan, 2015 1 commit
    • Brad King's avatar
      Xcode: Do not require code signing for compiler id (#15214) · 7b7209f6
      Brad King authored
      The approach in commit v3.1.0-rc1~1^2 (Xcode: Fix compiler id detection
      when code signing is required, 2014-10-22) still requires a code signing
      key when targeting a real device.  Instead set CODE_SIGNING_REQUIRED to
      "NO" to tell Xcode not to sign at all.  Drop the corresponding setting
      of the code signing identity.
      7b7209f6
  22. 07 Nov, 2014 1 commit
    • Brad King's avatar
      Xcode: Fix compiler path detection for iOS tools on Xcode <= 5.0 (#15237) · 7f89552a
      Brad King authored
      Since commit v3.1.0-rc1~1^2~1 (Xcode: Fix compiler id detection for iOS
      tools, 2014-10-22) our compiler id detection project sets the product
      type to 'com.apple.product-type.bundle.unit-test'.  This causes the Ld
      command line on which we match the path to the compiler to have a
      'CompilerIdC.xctest/' component.  The commit updated our regex to match
      this, but placed it before the extra './' component that Xcode 5.0 and
      below produce.  Xcode <= 5.0 prints '/./CompilerIdC.xctest/', so switch
      the order of the two components in the regex to match it.
      7f89552a
  23. 22 Oct, 2014 2 commits
    • Brad King's avatar
      Xcode: Fix compiler id detection when code signing is required · b91020f6
      Brad King authored
      The iOS product type 'com.apple.package-type.bundle.unit-test' requires
      code signing on Xcode 6.  Other iOS target types do too.  Until CMake
      learns to add the CODE_SIGN_IDENTITY build attribute itself, toolchain
      files can set CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY to tell the Xcode
      generator to add the attribute.  Teach CMakeDetermineCompilerId to
      recognize this variable and add the CODE_SIGN_IDENTITY build attribute
      to the compiler id project.
      b91020f6
    • Brad King's avatar
      Xcode: Fix compiler id detection for iOS tools (#15214) · c48f6e12
      Brad King authored
      Since commit 0cce556b (Xcode: Use sysroot and deployment target to
      identify compiler, 2014-04-29) our compiler id detection project uses
      the target platform SDK in case Xcode selects a different compiler based
      on it.  Now the compiler id project actually compiles with the target
      compiler and SDK when cross-compiling.
      
      The iOS tools do not support the 'com.apple.product-type.tool' product
      type we use in our compiler id detection project.  When targeting
      iPhone, use product type 'com.apple.product-type.bundle.unit-test'
      instead.
      c48f6e12
  24. 20 Oct, 2014 1 commit
    • Ben Boeckel's avatar
      Avoid if() quoted auto-dereference · 29c3edb8
      Ben Boeckel authored
      When testing CMAKE_<LANG>_COMPILER_ID values, do not explicitly
      dereference or quote the variable. We want if() to auto-dereference the
      variable and not its value. Also replace MATCHES with STREQUAL where
      equivalent.
      29c3edb8
  25. 29 Sep, 2014 1 commit
    • Brad King's avatar
      VS: Detect compiler id of Nsight Tegra-Android toolchains · d09b60f5
      Brad King authored
      Teach CMakeDetermineCompilerId to recognize the Tegra-Android platform
      and generate a test project for Nsight Tegra tools.  Locate the full
      path to CMAKE_<LANG>_COMPILER by computing it within the test project
      build environment.
      
      Also teach CMakeFindBinUtils that this variant of the Visual Studio
      generator uses UNIX-like instead of MS-like archiving and linking tools.
      d09b60f5
  26. 03 Sep, 2014 1 commit
  27. 12 Aug, 2014 1 commit
  28. 31 Jul, 2014 1 commit
  29. 07 May, 2014 4 commits
  30. 29 Apr, 2014 1 commit
    • Brad King's avatar
      Xcode: Use sysroot and deployment target to identify compiler · 0cce556b
      Brad King authored
      Use CMAKE_OSX_SYSROOT and CMAKE_OSX_DEPLOYMENT_TARGET to set the Xcode
      SDKROOT and MACOSX_DEPLOYMENT_TARGET build settings.  This is necessary
      because some versions of Xcode select a different compiler based on
      these settings.  We need to make sure the compiler identified during
      language initialization matches what will be used for the actual build.
      0cce556b
  31. 14 Apr, 2014 2 commits