Commit Graph

44 Commits

Author SHA1 Message Date
Brad King 86578eccf2 Simplify CMake per-source license notices
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.
2016-09-27 15:14:44 -04:00
Brad King db915a3785 Utilities/Release: Drop Cygwin binary
Cygwin has packaged CMake independently of upstream for a long time.
See its [cygport](https://github.com/cygwinports/cmake).
2016-09-12 09:22:50 -04:00
Konstantin Podsvirov ea51b71a4f QtIFW: Developer Reference installation 2016-08-16 19:02:35 +03:00
Konstantin Podsvirov 5399280873 QtIFW: process USE_LGPL when CMake_INSTALL_COMPONENTS 2016-07-13 10:02:12 -04:00
Konstantin Podsvirov 8ae035a569 CMake: install COMPONENT cmcldeps
Added in Tools group with IFW installer
2016-07-13 10:02:12 -04:00
Brad King 9ad10c8feb cmake-gui: Reference LGPLv3 when redistributing Qt
Download http://www.gnu.org/licenses/lgpl.txt and place it as
Licenses/LGPLv3.txt in our source tree.  When building cmake-gui, use
option CMake_GUI_DISTRIBUTE_WITH_Qt_LGPL to enable notification in the
"About" dialog of how the distribution of Qt is licensed.  Install the
license file as ${CMAKE_ROOT}/Licenses/LGPLv3.txt so that the dialog can
display a path to it.
2016-06-17 15:02:54 -04:00
Nicolas BUNEL 18bfbc972f Add option to control 'bin' directory of CMake's own installation (#16076)
Add a `CMAKE_BIN_DIR` cache entry to CMake's own build configuration.
Add a `--bindir` option to the `bootstrap` script to set it.
2016-06-01 11:12:36 -04:00
Nils Gladitz a12b0f1b19 CMake: Prevent WiX installations over existing NSIS installations
Use a custom action to look for Uninstall.exe in the user
selected installation prefix.

Its presence indicates a previous NSIS installation.
Inform the user and request manual resolution of the issue.
2016-02-09 10:28:57 -05:00
Konstantin Podsvirov 068e7962bb CMake: Add CMake_INSTALL_DEPENDENCIES option
By default this option is ON.  Turn OFF to disable installing runtime
3rd-party dependencies.
2015-07-27 10:30:41 -04:00
Konstantin Podsvirov d7725a178b CMake: Add cmakexbuild component as REQUIRED to Tools group for IFW installer 2015-07-07 09:20:13 -04:00
Konstantin Podsvirov ecca26855a CMake: optional show LGPLv2.1 license when install cmake-gui component
In IFW installer if cmake-gui component selected and
CMake_GUI_DISTRIBUTE_WITH_Qt_LGPL enabled license will be
showed.
2015-07-07 09:16:44 -04:00
Konstantin Podsvirov c823f04e0c CMake: New option CMake_INSTALL_COMPONENTS
By default is OFF.
Now it's used with CPack IFW himself installer.
2015-07-07 09:16:40 -04:00
Konstantin Podsvirov 7383e4d722 CMake: Install COMPONENTs (sphinx-man)
Added component sphinx-man
2015-07-07 08:11:10 +03:00
Konstantin Podsvirov 938bbc4352 CMake: Install COMPONENTs
Added components:
- cmake
- ctest
- cpack
- cmake-gui
- ccmake
- data
- sphinx-html
- sphinx-singlehtml
- sphinx-qthelp

Other now Unspecified.
2015-07-07 08:11:09 +03:00
Brad King 858d5a0b3e Fix if() checks of CMAKE_SYSTEM_NAME on Cygwin
The CMAKE_SYSTEM_NAME is "CYGWIN", but we also define a variable
named "CYGWIN" to "1".  Avoid allowing if() to expand the "CYGWIN"
string as a variable.
2014-09-11 21:23:24 +02:00
Konstantin Podsvirov e6496b6023 CPackIFW: Revise this generator
CPack IFW generator updates:
- Group now can have script;
- Root package (for monolithic or one package installers) can be
  configured from group.

CMake updates:
- Native installation (no Unspecified component).
2014-08-12 15:20:59 -04:00
Konstantin Podsvirov e7511b7fbe CPackIFW: Add package configuration variables 2014-07-29 15:55:19 -04:00
Konstantin Podsvirov 44850a267d CPack: Add an "IFW" generator for Qt Framework Installer
Add support for packaging with the Qt Framework Installer tools:

 http://qt-project.org/doc/qtinstallerframework/index.html

Reviewed-by: Nils Gladitz <nilsgladitz@gmail.com>
2014-07-28 10:24:03 -04:00
Brad King 84af42b989 Configure NSIS-packaged CMake version and install destination
Remove the version number from the default package install destination.
An unversioned default allows users to upgrade their CMake installations
without manually re-generating all their build trees to update the path
to CMake.  Users can select a versioned directory name on installation
if they wish.

Also name the package with the full CMake version number so it is clear
exactly what version is going to be installed.  This is particularly
helpful for the nightly binary installers.
2013-11-12 15:47:06 -05:00
Richard Ulrich 155bb01bd5 CMakeCPack: Provide an upgrade guid for WiX
Set CPACK_WIX_UPGRADE_GUID.  Without this upgrade GUID, you end up with
multiple instances of the same installation when installing cmake from a
WIX generated installer.
2013-07-19 14:50:43 -04:00
David Cole 1fc5efed3f Convert the CPACK_CYGWIN_PATCH_NUMBER variable to a cache variable
Makes it easy to override it, by priming the cache from a release
build script, for example.

Also: correct mistaken @@ variable references with plain ${}
style references so that future readers do not think that it
must be an input to configure_file...
2012-08-16 16:40:24 -04:00
Kitware Robot 9db3116226 Remove CMake-language block-end command arguments
Ancient versions of CMake required else(), endif(), and similar block
termination commands to have arguments matching the command starting the
block.  This is no longer the preferred style.

Run the following shell code:

for c in else endif endforeach endfunction endmacro endwhile; do
    echo 's/\b'"$c"'\(\s*\)(.\+)/'"$c"'\1()/'
done >convert.sed &&
git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' |
egrep -z -v '^(Utilities/cm|Source/kwsys/)' |
egrep -z -v 'Tests/CMakeTests/While-Endwhile-' |
xargs -0 sed -i -f convert.sed &&
rm convert.sed
2012-08-13 14:19:16 -04:00
Kitware Robot 77543bde41 Convert CMake-language commands to lower case
Ancient CMake versions required upper-case commands.  Later command
names became case-insensitive.  Now the preferred style is lower-case.

Run the following shell code:

cmake --help-command-list |
grep -v "cmake version" |
while read c; do
    echo 's/\b'"$(echo $c | tr '[:lower:]' '[:upper:]')"'\(\s*\)(/'"$c"'\1(/g'
done >convert.sed &&
git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' |
egrep -z -v '^(Utilities/cm|Source/kwsys/)' |
xargs -0 sed -i -f convert.sed &&
rm convert.sed
2012-08-13 14:19:16 -04:00
Kitware Robot 7bbaa4283d Remove trailing whitespace from most CMake and C/C++ code
Our Git commit hooks disallow modification or addition of lines with
trailing whitespace.  Wipe out all remnants of trailing whitespace
everywhere except third-party code.

Run the following shell code:

git ls-files -z -- \
 bootstrap doxygen.config '*.readme' \
 '*.c' '*.cmake' '*.cpp' '*.cxx' \
 '*.el' '*.f' '*.f90' '*.h' '*.in' '*.in.l' '*.java' \
 '*.mm' '*.pike' '*.py' '*.txt' '*.vim' |
egrep -z -v '^(Utilities/cm|Source/(kwsys|CursesDialog/form)/)' |
egrep -z -v '^(Modules/CPack\..*\.in)' |
xargs -0 sed -i 's/ \+$//'
2012-08-13 14:18:39 -04:00
David Cole 96cd16380a Add CPACK_NSIS_INSTALL_ROOT for CMake's own installer (#9148)
Problem with CMake 2.8.4-rc1: when you launch the NSIS exe installer
on Windows, the default install path shown to the end user is, at first,
"\CMake 2.8".

This problem started occurring when configuring CMake itself with an
older CMake, after adding CPACK_NSIS_INSTALL_ROOT to fix issue 9148.
So... it's a regression from 2.8.3.

I forgot (again) that when you add a new CPack variable, you must
add it to CMake's CMakeCPack.cmake file or else it is empty when
configured with an older CMake. And on Windows, without a bootstrap
build available, the releases are always configured with an older
version of CMake. This may be the last time this has bitten me,
though, because it is now burned into my brain that problems with
CMake's installer itself are inevitably associated with adding new
CPack variables.

In addition to adding a definition for CPACK_NSIS_INSTALL_ROOT,
I've gone ahead and made it differ for the 32- and 64-bit builds
of CMake to give the end user the expected default value for the
Program Files folder for each one.

And, since I was adding a new 32/64 differentiator anyhow, I made
the "NSIS package name" and "installer registry key base" different
for 64-bit builds, too, by appending " (Win64)" to each one.

These address the concerns mentioned in 9148's related issue:
http://public.kitware.com/Bug/view.php?id=9094 (at least as far
as CMake's installer is concerned). 9094 could still use a good
general fix for all projects, though, and remains open for now.
2011-01-13 16:57:50 -05:00
David Cole fa4a3b04d0 Add CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS variable
The parent commit added a warning message whenever a required file
does not exist.

As it turns out, the "required" files never exist when built with
Visual Studio Express editions. Add a variable to suppress these
warning messages because only packagers or naive includers of
this file will care to see such warning messages.

We want to warn about this condition by default so that people who
are using InstallRequiredSystemLibraries without understanding it
fully will have a chance of understanding why it's not working in
the event of missing required files.

But we also want to give projects the ability to suppress this warning
(by "project's choice default") so that they can encourage users who
are restricted to using an Express edition to build their project.

Packagers should explicitly use...

  -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS=OFF

...when building releases. That way, their release build process will warn
them about any missing files, but only if their project CMakeLists files
use a construct similar to CMake's:

  IF(NOT DEFINED CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS)
    SET(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS ON)
  ENDIF()
2011-01-13 16:52:51 -05:00
Brad King 6ba45fa939 Fix CMake data and doc paths in Cygwin package
Override CMAKE_DOC_DIR and CMAKE_DATA_DIR cache entries on Cygwin early
enough so the new values are used everywhere.  Previously only some of
the uses were overridden.  Also set CPACK_PACKAGE_VERSION to the whole
CMake_VERSION so that the Cygwin MANIFEST file goes in the proper path.
2010-06-09 11:34:38 -04:00
Brad King c70fcf64ab Package CMake with new version scheme 2010-05-04 11:56:38 -04:00
Bill Hoffman 0f6c431180 Remove MFC libraries from install tree. 2009-09-28 13:40:49 -04:00
Brad King 96afb12087 Convert CMake to OSI-approved BSD License
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.
2009-09-28 11:43:28 -04:00
Brad King 98c51ff6dc ENH: Overhaul CMake version numbering
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.
2009-03-05 15:17:07 -05:00
Bill Hoffman 6e0500878e ENH: do not put system name into cygwin package 2008-05-23 11:47:43 -04:00
Bill Hoffman 92fce8d5a4 ENH: make sure Cygwin-Unknown is not the name for the package 2008-05-20 12:35:38 -04:00
Bill Hoffman f6014938cb ENH: make it so cmake-gui only installs if qt is static on windows 2008-02-09 09:53:52 -05:00
Bill Hoffman 87c22309b8 ENH: change CPACK_CREATE_DESKTOP_LINKS to something that can handle spaces in the name of the exectuable 2007-11-07 13:11:58 -05:00
Bill Hoffman e65c40f94a ENH: add CPACK_PROJECT_CONFIG_FILE option to CPack 2007-10-31 12:55:04 -04:00
Bill Hoffman eb14543939 ENH: cpack changes, remove the escape variable stuff as it is not needed if you provide a config file for cpack 2007-10-30 23:02:43 -04:00
Bill Hoffman ec79fff862 ENH: fix for cygwin package 2007-10-30 10:16:24 -04:00
Bill Hoffman 02f79c7242 ENH: add ability to set installer icons, links to web pages, nsis code in the icon section of the template, and ability to escape variables correctly 2007-10-29 08:11:44 -04:00
Bill Hoffman 3e03bca2cd ENH: add ability to create links on the start menu 2007-10-18 09:40:10 -04:00
Bill Hoffman 0eba9b638f ENH: allow for desktop link to be created and fix chop of last char in PATH on uninstall 2007-09-18 15:16:21 -04:00
Bill Hoffman de46b1c298 ENH: for CVS CMake have cpack use the version date in the name of the package 2007-09-07 14:20:14 -04:00
Alexander Neundorf d6a0c330bc ENH: deb generator can now generate deb packages
-remove the unscriptable commands also from the cpack cmake
-use CPACK_PACKAGE_CONTACT in CMakeCPack.cmake, it's used in the nsis and
the deb generator
-make set_properties() scriptable
-use a non-const char array for adding the python modules

Alex
2007-07-27 08:59:59 -04:00
Ken Martin 0577543cbc ENH: start trying to cleanup CMakeLists files 2007-05-10 14:08:15 -04:00