1. 15 Nov, 2018 1 commit
  2. 12 Nov, 2018 1 commit
  3. 05 Sep, 2018 1 commit
  4. 27 Jul, 2018 1 commit
    • Brad King's avatar
      CPack: Restore support for 0-valued version components · ed015bde
      Brad King authored
      In commit v3.12.0-rc1~136^2 (CPack: Use project version as default for
      `CPACK_PACKAGE_VERSION`, 2018-04-29) we did not account for the value of
      `CMAKE_PROJECT_VERSION_{MAJOR,MINOR,PATCH}` having `0`.  Fix the logic
      to distinguish between unprovided version components and `0` components.
      
      While at it, add a test case covering the behavior described in the
      documentation by the original commit.  The number of version components
      in the package name should match those provided to the `project()`
      command `VERSION` option.
      
      Fixes: #18199
      ed015bde
  5. 11 May, 2018 1 commit
    • Alex Turbov's avatar
      CPack: Add NuGet support · f739752a
      Alex Turbov authored
      Create a CPack generator that uses `nuget.exe` to create packages:
      
          https://docs.microsoft.com/en-us/nuget/what-is-nuget
      
      NuGet packages could be easily produced from a `*.nuspec` file (running
      `nuget pack` in the directory w/ the spec file).  The spec filename does
      not affect the result `*.nupkg` name -- only `id` and `version` elements
      of the spec are used (by NuGet).
      
      Some implementation details:
      
      * Minimize C++ code -- use CMake script do to the job. It just let the
        base class (`cmCPackGenerator`) to preinstall everything to a temp
        directory, render the spec file and run `nuget pack` in it, harvesting
        `*.nupkg` files...;
      
      * Ignore package name (and use default paths) prepared by the base class
        (only `CPACK_TEMPORARY_DIRECTORY` is important) -- final package
        filename is a responsibility of NuGet, so after generation just scan the
        temp directory for the result `*.nupkg` file(s) and update
        `packageFileNames` data-member of the generator;
      
      * The generator supports _all-in-one_ (default), _one-group-per-package_
        and _one-component-per-package_ modes.
      f739752a
  6. 08 May, 2018 4 commits
  7. 04 May, 2018 1 commit
  8. 02 May, 2018 1 commit
    • Alex Turbov's avatar
      CPack: Use project version as default for `CPACK_PACKAGE_VERSION` · af1c4887
      Alex Turbov authored
      * Introduce `CMAKE_PROJECT_VERSION` and the corresponsing components:
        `CMAKE_PROJECT_VERSION_MAJOR`, `CMAKE_PROJECT_VERSION_MINOR`,
        `CMAKE_PROJECT_VERSION_PATCH` and `CMAKE_PROJECT_VERSION_TWEAK`.
      
      * `CPack` module use `CMAKE_PROJECT_VERSION_MAJOR`,
        `CMAKE_PROJECT_VERSION_MINOR` and `CMAKE_PROJECT_VERSION_PATCH`
        to initialize corresponsing CPack variables.
      af1c4887
  9. 27 Apr, 2018 1 commit
  10. 23 Apr, 2018 2 commits
  11. 20 Dec, 2017 1 commit
  12. 19 Nov, 2017 1 commit
  13. 08 Nov, 2017 1 commit
    • Domen Vrankar's avatar
      CPack: enable setting default dir creation permissions · 7e896029
      Domen Vrankar authored
      Introduces CPACK_DEFAULT_DIRECTORY_INSTALL_PERMISSIONS
      variable which adds support for functionality introduced
      by CMAKE_DEFAULT_DIRECTORY_INSTALL_PERMISSIONS variable.
      
      Fixes #17333
      
      # Conflicts:
      #	Help/release/dev/cmake-default-dir-install-permissions.rst
      7e896029
  14. 10 Jun, 2017 1 commit
    • Adriaan de Groot's avatar
      CPack-FreeBSD: add a generator for FreeBSD pkg(8) · 2042cae9
      Adriaan de Groot authored
      Adds an option CPACK_ENABLE_FREEBSD_PKG to allow CPack to look
      for FreeBSD's libpkg / pkg(8). If this is set and the libpkg
      headers and library are found (which they will be, by default,
      on any FreeBSD system), then add a FreeBSD pkg(8) generator.
      
      The FreeBSD package tool pkg(8) uses tar.xz files (.txz) with two
      metadata files embedded (+MANIFEST and +COMPACT_MANIFEST).
      This introduces a bunch of FreeBSD-specific CPACK_FREEBSD_PACKAGE_*
      variables for filling in the metadata; the Debian generator does
      something similar. Documentation for the CPack CMake-script is styled
      after the Debian generator.
      
      Implementation notes:
       - Checks for libpkg -- the underlying implementation for pkg(8) --
         and includes FreeBSD package-generation if building CMake on
         a UNIX host. Since libpkg can be used on BSDs, Linux and OSX,
         this potentially adds one more packaging format. In practice,
         this will only happen on FreeBSD and DragonflyBSD.
       - Copy-paste from cmCPackArchiveGenerator to special-case
         the metadata generation and to run around the internal
         archive generation: use libpkg instead.
       - Generating the metadata files is a little contrived.
       - Most of the validation logic for package settings is in
         CPackFreeBSD.cmake, as well as the code that tries to re-use
         packaging settings that may already be set up for Debian.
       - libpkg has its own notion of output filename, so we have
         another contrived bit of code that munges the output file
         list so that CPack can find the output.
       - Stick with C++98.
      2042cae9
  15. 11 Apr, 2017 1 commit
    • Alex Turbov's avatar
      project: Add `DESCRIPTION` parameter · 3b484871
      Alex Turbov authored
      It is quite often the project description has used in a real world software.
      Examples include:
      
      * part of a help screen of the application
      * builtin resources (`*.rc` files, data for "About" dialog of a GUI app, & etc)
      * most generators for CPack can use it
      * it could be used by documentary software (Doxygen, Sphinx) which is usually
        integrated to CMake based projects via `add_custom_target()`
      
      Now `project()` call learned an optional `DESCRIPTION` parameter with a
      short string describing a project. Being specified, it would set the
      `PROJECT_DESCRIPTION` variable which could be used in `configure_file()`
      or whatever user wants.  Also `PROJECT_DESCRIPTION` is a default value
      for `CPACK_PACKAGE_DESCRIPTION_SUMMARY`.
      3b484871
  16. 10 Nov, 2016 1 commit
  17. 27 Sep, 2016 2 commits
    • 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
    • Domen Vrankar's avatar
      CPack/RPM debuginfo packages must contain sources · b78fcf0d
      Domen Vrankar authored
      Issue #15668 fix was missing relevant source
      files in debuginfo package.
      b78fcf0d
  18. 20 Sep, 2016 1 commit
  19. 19 Sep, 2016 1 commit
  20. 27 Jul, 2016 1 commit
    • Daniel Pfeifer's avatar
      Use string(APPEND) in Modules · 5d0d980d
      Daniel Pfeifer authored
      Automate with:
      
      find Modules -type f -print0 | xargs -0 perl -i -0pe \
      's/set\(([a-zA-Z0-9_]+)(\s+)"\$\{\1\}([^"])/string(APPEND \1\2"\3/g'
      5d0d980d
  21. 03 Jun, 2016 1 commit
  22. 28 Oct, 2015 1 commit
  23. 20 Sep, 2015 1 commit
    • Roman Donchenko's avatar
      Introduction of CPACK_VERBATIM_VARIABLES variable · bc2e54db
      Roman Donchenko authored
      If variable is set to TRUE, values of all variables prefixed with CPACK_
      will be escaped so special characters such as dolar sign, quotes or
      foreward slash will not be lost. By default variable is treated as set
      to FALSE for back compatibility.
      
      The cpack_encode_variables macro is changed into a function to remove
      scope pollution. There should be no other effects.
      bc2e54db
  24. 09 Sep, 2015 1 commit
    • Roman Donchenko's avatar
      CPack: don't mangle CMake-special characters when applying default settings · 2a7772ff
      Roman Donchenko authored
      Mangling is prevented by using a function instead of a macro for setting
      default value of some CPack variables. Function is meant for internal use
      in CPack.cmake only.
      Old macro is deprecated but kept for backwards compatibility - was
      intended for internal use only as it can't be used for CPack after
      CPack.cmake script is included.
      Patch removes local workarounds that were required by old macro,
      fixes default setting of variables that by default inherit value from
      another variable that already went through old default setting macro
      (e.g. value of CPACK_PACKAGE_INSTALL_REGISTRY_KEY caused error for
      wrong escapes if CPACK_PACKAGE_INSTALL_DIRECTORY contained escaped
      back slashes) and provides a test for correct escaping of characters.
      2a7772ff
  25. 29 Apr, 2015 1 commit
  26. 02 Mar, 2015 1 commit
  27. 04 Feb, 2015 1 commit
  28. 31 Jul, 2014 2 commits
  29. 30 Jul, 2014 2 commits
  30. 28 Jul, 2014 1 commit
  31. 08 Feb, 2014 1 commit
  32. 13 Nov, 2013 1 commit
  33. 01 Nov, 2013 1 commit
    • Brad King's avatar
      CPack: Disable OS X PackageMaker by default (#13662) · 7947981c
      Brad King authored
      As mentioned in commit 4693cf84 (Xcode: Detect new default locations of
      Xcode 4.3 bits and pieces) PackageMaker was split out of Xcode 4.3 and
      above into a separate Auxiliary tools package.  Since Xcode 5.0 or so,
      Apple no longer distributes PackageMaker as part of the available
      development tools so it can only be obtained from old packages.
      
      Disable the CPACK_BINARY_PACKAGEMAKER option by default as is the case
      for most other tool-dependent generators.
      7947981c