Commit Graph

923 Commits

Author SHA1 Message Date
Roman Wüger
8eb1cb3ff1 GHS: Correct the regex for the intXXXX directory detection.
The int directory does not only need to contain digits.
E.g. C:\GHS\int409a is a valid Green Hills installation
2017-07-17 11:30:04 +02:00
Brad King
489a7706c2 Merge topic 'android-system-include-last'
4bafa392 Android: Always add standard include directories last

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1052
2017-07-13 10:07:36 -04:00
Brad King
4bafa3922e Android: Always add standard include directories last
The logic added in commit v3.6.0-rc1~30^2 (Add a variable to specify
language-wide system include directories, 2016-05-24) to use
`CMAKE_<LANG>_STANDARD_INCLUDE_DIRECTORIES` incorrectly filters them by
`CMAKE_<LANG>_IMPLICIT_INCLUDE_DIRECTORIES`.  Rather than recognizing
this, commit v3.8.0-rc1~60^2 (Android: Pass sysroot include directory
explicitly, 2017-01-20) worked around the problem by incorrectly
removing `/usr/include` from `CMAKE_<LANG>_IMPLICIT_INCLUDE_DIRECTORIES`
so it worked in `CMAKE_<LANG>_STANDARD_INCLUDE_DIRECTORIES`.

By not filtering out `/usr/include` from user-specified include
directories, we allow the code

    include_directories(${CMAKE_SYSROOT}/usr/include)

to place the include directory too early on the command line.

Fix support for standard include directories to not be filtered by
implicit include directories, and do not remove `/usr/include` from the
list of implicit include directories for Android builds.  Add a test
case to verify that an explicit `/usr/include` is ignored in favor
of the standard directory at the end.

Fixes: #17059
2017-07-13 10:03:58 -04:00
Brad King
e63472abc5 Merge topic 'android-fix-c++_shared'
e0fb3f31 Android: Link to android_support with c++_shared

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1048
2017-07-12 09:00:43 -04:00
Brad King
e0fb3f314f Android: Link to android_support with c++_shared
The NDK has done this in `build/core/definitions.mk` since r13
(r12 and below do so only for c++_static).
2017-07-12 08:39:42 -04:00
Brad King
751f0e0adc Merge topic 'android-unified-headers'
5d317930 Android: Fix include path for unified headers

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !997
2017-06-22 10:12:59 -04:00
Brad King
5ba09a75a2 Merge branch 'android-unified-headers' into release-3.9 2017-06-22 09:52:23 -04:00
Brad King
5d31793023 Android: Fix include path for unified headers
In commit v3.9.0-rc3~3^2 (Android: Add support for unified headers,
2017-06-12) we accidentally constructed the unified header include
directories from the linking sysroot.  Construct them from the
compiling sysroot instead.

Fixes: #16584
2017-06-22 08:28:44 -04:00
Brad King
d3b981ab3e Merge topic 'ipo-per-lang'
ba247cca IPO: Consider support for each language separately

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !964
2017-06-15 10:05:02 -04:00
Brad King
61c1848cdc Merge branch 'ipo-per-lang' into release-3.9 2017-06-14 15:10:39 -04:00
Brad King
ba247ccaba IPO: Consider support for each language separately
We only define `INTERPROCEDURAL_OPTIMIZATION` behavior for C, CXX, and
Fortran languages.  Do not try to enable support for other languages.
Furthermore, each language builds with a different compiler, so check
for support by CMake and the compiler for each language independently.

