Commit Graph

374 Commits

Author SHA1 Message Date
Brad King
c9a5f34bd7 Cleanup use of CMake version in install destinations
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.
2013-10-15 10:46:54 -04:00
Brad King
c72f8513f7 Factor CMake version logic into dedicated module
Move logic to compute CMake_VERSION out of the top-level CMakeLists.txt
file to a dedicated Source/CMakeVersionCompute.cmake module and include
it from the original location.  This will allow it to be re-used.
2013-10-15 10:46:53 -04:00
Stephen Kelly
920ffbf50f Require CMake 2.8.4 or greater to build CMake
This allows the use of the $<TARGET_FILE:...> generator expression as a
replacement for the use of the LOCATION target property.  The use of the
LOCATION target property is now deprecated for in-build targets.

Also drop other checks for older CMake versions:

* Simplify cmake_set_target_folder macro.
* Use find_package(LibArchive) unconditionally.
* Simplify condition for running testVisualStudioSlnParser test.
* Convert two macros to functions.
* Unconditionally run the CTestTestRerunFailed test.
2013-10-15 09:22:56 -04:00
Brad King
5925e34107 Merge topic 'osx-cmake-app-info-plist'
dcf1b64 OS X: Set CMake.app bundle Info.plist fields (#11694)
2013-10-09 10:24:34 -04:00
Brad King
dcf1b64569 OS X: Set CMake.app bundle Info.plist fields (#11694)
Use the Apple Info.plist reference documentation:

 Core Foundation Keys
 https://developer.apple.com/library/mac/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html

 Launch Services Keys
 https://developer.apple.com/library/mac/documentation/general/Reference/InfoPlistKeyReference/Articles/LaunchServicesKeys.html

 Cocoa Keys
 https://developer.apple.com/library/mac/documentation/general/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html

modify the Info.plist we create for cmake-gui to add/set fields

 CFBundleShortVersionString = The release-version-number string
 LSApplicationCategoryType  = UTI that categorizes the app for the App Store
 NSHumanReadableCopyright   = Specifies the copyright notice

and drop fields

 CFBundleGetInfoString
 CFBundleLongVersionString
 LSRequiresCarbon

Also prepare to set

 CFBundleVersion            = The build-version-number string

but leave it commented out as TBD (To Be Determined) for now.

The version fields must have form <major>.<minor>.<patch> with integer
components.  While at it, rename the bundle to end in ".<patch>" instead
of "-<patch>" so that it is consistent with the version number and does
not look like a packaging increment suffix.
2013-10-08 12:32:28 -04:00
Brad King
1763c31c3b Set policy CMP0025 to NEW while building CMake itself
CMake is aware of the policy's NEW behavior and the AppleClang compiler
id.  Set the policy to NEW explicitly to avoid the warning and get the
NEW behavior.

Also teach the RunCMake test infrastructure to build tests with
-DCMAKE_POLICY_DEFAULT_CMP0025=NEW to avoid the policy warning
in test output that must match specific regular expressions.
2013-10-07 20:12:46 -04:00
Brad King
df62f64db7 Clean up install rules of CMake itself (#14371)
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.
2013-08-26 11:54:07 -04:00
Brad King
56ca8d4e63 Tests: Add generator toolset support
Propagate CMAKE_GENERATOR_TOOLSET through the test hierarchy so that all
tests can build with the selected generator toolset, if any.
2013-02-07 11:09:56 -05:00
Stephen Kelly
c77281061c Add the -Wundef flag when compiling CMake. 2013-01-08 20:35:23 +01:00
Brad King
2c24ca9219 Remove references to KWSys Process Win9x support
The KWSys "EncodeExecutable" and "ProcessFwd9x" executables were dropped
from KWSys along with Win9x Process support.  Drop references from the
rest of the CMake build rules.
2012-12-19 09:07:41 -05:00
Stephen Kelly
d06a9bdf3a Enable some compiler warnings when building CMake.
The warnings are enabled for now only when using GCC 4.2 or later.
It may be possible later to also enable them when building CMake
with clang.  Don't duplicate the compiler flags if already set.
2012-11-13 13:26:59 -05:00
Marcin Wojdyr
84b49be8f0 Remove CMake multiline block-end command arguments
removing arguments omitted in 9db3116226
2012-08-15 16:50:29 -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
Brad King
d960de2f54 Require CMake 2.8.2 or higher to build CMake
Update the requirement specified in the top-level CMakeLists.txt file.
Drop the special-case minimum required version of 2.8.0 because the new
minimum subsumes it.

Revert commit 6c611c6b (libarchive: Restore CMake 2.6.3 as minimum
version, 2012-01-05) since our requirement now subsumes libarchive's.
2012-04-26 16:39:54 -04:00
Eric NOULARD
5b97942cbb Enhancement of bash completion scripts given by Igor Murzov.
The orginal patch has been reworked in order to follow
CMake source tree layout habit.

Inspired-By: Igor Murzov <e-mail@date.by>
2012-04-23 20:46:08 +02:00
Brad King
0c7029c642 Refactor CMake version handling
Move the CMake version number components out of "CMakeLists.txt" into
dedicated file "Source/CMakeVersion.cmake".  Set the TWEAK level to the
date explicitly.  Add a "Source/CMakeVersion.bash" script to update the
date, thus replacing KWSys DateStamp for CMake.  Teach the bootstrap
script to extract the version components from their new location.
2012-04-20 11:25:55 -04:00
David Cole
e9c0d3a017 Begin post-2.8.8 development 2012-04-18 17:54:30 -04:00
David Cole
6218aba37a CMake 2.8.8 2012-04-18 12:03:39 -04:00
David Cole
d61d860dc3 CMake 2.8.8-rc2 2012-04-05 10:26:26 -04:00
David Cole
44bcf815cb CMake 2.8.8-rc1 2012-03-22 14:25:21 -04:00
David Cole
5a5c32e1f2 Merge topic 'update-libarchive'
6c611c6 libarchive: Restore CMake 2.6.3 as minimum version
2f5b677 libarchive: Update README-CMake.txt for new snapshot
156cb3b Merge branch 'libarchive-upstream' into update-libarchive
fd42bf1 libarchive: Set .gitattributes to allow trailing whitespace
4f4fe6e libarchive 3.0.2-r4051 (reduced)
65b6e19 libarchive: Avoid bogus conversion warning from PGI compiler
9ccaeb1 libarchive: Suppress PathScale compiler warnings
2309438 libarchive: Rename isoent_rr_move_dir parameter isoent => curent
b6ca96e libarchive: Include linux/types.h before linux/fiemap.h
f293b73 libarchive: Define _XOPEN_SOURCE=500 on HP-UX
6781a09 libarchive: Cleanup after ZLIB_WINAPI check
f15d757 libarchive: Remove hard-coded build configuration
3a9f449 libarchive: Use Apple copyfile.h API only if available
6af6b96 libarchive: Do not use MNT_NOATIME if not defined
02d5e40 libarchive: Check for 'struct statvfs' member 'f_iosize'
8b7ee30 libarchive: Do not use ST_NOATIME if not defined
...
2012-01-09 14:10:01 -05:00
Rolf Eike Beer
4c2d27edd9 remove reference to CVS directory when installing files
CMake is in git, let's ignore this.
2012-01-02 18:53:27 +01:00
David Cole
b1d92955af Begin post-2.8.7 development 2011-12-30 15:26:24 -05:00
David Cole
7f8f6dbf45 CMake 2.8.7 2011-12-30 11:05:59 -05:00
Brad King
504660ea70 Configure libarchive build within CMake
Re-enable the option to build libarchive within CMake now that we have
imported a new snapshot.  Force libarchive ENABLE_* cache options to the
values CMake needs.  Set ENABLE_OPENSSL based on CMAKE_USE_OPENSSL to
preserve the behavior introduced in commit ee55a4f7 (Use OpenSSL only if
CMAKE_USE_OPENSSL, 2011-02-08).
2011-12-23 16:04:58 -05:00
David Cole
a1c9de5635 CMake 2.8.7-rc2 2011-12-21 15:05:00 -05:00
Brad King
f6ac86d70e libarchive: Remove our copy to make room for new import 2011-12-20 11:47:27 -05:00
David Cole
56b5a72ebd CMake 2.8.7-rc1 2011-12-08 10:15:34 -05:00
David Cole
6ac35e5cb3 Merge topic 'import-KWIML'
5be0e92 Merge branch 'upstream-kwiml' into import-KWIML
a8f6159 KWIML: Create test output dir for Xcode
33fff24 KWIML: No INT_SCN*8 on Intel for Windows
bcc06d4 KWIML: No INT_SCN*8 on SunPro compiler
6d12ab3 KWIML: Suppress printf/scanf format warnings in test
553acec KWIML: Avoid redefining _CRT_SECURE_NO_DEPRECATE in test.h
93cebca Configure KWIML inside CMake as cmIML
b2975ad Merge branch 'upstream-kwiml' into import-KWIML
831bade KWIML: The Kitware Information Macro Library
2011-11-15 14:39:12 -05:00
David Cole
3105dc3de6 Begin post-2.8.6 development 2011-10-04 14:41:15 -04:00
David Cole
5971063a5c CMake 2.8.6 2011-10-04 11:48:52 -04:00
David Cole
c16e387412 CMake 2.8.6-rc4 2011-09-22 14:08:22 -04:00
David Cole
afff1ab901 Merge branch 'release' 2011-09-22 14:06:40 -04:00
David Cole
c336778c52 CMake: Reference test targets only when BUILD_TESTING is ON
You cannot set a property on a target that's not there, and
these targets are not there when BUILD_TESTING is OFF.

Thanks to Sankhesh Jhaveri for the bug report.
2011-09-14 10:38:04 -04:00
David Cole
281b93734c CMake 2.8.6-rc3 2011-09-09 11:53:38 -04:00
David Cole
bf14d95946 CMake 2.8.6-rc2 2011-09-02 15:35:06 -04:00
David Cole
04b68853d5 CMake 2.8.6-rc1 2011-08-26 11:26:04 -04:00
David Cole
2a97c5d52f Begin post-2.8.5 development 2011-07-08 11:05:10 -04:00
David Cole
ee1c6a5b06 CMake 2.8.5 2011-07-08 07:12:50 -04:00
Brad King
93cebcaf23 Configure KWIML inside CMake as cmIML 2011-06-27 14:15:37 -04:00
David Cole
e8e1048c5f CMake 2.8.5-rc3 2011-06-21 13:05:02 -04:00
David Cole
34cfc880b1 CMake 2.8.5-rc2 2011-06-15 09:15:54 -04:00
David Cole
986a115267 CMake 2.8.5-rc1 2011-05-25 09:52:01 -04:00
Brad King
9c78ef1395 COMP: Fix build against non-standard outside libarchive
Use the include directories reported by find_package(LibArchive).
2011-03-31 16:59:03 -04:00
Brad King
fa10a67d09 Remove unused CMAKE_BACKWARDS_COMPATIBILITY mark
CMake itself has no calls to cmake_minimum_required with VERSION < 2.6
so this cache variable does not appear at all.
2011-03-01 16:19:53 -05:00
Brad King
c3e452e944 Require at least CMake 2.6.3 to build current CMake
Remove some cruft left for supporting builds with CMake 2.4.
2011-02-24 15:14:08 -05:00
David Cole
4d1240eb0a Begin post-2.8.4 development 2011-02-15 11:45:45 -05:00
David Cole
1bb4c7be11 CMake 2.8.4 2011-02-15 10:31:54 -05:00
David Cole
086cd2fa40 CMake 2.8.4-rc2 2011-01-31 13:03:26 -05:00
David Cole
37f4a1d121 Merge branch 'release' 2011-01-31 12:43:34 -05:00
David Cole
799efb4a2c CMake 2.8.4-rc1 2011-01-12 09:32:11 -05:00
Brad King
60d72b56ed bootstrap: Granular system library selection (#11431)
This adds the ability for packagers to specify that some libraries
should use system versions and others should use the CMake versions.

This allows a bit of flexibility and means Homebrew (an OSX package
manager) no longer has to continue to patch the CMake build process.

Inspired-by: Mike McQuaid <mike@mikemcquaid.com>
2011-01-10 09:32:09 -05:00
Brad King
85c0a69a92 Cygwin: Do not define 'WIN32' (#10122)
One of Cygwin's goals is to build projects using the POSIX API with no
Windows awareness.  Many CMake-built projects have been written to test
for UNIX and WIN32 but not CYGWIN.  The preferred behavior under Cygwin
in such projects is to take the UNIX path but not the WIN32 path.

Unfortunately this change is BACKWARDS INCOMPATIBLE for Cygwin-aware
CMake projects!  Some projects that previously built under Cygwin and
are Cygwin-aware when they test for WIN32 may now behave differently.
Eventually these projects will need to be updated, but to help users
build them in the meantime we print a warning about the change in
behavior.  Furthermore, one may set CMAKE_LEGACY_CYGWIN_WIN32 to request
old behavior during the transition.

Normally we avoid backwards incompatible changes, but we make an
exception in this case for a few reasons:

(1) This behavior is preferred by Cygwin's design goals.

(2) A warning provides a clear path forward for everyone who may see
incompatible behavior, and CMAKE_LEGACY_CYGWIN_WIN32 provides a
compatibility option.  The warning and compatibility option both
disappear when the minimum required version of CMake in a project is
sufficiently new, so this issue will simply go away over time as
projects are updated to account for the change.

(3) The fixes required to update projects are fairly insignificant.
Furthermore, the Cygwin distribution has no releases itself so project
versions that predate said fixes tend to be difficult to build anyway.

(4) This change enables many CMake-built projects that did not
previously build under Cygwin to work out-of-the-box.  From bug #10122:

  "I have built over 120 different source packages with (my patched)
   CMake, including most of KDE4, and have found that NOT defining
   WIN32 on Cygwin is much more accurate." -- Yaakov Selkowitz

A fully compatible change would require patches on top of these project
releases for Cygwin even though they otherwise need not be aware of it.

(5) Yaakov has been maintaining a fork of CMake with this change for the
Cygwin Ports distribution.  It works well in practice.  By accepting the
change in upstream CMake we avoid confusion between the versions.

CMake itself builds without WIN32 defined on Cygwin.  Simply disable
CMAKE_LEGACY_CYGWIN_WIN32 explicitly in our own CMakeLists.txt file.
2010-12-17 14:19:58 -05:00
David Cole
1674961a3f Begin post-2.8.3 development 2010-11-03 16:42:13 -04:00
David Cole
63d21c1f8e CMake 2.8.3 2010-11-03 13:38:38 -04:00
David Cole
e5b50a9ada CMake 2.8.3-rc4 2010-10-29 15:21:36 -04:00
David Cole
144ee51760 CMake 2.8.3-rc3 2010-10-20 13:47:59 -04:00
Brad King
5e6ba7d82d CMake 2.8.3-rc2 2010-10-06 10:39:10 -04:00
Brad King
07fcb60ac5 Merge branch 'release' 2010-10-06 10:31:57 -04:00
Brad King
dacc47853d Merge topic 'vs-project-groups'
fd3249e New USE_FOLDERS property OFF by default. (#3796)
2010-10-05 15:31:49 -04:00
David Cole
fd3249e11a New USE_FOLDERS property OFF by default. (#3796)
Visual Studio Express editions do not support solution folders,
so default behavior should be as if USE_FOLDERS global property
is OFF.

Also, allow folder names to be the same as target names: internally,
use a prefix to distinguish folder GUIDs from target GUIDs. Add
a target and folder with the same name in the ExternalProject
test to exercise this code.

For CMake itself, provide a new option CMAKE_USE_FOLDERS that
defaults to ON so that Visual Studio users get a nicely organized
CMake project. Express edition users will have to turn off the
CMAKE_USE_FOLDERS option in order to build CMake in the VS Express
IDE.
2010-10-02 14:31:02 -04:00
Brad King
c4a0f0b2d6 CMake 2.8.3-rc1 2010-09-15 10:15:59 -04:00
Brad King
28edb70a9e Merge topic 'vs-project-groups'
e6ac0aa Add FOLDER target property, for IDEs (#3796)
2010-09-08 11:08:05 -04:00
David Cole
e6ac0aacf6 Add FOLDER target property, for IDEs (#3796)
This work was started from a patch by Thomas Schiffer.
Thanks, Thomas!

See the newly added documentation of the FOLDER target
property for details.

Also added global properties, USE_FOLDERS and
PREDEFINED_TARGETS_FOLDER. See new docs here, too.

By default, the FOLDER target property is used to organize
targets into folders in IDEs that have support for such
organization.

This commit adds "solution folder" support to the Visual
Studio generators. Currently works with versions 7 through
10.

Also, use the new FOLDER property in the ExternalProject
test and in the CMake project itself.
2010-09-03 13:53:22 -04:00
Brad King
a602f87186 Add option CMAKE_USE_SYSTEM_LIBARCHIVE (#10923)
Finish the implementation of the option from the skeleton left by the
initial addition of libarchive.
2010-07-29 10:13:55 -04:00
Brad King
c35bfaa0f7 Merge topic 'use-system-bzip2'
6a24bdf Optionally use system bzip2 library (#10932)
2010-07-20 16:00:52 -04:00
Brad King
a3c2c459b9 Merge topic 'disable_gcc33_onfree_bsd'
3ef273c Poison GCC 3.3 on OpenBSD a bit later
696a0af Disable gcc 33 on OpenBSD because it crashes CPack by default.
2010-07-13 14:46:23 -04:00
Brad King
6a24bdfc4e Optionally use system bzip2 library (#10932)
Add option CMAKE_USE_SYSTEM_BZIP2 and enable it automatically when
CMAKE_USE_SYSTEM_LIBRARIES is on.  While we're at it, remove XMLRPC from
the list of system library options because we no longer provide it in
source.
2010-07-13 10:43:41 -04:00
Brad King
3ef273c568 Poison GCC 3.3 on OpenBSD a bit later
Move lines from commit 696a0af (Disable gcc 33 on OpenBSD because it
crashes CPack by default, 2010-06-25) further down in CMakeLists.txt so
that CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS applies.  This fixes the code for
building with CMake 2.4.
2010-07-06 09:54:36 -04:00
Brad King
eb7e54fe00 Begin post-2.8.2 development 2010-06-28 10:34:04 -04:00
Brad King
f9116d0225 CMake 2.8.2 2010-06-28 10:23:40 -04:00
Bill Hoffman
696a0af220 Disable gcc 33 on OpenBSD because it crashes CPack by default.
Make sure no one tries to use gcc 33 based tools to build CMake.
This is because a cpack test failed with a crash.  The crash
seems to be caused by the stack checking code on by default in
OpenBSD.  The crash is in some stl code.  The problem is fixed
with newer gcc compilers on OpenBSD.
2010-06-25 12:54:16 -04:00
Brad King
e010d1f688 CMake 2.8.2-rc4 2010-06-24 10:48:52 -04:00
Brad King
7f662c5c62 CMake 2.8.2-rc3 2010-06-22 10:08:36 -04:00
Brad King
5b3987bc41 CMake 2.8.2-rc2 2010-06-15 14:47:52 -04:00
Brad King
23a8f31e3f Merge branch 'release' 2010-06-15 14:33:11 -04:00
Brad King
ba95a1f0bd Merge branch 'make_libarchive_use_cmzlib' 2010-06-15 14:06:47 -04:00
Brad King
a12da80c77 CMake 2.8.2-rc1 2010-06-11 14:39:37 -04:00
Bill Hoffman
c74556bdfc Make sure libarchive uses cmzlib and not the system libz if found. 2010-06-11 13:48:23 -04: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
98821a4e35 Merge CMake 2.8.1 to start branchy workflow
Merge the release branch into master to get its version number, tags,
and ChangeLog.  Revert the version on master from 2.9 back to 2.8.
Future releases will be prepared directly in master.

This is the starting point for a branchy workflow based on one described
by the "git help workflows" man page.  New development will be done on
local topic branches.  Topics will be published by merging them into one
of the integration branches:

 maint  = Maintenance of previous release
 master = Preparation of future release
 next   = Development of features ("next" to be merged into master)

In order to bootstrap the topic-based workflow from here, all changes in
master since the 2.8 release branch started will either be included in
the next release or reverted and recreated on a topic branch.
2010-05-17 13:36:19 -04:00
Brad King
0328379411 Report commit hash in CMake development versions
For builds from Git repositories, add "-g<commit>" to the end of the
version number.  If the source tree is modified, append "-dirty".
For builds from CVS checkouts, add "-cvs-<branch>".
2010-04-23 10:01:49 -04:00
Brad King
5bfffd6f29 New version scheme to support branchy workflow
Prepare to switch to the workflow described by "git help workflows".  In
this workflow, the "master" branch is always used to integrate topics
ready for release.  Brand new work merges into a "next" branch instead.
We need a new versioning scheme to work this way because the version on
"master" must always increase.

We no longer use an even/odd minor number to distinguish releases from
development versions.  Since we still support cvs checkout of our source
tree we cannot depend on "git describe" to compute a version number
based on the history graph.  We can use the CCYYMMDD nightly date stamp
to get a monotonically increasing version component.

The new version format is "major.minor.patch.(tweak|date)".  Releases
use a tweak level in the half-open range [0,20000000), which is smaller
than any current or future date.  For tweak=0 we do not show the tweak
component, leaving the format "major.minor.patch" for most releases.
Development versions use date=CCYYMMDD for the tweak level.  The
major.minor.patch part of development versions on "master" always
matches the most recent release.

For example, a first-parent traversal of "master" might see

        v2.8.1      2.8.1.20100422    v2.8.2
           |              |              |
  ----o----o----o----o----o----o----o----o----

Since the date appears in the tweak component, the next release can
increment the patch level (or any more significant component) to be
greater than any version leading to it.  Topic branches not ready for
release are published only on "next" so we know that all versions on
master lead between two releases.
2010-04-23 09:44:23 -04:00
Bill Hoffman
8c89b5e2dc CMake 2.8.1 2010-03-16 13:49:53 -04:00
Bill Hoffman
1274ce5bf3 CMake 2.8.1-rc5
Fix Qt with OpenGL on the Mac.
Add .git .bzr and .hg to the list of default CPack ignore directories.
Bump RC number
Update ChangeLog.manual
2010-03-10 14:41:44 -05:00
David Cole
a61c5ab6e5 Add CMAKE_TESTS_CDASH_SERVER variable and CTestSubmitLargeOutput test.
If defined and non-empty, the value of CMAKE_TESTS_CDASH_SERVER should point
to a CDash server willing to accept submissions for a project named
PublicDashboard. On machines that also run a CDash dashboard, set this
variable to "http://localhost/CDash-trunk-Testing" so that the CMake tests
that submit dashboards do not have to send those submissions over the wire.

The CTestSubmitLargeOutput test runs a dashboard that has a test that produces
very large amount of output on stdout/stderr. Since we do not even want	 to
attempt to send such large output over the wire, this test is off by default
unless the CMAKE_TESTS_CDASH_SERVER server is localhost. This test is expected
to cause a submission failure when sent to CDash. It passes if the submit
results contain error output. It fails if the submit succeeds.

CMAKE_TESTS_CDASH_SERVER: CDash server used by CMake/Tests.

If not defined or "", this variable defaults to the server at
http://www.cdash.org/CDash.

If set explicitly to "NOTFOUND", curl tests and ctest tests that use the
network are skipped.

If set to something starting with "http://localhost/", the CDash is expected
to be an instance of CDash used for CDash testing, pointing to a
cdash4simpletest database. In these cases, the CDash dashboards should be
run first.
2010-03-08 13:25:58 -05:00
Bill Hoffman
2812910950 Increment RC number to RC 4 to match commits on branch. 2010-03-05 13:08:03 -05:00
Brad King
f195a131cc CMake 2.8.1-rc3 2010-02-16 10:35:33 -05:00
Brad King
224dde9085 CMake 2.8.1-rc2 2010-02-11 10:50:43 -05:00
Brad King
dc1d2189ae CMake 2.8.1-rc1 2010-01-28 16:48:20 -05:00
Brad King
9199f7c627 Disable arch-specific try_run in CMake itself
We disallow try_run() when CMAKE_TRY_COMPILE_OSX_ARCHITECTURES is set
because the binary might not be able to run on the host architecture.
This prevents us from creating ppc test binaries on i386 Mac machines
that cause Rosetta install dialogs to appear.
2009-12-14 17:47:14 -05:00
Brad King
6c79c96265 Test 'install' target of CMake itself
We create option CMake_TEST_INSTALL to enable a new CMake.Install test.
It tests running the "make install" target to install CMake itself into
a test directory.  We enable the option by default for dashboard builds.
2009-12-10 10:34:36 -05:00
Brad King
9d823f7847 Apply CMake test-time config to all tests
We configure an EnforceConfig.cmake script to load at CTest time.
Previously we loaded it from Tests/CTestTestfile.cmake, but now we load
it from the top level so it applies to all tests.
2009-12-10 10:33:42 -05:00
Brad King
30f17e2932 Fix installation of CMake itself
CMake 2.8.0 and below use the EXECUTABLE_OUTPUT_PATH setting from the
top-level CMakeLists.txt file to compute the location of the "cmake"
target for the special case of installing cmake over itself.

The commit "Clean up CMake build tree 'bin' directory" moved the setting
of EXECUTABLE_OUTPUT_PATH that affects the "cmake" target into the
Source subdirectory.  This broke the special-case lookup in the top
level.  We fix it by setting EXECUTABLE_OUTPUT_PATH at the end of the
top-level CMakeLists.txt file.  Now that we use add_subdirectory to
process the subdirectories in order, this setting does not affect the
subdirectories.  Thus we fix installation while preserving the clean
build tree 'bin' directory intended by the above-mentioned commit.
2009-12-10 09:10:12 -05:00
Brad King
31e2682015 Use add_subdirectory instead of subdirs in CMake
We switch CMake's own top-level CMakeLists.txt file to use the modern
add_subdirectory() command instead of the old subdirs() command.  This
enables in-order processing.
2009-12-10 09:10:01 -05:00
Brad King
d4ada9d0d5 Clean up CMake build tree 'bin' directory
We re-arrange EXECUTABLE_OUTPUT_PATH settings to avoid putting utility
and test executables in the 'bin' directory of the build tree.  This
makes the directory look like that in the installation tree, except that
on multi-configuration generators we still use a per-config
subdirectory.
2009-12-08 11:44:28 -05:00
Brad King
d4e26b7e88 Remove useless include file filters
The commit "Cleanup regular expressions" removed real include filter
expressions and replaced them with lines like

  INCLUDE_REGULAR_EXPRESSION("^.*$")

that do no filtering.  We simplify the change by removing the lines
altogether.
2009-12-08 11:27:38 -05:00
Brad King
612409e5b0 CMake 2.8.0 2009-11-13 09:07:10 -05:00
Brad King
d2715cae49 CMake 2.8.0-rc7 2009-11-11 13:34:21 -05:00
Brad King
29ebc97c38 CMake 2.8.0-rc6 2009-11-10 09:03:39 -05:00
Bill Hoffman
0106b490de keep libarchive from using a system zlib unless cmake uses one 2009-11-09 14:42:23 -05:00
Brad King
86eac830b3 CMake 2.8.0-rc5 2009-11-03 17:25:20 -05:00
Bill Hoffman
fb51d98562 Switch to using libarchive from libtar for cpack and cmake -E tar
This allows for a built in bzip and zip capability, so external tools
will not be needed for these packagers.  The cmake -E tar xf should be
able to handle all compression types now as well.
2009-10-30 13:10:56 -04:00
Bill Hoffman
b4ae8bad4b RC 4 merge 2009-10-28 12:17:18 -04:00
David Cole
e1458ae4ab Add test of all available CPack generators. Add this test with the goal of increasing coverage of the cpack source code, even/especially when the underlying packager tool is not installed. The test does not fail if there is a cpack problem with a certain generator. I expect some generators will fail on every machine running a CMake dashboard. 2009-10-20 14:31:10 -04:00
Bill Hoffman
ebd0c2d377 Merge in changes for RC 3 2009-10-09 16:11:47 -04:00
Brad King
3b7e46b27f Fix permsissions of installed SquishRunTestCase.sh
This commit fixes permissions of Modules/SquishRunTestCase.sh after
installation.  Previously install() removed executable permissions.

Patch from Modestas Vainius.  See issue #9659.
2009-10-05 10:28:37 -04:00
Bill Hoffman
f9687e328f Merge in changes to CMake-2-8 RC 2 2009-10-01 17:21:28 -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
832f0a88f0 Install KWSys Copyright.txt as documentation
This commit adds KWSys configuration option KWSYS_INSTALL_DOC_DIR to
specify the directory for installation of documentation.  We use it to
put the KWSys Copyright.txt file at the location

  ${KWSYS_INSTALL_DOC_DIR}/${KWSYS_NAMESPACE}/Copyright.txt

in the project installation tree.  This helps containing projects meet
the license requirement to distribute the copyright and license with
binary forms.
2009-09-28 11:36:54 -04:00
Brad King
cb2380fb6c Install Copyright.txt 2009-09-28 11:35:52 -04:00
Bill Hoffman
b54aa80e5a CVS is now 2.9 2009-09-24 16:04:14 -04:00
Bill Hoffman
5e7843bb9e Add RC value of 1 2009-09-24 16:01:33 -04:00
Bill Hoffman
574d0894b4 change version to RC 0 2009-09-24 15:56:09 -04:00
Bill Hoffman
1554265aa6 Remove CMakeSetup. Long live cmake-gui, start building Qt now. 2009-09-03 17:01:07 -04:00
Brad King
36bb624907 Fix installation when built by CMake 2.4
CMake 2.4 generates old-style cmake_install.cmake code including calls
to the file(INSTALL) command with the COMPONENTS argument.  We need to
set CMAKE_INSTALL_SELF_2_4 for the whole install tree to prevent the
command from complaining in this special case.  Previously this was
needed only in the QtDialog directory, but now it is needed in the
entire tree.
2009-07-31 08:27:36 -04:00
Brad King
7b299306fd ENH: Allow empty endif() and such with CMake 2.4
This allows us to use empty endif() and similar block terminators when
building with CMake 2.4.  It is allowed by default with 2.6 already.
2009-07-24 17:33:11 -04:00
Brad King
071ce33ec9 ENH: Install all Modules and Templates
This removes the file-wise installation rules for Modules and Templates
and instead installs the whole directories.  This approach is much less
error-prone.  The old approach was left from before CMake had the
install(DIRECTORY) command.
2009-07-24 13:17:41 -04:00
Brad King
b8b749aced COMP: We now require CMake 2.4.5 or higher to build
We use the CMakeDependentOption module unconditionally, so we must
require a version of CMake new enough to provide it.
2009-06-11 15:18:51 -04:00
Brad King
8f5af6172a ENH: Disable the xmlrpc drop method by default
We've chosen to drop our default dependence on xmlrpc.  Thus we disable
the corresponding CTest submission method and remove the sources for
building xmlrpc locally.  Users can re-enable the method by setting the
CTEST_USE_XMLRPC option to use a system-installed xmlrpc library.
2009-06-11 11:24:56 -04:00
Brad King
8ddfd1ed7f ENH: Remove option to build cmcurl-7.19.0
This version of curl was added experimentally but does not address the
problem we were hoping it fixed (an occasional upload hang).  Importing
a new curl can wait until the problem is fully diagnosed and addressed.
2009-06-11 09:04:26 -04:00
Brad King
f68c6af51e ENH: Simplify decision to use system libraries
Previously we disallowed use of system libraries if FindXMLRPC.cmake was
not available.  Now that CMake 2.4 is required to build, the module is
always available.  This change simplifies the logic accordingly.
2009-06-11 09:04:04 -04:00
Bill Hoffman
5783d5aab1 ENH: allow for shared build of libcurl and fix build with openssl option (ssl tested on linux and windows 2009-04-10 11:59:31 -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
6cf99d7bea ENH: check in ability to build with new curl -f -DCMAKE_USE_NEW_CURL is set 2008-09-29 15:47:46 -04:00
Bill Hoffman
45ce11a075 ENH: install the mac application bundle into /Applications directly with no enclosing folder 2008-04-04 16:02:50 -04:00
Bill Hoffman
0780cf16d3 ENH: forgot to check this in, need to change the version in CVS 2008-03-18 21:22:26 -04:00
Brad King
33c84b50e9 ENH: Set CMake Policy CMP0003 to NEW behavior to build without warnings with the upcoming CMake 2.6 release. 2008-03-17 16:22:28 -04:00
Ken Martin
efb309fe29 BUG: undo accidental commit 2008-03-04 09:10:05 -05:00
Brad King
16a415dd0c ENH: Simplify tests for building CMake itself with rpath support now that 2.4 is required to build. 2008-03-02 14:35:13 -05:00
Ken Martin
d49ef18f8a ENH: add first cut and policies still need to add the doc support 2008-03-01 15:20:35 -05:00
Bill Hoffman
a3781c85fc ENH: install seems to be working for cmake-gui 2008-02-18 15:50:37 -05:00
Bill Hoffman
0dbc430641 ENH: require 2.4 to build cmake 2008-02-18 11:10:39 -05:00
Bill Hoffman
22927ede1e ENH: support for cpack and install of cmake-gui as mac app bundle 2008-02-16 13:05:03 -05:00
Alexander Neundorf
e3c84cf5a6 ENH: add support for the Syllable OS (http://www.syllable.org)
major issues:
-access() doesn't return false for an empty string (#ifdefed in cmake)
-dlopen() doesn't return 0 on failure (#ifdefed in cmake and fixed now in Syllable)
-the kwsys and Bootstrap tests fail with timeout due to the fact that I'm doing all that in qemu, which is quite slow
-RPATH is now supported, so without modifying the test adapting DLL_PATH in Syllable is required for the tests to succeed
-the Plugin test fails with an undefined reference to example_exe_function() in example_mod_1, it seems this isn't supported under Syllable

Alex
2007-11-23 20:45:49 -05:00
Brad King
70adbcee0d BUG: Fixed construction of CMake_VERSION_DATE to use KWSys DateStamp feature now that cmVersion.cxx is not updated nightly anymore. 2007-11-21 12:55:24 -05:00
Ken Martin
8eae7fddf2 ENH: move CMAKE_STRICT option to the top 2007-11-06 14:14:18 -05:00
Alexander Neundorf
c0108d1e07 COMP: use RPATH is building QtDialog and the Qt libs are not in /lib or
/usr/lib (same logic as for ccmake)

Alex
2007-11-05 18:06:02 -05:00
Alexander Neundorf
4ee1ee1bd0 ENH: add support for the Portland Compiler to CMake, can build cmake and the tests pass (except the wrapping tests, which fail to link to the g++-compiled Qt)
Alex
2007-09-17 15:55:17 -04:00
Bill Hoffman
2af2cb0a09 ENH: remove debug print 2007-09-09 13:18:22 -04:00
Bill Hoffman
895a105a85 ENH: MATH is not in bootstrap cmake 2007-09-07 17:00:15 -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
Brad King
b8ac3158ce ENH: Create CTestCustom.cmake instead of CTestCustom.ctest. Create the old file to include the new one for compatibility. This should prevent the long delays of CTest traversing the whole tree looking for CTestCustom.ctest files. 2007-08-31 14:51:09 -04:00
Alexander Neundorf
a056cffc5b COMP: enable RPATH if any of the CMAKE_USE_SYSTEM_XXX variables is enabled
or if the curses library is neither in /lib nor in /usr/lib . This makes it
build on NetBSD. For more comments see CMakeLists.txt

Alex
2007-08-28 11:02:24 -04:00
Alexander Neundorf
58b0e31784 COMP: ccmake requires ncurses, according to Berk and since it doesn't build
on NetBSD where there are separate curses and ncurses libraries, and where
the curses library is found, which doesn't work for ccmake while the
existing ncurses library would work.
With this change it should be possible to test whether the found curses lib
provides ncurses functionality.

Alex
2007-08-15 09:43:01 -04:00
Bill Hoffman
e949f4afa1 ENH: make DartLocal.conf part of project 2007-06-29 11:18:08 -04:00
Bill Hoffman
2acd7c07ba ENH: remove old style release stuff 2007-06-22 11:31:35 -04:00
Bill Hoffman
75ad21b2ad ENH: revert to SUBDIRS to make sure cmake can be built with 2.2 2007-05-13 09:11:58 -04:00