Skip to content
Snippets Groups Projects
  1. Mar 10, 2015
  2. Feb 20, 2015
  3. Feb 10, 2015
  4. Feb 05, 2015
  5. 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
  6. Dec 18, 2014
  7. Nov 10, 2014
  8. 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
  9. 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
  10. May 06, 2014
  11. Apr 04, 2014
  12. Mar 17, 2014
  13. 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
  14. Feb 10, 2014
  15. 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
  16. Jan 15, 2014
  17. Nov 25, 2013
    • Brad King's avatar
      bootstrap: Add KWSys Encoding and FStream · 2ba2c435
      Brad King authored
      Run the KWSYS_STL_HAS_WSTRING platform test and configure the result.
      Configure the Encoding and FStream header files and build the sources.
      On Windows, build EncodingC.c with KWSYS_ENCODING_DEFAULT_CODEPAGE=CP_ACP.
      2ba2c435
  18. Nov 12, 2013
  19. Oct 25, 2013
    • Brad King's avatar
      Shorten CMake version used in install destinations · 1093deeb
      Brad King authored
      Since commit c9a5f34b (Cleanup use of CMake version in install
      destinations, 2013-09-26) we use the full CMake version in default
      install destinations.  For rapidly changing versions of the form
      
       <major>.<minor>.<patch>.<date>-g<commit>[-dirty]
      
      used by developers this is too granular.  Instead use just
      
       <major>.<minor>.<patch>
      
      as the version for default install destinations.  This will still
      be granular enough for unique directories in releases.
      
      On Cygwin continue to use the full ${CMake_VERSION} as was the case
      prior to the above-mentioned commit.
      1093deeb
  20. Oct 19, 2013
  21. Oct 18, 2013
  22. Oct 16, 2013
    • Brad King's avatar
      Build Help documentation during CMake build using Sphinx · bfe07aa9
      Brad King authored
      Add a Utilities/Sphinx directory to hold CMake build code to run the
      Sphinx (sphinx-doc.org) documentation generation tool.  Create a
      CMakeLists.txt file there capable of building either as a subdirectory
      of the main CMake build, or as a standalone documentation build.
      
      Add cache options SPHINX_MAN and SPHINX_HTML to select output formats
      and SPHINX_EXECUTABLE to specify the sphinx-build executable.  Add
      bootstrap options --sphix-man and --sphinx-html to select output formats
      and --sphinx-build=<sb> to specify the sphinx-build executable.
      
      Create a "conf.py.in" file to configure_file into "conf.py" to tell
      sphinx-build how to build our documents.  Create a "cmake.py" Sphinx
      extension module defining:
      
      * The "cmake-module" directive used in Help/module/*.rst files to
        scan .rst markup from the corresponding Modules/*.cmake file.
      
      * A Sphinx domain called "cmake" defining documentation object types
        for CMake Help/<type> directories: command, generator, manual,
        module, policy, prop_*, and variable.  Add a "role" for each type
        to perform cross-references.  Teach the roles to treat "<XYZ>"
        as placeholders instead of explicit targets if not preceded by
        a space.  Add cmake domain directives to define command and
        variable objects explicitly in .rst file content.  This will
        allow modules to define their own commands and variables and
        have them indexed and linkable.
      
      * A Sphinx document transform that converts Help/<type>/*.rst documents
        into cmake domain objects of the corresponding <type> and adds index
        entries for them.  This will automatically index all CMake documentation
        objects and provide cross-reference targets for them with no special
        markup in the .rst files.
      bfe07aa9
    • Brad King's avatar
      Drop builtin property documentation · 399e9c46
      Brad King authored
      Drop all DefineProperty calls for non-chained properties.  Drop the
      documentation from the chained ones.  The documentation for all
      properties is now in Help/prop_*/*.rst files.
      399e9c46
    • Brad King's avatar
      Drop all documentation formatters except Usage · 80a3273b
      Brad King authored
      We now need only the Usage formatter to support command-line options
      that print basic usage, and the supporting indented=>preformatted markup
      processor to support CMake message formatting.  Drop all other
      documentation formatters and move the remaining code up into the top
      cmDocumentationFormatter class.
      80a3273b
  23. Oct 15, 2013
    • Brad King's avatar
      Cleanup use of CMake version in install destinations · c9a5f34b
      Brad King authored
      Factor the CMAKE_DATA_DIR, CMAKE_DOC_DIR, and CMAKE_MAN_DIR selection
      out of CMakeLists.txt and into a Source/CMakeInstallDestinations.cmake
      script.  Load the script from the original location of the code.
      
      Cache the destination values as empty strings so we know if the user
      sets them explicitly.  If not, then compute defaults based on the
      platform and full CMake version string.  By not caching the versioned
      defaults, we can change them in a single build tree as the version
      changes.
      
      Remove duplication of the install destination defaults from the
      bootstrap script.  Cache empty defaults there too.  Parse from the CMake
      code the default values to report in the help output.  Keep the CMake
      code in a structured format to make this reliable.
      c9a5f34b
    • Brad King's avatar
      bootstrap: Report -rc# in --version output · 82578d99
      Brad King authored
      82578d99
  24. Oct 03, 2013
    • Brad King's avatar
      cmake: Split -E command implementation into separate source file · c04995b4
      Brad King authored
      Move the cmake::ExecuteCMakeCommand static method and all the static
      methods it calls out of the 'cmake' class to a separate 'cmcmd' class.
      Build the latter as part of the main cmake executable with cmakemain.cxx
      and not in CMakeLib.  Drop unused header includes from "cmake.cxx".
      
      By moving this implementation out of cmake.cxx we avoid carrying it
      around in all the executables that use class 'cmake'.  It is needed only
      for the main "cmake -E" functionality.
      c04995b4
  25. Sep 12, 2013
  26. Aug 26, 2013
    • Brad King's avatar
      Clean up install rules of CMake itself (#14371) · df62f64d
      Brad King authored
      Ensure CMAKE_DATA_DIR, CMAKE_DOC_DIR, and CMAKE_MAN_DIR are always
      relative paths in CMake code, and set defaults accordingly.  Use the
      install() command instead of install_files() and install_targets().
      This is more modern and also avoids stripping of the first character
      from user-specified destinations.
      
      While at it, fix the default destinations reported in the bootstrap
      help.
      df62f64d
  27. Aug 02, 2013
    • Brad King's avatar
      bootstrap: Do not suppress CMAKE_OSX_SYSROOT if CFLAGS have -isysroot (#14324) · bf5a5bc8
      Brad King authored
      Revert commit a1c032b9 (bootstrap: Suppress CMAKE_OSX_SYSROOT if CFLAGS
      have -isysroot, 2012-09-21).  If MACOSX_DEPLOYMENT_TARGET is set then
      CMAKE_OSX_DEPLOYMENT_TARGET will be set and Darwin.cmake will complain
      if no CMAKE_OSX_SYSROOT is set.  Just allow both -isysroot flags to
      appear.  The one generated by CMAKE_OSX_SYSROOT appears after and
      overrides the one from CFLAGS/CXXFLAGS.
      bf5a5bc8
  28. Jun 14, 2013
  29. Jun 03, 2013
    • Brad King's avatar
      bootstrap: Compile KWSys SystemTools with UTIME(S|NSAT) values · 9d38db53
      Brad King authored
      The parent commit merged a change to KWSys that adds preprocessor
      definitions for KWSYS_CXX_HAS_UTIMENSAT and KWSYS_CXX_HAS_UTIMES to the
      command line for compiling SystemTools.  For bootstrapping we do not
      need sub-1s timestamps so just define them to 0 for now.
      9d38db53
  30. Feb 22, 2013
  31. Jan 07, 2013
  32. Dec 19, 2012
  33. Nov 05, 2012
  34. Oct 31, 2012
    • Rolf Eike Beer's avatar
      Linux/PA-RISC: Link with --unique=.text.* to help binutils · e496c540
      Rolf Eike Beer authored and Brad King's avatar Brad King committed
      There is a binutils bug that leads to errors like this:
      
      /usr/lib/gcc/hppa2.0-unknown-linux-gnu/4.6.3/../../../../hppa2.0-unknown-linux-gnu/bin/ld: libCMakeLib.a(cmTarget.cxx.o)(.text+0x12084): cannot reach 00001d28__ZNSspLEPKc@@GLIBCXX_3.4+0, recompile with -ffunction-sections
      /usr/lib/gcc/hppa2.0-unknown-linux-gnu/4.6.3/../../../../hppa2.0-unknown-linux-gnu/bin/ld: libCMakeLib.a(cmTarget.cxx.o)(.text+0x12084): cannot handle R_PARISC_PCREL17F for std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator+=(char const*)@@GLIBCXX_3.4
      /usr/lib/gcc/hppa2.0-unknown-linux-gnu/4.6.3/../../../../hppa2.0-unknown-linux-gnu/bin/ld: final link failed: Bad value
      
      Until someone finds out what needs to be fixed in binutils this allows anyone
      to compile a working CMake even in debug mode.
      e496c540
Loading