Fixes: #16944
2017-06-14 10:36:57 -04:00
Brad King
9203aff851 Merge topic 'android-unified-headers'
3d00be13 Android: Add support for unified headers

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !956
2017-06-13 09:27:17 -04:00
Brad King
087b8ccda9 Merge topic 'cuda-dlink-no-deprecated-gpu'
7368ade2 CUDA: When linking device code suppress CUDA 8.0+ deprecation warnings

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !951
2017-06-13 09:18:19 -04:00
Brad King
fb99b0b87b Merge branch 'cuda-dlink-no-deprecated-gpu' into release-3.9 2017-06-13 09:17:06 -04:00
Robert Maynard
7368ade250 CUDA: When linking device code suppress CUDA 8.0+ deprecation warnings
The CUDA compiler automatic deprecation warnings are pure noise when
doing device linking, and should be suppressed to reduce the amount of
confusion from users.
2017-06-13 09:15:19 -04:00
Brad King
3d00be13ee Android: Add support for unified headers
The unified headers are preferred as of NDK r15, so use them by default
if available and provide an option to use the deprecated headers.

Inspired-by: Florent Castelli <florent.castelli@gmail.com>
Fixes: #16584
2017-06-12 11:47:30 -04:00
Brad King
f6ed92280c Merge topic 'android-standalone-no-sysroot-include'
22f8a465 Android: Do not pass sysroot include for standalone toolchain

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !952
2017-06-12 10:23:22 -04:00
Brad King
637ff39d45 Merge topic 'android-standalone-unified-api-level'
5f93bf78 Android: Detect API version of standalone toolchain with unified headers

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !950
2017-06-12 10:23:06 -04:00
Brad King
a131316a95 Merge branch 'android-standalone-no-sysroot-include' into release-3.9 2017-06-09 16:42:13 -04:00
Brad King
22f8a465d7 Android: Do not pass sysroot include for standalone toolchain
The change in commit v3.8.0-rc1~60^2 (Android: Pass sysroot include
directory explicitly, 2017-01-20) does not make sense when compiling
with a standalone toolchain which is tied to a single API version.
Drop the explicit include directory so that the compiler uses its
default system include order.

Fixes: #16954
2017-06-09 16:28:32 -04:00
Brad King
5f93bf787d Android: Detect API version of standalone toolchain with unified headers
A standalone toolchain with unified headers keeps the `__ANDROID_API__`
macro in the `bin/clang` launcher instead of in `api-level.h`.

Issue: #16954
2017-06-09 14:19:52 -04:00
Reto Schneider
a0436a2f61 SDCC: Remove superfluous whitespace from link line 2017-06-08 13:19:49 -04:00
Reto Schneider
dcf559d060 SDCC: Do not explicitly ask linker to generate Intel Hex files
The `--out-fmt-ihx` option added by commit v2.6.0~1253 (...use
--out-fmt-ihx to enforce .ihx files, 2007-08-15) may interfere with
options requested by the user.  Also, when no linker output is
specified, SDCC outputs Intel Hex by default anyway.
2017-06-08 13:18:28 -04:00
Brad King
9f552e2e5a Merge topic 'vs15-GNUtoMS'
abe8a623 GNUtoMS: Add search path for VS 2017 environment scripts

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !875
2017-05-24 10:37:51 -04:00
Alex Ghosh
abe8a623d9 GNUtoMS: Add search path for VS 2017 environment scripts
Use `cmake_host_system_information` to query the VS Installer tool for
the locations of VS versions since VS 2017 does not provide registry
entries anymore.  Add a loop to simplify addition of future versions.
2017-05-22 14:52:05 -04:00
Brad King
c9d9a3fb39 Merge topic 'pgi-fix-windows'
4eb15824 Windows-PGI: Add platform definitions
a94ae96e Windows-PGI: Adapt default compiler flags
c2c2d366 ImplicitLinkInfo: Add support for PGI on Windows

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !794
2017-05-22 10:37:57 -04:00
Christian Pfeiffer
4eb15824b3 Windows-PGI: Add platform definitions
PGI on Windows should use the Visual C++ linker and librarian and not
the ar provided for legacy reasons. The compiler parameters themselves
are the same as their Linux parameters and not compatible to MSVC
however.
2017-05-20 20:02:51 +02:00
Brad King
bc7d64f896 Merge topic 'string-append'
9e24af01 Use string(APPEND) in Modules

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !864
2017-05-18 09:03:40 -04:00
Brad King
21916a4784 Merge topic 'vs14-GNUtoMS'
c02d4d2a GNUtoMS: Add search path for VS 2015 environment scripts

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !854
2017-05-18 08:53:23 -04:00
Daniel Pfeifer
9e24af0137 Use string(APPEND) in Modules
Automate with:

