Commit Graph

212 Commits

Author SHA1 Message Date
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 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