Skip to content
Snippets Groups Projects
  1. Jun 29, 2016
    • Brad King's avatar
      Avoid using KWSys auto_ptr by adopting it ourselves · b5ec5b09
      Brad King authored
      Replace use of cmsys::auto_ptr with a CM_AUTO_PTR macro that maps to
      our own implementation adopted from the KWSys auto_ptr implementation.
      Later we may be able to map CM_AUTO_PTR to std::auto_ptr on compilers
      that do not warn about it.
      
      Automate the client site conversions:
      
          git grep -l auto_ptr -- Source/ | grep -v Source/kwsys/ | xargs sed -i \
            's|cmsys::auto_ptr|CM_AUTO_PTR|;s|cmsys/auto_ptr.hxx|cm_auto_ptr.hxx|'
      b5ec5b09
  2. Jun 27, 2016
  3. Jun 01, 2016
  4. Jan 13, 2016
  5. Dec 21, 2015
  6. Dec 18, 2015
  7. Oct 28, 2015
  8. Oct 20, 2015
  9. Oct 14, 2015
    • Stephen Kelly's avatar
      cmMakefile: Store container of cmExportBuildFileGenerators. · 488723f5
      Stephen Kelly authored and Brad King's avatar Brad King committed
      Set a cmLocalGenerator on each instance at compute time.  That will
      soon be needed to access cmGeneratorTarget instances.
      
      If a cmExportBuildFileGenerator is processed early during configure time as a
      result of CMP0024 it must be removed from the list to process later at generate
      time.
      488723f5
  10. Oct 08, 2015
  11. Oct 06, 2015
  12. Sep 02, 2015
    • Brad King's avatar
      bootstrap: Remove unused KWSys configuration · 89958fd0
      Brad King authored
      KWSys has removed support for kwsys_ios, kwsys_stl, and pre-c++98
      template compatibility layers.  Drop the bootstrap script checks for
      these and configuration of the compatibility headers we no longer use.
      89958fd0
  13. Aug 10, 2015
  14. Jul 09, 2015
  15. Jun 06, 2015
    • Stephen Kelly's avatar
      cmOutputConverter: Extract from cmLocalGenerator. · 6d7abb63
      Stephen Kelly authored
      The Convert methods never belonged to the local generator concept, so
      split them out now.  The cmOutputConverter is cheap to construct and
      destroy, so it can be instantiated where needed to perform
      conversions.  This will allow further decoupling of cmLocalGenerator
      from the configure step.
      
      Inherit cmLocalGenerator from cmOutputConverter for the purpose of
      source compatibility.
      6d7abb63
  16. Apr 30, 2015
  17. Apr 13, 2015
    • Stephen Kelly's avatar
      Introduce cmState class. · a6b1ad13
      Stephen Kelly authored and Brad King's avatar Brad King committed
      At this point, it is an interface to the cache.  It will be extended
      to be a universal interface for access to and manipulation of
      configuration-time data (defintions, properties on targets,
      directories, source files etc).
      
      This will allow porting all command implementations away
      from the cmMakefile and cmTarget classes, and result in something
      more-purely related to configuration-time processing of cmake
      commands.  That should serve at least the following goals:
      
       * Split the CMake implementation more definitively into three
         stages: Configuration, computation and generation, and be able to
         implement each optimally for memory access patterns etc.
       * Make better IDE integration possible by making more configuration
         data available.
       * Make it possiblte to use a smaller library than CMakeLib.a in
         cpack and ctest, resulting in smaller executables.
       * Make it possible to run the configure step multiple times in
         the same CMake run (#14539).
      
      Manage its lifetime in the cmake class, and add a convenience accessor
      to cmMakefile.
      a6b1ad13
  18. Apr 12, 2015
  19. Mar 10, 2015
  20. Feb 20, 2015
  21. Feb 10, 2015
  22. Feb 05, 2015
  23. Jan 11, 2015
    • Stephen Kelly's avatar
      Remove some obsolete stuff. · 5e92c826
      Stephen Kelly authored
      We don't need to run compiler tests for ansi-for etc anymore. All
      supported compilers support the features tested here.
      5e92c826
    • Stephen Kelly's avatar
      15e42bb2
    • Stephen Kelly's avatar
      SolarisStudio: Use alternative standard library to build CMake. · 4c69ec6f
      Stephen Kelly authored
      SolarisStudio ships a very old RogueWave standard library
      implementation (libCstd) and uses it by default for backward compatibility.
      The macros defined when building the system libCstd need to be the same as
      the macros defined when using it for binary compatibility reasons etc.  The
      SolarisStudio compiler driver adds macros such as _RWSTD_NO_MEMBER_TEMPLATES and
      _RWSTD_NO_CLASS_PARTIAL_SPEC etc. These macros disable certain APIs in the
      standard library headers.
      
      Although the compiler supports the features 'member templates' and 'partial
      template specialization', the standard library does not provide APIs which
      rely on those features.  This means that std::vector::insert in libCStd does
      not accept a pair of iterators from a different type of container, because
      that requires member templates, and reverse_iterator<const T> can not
      be constructed from a reverse_iterator<T> because that requires partial
      specialization (or at least the _RWSTD_NO_CLASS_PARTIAL_SPEC define) and
      member templates.
      
      This causes many problems while building CMake using SolarisStudio, which
      have not been well understood until now.  The problems are usually
      attributed to compiler limitations, while actually the problem is in
      the standard library, as in commit v3.0.0-rc1~99^2~1 (Help: Document non-use
      of std::set::insert., 2014-01-24) and commit 107dcac3 (Fix compilation with
      the Oracle / Sun compiler (#15318), 2014-12-12).
      
      SolarisStudio 12.3 and earlier also ships a version of stlport which may be
      used instead of libCstd by specifying -library=stlport4
      
       https://docs.oracle.com/cd/E18659_01/html/821-1383/bkakg.html
      
      SolarisStudio 12.4 ships a version of libstdc++ from GCC 4.8.2 which may be
      used by specifying -std=c++03 or -std=c++11 etc
      
       http://docs.oracle.com/cd/E37069_01/html/E37075/bkamw.html#OSSCPgnaof
      
      Use these more-capable standard library implementations when building cmake.
      This will allow more use of 'normal' C++ (such as std::vector::insert), and cause
      fewer surprises resulting from dashboards using SolarisStudio.
      
      Because cmake is not a library linked against by 3rd parties and does not have
      external dependencies, issues related to mixing code using libCStd and libstdc++
      do not apply.
      4c69ec6f
  24. Dec 18, 2014
  25. Nov 10, 2014
  26. Jun 25, 2014
    • Brad King's avatar
      bootstrap: Fix "make test" and "make package" targets (#14989) · 6650b0fa
      Brad King authored
      Since commit v3.0.0-rc1~374^2 (Refactor internal resource location APIs
      and initialization, 2013-11-07) a bootstrap-built "cmake" tries to
      reference "ctest" and "cpack" executables next to itself, which never
      exist.  Teach cmSystemTools::FindCMakeResources, when bootstrap-built,
      to refer to the "ctest" and "cpack" executables in the location where
      they will be built after "make".
      6650b0fa
    • Brad King's avatar
      bootstrap: Clarify name of configured source directory · bc151757
      Brad King authored
      Rename CMAKE_ROOT_DIR to CMAKE_BOOTSTRAP_SOURCE_DIR to clarify both that
      it is only for bootstrap and that it refers to the source directory.
      bc151757
  27. May 28, 2014
    • Nils Gladitz's avatar
      Add an "installed file" property scope · 15a8af21
      Nils Gladitz authored and Brad King's avatar Brad King committed
      Teach set_property and get_property an "INSTALL" property type to be
      associated with install-tree file paths.  Make the properties available
      to CPack for use during packaging.  Add a "prop_inst" Sphinx domain
      object type for documentation of such properties.
      15a8af21
  28. May 06, 2014
  29. Apr 04, 2014
  30. Mar 17, 2014
  31. Feb 19, 2014
    • Brad King's avatar
      Change version scheme to use only two components for feature levels · 7cbab178
      Brad King authored
      Historically CMake used three version components for the feature level.
      We released new features while incrementing only the third version
      component.  Since commit v2.8.2~105^2~4 (New version scheme to support
      branchy workflow, 2010-04-23) we used the fourth version component for
      bug-fix releases and the development date:
      
       <major>.<minor>.<patch>[.<tweak>][-rc<n>] = Release
       <major>.<minor>.<patch>.<date>[-<id>]     = Development
      
      This solidified use of three components for the feature level, and was
      necessary to continue releasing 2.x versions because:
      
      * Some existing projects performed floating-point comparisons of
        ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} to 2.x numbers
        so ``x`` could never be higher than 9.
      
      * Version 2.9.<date> was used briefly in post-2.8.0 development in
        CVS prior to the transition to Git, so using it in releases may
        have caused confusion.
      
      Now that we are moving to 3.x versions, these two restrictions go away.
      Therefore we now change to use only two components for the feature
      level and use the scheme:
      
       <major>.<minor>.<patch>[-rc<n>] = Release
       <major>.<minor>.<date>[-<id>]   = Development
      7cbab178
  32. Feb 10, 2014
  33. Feb 09, 2014
    • Stephen Kelly's avatar
      CMakeLists: Generate the cmCommands.cxx file. · 23d3d38a
      Stephen Kelly authored
      Define the list of commands in the CMakeLists.txt file. List the
      sources in the CMakeLib target, but mark them as HEADER_FILE_ONLY.
      This has the effect that IDEs will show the files, though they
      will not be built again.
      
      Add a cmCommandsForBootstrap.cxx file for bootstrapping purposes.
      
      Rename the cmExportLibraryDependencies file to match the common
      pattern.
      23d3d38a
Loading