Commit Graph

34690 Commits

Author SHA1 Message Date
Brad King
3fe3182247 FindBoost: Avoid mentioning discouraged MSVC##` variable 2017-03-23 08:40:34 -04:00
Brad King
e1adec32b8 CMake 3.8.0-rc2 2017-03-03 08:29:09 -05:00
Brad King
9f37f94d63 Merge branch 'FindJNI-archlinux-jvm-paths' into release 2017-03-03 08:16:10 -05:00
Kitsu
d0ada3e218 FindJNI: Add jvm paths for Arch Linux 2017-03-03 08:14:34 -05:00
Brad King
3e06cdc19b Merge branch 'FindVulkan-update' into release 2017-03-02 10:03:57 -05:00
Brad Davis
8e58f360f5 FindVulkan: Update for LunarG SDK import library location on Windows
As of at least 1.0.42 of the LunarG SDK, the `vulkan-1.lib` import
library on Windows is stored in `${VULKAN_SDK}/Lib` or
`${VULKAN_SDK}/Lib32`.
2017-03-02 10:02:20 -05:00
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
69528fe65f Tests: Add case for RPATH exclusion of symlinks to implicit directories
Issue: #16682
2017-03-02 08:36:32 -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
506207f928 VS: add test for VS_CSHARP_* source file property 2017-03-01 15:31:05 -05:00
Michael Stürmer
a202749c46 VS: add CSharpUtilities module 2017-03-01 15:31:05 -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
220b799c8a Merge branch 'kwiml-test-gcc-format-security' into release 2017-02-27 13:47:34 -05:00
Orion Poplawski
4ca77bb6db KWIML: Add -Wno-format-security to tolerate -Werror=format-security
When compiling KWIML tests with `-Werror=format-security` we get

    error: -Wformat-security ignored without -Wformat

Therefore we should disable both `format` and `format-security`
together.
2017-02-27 13:47:00 -05:00
Brad King
dab2ff3e23 Merge branch 'ExternalProject-checkout-clarify' into release 2017-02-24 13:22:45 -05:00
Brad King
a9fa6a2c77 ExternalProject: Run git checkout with -- to clarify arguments
Fix the case when the tag name to be checked out also happens to match a
path name.

Fixes: #16678
2017-02-24 13:22:40 -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
f6986ee479 Define a custom Git attribute to mark sources using our C style 2017-02-22 16:53:29 -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
970fe6ec2f Merge branch 'doc-cmake-language-makefile-vars' into release 2017-02-22 16:50:18 -05:00
Michael Maltese
1dc1301925 Help: Clarify 'make-style' variable references in cmake-language(7)
Fixes: #16661
2017-02-22 13:39:09 -08:00
Brad King
4734c3e6db Merge branch 'FindCUDA-fix-init' into release 2017-02-22 10:35:55 -05:00
Bjoern Thiel
934eb497f2 FindCUDA: Fix PTX selection with multiple architectures 2017-02-22 10:35:44 -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
fe8f5b54f5 Merge branch 'ExternalProject-update-docs' into release 2017-02-21 11:11:27 -05:00
Brad King
0f6ebb5c0f Merge branch 'cuda-separable-bool' into release 2017-02-21 11:11:22 -05:00
Brad King
0b6afec62b Merge branch 'FindGTK2-old-sigc++' into release 2017-02-21 11:11:13 -05:00
Brad King
c95d017f9c ExternalProject: Clarify documented role of INSTALL_DIR
It does not actually configure the project to install to the given
location.  That must be done by passing the `<INSTALL_DIR>` placeholder
to the external project configuration step.
2017-02-21 10:32:26 -05:00
Wilfried Goesgens
4b21290e20 ExternalProject: Clarify documented role of INSTALL_COMMAND
It is for the install step of the external project and does not
affect installation of the calling project.
2017-02-21 10:32:25 -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
Ben Boeckel
2ab118a859 FindGTK2: handle old libsigc++ versions
Old versions of `libsigc++` do not have the version macros inside of its
`sigc++config.h` header. Assume nothing about such headers and report
version "zero".

Fixes: #16654
2017-02-20 11:58:57 -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
2cffea3c72 Merge branch 'FindHDF5-fix-header-langs' into release 2017-02-17 09:28:48 -05:00
Brad King
96d6139386 FindHDF5: Fix search for language-specific header file
Refactoring in commit v3.6.0-rc1~85^2 (HDF5: Refactor the use of
compiler wrappers, 2016-04-04) converted code of the form

    if(${LANGUAGE} MATCHES ...)

to

    if(LANGUAGE MATCHES ...)

However, `LANGUAGE` is a foreach() loop variable and not a normal
variable so auto-dereference does not occur.  Restore the explicit `${}`
syntax and use the new name of the loop variable that has changed since
then too.

Fixes: #16651
2017-02-17 09:25:46 -05:00
Brad King
28bb68e347 FindHDF5: Restore HDF5_<LANG>_INCLUDE_DIR advanced cache entry mark
Refactoring in commit v3.6.0-rc1~72^2 (HDF5: Rework component searching
to correctly find HL for all bindings, 2016-05-12) renamed the language
loop variable used to construct the name of `HDF5_<LANG>_INCLUDE_DIR`
but forgot to update it in the `mark_as_advanced` call.  Fix it now.

Issue: #16651
2017-02-17 09:10:03 -05:00