1. 20 Feb, 2013 1 commit
  2. 18 Feb, 2013 1 commit
  3. 07 Feb, 2013 4 commits
    • Brad King's avatar
      Tests: Add generator toolset support · 56ca8d4e
      Brad King authored
      Propagate CMAKE_GENERATOR_TOOLSET through the test hierarchy so that all
      tests can build with the selected generator toolset, if any.
      56ca8d4e
    • Brad King's avatar
      Xcode: Implement generator toolset selection (#9831, #13802) · f980a804
      Brad King authored
      Implement generator toolset selection (cmake -T) for Xcode > 2.0 by
      adding the GCC_VERSION build setting to project files.
      f980a804
    • Brad King's avatar
      VS: Implement generator toolset selection (#10722, #13774) · 650c6471
      Brad King authored
      Implement generator toolset selection (cmake -T) for VS >= 10 by setting
      the PlatformToolset.  Extend the RunCMake.GeneratorToolset test case to
      verify CMAKE_GENERATOR_TOOLSET when the generator supports -T.
      
      Since commit 485a940e (VS: Simplify MSVC version reporting, 2012-08-23)
      all MSVC version information is detected during the compiler id step
      from the actual compiler invoked by generated build systems rather than
      hard-coded in VS generators.  Therefore we can set the PlatformToolset
      in VS >= 10 project files and support toolsets from other VS versions.
      650c6471
    • Brad King's avatar
      CMake: Add -T option to choose a generator toolset · 4fd53429
      Brad King authored
      Reject the option by default.  It will be implemented on a per-generator
      basis.  Pass the setting into try_compile project generation.  Add cache
      entry CMAKE_GENERATOR_TOOLSET and associated variable documentation to
      hold the value persistently.
      
      Add a RunCMake.GeneratorToolset test to cover basic "-T" option cases.
      Verify that CMAKE_GENERATOR_TOOLSET is empty without -T, that -T is
      rejected when the generator doesn't support it, and that two -T options
      are always rejected.
      4fd53429
  4. 31 Jan, 2013 2 commits
  5. 30 Jan, 2013 4 commits
  6. 24 Jan, 2013 1 commit
  7. 21 Jan, 2013 3 commits
  8. 20 Jan, 2013 1 commit
  9. 17 Jan, 2013 1 commit
    • Stephen Kelly's avatar
      Add the $<TARGET_POLICY> expression · 6c8d8afe
      Stephen Kelly authored
      This new expression allows checking how a policy was set when a target
      was created.  That information is only recorded for a subset of policies,
      so a whitelist is used.
      6c8d8afe
  10. 10 Jan, 2013 1 commit
    • Stephen Kelly's avatar
      Process the INTERFACE_PIC property from linked dependencies · 3581b96c
      Stephen Kelly authored
      This allows a dependee to inform a target that it should have its
      POSITION_INDEPENDENT_CODE property set to ON, or OFF. The value of
      the POSITION_INDEPENDENT_CODE property, if set, must be consistent
      with any INTERFACE_POSITION_INDEPENDENT_CODE properties on dependees.
      
      Add a test covering the consistency checks on platforms where they run.
      3581b96c
  11. 07 Jan, 2013 1 commit
  12. 04 Jan, 2013 1 commit
  13. 03 Jan, 2013 2 commits
  14. 07 Dec, 2012 1 commit
    • Brad King's avatar
      Add policy CMP0019 to skip include/link variable re-expansion · 711b63f7
      Brad King authored
      Historically CMake has always expanded ${} variable references in the
      values given to include_directories(), link_directories(), and
      link_libraries().  This has been unnecessary since general ${}
      evaluation syntax was added to the language a LONG time ago, but has
      remained for compatibility with VERY early CMake versions.
      
      For a long time the re-expansion was a lightweight operation because it
      was only processed once at the directory level and the fast-path of
      cmMakefile::ExpandVariablesInString was usually taken because values did
      not have any '$' in them.  Then commit d899eb71 (Call
      ExpandVariablesInString for each target's INCLUDE_DIRECTORIES,
      2012-02-22) made the operation a bit heavier because the expansion is
      now needed on a per-target basis.  In the future we will support
      generator expressions in INCLUDE_DIRECTORIES with $<> syntax, so the
      fast-path in cmMakefile::ExpandVariablesInString will no longer be taken
      and re-expansion will be very expensive.
      
      Add policy CMP0019 to skip the re-expansion altogether in NEW behavior.
      In OLD behavior perform the expansion but improve the fast-path
      heuristic to match ${} but not $<>.  If the policy is not set then warn
      if expansion actually does anything.  We expect this to be encountered
      very rarely in practice.
      711b63f7
  15. 27 Nov, 2012 2 commits
  16. 16 Nov, 2012 1 commit
  17. 07 Nov, 2012 1 commit
    • Brad King's avatar
      load_command: Deprecate and document pending removal · d2d43986
      Brad King authored
      This command works only when building projects using the same
      architecture as the running CMake binary.  Since it was introduced
      CMake has learned macro() and function() to add commands, and the
      execute_process() command to launch advanced external computations.
      
      Add a RunCMake.load_command test to verify the warning appears.
      d2d43986
  18. 20 Oct, 2012 1 commit
    • Stephen Kelly's avatar
      GenEx: Test early determination of AND and OR · 4bacff7a
      Stephen Kelly authored
      It should be possible for example to do this:
      
       "$<AND:${FOO},$<BOOL:${TGT}>,$<BOOL:$<TARGET_PROPERTY:${TGT},PROP>"
      
      such that it works simliarly to the C code:
      
       if (foo && tgt && tgt->prop())
         {
         }
      
      The example of generator expression code is a little bit contrived as
      it could be written other ways with the same functionality. Nevertheless,
      as these cases already work and are intentional, test for them.
      4bacff7a
  19. 17 Oct, 2012 1 commit
  20. 09 Oct, 2012 3 commits
  21. 28 Sep, 2012 2 commits
  22. 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
  23. 15 Aug, 2012 2 commits
    • Brad King's avatar
      Add $<CONFIG:...> boolean query generator expression · 9d9f6167
      Brad King authored
      This expression evaluates to '1' or '0' to indicate whether the build
      configuration for which the expression is evaluated matches tha named
      configuration.  In combination with the "$<0:...>" and "$<1:...>"
      expressions this allows per-configuration content to be generated.
      9d9f6167
    • Brad King's avatar
      Add boolean generator expressions · ebf05abd
      Brad King authored
      Add generator expressions that combine and use boolean test results:
      
       $<0:...>         = empty string (ignores "...")
       $<1:...>         = content of "..."
       $<AND:?[,?]...>  = '1' if all '?' are '1', else '0'
       $<OR:?[,?]...>   = '0' if all '?' are '0', else '1'
       $<NOT:?>         = '0' if '?' is '1', else '1'
      
      These will be useful to evaluate (future) boolean query expressions and
      condition content on the results.  Include tests and documentation.
      ebf05abd
  24. 13 Aug, 2012 1 commit
    • 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
  25. 10 Jul, 2012 1 commit
    • Brad King's avatar
      include: Ignore empty string as file name (#13388) · 2e99949c
      Brad King authored
      Previously CMake silently accepted the empty string and added a bogus
      dependency on the current directory.  Instead warn about the empty file
      name and ignore it.  We cannot make this an error because there may be
      existing projects that accidentally depend on the old behavior.
      
      Add a RunCMake.include test to cover this case.
      2e99949c