1. 28 Sep, 2009 40 commits
    • Brad King's avatar
      Convert CMake to OSI-approved BSD License · 96afb120
      Brad King authored
      This converts the CMake license to a pure 3-clause OSI-approved BSD
      License.  We drop the previous license clause requiring modified
      versions to be plainly marked.  We also update the CMake copyright to
      cover the full development time range.
      96afb120
  2. 25 Sep, 2009 40 commits
  3. 22 Sep, 2009 40 commits
  4. 31 Aug, 2009 40 commits
    • Brad King's avatar
      Test KWSYS_IOS_HAVE_BINARY during bootstrap · c2ee27c5
      Brad King authored
      We need to do this KWSys configuration test in the CMake bootstrap
      script to create a proper cmsys/Configure.hxx file.  This fixes the
      bootstrap script which was broken by the addition of the test to KWSys.
      c2ee27c5
  5. 11 Aug, 2009 40 commits
    • Brad King's avatar
      Introduce "generator expressions" to add_test() · d2e1f2b4
      Brad King authored
      This introduces a new syntax called "generator expressions" to the test
      COMMAND option of the add_test(NAME) command mode.  These expressions
      have a syntax like $<TARGET_FILE:mytarget> and are evaluated during
      build system generation.  This syntax allows per-configuration target
      output files to be referenced in test commands and arguments.
      d2e1f2b4
  6. 22 Jul, 2009 40 commits
    • Brad King's avatar
      ENH: Improve dynamic variable scope implementation · fd105899
      Brad King authored
      Previously each new variable scope (subdirectory or function call) in
      the CMake language created a complete copy of the key->value definition
      map.  This avoids the copy using transitive lookups up the scope stack.
      Results of queries answered by parents are stored locally to maintain
      locality of reference.
      
      The class cmDefinitions replaces cmMakefile::DefinitionsMap, and is
      aware of its enclosing scope.  Each scope stores only the definitions
      set (or unset!) inside it relative to the enclosing scope.
      fd105899
  7. 10 Jun, 2009 40 commits
    • Brad King's avatar
      BUG: Fix bootstrap for Debian Almquist Shell · 77972376
      Brad King authored
      The Debian Almquist Shell (dash) provides minimal POSIX compliance
      instead of the power of bash.  It converts literal '\n' to a real
      newline even in a single-quoted string.  This works around the problem
      by avoiding the literal.  We can no longer use HEREDOC.
      77972376
    • Brad King's avatar
      ENH: Make bootstrap script work on VMS bash · 653262ef
      Brad King authored
      A few sweeping changes were needed:
      
        - Avoid use of HEREDOC, which does not seem to work.
        - Avoid extra '.' in paths by using '_cmk' and '_tmp'
          instead of '.cmk' and '.tmp'.
      653262ef
    • Brad King's avatar
      COMP: Avoid String.c inclusion by Compaq templates · 776e21d1
      Brad King authored
      The Compaq compiler (on VMS) includes 'String.c' in source files that
      use the stl string while looking for template definitions.  This was the
      true cause of double-inclusion of the 'kwsysPrivate.h' header.  We work
      around the problem by conditionally compiling the entire source file on
      a condition only true when really building the source.
      776e21d1
  8. 27 May, 2009 40 commits
  9. 16 Mar, 2009 40 commits
    • Brad King's avatar
      ENH: Refactor generation of CTestTestfile content · 66d69f86
      Brad King authored
      This moves code which generates ADD_TEST and SET_TESTS_PROPERTIES calls
      into CTestTestfile.cmake files out of cmLocalGenerator and into a
      cmTestGenerator class.  This will allow more advanced generation without
      cluttering cmLocalGenerator.  The cmTestGenerator class derives from
      cmScriptGenerator to get support for per-configuration script
      generation (not yet enabled).
      66d69f86
    • Brad King's avatar
      ENH: Refactor cmInstallGenerator for re-use · e67f5138
      Brad King authored
      A new cmScriptGenerator base class factors out the non-install-specific
      part of cmInstallGenerator.  This will be useful for other generators
      that want per-configuration functionality.
      e67f5138
  10. 05 Mar, 2009 40 commits
    • Brad King's avatar
      ENH: Overhaul CMake version numbering · 98c51ff6
      Brad King authored
      This moves the version numbers into an isolated configured header so
      that not all of CMake needs to rebuild when the version changes.
      
      Previously we had spaces, dashes and/or the word 'patch' randomly chosen
      before the patch number.  Now we always report version numbers in the
      traditional format "<major>.<minor>.<patch>[-rc<rc>]".
      
      We still use odd minor numbers for development versions.  Now we also
      use the CCYYMMDD date as the patch number of development versions, thus
      allowing tests for exact CMake versions.
      98c51ff6
  11. 15 Sep, 2008 40 commits
  12. 07 Mar, 2008 40 commits
  13. 01 Mar, 2008 40 commits
  14. 21 Feb, 2008 40 commits
    • Brad King's avatar
      ENH: Better linker search path computation. · fd37a6ec
      Brad King authored
        - Use linker search path -L.. -lfoo for lib w/out soname
          when platform sets CMAKE_PLATFORM_USES_PATH_WHEN_NO_SONAME
        - Rename cmOrderRuntimeDirectories to cmOrderDirectories
          and generalize it for both soname constraints and link
          library constraints
        - Use cmOrderDirectories to order -L directories based
          on all needed constraints
        - Avoid processing implicit link directories
        - For CMAKE_OLD_LINK_PATHS add constraints from libs
          producing them to produce old ordering
      fd37a6ec
  15. 16 Feb, 2008 40 commits
  16. 13 Feb, 2008 40 commits
    • Brad King's avatar
      ENH: Add option to bootstrap script to enable Qt dialog. · ad95a575
      Brad King authored
        - Add --qt-gui and --no-qt-gui options
        - Add --qt-qmake=<qmake> option to help locate Qt
        - Build more commands during bootstrap to help FindQt4.cmake:
          MATH, GET_DIRECTORY_PROPERTY, EXECUTE_PROCESS,
          SEPARATE_ARGUMENTS
        - Bootstrapping with the cmake-gui is now possible in MSys
      ad95a575
  17. 07 Feb, 2008 40 commits
    • Brad King's avatar
      ENH: Improve link line generation for static library cycles. · 4987e17f
      Brad King authored
        - Move Tarjan algorithm from cmComputeTargetDepends
          into its own class cmComputeComponentGraph
        - Use cmComputeComponentGraph to identify the component DAG
          of link dependencies in cmComputeLinkDepends
        - Emit non-trivial component members more than once but always
          in a contiguous group on the link line
      4987e17f
  18. 05 Feb, 2008 40 commits
    • Brad King's avatar
      ENH: Analyze inter-target dependencies to safely fix cycles · 523ddeda
      Brad King authored
        - Cycles may be formed among static libraries
        - Native build system should not have cycles in target deps
        - Create cmComputeTargetDepends to analyze dependencies
        - Identify conneced components and use them to fix deps
        - Diagnose cycles containing non-STATIC targets
        - Add debug mode property GLOBAL_DEPENDS_DEBUG_MODE
        - Use results in cmGlobalGenerator as target direct depends
      523ddeda
  19. 01 Feb, 2008 40 commits
    • Brad King's avatar
      ENH: Pass dependent library search path to linker on some platforms. · 82fcaebe
      Brad King authored
        - Move runtime path ordering out of cmComputeLinkInformation
          into its own class cmOrderRuntimeDirectories.
        - Create an instance of cmOrderRuntimeDirectories for runtime
          path ordering and another instance for dependent library
          path ordering.
        - Replace CMAKE_DEPENDENT_SHARED_LIBRARY_MODE with explicit
          CMAKE_LINK_DEPENDENT_LIBRARY_FILES boolean.
        - Create CMAKE_LINK_DEPENDENT_LIBRARY_DIRS boolean.
        - Create variables to specify -rpath-link flags:
            CMAKE_SHARED_LIBRARY_RPATH_LINK_<LANG>_FLAG
            CMAKE_EXECUTABLE_RPATH_LINK_<LANG>_FLAG
        - Enable -rpath-link flag on Linux and QNX.
        - Documentation and error message updates
      82fcaebe
  20. 27 Jan, 2008 40 commits
  21. 23 Jan, 2008 40 commits
  22. 22 Jan, 2008 40 commits
    • Brad King's avatar
      ENH: Implement linking with paths to library files instead of -L and -l separation. See bug #3832 · 96fd5909
      Brad King authored
        - This is purely an implementation improvement.  No interface has changed.
        - Create cmComputeLinkInformation class
        - Move and re-implement logic from:
            cmLocalGenerator::ComputeLinkInformation
            cmOrderLinkDirectories
        - Link libraries to targets with their full path (if it is known)
        - Dirs specified with link_directories command still added with -L
        - Make link type specific to library names without paths
          (name libfoo.a without path becomes -Wl,-Bstatic -lfoo)
        - Make directory ordering specific to a runtime path computation feature
          (look for conflicting SONAMEs instead of library names)
        - Implement proper rpath support on HP-UX and AIX.
      96fd5909
  23. 17 Jan, 2008 40 commits
  24. 14 Nov, 2007 40 commits
  25. 18 Oct, 2007 40 commits
  26. 18 Jun, 2007 40 commits
    • Brad King's avatar
      ENH: Merging changes from branch CMake-SourceFile2-b between tags · 35936433
      Brad King authored
      CMake-SourceFile2-bp and CMake-SourceFile2-b-mp1 to trunk.  This
      commit is surrounded by tags CMake-SourceFile2-b-mp1-pre and
      CMake-SourceFile2-b-mp1-post on the trunk.
      
      The changes re-implement cmSourceFile and the use of it to allow
      instances to be created much earlier.  The use of cmSourceFileLocation
      allows locating a source file referenced by a user to be much simpler
      and more robust.  The two SetName methods are no longer needed so some
      duplicate code has been removed.  The strange "SourceName" stuff is
      gone.  Code that created cmSourceFile instances on the stack and then
      sent them to cmMakefile::AddSource has been simplified and converted
      to getting cmSourceFile instances from cmMakefile.  The CPluginAPI has
      preserved the old API through a compatibility interface.
      
      Source lists are gone.  Targets now get real instances of cmSourceFile
      right away instead of storing a list of strings until the final pass.
      
      TraceVSDependencies has been re-written to avoid the use of
      SourceName.  It is now called TraceDependencies since it is not just
      for VS.  It is now implemented with a helper object which makes the
      code simpler.
      35936433
  27. 04 Apr, 2007 40 commits
  28. 07 Dec, 2006 40 commits
  29. 05 Dec, 2006 40 commits
  30. 04 Dec, 2006 40 commits
  31. 29 Nov, 2006 40 commits
  32. 19 Oct, 2006 40 commits
  33. 04 Oct, 2006 40 commits
  34. 21 Sep, 2006 40 commits
  35. 25 Aug, 2006 40 commits