Commit Graph

22153 Commits

Author SHA1 Message Date
Brad King
8d1af9cad2 Merge branch 'implicit-dir-symlinks' into release 2017-03-02 08:38:21 -05:00
Brad King
fce6233d8b Merge branch 'csproj_add_free_source_tags' into release 2017-03-02 08:38:16 -05:00
Brad King
f3102ca884 Merge branch 'backport-implicit-dir-symlinks' into implicit-dir-symlinks 2017-03-02 08:36:13 -05:00
Brad King
c3fb650c85 cmOrderDirectories: Consider symlinks when checking implicit directories
When checking whether a directory is "implicit" (e.g. implicit link
directory or implicit rpath directory), resolve the real path of both
sides of the comparison.  Otherwise we will not recognize paths like
`/usr/lib32` as implicit when `/usr/lib` is implicit and `lib32` is
actually a symlink to `lib`.  This can lead to addition of unnecessary
entries to the RPATH of a binary, for example.

Fixes: #16682
2017-03-02 08:35:48 -05:00
Michael Stürmer
9588d0a2e2 VS: add VS_CSHARP_<tagname> sourcefile property 2017-03-01 15:31:05 -05:00
Brad King
b1a37362b8 cmOrderDirectories: Factor out implicit directory check 2017-03-01 12:39:18 -05:00
Brad King
baed38107e Merge branch 'find-libarch-not-symlink' into release 2017-02-28 15:57:54 -05:00
Brad King
6f5aede716 find_library: Skip 'lib => lib<arch>' searches if one symlinks the other
The `FIND_LIBRARY_USE_LIB<arch>_PATHS` global properties ask
`find_library` to look in `lib<arch>` directories automatically before
corresponding `lib` directories.  However, if `lib<arch>` is just a
symlink to `lib` (or vice-versa) then we should skip adding the
`lib<arch>` path.  Such symlinks typically only exist to satisfy
software that expects the `lib<arch>` path to be available.

Fixes: #16687
2017-02-28 14:56:54 -05:00
Brad King
e67963ed73 cmFindLibraryCommand: Refactor AddArchitecturePath logic
Use boolean variables to save results and rename variables to more
closely represent their roles.
2017-02-28 14:56:13 -05:00
Brad King
ad3bf56dd2 Merge branch 'object-library-compile-pdb' into release 2017-02-24 11:31:46 -05:00
Brad King
feff52d42c Fix COMPILE_PDB_NAME when used on an OBJECT library
When `COMPILE_PDB_NAME` is used without `COMPILE_PDB_OUTPUT_DIRECTORY`
we cannot fall back on the link `PDB_OUTPUT_DIRECTORY` for an object
library because it has no link step.

Fixes: #16674
2017-02-24 11:26:52 -05:00
Brad King
8ea060f960 Merge branch 'ninja-no-full-path' into release 2017-02-24 10:50:21 -05:00
Brad King
666ad1df2d Revert "Ninja: Use full path for all source files"
This reverts commit v3.7.0-rc1~275^2 (Ninja: Use full path for all
source files, 2016-08-05).  Unfortunately using absolute paths can
cause incorrect rebuilds due to ninja limitations.  The ninja
manual [1] explains:

> ... using absolute paths, your depfile may result in a mixture of
> relative and absolute paths. Paths used by other build rules need
> to match exactly.

Passing an absolute path to a source file to the compiler while using a
relative path in the ninja build manifest can cause such mixture and
lead to incorrect rebuilds.  Simply revert the change for now.

Note that there was a follow-up to the original change in commit
v3.7.0-rc2~10^2 (Ninja: Fix RC language depfile generation with
cmcldeps, 2016-10-13).  We don't need to revert that because that
change made the relevant code cleverly adapt to whatever variable
we use to reference the source file.

[1] https://ninja-build.org/manual.html#_deps

