Commit Graph

32251 Commits

Author SHA1 Message Date
Brad King
1296a0eada Ninja: Fix inter-target order-only dependencies of custom commands
Custom command dependencies are followed for each target's source files
and add their transitive closure to the corresponding target.  This
means that when a custom command in one target has a dependency on a
custom command in another target, both will appear in the dependent
target's sources.  For the Makefile, VS IDE, and Xcode generators this
is not a problem because each target gets its own independent build
system that is evaluated in target dependency order.  By the time the
dependent target is built the custom command that belongs to one of its
dependencies will already have been brought up to date.

For the Ninja generator we need to generate a monolithic build system
covering all targets so we can have only one copy of a custom command.
This means that we need to reconcile the target-level ordering
dependencies from its appearance in multiple targets to include only the
least-dependent common set.  This is done by computing the set
intersection of the dependencies of all the targets containing a custom
command.  However, we previously included only the direct dependencies
so any target-level dependency not directly added to all targets into
which a custom command propagates was discarded.

Fix this by computing the transitive closure of dependencies for each
target and then intersecting those sets.  That will get the common set
of dependencies.  Also add a test to cover a case in which the
incorrectly dropped target ordering dependencies would fail.
2016-07-20 13:12:24 -04:00
Brad King
df14a98e9c Merge topic 'update-kwsys'
788bb146 Merge branch 'upstream-KWSys' into update-kwsys
eb7b5087 KWSys 2016-07-18 (19732229)
2016-07-20 09:03:42 -04:00
Brad King
6a98785d8f Merge topic 'compat-CPACK_INSTALL_CMAKE_PROJECTS-subdirectory'
57534990 CPack: Add compatibility for incorrect CPACK_INSTALL_CMAKE_PROJECTS value
2016-07-20 09:03:22 -04:00
Kitware Robot
88ee36f93f CMake Nightly Date Stamp 2016-07-20 00:01:04 -04:00
Brad King
57534990d8 CPack: Add compatibility for incorrect CPACK_INSTALL_CMAKE_PROJECTS value
Since commit v3.6.0-rc1~339^2 (CPack: Fix CPACK_INSTALL_CMAKE_PROJECTS
SubDirectory (4th) option, 2016-02-18) we now honor the "Directory"
option of this variable.  Prior to that commit the value was not used
so projects may have used a placeholder value like `.` instead of `/`.
Treat `.` the same as `/` to restore compatibility with such projects.

Fixes #16205.
2016-07-19 10:07:12 -04:00
Brad King
788bb14664 Merge branch 'upstream-KWSys' into update-kwsys
* upstream-KWSys:
  KWSys 2016-07-18 (19732229)
2016-07-19 08:27:19 -04:00
KWSys Upstream
eb7b5087f7 KWSys 2016-07-18 (19732229)
Code extracted from:

    http://public.kitware.com/KWSys.git

at commit 19732229f798419307782ea7d252b78701911ea3 (master).

Upstream Shortlog
-----------------

Dāvis Mosāns (1):
      19732229 SystemTools: User better GetEnv and HasEnv signatures
2016-07-19 08:27:09 -04:00
Brad King
34216023e6 Merge topic 'use-better-KWSys-GetEnv'
b1f87a50 Use better KWSys SystemTools::GetEnv and HasEnv signatures
2016-07-19 08:26:05 -04:00
Brad King
6a44e34630 Merge topic 'update-kwsys'
03407040 Merge branch 'upstream-KWSys' into update-kwsys
bbb3216a KWSys 2016-07-15 (f396bf43)
2016-07-19 08:26:01 -04:00
Brad King
922bb1fd69 Merge topic 'FindBISON-report-file'
33b562aa Help: Add notes for topic 'FindBISON-report-file'
ab8d5d0f FindBISON: Refactor public and inner macro routines
c42e63a9 FindBISON: Add REPORT_FILE option to pass --report-file=FILE
ad2497aa FindBISON: Change usage of [VERBOSE <file>] to [VERBOSE [<file>]]
2016-07-19 08:25:56 -04:00
Kitware Robot
34efc0a539 CMake Nightly Date Stamp 2016-07-19 00:01:09 -04:00
Dāvis Mosāns
b1f87a50b3 Use better KWSys SystemTools::GetEnv and HasEnv signatures 2016-07-18 09:51:01 -04:00
Brad King
03407040d4 Merge branch 'upstream-KWSys' into update-kwsys
* upstream-KWSys:
  KWSys 2016-07-15 (f396bf43)