find Modules -type f -print0 | xargs -0 perl -i -0pe \
  's/set\(([a-zA-Z0-9_\$\{\}]+)(\s+)"\$\{\1\}([^"])/string(APPEND \1\2"\3/g'
2017-05-17 11:26:11 -06:00
Alex Ghosh
c02d4d2aee GNUtoMS: Add search path for VS 2015 environment scripts 2017-05-17 11:19:23 -04:00
Christian Pfeiffer
fb31229e99 Linux-PGI: Prevent -rdynamic ending up in flags
Ensure that PGI on Linux keeps its
CMAKE_SHARED_LIBRARY_LINK_<LANG>_FLAGS empty, especially of -rdynamic.
In CMakeFortranInformation a lot of flags will be copied from their C
equivalents if they're not defined. By using a combination of GCC and
PGFortran, this will lead to -rdynamic ending up in the PGI flags and
none of the PGI compilers understand that flag, crashing with a fatal
error.
2017-05-05 17:30:11 +02:00
Chuck Atkins
f320907b3d XL: Fix the use of the -qhalt flag for varying OSs
The valid settings to pass to the IBM XL compiler for the -qhalt flag
vary widely by language and platform.  Based on existing documentation,
the following table shows which error levels are valid to pass to
-qhalt= since -qhalt=e is not always available.

OS       |  xlc  |  xlC  |   xlf   |
---------|-------|------------------
AIX      | iwes  | iw s  | ilwesu  |
BlueGene | iwes  | iwes  | ilwesu  |
OS X     | iwesu | iwesu | ilwesu  |
Linux    |  w    |  w    | ilwesu  |
2017-04-27 13:29:28 -04:00
Brad King
2b7aecba16 Merge topic 'autogen-fixes'
09035319 Autogen: Pass explicit predefines header to moc if possible

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !671
2017-04-21 08:43:43 -04:00
Aleix Pol
0903531964 Autogen: Pass explicit predefines header to moc if possible
Qt is relying on whoever calls moc to include a file with the predefined
values that will be used by the compiler, otherwise moc takes wrong
paths and weird things happen.
Instead, generate an include file and feed it to all mocs to make sure
it's generating correct code.