Fixes: #16675
Issue: #13894
2017-02-24 10:15:50 -05:00
Brad King
5eb4d9d80b Merge branch 'vcxproj-indentation' into release 2017-02-23 14:01:05 -05:00
Brad King
2cb165e8c0 VS: Fix .vcxproj indentation
In commit v3.8.0-rc1~87^2~1 (VS: added support for C#, 2017-01-09) we
removed what looked like a no-op streaming operation but in fact it
is responsible for applying indentation.  Restore the line.
2017-02-23 13:38:47 -05:00
Brad King
25480ffbf6 Merge branch 'clang-format-attrs' into release 2017-02-22 17:00:58 -05:00
Brad King
d5f39a56a4 clang-format.bash: Use Git attributes to mark files for formatting 2017-02-22 16:59:26 -05:00
Brad King
2256c3a7db Define a custom Git attribute to mark source files as generated 2017-02-22 16:53:26 -05:00
Brad King
e9e8a5dc08 Merge branch 'vs2017-fallback-sdk' into release 2017-02-21 14:05:59 -05:00
Brad King
2da0838c64 VS2017: If Win 8.1 SDK is not available, use Win 10 SDK
We try to choose the Windows SDK version based on the version of Windows
targeted by the build.  However, if using VS 2017 without the Windows
8.1 SDK installed then we must fall back to the Windows 10 SDK even when
targeting an older version of Windows.

Inspired-by: gnaggnoyil <gnaggnoyil@gmail.com>
2017-02-21 13:47:54 -05:00
Brad King
0f6ebb5c0f Merge branch 'cuda-separable-bool' into release 2017-02-21 11:11:22 -05:00
Brad King
08fa0b4595 CUDA: Fix boolean interpretation of CUDA_SEPARABLE_COMPILATION
If the property is explicitly set to a non-true value we should
not treat it as true.
2017-02-20 17:05:35 -05:00
Brad King
4caa0e7e75 Merge branch 'fix-CMP0017-path-case' into release 2017-02-17 11:11:11 -05:00
Brad King
e2d78f7535 Windows: Fix inconsistent behavior on changes to case of path to cmake
In commit v3.4.0-rc1~333^2 (Merge branch 'upstream-kwsys' into
update-kwsys, 2015-07-15) we brought in upstream KWSys commit 86a24794
(SystemTools: Fix GetActualCaseForPath drive letter case handling,
2015-07-09).  This caused our path processing to convert drive letters
to upper-case and exposed an existing bug in our implementation of
CMP0017.

Policy CMP0017 is responsible for ensuring that modules included from a
builtin module only load other builtin modules and cannot be overridden
by a file in `CMAKE_MODULE_PATH`.  If there is a case difference in the
drive letter (or other path components) then the path to the including
module may not match our builtin module directory in a simple string
comparison.  This means builtin modules may not be recognized as such,
and they may not reliably include their builtin dependencies.  For
example, if a project provides a `Platform/Windows` module in
`CMAKE_MODULE_PATH` it can break inclusion of our builtin
`Platform/Windows` module, leading to strange behavior.

Fix this by comparing the path to the including module to our builtin
module directory using a function that is aware of case-insensitivity of
paths on Windows.

Fixes: #16648, #16622
2017-02-17 11:10:45 -05:00
Brad King
2c354f4ee4 Merge branch 'autogen_fix_3.8' into release 2017-02-15 15:16:17 -05:00
Sebastian Holtermann
28ee378405 Autogen: Fix headers not skipped 2017-02-15 21:00:39 +01:00
Brad King
93737d8012 Merge branch 'fix-ctest_update-svn' into release 2017-02-15 14:45:40 -05:00
Brad King
51849bbab8 ctest_update: Fix svn log and external loading
Since commit v3.7.0-rc1~132^2 (CTestSVN: Fix segfault when
CTEST_UPDATE_VERSION_ONLY is enabled, 2016-09-12) we do not properly
extract svn log or externals.  After updating we erase the information
that was loaded before updating and can no longer log the changes
between revisions to extract authors.

Fix this by only loading the repository information once, whether needed
by `NoteOldRevision`, `NoteNewRevision`, or both.

Fixes: #12630, #16646
2017-02-15 14:44:37 -05:00
Brad King
f0e5954fce Merge branch 'execute_process-default-encoding' into release 2017-02-13 14:05:36 -05:00
Brad King
07c3380a6e execute_process: Restore no-decoding default behavior
Since commit v3.8.0-rc1~232^2 (execute_process: Add ENCODING option for
Windows child process output, 2016-11-23) we decode child process output
using the console's active codepage by default.  This differs from
previous versions of CMake and is therefore incompatible.  Changing this
default will require a policy, so for now revert the default behavior
back to performing no decoding.

Reported-by: Nils Gladitz <nilsgladitz@gmail.com>
2017-02-13 13:53:17 -05:00
Brad King
566d20771f CMake 3.8.0-rc1 version update 2017-02-06 11:27:03 -05:00
Brad King
811c854eff Merge topic 'vs-quote-rerun-paths'
f8f3cb8d VS: Fix quoting of special characters in cmake re-run check commands
2017-02-06 10:29:46 -05:00
Brad King
cf1bc84216 Merge topic 'productbuild_signing'
48aad9cd CPackProductBuild: Add options to sign packages
2017-02-06 10:29:44 -05:00
Brad King
f8f3cb8d65 VS: Fix quoting of special characters in cmake re-run check commands
Fix our calls to `AddCustomCommandToOutput` for adding cmake re-run
check commands to disable old-style quoting in favor of the full quoting
logic.  This is necessary when paths contain special characters like `&`
that old-style quoting logic does not handle.

This also requires us to expand the `$(SolutionPath)` placeholder
explicitly because otherwise its expanded value will no longer be quoted
correctly.  As a side effect, this fixes the value in VS 10 and above
where the placeholder may be undefined when driving the build through
MSBuild without the `.sln` file.

Reported-by: Steven Cook <sc@harshbutfair.org>
Fixes: #16585
2017-02-06 09:53:15 -05:00
Kitware Robot
a00cca97b3 CMake Nightly Date Stamp 2017-02-06 00:01:04 -05:00
Kitware Robot
c054221ffd CMake Nightly Date Stamp 2017-02-05 00:01:05 -05:00
Roman Wüger
48aad9cda0 CPackProductBuild: Add options to sign packages 2017-02-04 08:07:48 -05:00
Kitware Robot
d5f0c69611 CMake Nightly Date Stamp 2017-02-04 00:01:05 -05:00
Kitware Robot
6286d26ca6 CMake Nightly Date Stamp 2017-02-03 00:01:05 -05:00
Kitware Robot
134ffe9794 CMake Nightly Date Stamp 2017-02-02 00:01:05 -05:00
Kitware Robot
1f8da86115 CMake Nightly Date Stamp 2017-02-01 00:01:07 -05:00
Brad King
5accbaccbc Merge topic 'vs-export-external-objects'
4dde0bc8 VS: Fix WINDOWS_EXPORT_ALL_SYMBOLS for external objects
2017-01-31 09:04:19 -05:00
Brad King
f012a95836 Merge topic '16432-static-frameworks'
071f8e78 Apple: Add support for static frameworks
d525754e Xcode: Refactor RunCMake.Framework test to prepare for static frameworks
45405f00 Xcode: Ignore Xcode project warning until issue is fixed
50e1c105 Makefile: For static libraries remove only the "real" lib before creating
8643ca75 Makefile: Re-order list of files to clean
2017-01-31 09:04:16 -05:00
Gregor Jasny
071f8e78dd Apple: Add support for static frameworks
Closes: #16432
2017-01-31 08:59:15 -05:00
Kitware Robot
07d3695e75 CMake Nightly Date Stamp 2017-01-31 00:01:05 -05:00
Zsolt Parragi
4dde0bc8ef VS: Fix WINDOWS_EXPORT_ALL_SYMBOLS for external objects
Teach Visual Studio generators to include external object files in the
list of objects whose symbols are to be exported.  The Makefile and
Ninja generators already did this.
2017-01-30 08:54:49 -05:00
Brad King
5c6c766da1 Merge topic 'timestamp-percent'
6c54f7b3 string: Teach TIMESTAMP to treat %% as %
2017-01-30 08:43:21 -05:00
Kitware Robot
cbabde81f2 CMake Nightly Date Stamp 2017-01-30 00:01:08 -05:00
Kitware Robot
84963f429a CMake Nightly Date Stamp 2017-01-29 00:01:03 -05:00
Kitware Robot
b30ac988d0 CMake Nightly Date Stamp 2017-01-28 00:01:05 -05:00