Optionally skip link dependencies on shared library files

Add target property LINK_DEPENDS_NO_SHARED and initialization variable
CMAKE_LINK_DEPENDS_NO_SHARED to enable this behavior.

Suggested-by: Leif Walsh <leif.walsh@gmail.com>
ExternalProject: Only run 'git fetch' when required.

In the current default update step for Git under the ExternalProject_Add
command, a 'git fetch' is always performed, followed by a 'git checkout' and
'git submodule update --recursive'.  However, a 'git fetch' can be time
consuming and requires a network connection.

To save time, we look at the current checked out hash, and only perform the
fetch if required.  This is performed in a CMake script so we can handle
the conditional logic in a cross platform manner.
ExternalProject: Do smoke tests for Git Tutorial builds.
Resolve warnings about unused variables.
load_command: Deprecate and document pending removal

This command works only when building projects using the same
architecture as the running CMake binary.  Since it was introduced
CMake has learned macro() and function() to add commands, and the
execute_process() command to launch advanced external computations.

Add a RunCMake.load_command test to verify the warning appears.
Squish: fix new squish_v4_add_test() macro

The OUTPUT_NAME target property only returns something if it has been
explicitely set. So use LOCATION, and extract the filename from that.

Alex
Documentation: Correct typos and grammar
Documentation: Clarify some command descriptions

- file(WRITE): add configure_file() decoupling hint
- function(): definitely mention PARENT_SCOPE
- include_directories(): mention possible results of SYSTEM setting
- macro(): mention scope specifics of function()
- message(): improve SEND_ERROR / FATAL_ERROR docs, since people said it's not obvious
Documentation: Clarify configure_file behavior
OS X: Warn about known SDK breakage by Xcode 3.2.6

Xcode 3.2.6 is known to break the SDK Library/Frameworks layout.
Detect and warn about this case to tell users to fix their system.

Reported-by: Matthew Brett <matthew.brett@gmail.com>
KWSys 2012-11-08 (3b17de34)

Extract upstream KWSys using the following shell commands.

$ git archive --prefix=upstream-kwsys/ 3b17de34 | tar x
$ git shortlog --no-merges --abbrev=8 --format='%h %s' df32fa6f..3b17de34
Brad King (1):
      3b17de34 SystemInformation: Do not dereference NULL ifa_addr

Change-Id: I2aecf9978d1f66ed021f47620d176a3837bc2ea3
Merge branch 'upstream-kwsys' into update-KWSys
Teach BuildDepends test to cover LINK_DEPENDS_NO_SHARED

Build a shared library and an executable linking to it inside the inner
test.  Set LINK_DEPENDS_NO_SHARED on the executable.  Add a custom
target to compare the output file times.  Verify that on the first build
the executable is newer than the library.  Then modify a library source
file.  Verify that on the second build the library is newer because the
executable did not have a dependency to re-link.
Correct string literal typo (have "(NULL)" like all other cases).

Signed-off-by: Eric NOULARD <eric.noulard@gmail.com>
Remove seemingly bogus duplicate CPACK_PACKAGE_FILE_NAME call.

Signed-off-by: Eric NOULARD <eric.noulard@gmail.com>
CMake Nightly Date Stamp
Resolve warnings about used enum values in switch blocks.
Resolve warnings about shadowing parameters and local variables.
Resolve ambiguity warning regarding use of && and ||.

This is not ambiguous to the compiler, but it may seem ambiguous to
the reader.

From reading 3a53005f (Build object library targets in VS), 5484550a
(Detect and set Unicode character set in VS 10), and 9e01aefd (VS:
Add support for WinRT project properties (#12930)), this appears to
be the intentional semantic.
Remove references to ancient and removed parts of the code.

This file came from ITK, and probably came from python before that.

This commit fixes a warning about the unused _PyPopenProcs variable.