Commit Graph

16342 Commits

Author SHA1 Message Date
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
David Cole fc144924a0 VS10: Fix problems with InstallRequiredSystemLibraries.
Thanks to "J Decker" on the CMake mailing list for pointing out
that one of the MSVC10_CRT_DIR settings was using "VC90" instead
of "VC100".

After fixing that, I added the code to generate a CMake warning
if one of the files we think is "required" does not exist.

Then, with VS10, there were several other problems that the
warning revealed:

 - MSVC10_REDIST_DIR needed more PATHS to be found correctly

 - the 64-bit directory is named "x64" now, not "amd64" as in
   previous VS versions

 - manifest files no longer exist as separate files in the
   redist subdirectories (they must be built-in as resources
   to the dlls...?)
2011-01-13 13:08:59 -05:00
Brad King 809ef3086d Xcode: Make generation depend on all input directories
Previously the Xcode generator would rerun CMake only if input file
dependencies in the top-level directory changed.  Teach it to depend on
input files from all directories.  Other generators already do this.

Reported-by: Johan Björk <phb@spotify.com>
2011-01-13 12:07:23 -05:00
KWSys Robot f5b43f59de KWSys Nightly Date Stamp 2011-01-13 00:10:58 -05:00
David Cole 16438d0f4a Update script with new machine name 2011-01-12 14:53:24 -05:00
Brad King cf5ad18340 libarchive: Fix major() check for LSB 4.0 (#11648)
The LSB header files define major() as a macro but if it is ever called
the macro references symbols not available at link time.  Improve the
test for major() to actually call the macro and try to link.  This
approach is based on upstream libarchive SVN commit 2866 which fixed
libarchive issue 125, submitted in response to CMake issue #11648.

Inspired-by: Tim Kientzle <kientzle@freebsd.org>
2011-01-12 13:52:14 -05:00
David Cole 799efb4a2c CMake 2.8.4-rc1 2011-01-12 09:32:11 -05:00
Brad King 840f9c055c Document CheckSymbolExists more clearly (#11685)
The check works for macros, functions, and variables, but not for types
or enumeration values.  Clearly describe the behavior of the check with
respect to each symbol type.
2011-01-12 08:58:19 -05:00
Brad King 4da2a5687b Document try_compile behavior more clearly (#11688)
Explicitly state up front that the source-file form of the command links
an executable and expects a 'main' to be defined.  While at it, update
the command signature documentation to use a syntax more consistent with
other commands.  Also tweak some wording.
2011-01-12 08:13:15 -05:00
KWSys Robot 90e9b65f10 KWSys Nightly Date Stamp 2011-01-12 00:10:52 -05:00
David Cole 66d9cd8351 Xcode: Disable implicit make rules in custom rules makefiles.
With apologies to the suggester for not accenting the surname
vowel properly.

Suggested-By: Johan Bjork
2011-01-11 17:57:55 -05:00
Brad King 729db484ef Fix ArgumentExpansion test expected results
Teach the ArgumentExpansion test to expect flattened lists as has always
been the case in the CMake language.  Now that the test should pass
enable the failure regex even when CMAKE_STRICT is not on.  Replace the
reference to the old ArgumentExpansion test behavior in the workaround
comment in cmMakefile::TryCompile with a full inline explanation.
2011-01-11 17:10:28 -05:00
David Cole cabc407912 CFBundle Test: Add PATHS for finding Rez (#11295)
Some older dashboard machines do not have Rez in /usr/bin
like us modern folk. But most of them will have it in
/Developer/Tools... So make sure we look there.
2011-01-11 16:48:37 -05:00
Brad King 28a0403c34 Merge topic 'resolve/python-versions/policy-CMP0017'
784d5ce Merge branch 'policy-CMP0017' into resolve/python-versions/policy-CMP0017
2d3594b Python additional version support, bug #10279.
2011-01-11 15:59:34 -05:00
Brad King 784d5ce0f8 Merge branch 'policy-CMP0017' into resolve/python-versions/policy-CMP0017
Conflicts:
	Modules/FindPythonInterp.cmake
2011-01-11 15:56:59 -05:00
Brad King 46ed6c65a8 Merge topic 'improve-findgit'
ed2b314 Add PATH_SUFFIXES for finding git.
2011-01-11 15:53:43 -05:00
Brad King 50e9e7d345 Merge topic 'doc-LOCATION-property-undefined-behavior'
5734497 Document reading LOCATION_<CONFIG> early as undefined (#11671)
7ffe6d7 Document reading LOCATION early as undefined (#11671)
2011-01-11 15:53:35 -05:00
Brad King 3ef8929ee6 Merge topic 'ctest-launch-empty-rule'
6228abe CTest: Teach launcher to ignore empty/no-op make commands
2011-01-11 15:53:28 -05:00
Brad King ad543dcf09 Merge topic 'archive-rule-variables'
c2d73c9 Allow platform files to set large archive rules (#11674)
2011-01-11 15:53:06 -05:00
Brad King 7decc70eea Merge topic 'build_nightly_from_nightly_branch'
faf1c1e Change the nightly tests to build from the nightly branch and not next.
2011-01-11 15:52:52 -05:00
Brad King 9a81f0dd0c Merge topic 'ep-fix-substitutions'
d67a513 ExternalProject: Replace location tags in CMAKE_CACHE_ARGS
d7a87b5 Merge branch 'ep-log-output-under-vs' into ep-fix-substitutions
2011-01-11 15:52:36 -05:00
Brad King c39abc2411 Merge topic 'ep-log-output-under-vs'
44aff73 ExternalProject: Avoid bleed-through output when logging.
2011-01-11 15:52:30 -05:00
Brad King 764015c284 Merge topic 'policy-CMP0017'
ce28737 Remove usage of CMAKE_CURRENT_LIST_DIR now that we have CMP0017
7db8db5 Improve documentation and messages for the new CMP0017
db44848 Prefer files from CMAKE_ROOT when including from CMAKE_ROOT
1e69c6f Merge branch 'user-policy-defaults' into policy-CMP0017
65a0a2a Merge branch 'include-command-whitespace' into policy-CMP0017
2011-01-11 15:52:13 -05:00
Brad King d4ed72e3bb Merge topic 'user-policy-defaults'
a364daf Allow users to specify defaults for unset policies
8e45c11 Fix indentation in cmPolicies::ApplyPolicyVersion()
2011-01-11 15:52:07 -05:00
Brad King 4ab987b7cc Merge topic 'include-command-whitespace'
75a5221 Remove trailing whitespace
2011-01-11 15:51:54 -05:00
Brad King 13cc4bb628 Merge topic 'fix_source_groups_for_custom_targets_vs10'
7bbab25 Add support for source files in custom targets for VS 10 (Bug#11330).
2011-01-11 15:51:46 -05:00
Brad King f04bbdf1d4 Merge topic 'fix-install-reqd-sys-libs'
753b429 InstallRequiredSystemLibraries debug-only (#11141)
492cd84 Add variable for InstallRequiredSystemLibraries dir (#11140)
dd5c592 Fix incorrect variable documentation (#11127)
2011-01-11 15:51:35 -05:00
Brad King af94289f5a Merge topic 'fix-11461-add-midl-vs10'
e33cbda VSMidl Test: Use correct include_directories with VS6 (#11461)
262da91 Prohibit space in HOME value for VSMidl test.
13caaa3 VS10: Finish Midl support (#11461)
2011-01-11 15:51:08 -05:00
Brad King c73babf5d2 Merge topic 'vs-Fortran-only-DLL'
f661b95 VS: Fix linking of Fortran-only DLL projects (#10803)
2011-01-11 15:50:13 -05:00
Brad King 984ca06a8e Merge topic 'improve-build-error-detection'
89eb4bf Improve build error detection.
2011-01-11 15:49:29 -05:00
Brad King 18180cdb50 Merge topic 'linux-standard-base'
dde0c89 ccmake: Use LSB 4.0 getmaxyx conditionally
a3de30e ccmake: Use LSB 4.0 curses API conditionally
7d691ca ccmake: Port for LSB 4.0 (#11648)
2011-01-11 15:49:15 -05:00
Brad King 333e707d95 Merge topic 'fix-test-output-truncation'
e73bf1c CTest: Do not truncate UTF-8 test output too early (#10656)
2011-01-11 15:49:04 -05:00
Brad King b8e5d7b49c Merge topic 'qt4-find-plugins'
e6bb8c7 Add support for using static/dynamic Qt plugins.
2011-01-11 15:48:44 -05:00
Brad King b524f864ca Merge topic 'fix-9148-cpack-nsis-installer-root'
5a9e8e7 CPack: Add CPACK_NSIS_INSTALL_ROOT variable (#9148)
2011-01-11 15:48:34 -05:00
Brad King 3272d2d96f Merge topic 'fix-10644-cpack-menu-links'
1bbe4e6 CPack: Detect more URLs in CPACK_NSIS_MENU_LINKS (#10644)
2011-01-11 15:48:24 -05:00
Brad King 7ebfa8218b Merge topic 'cpack-nsis-changes'
bee514c Add CPack NSIS MUI_FINISHPAGE_RUN support (#11144)
702c8f8 Add CPACK_NSIS_EXECUTABLES_DIRECTORY (#7828)
fec3232 Allow NSIS package or uninstall icon (#11143)
2011-01-11 15:48:18 -05:00
David Cole 5a9e8e701e CPack: Add CPACK_NSIS_INSTALL_ROOT variable (#9148)
Control the root directory of the default directory presented to
the end user of an NSIS installer by a CPack variable.

Previously, the value used in the NSIS script was $PROGRAMFILES,
which is equivalent to the "ProgramFiles" environment variable.
That default value is still the same, but now a project may
override the value by setting this new variable.
2011-01-11 15:42:42 -05:00
David Cole 42b26ee5db ExternalProject Test: Increase test timeout value
Previously, it was hard-coded at 1000 seconds. Now it uses
the value of CMAKE_LONG_TEST_TIMEOUT, which has a minimum
value of 1500 seconds, but might have a longer value depending
on the CTEST_TEST_TIMEOUT value of the driving dashboard.

This should help avoid test failures on overloaded dashboard
machines where it really does take that long to finish the
test successfully.
2011-01-11 15:24:50 -05:00
Richard Bateman 5457b8254c Add support for CFBundle targets on the Mac (#11295)
This commit enables building, for example, plugin bundles
to be loaded by web browsers.
2011-01-11 12:54:44 -05:00
Brad King 19cb2ca47f Disable SubDirSpaces parens with GNU Make 3.82 (#11654)
GNU Make 3.82 incorrectly parses make dependencies involving parentheses
in path names.  See related upstream issue:

  http://savannah.gnu.org/bugs/?30612

Skip testing the ()-named subdirectory.
2011-01-11 10:01:30 -05:00
KWSys Robot caa45a5f81 KWSys Nightly Date Stamp 2011-01-11 00:10:07 -05:00
Marcus D. Hanwell 2d3594b1bb Python additional version support, bug #10279.
Introduced an additional variable, Python_ADDITIONAL_VERSIONS, to both
FindPythonLibs and FindPythonInterp. Changed FindPythonInterp to loop
over versions rather than hardcoding all versions (more like libs).
2011-01-10 13:44:45 -05:00
Brad King 57344977f5 Document reading LOCATION_<CONFIG> early as undefined (#11671)
Although the LOCATION property is for compatibility with CMake 2.4, the
LOCATION_<CONFIG> property is modern.  However, if a project reads it
and sets location-altering properties later the behavior is undefined.
See parent commit for details.
2011-01-10 12:07:32 -05:00
Brad King 7ffe6d77da Document reading LOCATION early as undefined (#11671)
Reading the LOCATION target property currently locks down the result and
ignores any later changes to properties that affect it.  This may or may
not be expected and may or may not be the behavior in earlier versions
of CMake.  The property is documented as provided only for compatibility
with CMake 2.4 and alternative interfaces are now available for all
originally envisioned use cases.  We want to discourage its use without
outright deprecating it.  Add documentation to explicitly state that
reading the property before other properties are set is undefined.
2011-01-10 10:46:15 -05:00
Chuck Atkins 6228abed9b CTest: Teach launcher to ignore empty/no-op make commands 2011-01-10 10:17:13 -05:00
Brad King c2d73c938a Allow platform files to set large archive rules (#11674)
Commit aaa88d33 (Build large archives incrementally, 2008-08-04)
hard-coded rules to create static archives incrementally in each
language information file.  Set each rule conditionally to allow
compiler and platform information files to override the language
default rules.

Inspired-by: Harald Pohl <pohl.h@eppendorf.de>
2011-01-10 09:58:55 -05:00
Brad King bace6500a3 bootstrap: Clarify --init flag documentation (#11431) 2011-01-10 09:38:42 -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
David Cole 6754b26bf0 KWSys: Fix WOW64 registry mode on Windows 2000 (#10759)
The previous commit did not compile with mingw gcc.
Use the Windows type FARPROC instead of void* for
the local variable.
2011-01-10 08:40:03 -05:00