| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
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
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is an extensive refactoring of the Cray compiler wrapper usage.
Using the new compiler wrapper checks, the CrayPrgEnv info files have
been moved from Platform/ to Compiler/. The adjusted naming convention
allows the compiler-wrapper information files to be loaded for both the
CrayLinuxEnvironment platform when cross-compiling and the Linux
platform if building natively on the Cray compute nodes. It also
creates a separation of common arguments for compiler id and language
information used to perform the appropriate introspection of implicit
arguments and libraries used by the compiler wrappers based on the
loaded module environment.
|
|/
|
|
|
|
|
|
|
|
|
|
|
| |
As per the following link:
http://docwiki.embarcadero.com/RADStudio/Seattle/en/Example_of_CODEGEARC_VERSION_Macro
The major/minor versions must be decoded as a hex string, while the patch
version must be decoded as a normal decimal string.
As an example, C++ Builder XE 8.1's bcc32.exe sets this macro to 0x070189C9.
The file version of bcc32.exe is 7.1.5570.35273. Therefore, the correct
interpretation to COMPILER_VERSION would be 7.1.35273.
|
|\
| |
| |
| |
| | |
441dba80 Project: Guess default standard dialect if compiler was forced (#15852)
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Prior to commit v3.4.0-rc1~71^2 (Project: Determine default language
dialect for the compiler, 2015-09-15) we always guessed the default
language standard dialect based on the compiler version. This was not
reliable so that commit switched to computing the default language
standard dialect while detecting the compiler id.
When a toolchain file uses CMakeForceCompiler to set the compiler id
then the detection does not occur. Therefore commit v3.4.0-rc1~54^2
(Project: Don't require computed default dialect if compiler was forced,
2015-09-22) made the lack of detection an error only if the compiler was
not forced. However, this means that projects using CMakeForceCompiler
no longer even get the guess that we had before so <LANG>_COMPILER does
not work.
Due to the sophistication of CMake's compiler detection logic projects
should be ported away from using CMakeForceCompiler. In the meantime,
restore a guess of the default language standard dialect when the
compiler is forced.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Create an `ARMCC` compiler id corresponding to compilers identified and
versioned by the `__ARMCC_VERSION` predefined macro. See documentation
for the compilers at
http://infocenter.arm.com/help/topic/com.arm.doc.set.swdev/index.html
|
| |
| |
| |
| |
| |
| |
| |
| | |
Revert commit v3.4.0-rc1~10^2~2 (Features: Disable support for Oracle
SolarisStudio on non-Linux, 2015-09-29) and two follow-up commits.
The support of compile features and language standards on Orcale
SolarisStudio needs more investigation so for CMake 3.4 we should
just act as 3.3 did.
|
| | |
|
| |
| |
| |
| |
| |
| | |
On SunOS the -std=c++11 flag must be used for linking as well as
compiling. Until we implement support for this we cannot support
the CXX_STANDARD property except on Linux (where it was tested).
|
|/
|
|
|
|
|
| |
The latter is now the preferred URL for visiting cmake.org with a
browser. Convert using the shell code:
git ls-files -z | xargs -0 sed -i 's|http://www\.cmake|https://cmake|g'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Commit 7235334a (Project: Determine default language dialect for the
compiler., 2015-09-15) introduced a mechanism to determine the default
dialect used for the running compiler. If conditions in
the <CompilerId>-<Lang>.cmake file are such that compile features for
that version of the compiler should be supported, the _DEFAULT_STANDARD
is set to the computed value.
However, the CMakeForceCompiler module allows users to bypass execution of the
compiler by CMake. In that case, do not set the _DEFAULT_STANDARD variable at
all, which effectively disables the compile-features where the module is used.
No compile features have ever been recorded where the module is used so no
functionality is lost.
|
|
|
|
|
|
| |
Use the __cplusplus and __STDC_VERSION__ macros to automatically
determine the default dialect for the compiler while determining its
id and version.
|
|
|
|
| |
Drop the 'UNIX' condition on GNU C compiler features.
|
|
|
|
|
|
| |
Very old versions of gcc (2.3.1) do not define __GNUC_MINOR__.
Signed-off-by: Kars de Jong <kars.dejong@locamation.nl>
|
| |
|
|\
| |
| |
| |
| | |
c2d590c9 Features: Update MSVC features for VS 2015 RTM
|
| |
| |
| |
| |
| | |
VS 2015 RTM completed support for constexpr and attribute features.
Update our feature table and test accordingly.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Teach the Makefile and Ninja generators to substitute for an <INCLUDES>
placeholder instead of putting -I in <FLAGS>. Update our values for
CMAKE_<LANG>_COMPILE_OBJECT,
CMAKE_<LANG>_CREATE_ASSEMBLY_SOURCE, and
CMAKE_<LANG>_CREATE_PREPROCESSED_SOURCE
to place <INCLUDES> just before <FLAGS>.
|
| |
| |
| |
| |
| |
| |
| |
| | |
The Apple Clang 6.1 compiler that comes with Xcode 6.3 is aware of the
modern -std=c++14 and -std=gnu++14 flags, so use them instead of the
"1y" flags.
Suggested-by: darkapostle@rule506.net
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This was added without explanation by commit v2.8.2~1138 (Add initial XL
C compiler flags for safer builds, 2009-09-30). It is not consistent
with our default C++ flags for XL and disables several optimizations, so
drop it from our default flags for C.
Suggested-by: Todd Gamblin <tgamblin@llnl.gov>
|
|/
|
|
|
|
|
|
|
| |
The Concurrent Fortran compiler (ccur.com) is available on Linux and can
be used much like the GNU Fortran compiler. Currently it has no
preprocessor symbols to identify it so we need to detect it by matching
compiler output.
Suggested-by: Anthony Ette <Anthony.R.Ette@controlsdata.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Green Hills MULTI is an IDE for embedded real-time systems. The IDE's
product page can be found here:
http://www.ghs.com/products/MULTI_IDE.html
It supports cross compiling on ARM, Intel x86, and other architectures
with various operating systems. The IDE exists on Linux and Windows
host systems, but CMake will currently only generate the project files
on Windows host systems.
|
|
|
|
|
|
|
|
|
|
|
| |
VS 2013 originally claimed to support initializer lists but a bug was
found in which it generated bad code silently. For this reason we
previously considered support to not be present. However, Update 3 adds
a hard error on cases that previously generated bad code, so it is now
safe to use initializer lists with VS 2013 Update 3 or greater. At
worst a compiler error will be issued in the cases that do not work, but
that is no different from any other compiler-specific workaround a
project code may need.
|
|
|
|
|
|
|
| |
The compiler documents that USE statements search for ".mod" files
in directories specified with -I, but not -isystem.
Reported-by: Hugh Sorby <h.sorby@auckland.ac.nz>
|
| |
|
| |
|
|
|
|
|
|
| |
Drop the 'UNIX' condition on GNU compiler features.
Suggested-by: David Demelier <demelier.david@gmail.com>
|
|\
| |
| |
| |
| |
| |
| |
| |
| | |
fb3487a9 Features: Fix C90 feature detection.
6027798a Features: Allow setting standard dialect below the default.
9d767810 Features: Populate CMAKE_<LANG>_STANDARD_DEFAULT only for supported compilers.
72537e44 Features: Add dialect compile flags only if default is known.
82c9d686 AppleClang: Remove redundant UNIX condition.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This bug caused c_function_prototypes to not be recorded at configure
time when compiling with -std=gnu99 or similar. In the case of feature
recording, that was not a problem, because the logic in
CMakeDetermineCompileFeatures.cmake currently assumes that a feature
present for an earlier standard is present for a later standard.
However, the detection strings are also used in WriteCompilerDetectionHeader,
so the feature macro has been defined to '0' when using a later language
dialect.
Fix that by not checking the existence of the __STDC_VERSION__ macro at
all when detecting C90 features.
|
| |
| |
| |
| |
| |
| | |
If no compiler feature information is known for a given compiler
version, do not set a language standard default either. The two
settings must be recorded consistently.
|
| | |
|