2016-07-18 09:28:42 -04:00
KWSys Upstream
bbb3216a2c KWSys 2016-07-15 (f396bf43)
Code extracted from:

    http://public.kitware.com/KWSys.git

at commit f396bf43fc8a3e475e703acb99d629d123dbd003 (master).

Upstream Shortlog
-----------------

Brad King (2):
      e43689db SystemTools: Factor out environment storage class
      2aa7dd82 SystemTools: Do not free buffer passed to putenv("A=") on Windows

Dāvis Mosāns (4):
      19c31914 SystemTools: Abstract environment storage character type
      61301786 SystemTools: Tweak GetEnv/PutEnv implementation layout
      85920d53 SystemTools: Teach GetEnv/PutEnv to use correct encoding on Windows
      f396bf43 SystemTools: Add HasEnv function
2016-07-18 09:28:39 -04:00
Brad King
33b562aa72 Help: Add notes for topic 'FindBISON-report-file' 2016-07-18 09:11:25 -04:00
Eon Jeong
ab8d5d0fdb FindBISON: Refactor public and inner macro routines 2016-07-18 09:06:36 -04:00
Eon Jeong
c42e63a97e FindBISON: Add REPORT_FILE option to pass --report-file=FILE 2016-07-18 09:06:31 -04:00
Eon Jeong
ad2497aa05 FindBISON: Change usage of [VERBOSE <file>] to [VERBOSE [<file>]] 2016-07-18 09:06:16 -04:00
Brad King
4bb3c4102f Merge branch 'release' 2016-07-18 08:58:36 -04:00
Brad King
8a5472bd2f Merge topic 'vs-natvis'
a6290cff VS: Add support for NATVIS files
2016-07-18 08:57:33 -04:00
Brad King
d0be658205 Merge topic 'ninja-no-accidental-rsp'
86dd2427 Ninja: Do not force response files when no sysconf(3) limit is used
2016-07-18 08:57:30 -04:00
Brad King
b224f43120 Merge topic 'ninja-portable-arg-max'
5ec17e61 Ninja: Generalize check for sysconf(3) call
2016-07-18 08:57:26 -04:00
Brad King
b475599d58 Merge topic 'FindGIF-version'
0a6c227d FindGIF: Detect version from GIF 4.1.6 and above
2016-07-18 08:57:23 -04:00
Kitware Robot
d290751d0e CMake Nightly Date Stamp 2016-07-18 00:01:03 -04:00
Kitware Robot
3cf455ba3d CMake Nightly Date Stamp 2016-07-17 00:01:04 -04:00
Kitware Robot
5642349129 CMake Nightly Date Stamp 2016-07-16 00:01:04 -04:00
Robert Dailey
a6290cffae VS: Add support for NATVIS files
Add an explicit `<Natvis>` element in VS project files for `*.natvis`
files.  These enable custom debug visualizers for project-specific
types.

Fixes #16043.
2016-07-15 10:36:21 -04:00
Raphael Kubo da Costa
5ec17e6106 Ninja: Generalize check for sysconf(3) call
Use `sysconf(_SC_ARG_MAX)` wherever `_SC_ARG_MAX` is available instead
of hard-coding an incomplete list of operating systems that implement
it.  In particular, it is available on BSD platforms that were not
previously listed.
2016-07-15 09:50:59 -04:00
Brad King
ace12c9c15 Merge branch 'ninja-no-accidental-rsp' into release 2016-07-15 09:48:32 -04:00
Brad King
86dd2427bc Ninja: Do not force response files when no sysconf(3) limit is used
Commit v3.6.0-rc1~174^2~1 (cmGlobalNinjaGenerator: Clarify logic for
forcing use of response files, 2016-04-06) started using negative
command line length values to represent forced use of response files but
forgot to update `calculateCommandLineLengthLimit()` accordingly.  Teach
it to return `0` instead of `-1` when no limit is computed from the
system to avoid forcing response files.

Reported-by: Raphael Kubo da Costa <rakuco@FreeBSD.org>
2016-07-15 09:43:02 -04:00
Ben Campbell
0a6c227d64 FindGIF: Detect version from GIF 4.1.6 and above
GIF 4.1.6 introduced version macros in the header file.  Use them
to get a full version.

