Skip to content
Snippets Groups Projects
  1. Oct 19, 2016
  2. Oct 15, 2016
  3. Oct 10, 2016
    • Stephen Kelly's avatar
      cmLinkLineComputer: Extract from cmLocalGenerator · 5b361fdd
      Stephen Kelly authored
      CMake has several classes which have too many responsibilities.
      cmLocalGenerator is one of them.  Start to extract the link line
      computation.  Create generator-specific implementations of the interface
      to account for generator-specific behavior.
      
      Unfortunately MSVC60 has different behavior to everything else and CMake
      still generates makefiles for it.  Isolate it with MSVC60-specific
      names.
      5b361fdd
  4. Sep 29, 2016
  5. Sep 27, 2016
    • Brad King's avatar
      Simplify CMake per-source license notices · 86578ecc
      Brad King authored
      Per-source copyright/license notice headers that spell out copyright holder
      names and years are hard to maintain and often out-of-date or plain wrong.
      Precise contributor information is already maintained automatically by the
      version control tool.  Ultimately it is the receiver of a file who is
      responsible for determining its licensing status, and per-source notices are
      merely a convenience.  Therefore it is simpler and more accurate for
      each source to have a generic notice of the license name and references to
      more detailed information on copyright holders and full license terms.
      
      Our `Copyright.txt` file now contains a list of Contributors whose names
      appeared source-level copyright notices.  It also references version control
      history for more precise information.  Therefore we no longer need to spell
      out the list of Contributors in each source file notice.
      
      Replace CMake per-source copyright/license notice headers with a short
      description of the license and links to `Copyright.txt` and online information
      available from "https://cmake.org/licensing".  The online URL also handles
      cases of modules being copied out of our source into other projects, so we
      can drop our notices about replacing links with full license text.
      
      Run the `Utilities/Scripts/filter-notices.bash` script to perform the majority
      of the replacements mechanically.  Manually fix up shebang lines and trailing
      newlines in a few files.  Manually update the notices in a few files that the
      script does not handle.
      86578ecc
  6. Aug 25, 2016
    • Stephen Kelly's avatar
      cmMessenger: Extract from cmake class · 421012a3
      Stephen Kelly authored and Brad King's avatar Brad King committed
      This way messages can be issued independent of the cmake instance.
      
      It is now possible to make DisplayMessage a virtual interface and
      override it to handle messages in the cmake-gui or future IDE
      interaction interfaces.
      421012a3
  7. Jul 20, 2016
  8. 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
  9. Jun 27, 2016
  10. Jun 01, 2016
  11. Jan 13, 2016
  12. Dec 21, 2015
  13. Dec 18, 2015
  14. Oct 28, 2015
  15. Oct 20, 2015
  16. 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
  17. Oct 08, 2015
  18. Oct 06, 2015
  19. 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
  20. Aug 10, 2015
  21. Jul 09, 2015
  22. 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
  23. Apr 30, 2015
  24. 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
  25. Apr 12, 2015
  26. Mar 10, 2015
  27. Feb 20, 2015
  28. Feb 10, 2015
  29. Feb 05, 2015
  30. 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
  31. Dec 18, 2014
  32. Nov 10, 2014
Loading