1. 28 Sep, 2019 2 commits
    • Steve Wilson's avatar
      Languages: Add support for Objective-C++ · 9e66397c
      Steve Wilson authored
      Add entries in Modules and Modules/Platform to support
      Objective-C++ compiler determination and identification.
      Add Modules to check Objective-C++ compiler flags, source
      compilations, program checks, etc...
      
      Use OBJCXX as the designator of the language, eg:
      
      project(foo OBJCXX)
      
      Add various tests for Objective-C++ language features.  Add
      tests to preserve C++ handling of .M and .mm files when
      Objective-C++ is not a configured language.
      Co-authored-by: Cristian Adam's avatarCristian Adam <cristian.adam@gmail.com>
      9e66397c
    • Steve Wilson's avatar
      Languages: Add support for Objective-C · 80f120a8
      Steve Wilson authored
      Add entries in Modules and Modules/Platform to support
      Objective-C compiler determination and identification.
      Add Modules to check Objective-C compiler flags, source
      compilations, program checks, etc...
      
      Use OBJC as the designator of the language, eg:
      
      project(foo OBJC)
      
      Add various tests for Objective-C language features.  Add
      tests to preserve C++ handling of .m and .mm files when
      OBJC is not a configured language.
      Co-Authored-By: Cristian Adam's avatarCristian Adam <cristian.adam@gmail.com>
      80f120a8
  2. 04 Feb, 2019 1 commit
    • Gregor Jasny's avatar
      Apple: Introduce separate system name for iOS, tvOS, and watchOS · 11da882a
      Gregor Jasny authored
      - Remove code signing requirements for non-macOS
      - Do not set deployment target for non-macOS
      - Build static library for compiler feature detection for non-macOS
      - Use framework to run CompilerId tests for watchOS
      - Port tests to new SDK handling
      - Add new Apple cross-compiling section to toolchain documentation
      
      Closes: #17870
      11da882a
  3. 16 Jan, 2019 1 commit
    • Fred Baksik's avatar
      GHS: Add Compiler ID detection · 72e0c115
      Fred Baksik authored
      -- Detect GHS compiler and version
         Detect ARCHITECTURE_ID for PPC / ARM / 86 targets
         Detect PLATFORM_ID for Integrity and Integrity178 platforms
         Using defines specified in the documents for the compilers: 201416 PPC / 201754 ARM / 201714 86
      -- Fallback C/CXX compiler ID to GHS if not otherwise detected and using GHS MULTI generator
         Works around issue with some GHS compilers not setting __ghs__ compiler define
      -- Tweak Compiler ID checking so major id of 002017 is not replaced with 217
      -- Prefer try_compile() library targets when testing for working GHS compilers
      -- Avoid CMake errors if reading past end of file for checking if file is PE executable
      72e0c115
  4. 19 Sep, 2017 1 commit
  5. 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
  6. 14 May, 2014 1 commit
    • Stephen Kelly's avatar
      Features: Extend concept to C language. · e0890d03
      Stephen Kelly authored
      Add properties and variables corresponding to CXX equivalents.
      
      Add features for c_function_prototypes (C90), c_restrict (C99),
      c_variadic_macros (C99) and c_static_assert (C11). This feature
      set can be extended later.
      
      Add a <PREFIX>_RESTRICT symbol define to WriteCompilerDetectionHeader
      to conditionally represent the c_restrict feature.
      e0890d03
  7. 13 Nov, 2013 1 commit
  8. 30 Aug, 2012 1 commit
    • Brad King's avatar
      VS: Simplify MSVC version reporting · 485a940e
      Brad King authored
      Teach Windows-cl.cmake to use CMAKE_(C|CXX)_COMPILER_VERSION to set the
      "MSVC##" and MSVC_VERSION variables.  It no longer needs the IDE generator
      to dictate the version or to detect the version by running the
      command-line tool for NMake and Ninja generators.  Drop configuration of
      CMakeCPlatform.cmake and CMakeCXXPlatform.cmake from Windows-cl.cmake.in
      because all the results it saved are now cheap to compute every time.
      485a940e
  9. 24 Aug, 2012 2 commits
    • Brad King's avatar
      Move CMAKE_<LANG>_COMPILER_WORKS to compiler information files · 3df81b49
      Brad King authored
      Since the parent commit this test result is specific to the version of
      CMake.  Store it in the version-specific compiler information files
      instead of CMakeCache.txt so testing can be re-done to meet the
      requirements of the current version of CMake even if another version of
      CMake was already used to configure the build tree.
      3df81b49
    • Brad King's avatar
      Make platform information files specific to the CMake version · 7195aca5
      Brad King authored
      At the top of a build tree we configure inside the CMakeFiles directory
      files such as "CMakeSystem.cmake" and "CMake<lang>Compiler.cmake" to
      save information detected about the system and compilers in use.  The
      method of detection and the exact results store varies across CMake
      versions as things improve.  This leads to problems when loading files
      configured by a different version of CMake.  Previously we ignored such
      existing files only if the major.minor part of the CMake version
      component changed, and depended on the CMakeCache.txt to tell us the
      last version of CMake that wrote the files.  This led to problems if the
      user deletes the CMakeCache.txt or we add required information to the
      files in a patch-level release of CMake (still a "feature point" release
      by modern CMake versioning convention).
      
      Ensure that we always have version-consistent platform information files
      by storing them in a subdirectory named with the CMake version.  Every
      version of CMake will do its own system and compiler identification
      checks even when a build tree has already been configured by another
      version of CMake.  Stored results will not clobber those from other
      versions of CMake which may be run again on the same tree in the future.
      Loaded results will match what the system and language modules expect.
      
      Rename the undocumented variable CMAKE_PLATFORM_ROOT_BIN to
      CMAKE_PLATFORM_INFO_DIR to clarify its purpose.  The new variable points
      at the version-specific directory while the old variable did not.
      7195aca5
  10. 13 Aug, 2012 3 commits
    • Kitware Robot's avatar
      Remove CMake-language block-end command arguments · 9db31162
      Kitware Robot authored
      Ancient versions of CMake required else(), endif(), and similar block
      termination commands to have arguments matching the command starting the
      block.  This is no longer the preferred style.
      
      Run the following shell code:
      
      for c in else endif endforeach endfunction endmacro endwhile; do
          echo 's/\b'"$c"'\(\s*\)(.\+)/'"$c"'\1()/'
      done >convert.sed &&
      git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' |
      egrep -z -v '^(Utilities/cm|Source/kwsys/)' |
      egrep -z -v 'Tests/CMakeTests/While-Endwhile-' |
      xargs -0 sed -i -f convert.sed &&
      rm convert.sed
      9db31162
    • Kitware Robot's avatar
      Convert CMake-language commands to lower case · 77543bde
      Kitware Robot authored
      Ancient CMake versions required upper-case commands.  Later command
      names became case-insensitive.  Now the preferred style is lower-case.
      
      Run the following shell code:
      
      cmake --help-command-list |
      grep -v "cmake version" |
      while read c; do
          echo 's/\b'"$(echo $c | tr '[:lower:]' '[:upper:]')"'\(\s*\)(/'"$c"'\1(/g'
      done >convert.sed &&
      git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' |
      egrep -z -v '^(Utilities/cm|Source/kwsys/)' |
      xargs -0 sed -i -f convert.sed &&
      rm convert.sed
      77543bde
    • Kitware Robot's avatar
      Remove trailing whitespace from most CMake and C/C++ code · 7bbaa428
      Kitware Robot authored
      Our Git commit hooks disallow modification or addition of lines with
      trailing whitespace.  Wipe out all remnants of trailing whitespace
      everywhere except third-party code.
      
      Run the following shell code:
      
      git ls-files -z -- \
       bootstrap doxygen.config '*.readme' \
       '*.c' '*.cmake' '*.cpp' '*.cxx' \
       '*.el' '*.f' '*.f90' '*.h' '*.in' '*.in.l' '*.java' \
       '*.mm' '*.pike' '*.py' '*.txt' '*.vim' |
      egrep -z -v '^(Utilities/cm|Source/(kwsys|CursesDialog/form)/)' |
      egrep -z -v '^(Modules/CPack\..*\.in)' |
      xargs -0 sed -i 's/ \+$//'
      7bbaa428
  11. 15 Dec, 2011 1 commit
  12. 05 Dec, 2011 1 commit
    • Brad King's avatar
      Load platform files that need to know the ABI when possible · a603250a
      Brad King authored
      Load platform files named in CMAKE_<lang>_ABI_FILES for each language
      once the ABI sizeof(void*) is known.  During the first configuration
      this is after the test for working compiler and ABI detection checks.
      During later configurations the ABI information is immediately available
      because it has been saved in CMake<lang>Compiler.cmake.
      a603250a
  13. 09 Aug, 2010 1 commit
  14. 06 May, 2010 1 commit
    • Brad King's avatar
      Load compiler information after configuring it · a443308c
      Brad King authored
      After configuring CMakeFiles/CMake<lang>Compiler.cmake in the build tree
      the second time (to store ABI information), include it immediately.
      This allows any logic and settings in the compiler information files to
      be used without duplicating it in CMakeDetermineCompilerABI.cmake.
      
      The change in commit "Use Fortran ABI detection results conservatively"
      (2010-05-05) needs this to use the same logic to set CMAKE_SIZEOF_VOID_P
      during first and later runs of CMake.
      a443308c
  15. 16 Feb, 2010 1 commit
  16. 12 Feb, 2010 1 commit
    • David Cole's avatar
      Make a common function that prints the status during the checks for working... · f48660fa
      David Cole authored
      Make a common function that prints the status during the checks for working compilers. Call it from all of the CMakeTesten_US.UTF-8Compiler.cmake files. In the message, print the full path to the tested compiler only for the Makefile generators. For Xcode and Visual Studio generators, print the generator instead so that users are not misled with the full path to a compiler that the generator may not even use. Xcode and Visual Studio have their own mechanisms for choosing the compiler to use during try_compile and build...
      f48660fa
  17. 01 Oct, 2009 1 commit
  18. 28 Sep, 2009 1 commit
    • Brad King's avatar
      Convert CMake non-find modules to BSD License · 3a666595
      Brad King authored
      This adds copyright/license notification blocks CMake's non-find
      modules.  Most of the modules had no notices at all.  Some had notices
      referring to the BSD license already.  This commit normalizes existing
      notices and adds missing notices.
      3a666595
  19. 22 Jun, 2009 1 commit
  20. 18 Apr, 2009 1 commit
  21. 14 Feb, 2008 1 commit
  22. 04 Feb, 2008 1 commit
  23. 03 Feb, 2008 1 commit
  24. 21 Jan, 2008 1 commit
  25. 17 May, 2007 1 commit
    • Alexander Neundorf's avatar
      · 61d3444f
      Alexander Neundorf authored
      ENH: merge CMake-CrossCompileBasic to HEAD
      -add a RESULT_VARIABLE to INCLUDE()
      -add CMAKE_TOOLCHAIN_FILE for specifiying your (potentially crosscompiling) toolchain
      -have TRY_RUN() complain if you try to use it in crosscompiling mode (which were compiled but cannot run on this system)
      -use CMAKE_EXECUTABLE_SUFFIX in TRY_RUN(), probably TRY_RUN won't be able to
      run the executables if they have a different suffix because they are
      probably crosscompiled, but nevertheless it should be able to find them
      -make several cmake variables presettable by the user: CMAKE_C/CXX_COMPILER, CMAKE_C/CXX_OUTPUT_EXTENSION, CMAKE_SYSTEM_NAME, CMAKE_SYSTEM_INFO_FILE
      -support prefix for GNU toolchains (arm-elf-gcc, arm-elf-ar, arm-elf-strip etc.)
      -move ranlib on OSX from the file command to a command in executed in cmake_install.cmake
      -add support for stripping during install in cmake_install.cmake
      -split out cl.cmake from Windows-cl.cmake, first (very incomplete) step to support MS crosscompiling tools
      -remove stdio.h from the simple C program which checks if the compiler works, since this may not exist for some embedded platforms
      -create a new CMakeFindBinUtils.cmake which collects the search fro ar, ranlib, strip, ld, link, install_name_tool and other tools like these
      -add support for CMAKE_FIND_ROOT_PATH for all FIND_XXX commands, which is a
      list of directories which will be prepended to all search directories, right
      now as a cmake variable, turning it into a global cmake property may need
      some more work
      -remove cmTestTestHandler::TryExecutable(), it's unused
      -split cmFileCommand::HandleInstall() into slightly smaller functions
      
      Alex
      61d3444f
  26. 26 Jul, 2006 2 commits
  27. 14 Jun, 2006 1 commit
  28. 12 Jan, 2006 1 commit
  29. 14 Dec, 2005 1 commit
  30. 14 Nov, 2005 1 commit
  31. 19 Aug, 2005 1 commit
  32. 29 Jul, 2005 1 commit
  33. 05 Apr, 2005 1 commit
  34. 20 Jan, 2005 1 commit
  35. 21 Jan, 2004 1 commit