983533a4b8 Record when C compilers have gained full support for 90,99,11
f92ccbc306 CompileFeatures: memoize C compilers with full language level support
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3146
a8b7cbb787 Autogen: Do not treat hard-coded -I/usr/include exclusion as implicit include
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3159
15be06a5ec Tests: Fix Plugin test for international characters on Windows
24da7da686 Merge branch 'upstream-KWSys' into update-kwsys
8166634958 KWSys 2019-03-28 (e92bdbe8)
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3158
The implicit include directory extraction added by commit 5990ecb741
(Compute implicit include directories from compiler output, 2018-12-07,
v3.14.0-rc1~108^2) leaves paths like `/usr/lib/../include` unchanged.
Fix the logic to canonicalize such paths (e.g. to `/usr/include`)
as we do for implicit link directories already. This is important
to ensure the set of implicit directories is represented in the same
form as the include directories that will be compared to them.
Issue: #19095
Build KWSys with `CP_UTF8` internal encoding so that we can dynamically
load modules by absolute paths that contain international characters.
This is needed now that KWSys DynamicLoader uses KWSys Encoding instead
of hard-coding `CP_UTF8` itself.
Both commit 88ecfd8ba1 (CPackIFW: Add some options, 2016-11-11,
v3.8.0-rc1~248^2) and commit e5089c562c (CPackIFW: Add some options,
2017-01-24, v3.8.0-rc1~53^2) added some options to this macro's
documentation and implementation, but the actual processing of the
parsed options was never added. Add it now.
Reviewed-by: Konstantin Podsvirov <konstantin@podsvirov.pro>
The `cmLocalGenerator::GetIncludeDirectoriesImplicit` method is called
by `cmQtAutoGenInitializer` to get the compiler's list of implicit
include directories. Since commit 557b2d6e65 (Fix regression in
-I/usr/include exclusion logic, 2019-02-13, v3.14.0-rc2~6^2~2) the
method hard-codes exclusion of `/usr/include` for historical reasons.
However, it should not be reported as a real implicit include directory
unless the compiler really has it.
Refactor the logic to distinguish the hard-coded exclusion of
`/usr/include` from the real list of implicit include directories.
Fixes: #19100
Code extracted from:
https://gitlab.kitware.com/utils/kwsys.git
at commit e92bdbe8e6eca2a8b6dcf14920e5e25308504206 (master).
Upstream Shortlog
-----------------
Ben Boeckel (7):
30198dbc DynamicLoader: fix error reporting on Windows
cf6b5f69 DynamicLoader: use Encoding::ToWindowsExtendedPath for the libname
d17291ad DynamicLoader: support loading libraries using flags
40d9e482 DynamicLoader: support loading sibling libraries on Windows
971809c5 DynamicLoader: test the SearchBesideLibrary flag
efb006b9 DynamicLoader: include stdio.h for _snprintf
9e8e9ba0 DynamicLoader: avoid the min/max macros from windows.h
Brad King (1):
92334e76 SystemTools: CopyFileAlways: avoid copying file over self
Previously compilers that had full support for a language
standard level was forced to verify this every time a new build
directory was created. Now we record this information and insert
the correct granular compile features instead of doing a try_compile.