| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
9a8d758c Help: Document language standard meta-features
df252db1 Features: Test cycle diagnostic with language standard meta-feature
6d5fb0e0 Features: Test feature propagation with language standard meta-feature
a34b98a8 WCDH: Ignore language standard meta-features
b0996a3f Features: Add meta-features requesting awareness of a particular standard
8b6cc251 Features: Centralize per-compiler recording macros
2d23f7b2 Features: Do not record features on MSVC < 2010
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
A common use case of `target_compile_features` is simply to specify that
the compiler should be run in a mode that is aware of e.g. C++11. Some
projects simply specify a particular C++11-only feature to request this.
Provide a first-class way to do this by naming features after the
corresponding language standard. Record them as always available in the
corresponding standard level so that requesting them always ensures that
standard (or higher) is used.
|
| |
| |
| |
| |
| | |
Simplify and de-duplicate per-compiler feature recording macros and
convert to a centralized per-language macro.
|
| |
| |
| |
| |
| |
| |
| | |
We have no feature tests for versions of VS older than 2010, so do
not even call `record_compiler_features` for such versions. This
is consistent with other compilers where we call this macro only
for versions for which we have recorded features.
|
|/
|
|
|
|
| |
This condition needs to follow the same pattern added in note `[1]` by
commit a5a3642f (Features: Port Intel CXX features to test macros where
possible, 2016-10-26). It was accidentally left out of that commit.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since this compiler always defines `__cplusplus` to `1` we need to use
`_MSC_VER`, `__INTEL_CXX11_MODE__`, and the feature test macro named
`__cpp_aggregate_nsdmi` to detect C++11 and C++14 modes.
With no `-Qstd=` flag this compiler defaults to C++98 plus a subset of
C++11/C++14 features needed to be compatible with MSVC. We pretend it
is plain C++98 and add a `-Qstd=` flag whenever needed for C++11 or
above features even if they would happen to be available in MSVC-mode.
Closes: #16384
|
|
|
|
|
|
| |
The Intel 16 and 17 compilers define feature test macros of the form
`__cpp_<feature>`. Use them where possible to detect corresponding
features.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The change in commit 05e05cd2 (Intel: Fix compiler C++98 standard flag
on Windows, 2016-10-26) was wrong. The Intel C++ Compiler for Windows
does not support either `-Qstd=c++98` or `-Qstd=gnu++98`. Simply remove
both flags for this compiler and use no options at all to achieve this
mode.
Issue: #16384
|
|
|
|
|
|
|
| |
The Intel C++ Compiler for Windows does not support the `-Qstd=c++98`
flag but does support `-Qstd=gnu++98`.
Issue: #16384
|
|
|
|
| |
Issue: #16384
|
|
|
|
|
|
|
|
|
| |
The extension flags enabled by commit v3.6.0-rc1~120^2~1 (Features:
Record standard flags for Intel C/C++ on Windows, 2016-04-18) of the
form `-Qstd=gnu++11` are not supported by the Intel C/C++ Compiler for
Windows. Fall back to using the non-extension form of the flags.
Issue: #16384
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Per-source copyright/license notice headers that spell out copyright holder
names and years are hard to maintain and often out-of-date or plain wrong.
Precise contributor information is already maintained automatically by the
version control tool. Ultimately it is the receiver of a file who is
responsible for determining its licensing status, and per-source notices are
merely a convenience. Therefore it is simpler and more accurate for
each source to have a generic notice of the license name and references to
more detailed information on copyright holders and full license terms.
Our `Copyright.txt` file now contains a list of Contributors whose names
appeared source-level copyright notices. It also references version control
history for more precise information. Therefore we no longer need to spell
out the list of Contributors in each source file notice.
Replace CMake per-source copyright/license notice headers with a short
description of the license and links to `Copyright.txt` and online information
available from "https://cmake.org/licensing". The online URL also handles
cases of modules being copied out of our source into other projects, so we
can drop our notices about replacing links with full license text.
Run the `Utilities/Scripts/filter-notices.bash` script to perform the majority
of the replacements mechanically. Manually fix up shebang lines and trailing
newlines in a few files. Manually update the notices in a few files that the
script does not handle.
|
|
|
|
|
|
|
|
|
|
| |
All Fortran sources need to be preprocessed before any source may be
compiled so that module dependencies can be (later) extracted. Factor
out an explicit preprocessing step preceding compilation. Use Ninja
depfile dependencies on the preprocessing step and then compile the
already-preprocessed source with a separate build statement that depends
explicitly only on the preprocessor output. Later we will insert
dynamic discovery of module dependencies between these steps.
|
| |
|
|
|
|
|
| |
References to specific comments are left as-is since comments were not
migrated.
|
|
|
|
|
|
|
|
|
| |
The Numerical Algorithms Group (NAG) Fortran compiler documents -PIC for
position-independent code and does not have a separate option for PIE.
We added `-PIC` for PIC in commit v2.8.11~174^2 (NAG: Use -PIC for
Fortran position-independent code, 2013-02-18). Follow up for PIE.
Closes: #16236
|
|\
| |
| |
| |
| | |
e52302d6 CrayLinuxEnvironment: Add alternative methods to get version info
|
| |
| |
| |
| | |
Closes: #16229
|
|\ \
| | |
| | |
| | |
| | | |
85e03142 GNU: Use -fvisibility on GCC 4.0 and 4.1 too
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This flag is needed for the `<LANG>_VISIBILITY_PRESET` target property.
It has been supported since GCC 4.0, not 4.2 as we previously recorded.
Fixes #16222.
|
|\ \ \
| |/ /
|/| |
| | |
| | |
| | |
| | | |
088f14eb Intel-C: standard flags are also supported in 12.0
27a3ca15 Intel-C: support gnu89 and gnu99 extension flags
cc223e1e Intel-C: declare support for gnu11
|
| | | |
|
| | | |
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Without extensions, functions like `strdup` are not available since they
are actually controlled by feature flags such as _SVID_SOURCE and
_BSD_SOURCE. When using `-std=c11` on Intel, none of these flags are
set, so the functions are not declared properly leading to compile
errors.
Reported-by: Adam J. Stewart <ajstewart426@gmail.com>
Closes: #16226
|
| |
| |
| |
| |
| |
| |
| | |
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'
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Document these variables.
Change our convention for setting these variables from:
set(CMAKE_C_FLAGS_INIT "...")
to
string(APPEND CMAKE_C_FLAGS_INIT " ...")
so that any value previously set by a toolchain file will be used.
Automate the conversion with:
sed -i 's/set *(\(CMAKE_\(C\|CXX\|Fortran\|RC\|ASM\|${[^}]\+}\)_FLAGS\(_[^_]\+\)\?_INIT \+"\)/string(APPEND \1 /' \
Modules/Compiler/*.cmake Modules/Platform/*.cmake
and follow up with some manual fixes (e.g. to cases that already
meant to append). Also revert the automated changes to contexts
that are not protected from running multiple times.
|
|/
|
|
|
|
|
|
|
|
|
| |
Refactor options out of `Modules/Compiler/Intel-{ASM,C,CXX,Fortran}.cmake`
into a common helper in `Modules/Compiler/Intel.cmake`. Condition
them to be used only on non-Windows hosts where the Intel compiler
is GNU-like instead of MSVC-like.
Previously this worked only because the options were later overridden
by `Modules/Platform/Windows-Intel*.cmake`, but it is cleaner to not
set the options in the first place.
|
|
|
|
|
|
|
|
|
| |
If e.g. libc.a is passed before any objects the linker raises the follwing
warning: cannot resolve archive libc.a to a compatible library, as no
input files have been encountered
In the end the library is skipped and missing symbols occur.
Signed-off-by: Alexander Stein <alexander.stein@systec-electronic.com>
|
| |
|
| |
|
|
|
|
|
| |
Select the `-std=` or `-Qstd=` flag based on whether Intel is GNU-like
or MSVC-like, respectively.
|
|
|
|
|
| |
Record features for Intel C 12.1 and above. Skip this for now on
Windows (where Intel C simulates MSVC).
|
|
|
|
|
|
| |
Versions below 12.1 do not provide enough information to properly detect
if compiling with c++98 or c++0x enabled so remove them from the
supported list.
|
|
|
|
| |
Skip this for now on Windows (where Intel C++ simulates MSVC).
|
|\
| |
| |
| |
| | |
9408a7a8 ASM: Add missing <INCLUDES> placeholder for "compile" rules
|
| |
| |
| |
| |
| |
| |
| |
| | |
This placeholder was added to the compilation rules for other languages
by commit v3.4.0-rc1~342^2 (Factor an <INCLUDES> placeholder out of
<FLAGS> in rule variables, 2015-07-13) but ASM was incorrectly left out.
Signed-off-by: Gregor Jasny <gjasny@googlemail.com>
|
| | |
|
|/
|
|
|
| |
Move common information in `Modules/Compiler/GHS-*.cmake` over to a
common `Modules/Compiler/GHS.cmake` and include it.
|
|\
| |
| |
| |
| | |
bf3e76d2 GHS: Fix try_compile (#15975)
|
| | |
|
|/
|
|
| |
Revise C compiler detection code to be K&R compatible.
|
|
|
|
|
|
|
|
| |
When system-provided packages are upgraded we must re-compile sources
depending on their headers. Use `-MD` instead of `-MMD` so that the
generated depfiles do not exclude system headers.
Suggested-by: Jussi Judin
|
| |
|
|
|
|
|
|
|
|
| |
Due to #4662 -isystem support was disabled for all GNU Compilers
on Apple platforms. But the change was probably a just work around
for a broken compiler on Tiger (see 10837#c27206). So we tighten
the condition to only kick in for GCC versions earlier than 4.
That should ensure sane behavior for Xcode 3.2 and later.
|
|
|
|
|
|
| |
The dependency flags require recent versions of `iccarm` and `iccavr`.
The multi-rule dependency generated with `--dependencies=m` does not
work well with Ninja, so use `--dependencies=ns` instead.
|
|
|
|
|
|
| |
Drop the 'UNIX' condition on Clang compiler features. This enables
use of compile features with MinGW Clang, though additional work may
be needed for clang-cl.
|
| |
|
|
|
|
|
|
|
| |
When parsing implicit include dirs, link dirs, and link libs, all
arguments are resolved to absolute paths instead of relative paths.
This is correct for link and include directories but link libraries
should only include the library name, not it's path.
|
|\
| |
| |
| |
| |
| |
| | |
a7ef0225 Cray: Refactor the Cray platform files to use compiler wrapper checks
0763a836 Cray: Add macro tests to detect the Cray compiler wrappers
5eaac0c9 Compiler: Add infrastructure for detecting compiler wrappers
|