Commit Graph

11229 Commits

Author SHA1 Message Date
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
KWSys Robot caa45a5f81 KWSys Nightly Date Stamp 2011-01-11 00:10:07 -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
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
KWSys Robot a300edab41 KWSys Nightly Date Stamp 2011-01-10 00:10:47 -05:00
KWSys Robot 8dba266a55 KWSys Nightly Date Stamp 2011-01-09 00:10:08 -05:00
KWSys Robot 5aa0fed854 KWSys Nightly Date Stamp 2011-01-08 00:11:03 -05:00
David Cole 1bbe4e6917 CPack: Detect more URLs in CPACK_NSIS_MENU_LINKS (#10644)
Previously, only strings containing "http:" qualified as
URLs when found in CPACK_NSIS_MENU_LINKS. Now, we use a
regex to detect strings beginning with any of the following:

  ftp://
  ftps://
  http://
  https://
  news://
  mailto:

This commit also moves the caller of CreateMenuLinks outside
the "if (cpackPackageExecutables)" block, allowing clients to
use CPACK_NSIS_MENU_LINKS without also having CPACK_PACKAGE_EXECUTABLES
defined. That bit of this commit fixes the remainder of the
issue described in http://public.kitware.com/Bug/view.php?id=7828

Also, added a set(CPACK_NSIS_MENU_LINKS ...) to the CPackComponents
test to enable verifying that all of this actually works.
2011-01-07 14:24:04 -05:00
David Cole 4b05a21302 Fix WOW64 registry mode on Windows 2000 (#10759)
CMake fails to find any registry paths on Windows 2000: according to regmon
it fails with an access denied error. I double checked all the access rights
and they are fine. After checking the access modes on MSDN I found that it
says KEY_WOW64_32KEY / KEY_WOW64_64KEY are not supported on Windows 2000.
CMake does not check if the current system supports Wow64 before applying
these flags.

This commit adds a check for IsWow64Process in kernel32.dll before adding
these flags.

Author: Axel Gembe <ago@bastart.eu.org>
Signed-off-by: Axel Gembe <ago@bastart.eu.org>
2011-01-07 07:40:07 -05:00
KWSys Robot fd4875b4c0 KWSys Nightly Date Stamp 2011-01-07 00:12:08 -05:00
Bill Hoffman 7bbab25961 Add support for source files in custom targets for VS 10 (Bug#11330).
In VS10, CMake was not adding the source files that were in the SOURCES
list for add_custom_target.  This patch fixes that issue.
2011-01-06 16:48:46 -05:00
Mike McQuaid bee514c361 Add CPack NSIS MUI_FINISHPAGE_RUN support (#11144)
MUI_FINISHPAGE_RUN is frequently used with NSIS and provides a checkbox
on the finish page of an installer which specifies whether the specified
executable should be run when the installer exits. This commit adds support
for this setting in CPack.
2011-01-06 16:21:36 -05:00
Mike McQuaid 702c8f8ba7 Add CPACK_NSIS_EXECUTABLES_DIRECTORY (#7828)
NSIS installers default to assuming the executables exist in a
directory named "bin" under the installation directory. As this
isn't usual for Windows programs, the addition of this variable
allows the customization of this directory and links still to be
created correctly.
2011-01-06 16:21:23 -05:00
Mike McQuaid fec32328b1 Allow NSIS package or uninstall icon (#11143)
Previously both CPACK_NSIS_MUI_ICON and CPACK_NSIS_MUI_UNIICON
needed to be set for either to take effect. This commit allows
either to be set rather than requiring both as users may well
want to e.g. use a default uninstall icon but a custom install
icon.
2011-01-06 15:14:38 -05:00
Brian Bassett f661b95333 VS: Fix linking of Fortran-only DLL projects (#10803)
Emit the LinkDLL attribute of VFLinkerTool for Fortran DLLs.
2011-01-06 08:06:30 -05:00
KWSys Robot 8e6ad8ce72 KWSys Nightly Date Stamp 2011-01-06 00:10:47 -05:00
David Cole 89eb4bf356 Improve build error detection.
Some were missed recently on a failed dashboard build
of ccmake on an HP-UX machine.
2011-01-05 16:13:55 -05:00
David Cole 99ddf6a12d KWSys: Retrieve QNX specific memory and processor info (#11329)
Author: Rolf Eike Beer <eike@sf-mail.de>  2010-10-18 12:03:39
2011-01-05 15:40:03 -05:00
David Cole 1c2a9b8140 KWSys: Fix CPU speed calculations (#9963)
To get from Hz to MHz the factor is 10^6, not 2^20.

Author: Rolf Eike Beer <eike@sf-mail.de>  2010-10-24 06:31:11
2011-01-05 15:40:02 -05:00
Brad King dde0c89cfc ccmake: Use LSB 4.0 getmaxyx conditionally
Use of 'getmaxyx' works on LSB but does not seem portable to other
curses versions.
2011-01-05 11:07:24 -05:00
David Cole 13caaa3eb7 VS10: Finish Midl support (#11461)
This commit addresses all of the following:
  http://public.kitware.com/Bug/view.php?id=8165
  http://public.kitware.com/Bug/view.php?id=10687
  http://public.kitware.com/Bug/view.php?id=11311
  http://public.kitware.com/Bug/view.php?id=11461

With this commit, the midl support for VS10 is as
complete as midl support ever was for VS9 and earlier.
The VSMidl test should run on all Visual Studio
generator based dashboards.

CMake no longer sends C++ compiler /D flag values
to the midl compiler in Visual Studio generated
projects. I think if we want to add that in the
future, we should add a way to pass midl compiler
specific flags and perhaps an optional way to add
in the C++ definitions, too. For now, not sending
them along gets past the immediate problem wherein
idl files in a CMake VS generated project just didn't
work at all.

The VSMidl test added in this commit was inspired by
the patch attached to 8165.

The test had to be modified such that it will run in
a directory whose name contains no spaces. There is an
existing bug filed against VS10's midl asking Microsoft
to fix that problem. But for now, the test added in this
commit works by copying the source directory to a location
that avoids spaces in the directory names.

Inspired-By: Robert Lenhardt
2011-01-05 10:37:14 -05:00
KWSys Robot 00c88bbcd8 KWSys Nightly Date Stamp 2011-01-05 00:10:21 -05:00
Brad King d04e10dd7e Merge topic 'negative-test-costs'
6b0c7de Support explicitly set test costs in non-parallel testing.
2011-01-04 15:46:16 -05:00
Brad King 70950edde0 Merge topic 'honor-explicit-zero-timeout'
51bb493 Test TIMEOUT property explicitly set to zero should be honored
2011-01-04 15:46:07 -05:00
Brad King 45b61209f9 Merge topic 'vs-force-multiple-include'
b29eadd Map multiple /FI flags for VS < 10 (#11649)
2011-01-04 15:45:51 -05:00
Brad King 0de5db7554 Merge topic 'fix-warning-char-string-constant'
0bb22cf Avoid passing string literal to char* type
2011-01-04 15:44:11 -05:00
Brad King 3556ab9f72 Merge topic 'add_support_for_windres'
971692c Build enable_language command during bootstrap
960ace1 Add testing for windows resources for mingw/msys/cygwin and remove for watcom.
060d6e8 Add support for windres to cygwin.
b2f308c Add support for windows resources with mingw/msys.
2011-01-04 15:44:07 -05:00
Brad King f1d7a5600f Merge topic 'add_preprocessor_def_vs2010_resources'
8c7b19d Only run resource test for MSVC compilers.
753e208 Disable incremental testing for this test, it crashes vs9 linker.
16e7d4b Add flags to resource builds on vs 2010 with a test.
2011-01-04 15:44:01 -05:00
Brad King e73bf1c384 CTest: Do not truncate UTF-8 test output too early (#10656)
Since commit e4beefeb (CTest: Do not munge UTF-8 output in XML files,
2009-12-08) we validate UTF-8 encoding of build and test output as it is
written to XML files.  However, in cmCTestTestHandler::CleanTestOutput
we still processed test output one byte at a time and did not recognize
multi-byte UTF-8 characters.  Presence of such characters caused early
truncation.

Teach CleanTestOutput to truncate test output at the limit but without
cutting it in the middle of a multi-byte encoding.  Also, stop avoiding
truncation in the middle of an XML tag like "<MyElement>" because the
'<' and '>' will be properly escaped in the generated XML anyway.
2011-01-04 13:20:49 -05:00
Brad King a3de30eed9 ccmake: Use LSB 4.0 curses API conditionally
Use of 'attr_t' and 'wattr_get' works on LSB but does not seem
portable to other curses versions.
2011-01-04 08:52:50 -05:00
Alex Neundorf 7db8db5b72 Improve documentation and messages for the new CMP0017
This patch incorporates the comments from Brad:
-some improvements to the documentation of CMP0017
-make the test QUIETLY search for zlib
2011-01-04 08:19:33 -05:00
Alex Neundorf db44848f44 Prefer files from CMAKE_ROOT when including from CMAKE_ROOT
This patch makes include() and find_package() prefer cmake files
located in CMAKE_ROOT over those in CMAKE_MODULE_PATH.
This makes sure that the including file gets that file included
which it expects, i.e. the one from cmake with which it was tested.
It only changes behaviour when such an included file exists both
in CMAKE_MODULE_PATH and in CMAKE_ROOT.
This comes together with a new policy CMP0017, with default
behaviour it behaves as it always did, but warns.
With NEW behaviour it includes the file from CMAKE_ROOT
instead from CMAKE_MODULE_PATH. This fixes (if CMP0017 is set)
building KDE 4.5 with cmake >= 2.8.3.
Also a basic test for this policy in included.
2011-01-04 08:06:20 -05:00
Brad King 1e69c6f37f Merge branch 'user-policy-defaults' into policy-CMP0017 2011-01-04 08:04:29 -05:00
Alex Neundorf 75a522110d Remove trailing whitespace 2011-01-04 07:59:24 -05:00
Brad King a364daf1fd Allow users to specify defaults for unset policies
Check CMAKE_POLICY_DEFAULT_CMP<NNNN> for a default when policy CMP<NNNN>
would otherwise be left unset.  This allows users to set policies on the
command line when the project does not set them.  One may do this to
quiet warnings or test whether a project will build with new behavior
without modifying code.  There may also be cases when users want to
build an existing project release using new behavior for policies
unknown to the project at the time of the release.
2011-01-04 07:46:10 -05:00
Alex Neundorf 8e45c1128c Fix indentation in cmPolicies::ApplyPolicyVersion()
Alex
2011-01-04 07:42:49 -05:00
KWSys Robot c59ed29552 KWSys Nightly Date Stamp 2011-01-04 00:11:01 -05:00
Zach Mullen 51bb493574 Test TIMEOUT property explicitly set to zero should be honored 2011-01-03 14:41:25 -05:00
Craig Scott 7d691cab9b ccmake: Port for LSB 4.0 (#11648)
Use getmaxyx instead of getmax[xy].  Avoid using getattrs.
2011-01-03 12:15:41 -05:00
Brad King a67fd72659 KWSys: Remove useless include <sys/procfs.h> (#11648)
The header was included only under "#ifdef __linux", but not all Linux
distributions provide the header.  SystemInformation uses no symbols
from this header, so do not include it.
2011-01-03 12:03:03 -05:00
Zach Mullen 6b0c7ded57 Support explicitly set test costs in non-parallel testing. 2011-01-03 11:25:46 -05:00
Brad King b29eadd8f3 Map multiple /FI flags for VS < 10 (#11649)
The /FI flag may be repeated so the flag table entry needs to be marked
with SemicolonAppendable.  This was already the case for VS 10.
2011-01-03 10:02:16 -05:00
KWSys Robot edff9207ed KWSys Nightly Date Stamp 2011-01-03 00:10:09 -05:00
KWSys Robot 4e0681abd7 KWSys Nightly Date Stamp 2011-01-02 00:10:07 -05:00
KWSys Robot 6fbdac97d5 KWSys Nightly Date Stamp 2011-01-01 00:10:48 -05:00
KWSys Robot 60fa5bac57 KWSys Nightly Date Stamp 2010-12-31 00:10:46 -05:00
Brad King 971692c055 Build enable_language command during bootstrap
Commit 060d6e88 (Add support for windres to cygwin, 2010-12-23) and
commit b2f308c8 (Add support for windows resources with mingw/msys,
2010-12-22) introduced enable_language(RC) for the first time in a
platform file processed by a bootstrap-built cmake.
2010-12-30 12:59:57 -05:00
KWSys Robot 91c06e9022 KWSys Nightly Date Stamp 2010-12-30 00:11:02 -05:00
KWSys Robot 5e9d8a2952 KWSys Nightly Date Stamp 2010-12-29 00:10:40 -05:00
Brad King 726861ce69 Merge topic 'FixCrashInEclipseGenerator'
d18c8d6 Fix crash in Eclipse generator with empty project (#11616)
2010-12-28 15:26:15 -05:00
Brad King 97c5171d6c Merge topic 'dev/add_test-working-directory'
667a90a Fix sentence break in add_test documentation
96309fc Make TestsWorkingDirectory test a C file
a4a5e37 Use iostream to make Borland happy
cfe53cd Fully specify the path to old-signature add_test
017d4e9 Group adding tests with its properties
561cc33 Only test the default cwd with Makefiles
d87bae7 Simplify the _default_cwd derivation
992c74f Use --><-- markers to denote the path
5249551 Flip slashes around on Windows
0a014da Add ctype.h include for toupper()
af12f83 Fix header includes for C++ and Visual Studio
5597aa2 Rename the project to match the test
9bf4165 Add tests for WORKING_DIRECTORY arg to add_test
42de5d0 Add WORKING_DIRECTORY argument to add_test
7679f9f Rename WorkingDirectory test
d95f817 Add the WORKING_DIRECTORY property to tests
2010-12-28 15:25:49 -05:00
Brad King 0bb22cfabe Avoid passing string literal to char* type 2010-12-28 09:57:35 -05:00
Brad King 75191fa312 KWSys: Avoid passing string literal as char*
Pass the lpClass argument of RegCreateKeyEx as a real char[] instead of
a string literal.  At least one platform declares the argument as char*
instead of "const char*".
2010-12-28 09:57:09 -05:00
KWSys Robot 428e0e0ab9 KWSys Nightly Date Stamp 2010-12-28 00:10:42 -05:00
KWSys Robot 0ccc5bcec6 KWSys Nightly Date Stamp 2010-12-27 00:10:41 -05:00
KWSys Robot 0cbf312e89 KWSys Nightly Date Stamp 2010-12-26 00:10:11 -05:00
KWSys Robot b1fdebc14c KWSys Nightly Date Stamp 2010-12-25 00:10:44 -05:00
KWSys Robot 7159435843 KWSys Nightly Date Stamp 2010-12-24 00:10:04 -05:00
Bill Hoffman b2f308c8f9 Add support for windows resources with mingw/msys. 2010-12-23 17:04:49 -05:00
KWSys Robot 97e64e8607 KWSys Nightly Date Stamp 2010-12-23 00:10:37 -05:00
KWSys Robot 104cd4acd8 KWSys Nightly Date Stamp 2010-12-22 00:10:03 -05:00
Alex Neundorf d18c8d6ad7 Fix crash in Eclipse generator with empty project (#11616)
If there was no language at all enabled, CMAKE_BUILD_TYPE was empty,
which was not expected, and made the generator crash.

Alex
2010-12-21 21:59:39 +01:00
Brad King 667a90a084 Fix sentence break in add_test documentation
Commit 42de5d02 (Add WORKING_DIRECTORY argument to add_test, 2010-12-16)
added a new sentence to a paragraph without separating it by "  " from
the previous sentence.  Add the missing spaces.
2010-12-21 14:15:05 -05:00
Brad King 9f46051490 Merge topic 'cygwin'
85c0a69 Cygwin: Do not define 'WIN32' (#10122)
62c6d2d Merge branch 'cmake_--system-information_min-version' into cygwin
72db20f Merge branch 'tests-if-CYGWIN' into cygwin
5adef16 Merge branch 'cygwin-module-prefix' into cygwin
cbc3258 Merge branch 'try-compile-min-version' into cygwin
2010-12-21 14:06:32 -05:00
Brad King 31b0657e7d Merge topic 'custom-command-generator-expressions'
4499d50 Mark CustomCommand test perconfig.out as SYMBOLIC
f0cdb60 Introduce "generator expression" syntax to custom commands (#11209)
4749e4c Record set of targets used in cmGeneratorExpression
ef9e9de Optionally suppress errors in cmGeneratorExpression
45e1953 Factor per-config sample targets out of 'Testing' test
4091bca Factor generator expression docs out of add_test
bfb7288 Record backtrace in cmCustomCommand
2010-12-21 14:03:24 -05:00
Brad King 533f5a2037 Merge topic 'custom-command-refactor'
53ea8b3 Merge branch 'imported-target-dependencies' into custom-command-refactor
1a29cca Remove cmLocalGenerator::GetRealLocation
542b517 Factor out common custom command generator
6fe5b3d Simplify VS generator ConstructScript interface
2010-12-21 14:03:02 -05:00
Brad King ea38628366 Merge topic 'ctest-git-send-committer'
5992526 CTest: Factor out duplicate Git author/committer code
307b8a6 CTest git update should pass the committer as well as the author
2010-12-21 14:02:39 -05:00
Brad King 3a7edc14a0 Merge topic 'fix_docs_for_language_property'
afbfb7a Add more documentation for LANGUAGE property.
2010-12-21 14:02:04 -05:00
Brad King 2031b6a9f3 Merge topic 'vs2010_header_only_fix'
f578381 Fix vs2010 project generation error when HEADER_FILE_ONLY is set.
2010-12-21 14:01:38 -05:00
Brad King 12e7bdea50 Merge topic 'vs10-sln-msbuild-workaround'
e1442ac Avoid msbuild ".\" idiosyncrasy that builds multiple configs (#11594)
42a2e9d Revert "Avoid msbuild idiosyncrasy that builds multiple configs" (#11633)
2c2eee6 Revert "Remove unused parameter "root" in some VS generator methods"
2010-12-21 14:01:25 -05:00
Brad King f94c4a35be Merge topic 'always_enable_generate'
3f158c6 cmake-gui: always enable generate button.
2010-12-21 14:01:08 -05:00
Brad King c85b8189cf Merge topic 'fix-11487-multiple-test-calls'
744366f CTest: multiple ctest_test calls w/LABEL regexs (#11487)
2010-12-21 14:00:56 -05:00
Brad King b482ba3e38 Merge topic 'fix-10587-avoid-try-compile-warnings'
984acc8 VS10: avoid warning, no nologo when verbose (#10587)
2010-12-21 14:00:27 -05:00
Brad King 17025ebda1 Merge topic 'fix-8210-find-makensis-in-path'
cd9aa73 CPack: look for makensis in the PATH (#8210)
2010-12-21 13:59:58 -05:00
Brad King 1f401294d4 Merge topic 'fix-11533-vs10-custom-build-err'
66e7917 VS10: stop build on custom command error (#11533)
2010-12-21 13:59:35 -05:00
Brad King 27b86ece8f Merge topic 'xcode-version-3.2'
f7d525e Xcode: Generate native 3.2 projects
2010-12-21 13:59:28 -05:00
Brad King ccc790f160 Merge topic 'remove-GetMaximumFilePathLength-call'
b97760f Remove call to SystemTools::GetMaximumFilePathLength
2010-12-21 13:59:21 -05:00
Brad King b005910812 Merge topic 'file-GLOB-use-case-warning'
26cc29a Warn in find(GLOB) docs about bad use case (#11617)
2010-12-21 13:59:13 -05:00
Brad King 7a7a2cbd31 Merge topic 'ctest-depend-cycle'
1f7133c CTest: Fix line-too-long style in DEPEND cycle error
f48d3bc CTest: Fix test DEPEND cycle detection
2010-12-21 13:58:21 -05:00
Bill Hoffman 16e7d4ba2c Add flags to resource builds on vs 2010 with a test. 2010-12-21 09:20:57 -05:00
Brad King 4c88a8622d KWSys: Avoid buffer overflow in SystemInformation (#11018)
Use std::string instead of fixed-size char arrays.

Author: Ben Boeckel <ben.boeckel@kitware.com>
2010-12-21 08:25:33 -05:00
KWSys Robot 112ada2eb6 KWSys Nightly Date Stamp 2010-12-21 00:10:48 -05:00
Brad King 5992526482 CTest: Factor out duplicate Git author/committer code
Factor out date/time format code into FormatDateTime function instead of
duplicating it.
2010-12-20 17:16:25 -05:00
Zach Mullen 307b8a6e69 CTest git update should pass the committer as well as the author 2010-12-20 16:05:40 -05:00
Bill Hoffman afbfb7ac1d Add more documentation for LANGUAGE property.
Make it clear that if you set the language on a file, it will be compiled.
2010-12-20 15:46:11 -05:00
Bill Hoffman f578381e66 Fix vs2010 project generation error when HEADER_FILE_ONLY is set.
In vs2010 a bad project file could be generated if a .c or .cxx file
was marked with HEADER_FILE_ONLY, if it was in a library that contained
both c and c++ code.  This fixes the error in the code, and adds a test
for this case.
2010-12-20 15:25:16 -05:00
Brad King e1442ac9c1 Avoid msbuild ".\" idiosyncrasy that builds multiple configs (#11594)
If a .sln file refers to a project file with a leading ".\", as in
".\foo.vcxproj" instead of just "foo.vcxproj" or a full path then
msbuild behaves strangely.  Whenever target foo is built as a dependency
of another target, msbuild brings multiple configurations up to date
instead of just the requested configuration!

Avoid a leading ".\" in project file references to avoid this behavior.
This alternative fix to that attempted by commit 57e71533 (Avoid msbuild
idiosyncrasy that builds multiple configs, 2010-12-10) avoids use of
full path project file references which vcbuild does not support.
2010-12-20 11:56:18 -05:00
Brad King 42a2e9d91a Revert "Avoid msbuild idiosyncrasy that builds multiple configs" (#11633)
This reverts commit 57e71533f4.

While "msbuild" can handle full paths to project files in solutions,
the old "vcbuild" used for VS < 10 cannot.  We will need another
way to fix issue #11594.
2010-12-20 11:32:14 -05:00
Brad King 2c2eee61c1 Revert "Remove unused parameter "root" in some VS generator methods"
This reverts commit 10f01ae962.
2010-12-20 11:15:55 -05:00
KWSys Robot 34a2dee75d KWSys Nightly Date Stamp 2010-12-20 00:10:56 -05:00
KWSys Robot b8c8fe49da KWSys Nightly Date Stamp 2010-12-19 00:10:08 -05:00
KWSys Robot 5ae9ccd2c6 KWSys Nightly Date Stamp 2010-12-18 00:10:03 -05:00
Clinton Stimpson 3f158c6dfa cmake-gui: always enable generate button. 2010-12-17 19:04:57 -07:00
Clinton Stimpson 744366fc0b CTest: multiple ctest_test calls w/LABEL regexs (#11487)
The Initialize method was not re-initializing everything
that it should have been. This commit fixes that.
2010-12-17 17:30:13 -05:00
David Cole 984acc884b VS10: avoid warning, no nologo when verbose (#10587)
For prior versions of Visual Studio we would intentionally pass
"/nologo-" for "verbose makefiles" (CMAKE_VERBOSE_MAKEFILE ON)
when the caller did not already explicitly specify either /nologo
or /nologo-. And we still do. For the prior versions.

This had the side effect of always passing /nologo- for try_compile
operations because try_compile generates projects that have verbose
makefiles on.

However, starting with Visual Studio 10, the compiler emits
"cl ... warning D9035: option 'nologo-' has been deprecated"
when passed "/nologo-".

Therefore, this commit removes setting "/nologo-" for verbose
makefiles in the Visual Studio 10 case to avoid emitting a
warning for every single invocation of the compiler in a given
build.

With Visual Studio 10, we do not set this flag either way
and therefore, the generated project has no value for this
setting and gets Visual Studio's default value, which is
of course "/nologo", which does not produce a warning.

With Visual Studio 10, a caller can still force "/nologo-"
if desired by adding it explicitly to CMAKE_C_FLAGS or
CMAKE_CXX_FLAGS.
2010-12-17 16:01:19 -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 cd9aa73f3a CPack: look for makensis in the PATH (#8210)
Previously, we would search in the Windows registry for the path
to makensis, and fail immediately if we could not read the registry
value, assuming that it was simply not installed.

This change looks for makensis in the PATH even if the registry value
is not there, enabling the scenario where makensis is installed without
admin privileges and never even touches HKEY_LOCAL_MACHINE during the
non-admin install.
2010-12-17 13:29:10 -05:00