1. 06 Nov, 2012 1 commit
  2. 28 Sep, 2012 3 commits
  3. 21 Sep, 2012 1 commit
  4. 19 Sep, 2012 1 commit
  5. 18 Sep, 2012 1 commit
    • Stephen Kelly's avatar
      cmGeneratorExpression: Re-write for multi-stage evaluation · f1eacf0e
      Stephen Kelly authored
      The expressions may be parsed and then cached and evaluated multiple
      times.  They are evaluated lazily so that literals such as ',' can be
      treated as universal parameter separators, and can be processed from
      results without appearing literally, and without interfering with the
      parsing/evaluation of the entire expression.
      f1eacf0e
  6. 11 Sep, 2012 3 commits
  7. 30 Aug, 2012 1 commit
  8. 28 Aug, 2012 1 commit
  9. 24 Aug, 2012 1 commit
    • 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. 22 Aug, 2012 2 commits
  11. 21 Aug, 2012 2 commits
  12. 20 Aug, 2012 2 commits
    • Stephen Kelly's avatar
      Don't duplicate -D defines sent to the compiler. · 3dae652b
      Stephen Kelly authored
      There is no need to do so. Be consistent with include directories and
      ensure uniqueness.
      
      This requires changing the API of the cmLocalGenerator::AppendDefines
      method, and changing the generators to match.
      
      The test unfortunately can't test for uniqueness, but it at least verifies
      that nothing gets lost.
      3dae652b
    • Brad King's avatar
      Tests/ObjectLibrary: Do not enable CXX in subdirectories · 94c08b36
      Brad King authored
      In commit b237dbd8 (Xcode: Fix object library references in
      multi-project trees, 2012-08-03) we accidentally enabled CXX in the
      subdiretories of this test by invoking project() with only one argument.
      The top-level directory of the test enables only C, so do this in the
      subdirectories too.
      94c08b36
  13. 16 Aug, 2012 2 commits
  14. 15 Aug, 2012 7 commits
  15. 14 Aug, 2012 3 commits
  16. 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
  17. 03 Aug, 2012 1 commit
    • Brad King's avatar
      Xcode: Fix object library references in multi-project trees (#13452) · b237dbd8
      Brad King authored
      In cmGlobalXCodeGenerator::Generate we generate a .xcodeproj for each
      directory in the tree containing a project() command.  First we
      iteratively use SetGenerationRoot to add "ALL_BUILD" and other targets
      to each project.  This leaves "CurrentProject" set to the last project
      when we invoke cmGlobalGenerator::Generate, which is not the same as the
      top-level project if any subdirectories invoke the project() command.
      
      When cmGlobalGenerator::Generate reaches CreateGeneratorTargets it
      constructs cmGeneratorTarget and calls ComputeTargetObjects exactly once
      per target.  In this context the value of CurrentProject is undefined so
      we cannot pass it to GetObjectsNormalDirectory.  Use "$(PROJECT_NAME)"
      instead so it will adapt automatically to each project.
      
      Also teach Tests/ObjectLibrary to cover this case.
      b237dbd8
  18. 20 Jul, 2012 2 commits
    • Brad King's avatar
      find_library: Fix mixed lib->lib64 (non-)conversion cases (#13419) · 733726ed
      Brad King authored
      When a search path contains multiple "lib/" instances we previously
      converted all or none.  This fails for cases where only some of the
      multiple instances must be converted.  Teach AddArchitecturePaths to
      generate all combinations that exist.  Uncomment these cases in the
      CMakeOnly.find_library test now that they work.
      733726ed
    • Brad King's avatar
      find_library: Add test covering lib->lib64 cases · 1fe4b82a
      Brad King authored
      Add a "CMakeOnly.find_library" test covering various cases involving
      lib->lib64 (non-)conversion.  Comment out cases involving mixed path
      components "lib" and "lib64", such as lib/A/lib64 and lib64/A/lib, as
      these are known to be broken currently.
      1fe4b82a
  19. 18 Jul, 2012 3 commits