Fixes #16196.
2016-07-15 09:10:59 -04:00
Brad King
c8e59d2dfa Merge topic 'toolchain-flag-init'
8a98cf64 Honor CMAKE_*_LINKER_FLAGS[_<CONFIG>]_INIT set in toolchain files
37d15c39 MSVC: Set all CMAKE_*_LINKER_FLAGS_INIT directly
55c884ed Embarcadero: Set all CMAKE_*_LINKER_FLAGS_INIT directly
aec3c79a Strip CMAKE_*_LINKER_FLAGS[_<CONFIG>] initializer whitespace
2016-07-15 09:04:30 -04:00
Brad King
595cbb493f Merge topic 'fix-pq-libraries'
58677c32 FindPostgreSQL: Fix initialization of PostgreSQL_LIBRARIES
2016-07-15 09:04:27 -04:00
Brad King
c59ec2b7c8 Merge topic 'cmake-internal-info'
4db08807 CMake: Report whether generators support platforms
43a68a6d cmGlobalGeneratorFactory: Use CM_OVERRIDE for all derived classes
af0e1cd4 Make CMake version dirty state available to code
6a077b5d Make CMake version suffix available to code
2016-07-15 09:04:24 -04:00
Kitware Robot
0c3fc5a251 CMake Nightly Date Stamp 2016-07-15 00:01:03 -04:00
Brad King
8a98cf6432 Honor CMAKE_*_LINKER_FLAGS[_<CONFIG>]_INIT set in toolchain files
Document these variables.

Change our convention for setting these variables from:

    set(CMAKE_EXE_LINKER_FLAGS_INIT "...")

to

    string(APPEND CMAKE_EXE_LINKER_FLAGS_INIT " ...")

so that any value previously set by a toolchain file will be used.
2016-07-14 15:47:32 -04:00
Nils Gladitz
58677c327f FindPostgreSQL: Fix initialization of PostgreSQL_LIBRARIES 2016-07-14 18:18:26 +02:00
Tobias Hunger
4db08807db CMake: Report whether generators support platforms 2016-07-14 10:35:58 -04:00
Tobias Hunger
43a68a6dca cmGlobalGeneratorFactory: Use CM_OVERRIDE for all derived classes 2016-07-14 10:35:58 -04:00
Tobias Hunger
af0e1cd4cb Make CMake version dirty state available to code
Set `CMake_VERSION_IS_DIRTY` to 1 or 0 depending on whether the CMake
source tree is considered dirty or not.
2016-07-14 10:35:58 -04:00
Tobias Hunger
6a077b5d63 Make CMake version suffix available to code
Make the string (e.g. "rc1" or "gSHA-dirty") available to the code.
2016-07-14 10:27:17 -04:00
Brad King
a6bd08992e Merge topic 'update-win-release'
9587011d Utilities/Release: Update Windows binary host path to CMake
2016-07-14 09:24:19 -04:00
Brad King
4e427f4949 Merge topic 'FindOpenMP-updates'
73e9f36e FindOpenMP: Detect version (specification date) from compiler
8f1103c0 FindOpenMP: Cleanup all variables unconditionally
ec963f04 FindOpenMP: Improve documentation formatting
2016-07-14 09:24:14 -04:00
Brad King
6f36dce0cf Merge topic 'ExternalData-SecurityFix'
9b588b2b ExternalData: Hide security-sensitive details from output
2016-07-14 09:24:05 -04:00
Brad King
2fe520d2b0 Merge topic 'cmake-ifw-package-updates'
2aadb02f QtIFW: Don't show component selection page if it don't need
53992808 QtIFW: process USE_LGPL when CMake_INSTALL_COMPONENTS
8ae035a5 CMake: install COMPONENT cmcldeps
2016-07-14 09:24:00 -04:00
Brad King
2364819d37 Merge topic 'ExternalProject-alt-urls'
2eec433f ExternalProject: Add support for multiple alternative URLs
2016-07-14 09:23:50 -04:00
Brad King
4d3d28750e Merge topic 'vs14-debug-enum-older-toolsets'
36fc3a53 VS: Fix VS 2015 .vcxproj debug setting for v90 toolset (#15986)
2016-07-14 09:23:45 -04:00
Brad King
f5c19a9dcc Merge topic 'no-implicit-link-clang-rt'
35322226 CMakeParseImplicitLinkInfo: Exclude libclang_rt libraries
2016-07-14 09:23:35 -04:00
Kitware Robot
59f23193a7 CMake Nightly Date Stamp 2016-07-14 00:01:03 -04:00
Brad King
37d15c399e MSVC: Set all CMAKE_*_LINKER_FLAGS_INIT directly
Avoid copying CMAKE_EXE_LINKER_FLAGS_INIT to the others.
2016-07-13 15:05:32 -04:00