1. 16 May, 2016 1 commit
    • Kitware Robot's avatar
      Revise C++ coding style using clang-format · d9fd2f54
      Kitware Robot authored
      Run the `Utilities/Scripts/clang-format.bash` script to update
      all our C++ code to a new style defined by `.clang-format`.
      Use `clang-format` version 3.8.
      
      * If you reached this commit for a line in `git blame`, re-run the blame
        operation starting at the parent of this commit to see older history
        for the content.
      
      * See the parent commit for instructions to rebase a change across this
        style transition commit.
      d9fd2f54
  2. 22 May, 2014 1 commit
  3. 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
  4. 16 Apr, 2014 1 commit
  5. 07 Apr, 2014 3 commits
    • Stephen Kelly's avatar
      Features: Add cxx_auto_type. · f97bf437
      Stephen Kelly authored
      Record the availability of this feature for GNU 4.8 on (UNIX AND
      NOT APPLE) only.  In the future, availability can be recorded for
      earlier GNU, for other platforms and for other compilers. Initially
      the affected configurations are as restricted as possible to allow
      for easy testing while extending the features vector in only one
      dimension.
      
      The error message when using the set_property API directly is not
      very good, but follow up commits will provide origin debugging of
      the property and a target_compile_features command which will
      provide a configure-time backtrace when possible.
      f97bf437
    • Stephen Kelly's avatar
      Add some COMPILE_OPTIONS for specifying C++ dialect. · 8238a6cd
      Stephen Kelly authored
      These are compiler-specific, compiler version specific, extension specific
      and standard version specific.
      8238a6cd
    • Stephen Kelly's avatar
      Tests: Require CMake 3.0 for the SystemInformation test. · 892243fc
      Stephen Kelly authored
      Correctly identify AppleClang.
      892243fc
  6. 17 Feb, 2014 1 commit
  7. 11 Dec, 2012 1 commit
    • Brad King's avatar
      OS X: Detect implicit linker framework search paths · cc676c3a
      Brad King authored
      Previously we hard-coded a list of implicit framework directories but
      did not account for CMAKE_OSX_SYSROOT or for changes to the list across
      OS X versions.  Instead we should automatically detect the framework
      directories for the active toolchain.
      
      The parent commit added the "-Wl,-v" option to ask "ld" to print its
      implicit directories.  It displays a block such as:
      
       Framework search paths:
      	/...
      
      Parse this block to extract the list of framework directories.
      
      Detection may fail on toolchains that do not list their framework
      directories, such as older OS X linkers.  Always treat the paths
      
       <sdk>/Library/Frameworks
       <sdk>/System/Library/Frameworks
       <sdk>/Network/Library/Frameworks # Older OS X only
       /System/Library/Frameworks
      
      as implicit.  Note that /System/Library/Frameworks should always be
      considered implicit so that frameworks CMake finds there will not
      override the SDK copies.
      cc676c3a
  8. 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
  9. 12 Jun, 2012 2 commits
    • Stephen Kelly's avatar
      Add platform variable for flags specific to shared libraries · 55d7aa4c
      Stephen Kelly authored
      Store in CMAKE_${lang}_COMPILE_OPTIONS_DLL flags from
      CMAKE_SHARED_LIBRARY_${lang}_FLAGS that are truly exclusive to shared
      libraries.
      55d7aa4c
    • Stephen Kelly's avatar
      Add platform variables for position independent code flags · 31d7a0f2
      Stephen Kelly authored
      Store in new platform variables
      
        CMAKE_${lang}_COMPILE_OPTIONS_PIC
        CMAKE_${lang}_COMPILE_OPTIONS_PIE
      
      flags for position independent code generation.
      
      In almost all cases, this means duplication of the
      CMAKE_SHARED_LIBRARY_${lang}_FLAGS for the _PIC case and using the
      assumed pie equivalent for the _PIE case.  Note that the GNU compiler
      has supported -fPIE since 3.4 and that there is no -fPIC on GNU for
      Windows or Cygwin.
      
      There is a possibility that the _PIE variables are not correct.
      However, as there is no backwards compatibility to be concerned about
      (as the POSITION_INDEPENDENT_CODE property is not used anywhere yet),
      the current state suffices.
      31d7a0f2
  10. 07 Dec, 2011 1 commit
    • Brad King's avatar
      Add framework to detect compiler version with its id (#12408) · fa7141f5
      Brad King authored
      Teach CMakePlatformId.h to construct an "INFO:compiler_version[]" string
      literal from macros COMPILER_VERSION_(MAJOR|MINOR|PATCH|TWEAK) to be
      defined in CMake(C|CXX)CompilerId.(c|cpp) for each compiler.  Provide
      conversion macros DEC() and HEX() to decode decimal or hex digits from
      integer values.  Parse the version out of the compiler id binary along
      with the other INFO values already present.
      
      Store the result in variable CMAKE_<LANG>_COMPILER_VERSION in the format
      "major[.minor[.patch[.tweak]]]".  Save the value persistently in
      CMake(C|CXX)Compiler.cmake in the build tree.  Document the variable for
      internal use since we do not set it everywhere yet.
      
      Report the compiler version on the compiler id result line e.g.
      
        The C compiler identification is GNU 4.5.2
      
      Report CMAKE_(C|CXX)_COMPILER_(ID|VERSION) in SystemInformation test.
      fa7141f5
  11. 28 Jan, 2010 1 commit
  12. 02 Dec, 2009 1 commit
  13. 23 Sep, 2009 1 commit
  14. 27 Jul, 2009 1 commit
    • Brad King's avatar
      ENH: Report CMake logs in SystemInformation test · 0afa7a95
      Brad King authored
      This teaches the SystemInformation test to report the CMake log files
      CMakeOutput.log and CMakeError.log from the CMake build tree and from
      the SystemInformation test build tree.  These logs may help diagnose
      dashboard problems remotely.
      0afa7a95
  15. 23 Jul, 2009 1 commit
    • Brad King's avatar
      ENH: Implicit link info for C, CXX, and Fortran · 07ea19ad
      Brad King authored
      This teaches CMake to detect implicit link information for C, C++, and
      Fortran compilers.  We detect the implicit linker search directories and
      implicit linker options for UNIX-like environments using verbose output
      from compiler front-ends.  We store results in new variables called
      
        CMAKE_<LANG>_IMPLICIT_LINK_LIBRARIES
        CMAKE_<LANG>_IMPLICIT_LINK_DIRECTORIES
      
      The implicit libraries can contain linker flags as well as library
      names.
      07ea19ad
  16. 21 Jul, 2009 1 commit
    • Brad King's avatar
      BUG: Fix SystemInformation dump output · 924dd344
      Brad King authored
      When this test was renamed from DumpInformation to SystemInformation the
      configured header that points the dump executable to the directory
      containing information files was broken.  No information has been dumped
      by this test for 2 years!  This fixes it.
      924dd344
  17. 25 Mar, 2008 1 commit
  18. 11 May, 2007 1 commit
  19. 15 Sep, 2006 1 commit
  20. 08 Feb, 2005 1 commit
  21. 07 Feb, 2005 1 commit
  22. 26 Apr, 2004 1 commit
  23. 08 Aug, 2003 1 commit
  24. 06 Aug, 2003 1 commit
  25. 05 Aug, 2003 1 commit
  26. 03 Aug, 2003 1 commit
  27. 16 Jul, 2003 1 commit
  28. 17 Mar, 2003 1 commit
  29. 06 Mar, 2003 1 commit
  30. 17 Jan, 2003 1 commit
  31. 21 Nov, 2002 1 commit
  32. 18 Nov, 2002 1 commit
  33. 12 Nov, 2002 3 commits