Co-Author: Sebastian Holtermann <sebholt@xwmw.org>
Fixes: #16640
2017-04-20 08:59:07 -04:00
Brad King
c94f1bcf92 Drop Visual Studio 7 .NET 2003 generator
This generator has been deprecated since CMake 3.6.  Remove it.
2017-04-19 15:28:05 -04:00
hsc
11ab003b3a TinyCC: Support ENABLE_EXPORT property
Replace the default -Wl,--export-dynamic with -rdynamic.
2017-04-17 17:34:52 +02:00
Brad King
8772fc81c4 Merge topic 'ipo-policy-CMP0069'
dfa8263f Implement interprocedural optimization for GNU compilers
1588a577 Add policy CMP0069 to enforce INTERPROCEDURAL_OPTIMIZATION
a7575700 Refactoring: s,GetFeatureAsBool,IsIPOEnabled,
e05835c3 CheckIPOSupported: Visual Studio and Xcode generators do not support IPO

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Brad King <brad.king@kitware.com>
Reviewed-by: Nils Gladitz <nilsgladitz@gmail.com>
Merge-request: !568
2017-03-31 10:38:08 -04:00
Ruslan Baratov
1588a577d1 Add policy CMP0069 to enforce INTERPROCEDURAL_OPTIMIZATION
Previously the `INTERPROCEDURAL_OPTIMIZATION` target property was
honored only for the Intel compiler on Linux and otherwise ignored.  In
order to add support for more compilers incrementally without changing
behavior in the future, add a new policy whose NEW behavior enforces the
`INTERPROCEDURAL_OPTIMIZATION` property.  Add flags for supported
compilers and otherwise produce an error.
2017-03-30 14:56:46 -04:00
Brad King
6dc7262bf7 Merge topic 'vs-rc-defines'
fff34934 MSVC: Restore _DEBUG preprocessor definition in RC debug builds
79a91538 RC: Add missing CMAKE_RC_FLAGS_<CONFIG> entries to cache
c77194ec VS: Honor preprocessor definitions in RC flags
1449f6f6 cmVisualStudio10TargetGenerator: De-duplicate preprocessor defs
8a619e8c cmIDEOptions: Add GetDefines method

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !640
2017-03-29 09:14:54 -04:00
Brad King
fff34934e7 MSVC: Restore _DEBUG preprocessor definition in RC debug builds
In commit v3.8.0-rc1~304^2 (MSVC: Do not define _DEBUG explicitly when
using /MDd, 2016-11-15) we removed the `_DEBUG` preprocessor definition
from MSVC C and C++ flags because the `cl` compiler automatically
defines it in Debug builds anyway.  However, the VS generators propagate
C preprocessor definitions to the RC (Windows Resource Compiler) tool.
This means that we used to explicitly define `_DEBUG` for RC debug
builds.  Therefore existing project code may expect the definition to be
there even though the `rc` compiler itself does not implicitly define
`_DEBUG` in debug builds.

Add the `_DEBUG` flag to the default `CMAKE_RC_FLAGS_DEBUG` instead
to restore this definition for RC debug builds.  This also makes it
available consistently in VS, Ninja, and Makefile generators.

Fixes: #16745
2017-03-28 13:10:56 -04:00
Brad King
cfa55fd428 Merge topic 'doc-prefer-MSVC_VERSION'
fecf8467 Help: Document preference of `MSVC_VERSION` over `MSVC##`
712452e3 Help: Clarify MSVC14 docs w.r.t. VS 2017 v141 toolset
49a60b70 MSVC: Exclude future cl 20+ from MSVC14 variable

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !609
2017-03-23 08:44:58 -04:00
Brad King
49a60b70e7 MSVC: Exclude future cl 20+ from MSVC14 variable 2017-03-22 11:23:37 -04:00
Brad King
56c39d8836 Merge topic 'add-CheckIPOSupported-module'
6c832674 Tests for 'CheckIPOSupported' module
fdb2ba25 CheckIPOSupported: New module to check for compiler/cmake IPO support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !558
2017-03-22 08:51:59 -04:00
Brad King
09f85c98c0 Merge topic 'move-platform-specific-paths'
0b668e52 Cygwin: Move Cygwin-specific paths to the cygwin platform
2a8c2af4 SunOS: Move solaris-specific paths to the solaris platform
7eb1f5b7 Unix: Consolidate path components into prefixes

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !589
2017-03-20 11:52:21 -04:00
Chuck Atkins
0b668e52a9 Cygwin: Move Cygwin-specific paths to the cygwin platform 2017-03-16 06:04:29 -04:00
Chuck Atkins
2a8c2af4d4 SunOS: Move solaris-specific paths to the solaris platform 2017-03-16 06:00:49 -04:00
Chuck Atkins
7eb1f5b7ac Unix: Consolidate path components into prefixes 2017-03-16 05:57:58 -04:00
Ruslan Baratov
fdb2ba2521 CheckIPOSupported: New module to check for compiler/cmake IPO support 2017-03-11 19:46:25 +08:00
Steven Newbury
462cf25427 Add support for x32-abi
Detect x32-abi through CMakeCompilerABI infrastruture and use this
information at runtime to determine the correct library paths with
`FIND_LIBRARY_USE_LIBX32_PATHS`.

Fixes: #15994
2017-03-07 15:22:55 -05:00