ddec418a Features: Add compiler version support to WriteCompilerDetectionHeader.
b7029576 Project: Add configurable name for version computation macros.
78acaafe Project: Separate simulated compiler id from version detection.
567af1a5 WCDH: Issue a better message for version compatibility.
Create a Platform/Android module that includes Platform/Linux since
Android is based on Linux. Provide only the minimal settings needed to
get builds with Android NDK toolchains to work.
Disable use of RPATH since the Android loader ignores it and we cannot
predict the install destination anyway.
Android supports soname but shared library names must end in ".so" and
we cannot represent the versioned names with associated symlinks on all
host operating systems anyway. However, we do want the SONAME of
library files to be set so that linking to them by path to the library
file produces NEEDED entries with the soname and not the path. Add a
new CMAKE_PLATFORM_NO_VERSIONED_SONAME setting to tell the
cmTarget::GetLibraryNames method that not to use the VERSION or
SOVERSION target properties in the soname.
We already match lowercase 'rc'. Add 'RC' too. The latter is listed in
other CMake<LANG>Compiler modules as ignored for their languages already.
Signed-off-by: Tim Blechmann <tim@klingt.org>
The FindQt4 module is a CMake Domain object of type "module".
Our convention for domain object document titles is "------"
and domain object document sections is "^^^^^^". Switch to
these within the FindQt4 documentation.
58f7baab FindFreetype: Indent with 2 spaces instead of 4
444f8801 FindFreetype: Use lower-case name in call to FPHSA
836a28d5 FindFreetype: Move PATH_SUFFIXES argument for more consistency
4ad6dace FindFreetype: Add newlines to reduce code width
While at it, do not cache the value since it should always be
computed directly from DOXYGEN_DOT_EXECUTABLE.
Inspired-by: Lars Bilke <larsbilke83@googlemail.com>
As of Graphviz 2.31, their installer provides no PATH or registry
modifications. Glob possible install paths instead.
Inspired-by: Lars Bilke <larsbilke83@googlemail.com>
Link to it from the documentation of related properties, variables
and commands.
Extend the cmake-developer(7) documentation with notes on
extending feature support for compilers.
Add to the Platform/Windows-GNU module list of VS registry entries those
for VS 2013. Also add the name "vcvars64.bat" used by VS 10 and above
for 64-bit tools.
After finding qmake we search in QT_BINARY_DIR for the other Qt tools.
Try all versioned executable names before trying the plain executable name.
This makes it much more likely that if 2 different major versions are installed
in the same prefix CMake will be able to detect a proper set of tools.
Update cmake_minimum_required calls in CMakeLists.txt in Modules and in
CMakeLists.txt generated by other modules, so that they are always in
sync with current CMake version.
Some modules change CMake minimum required version when they are
included. For example:
cmake_minimum_required(VERSION 2.8.12)
message("${CMAKE_MINIMUM_REQUIRED_VERSION}")
include(CheckTypeSize)
message("${CMAKE_MINIMUM_REQUIRED_VERSION}")
will produce the following output:
2.8.12
2.6
This patch ensures that when you include a CMake module the minimum
required version and the policies set are left unchanged.
Fixes Issue #14864
Previously when linking the intermediate link file for separable compilation
the CUDA_NVCC_FLAGS* were not used. This caused tremendous confusion when
using this feature, and I consider it to be a bug. This change should fix
this.
Clang discards the entire string if it is not used, removing
the ability to read the features from the compiled binary. That
is prevented by using the symbol.
GNU with -O3 also discards the string, so use the string in a
way which is determined by a runtime value (argc) to prevent
it being discarded.
Add properties and variables corresponding to CXX equivalents.
Add features for c_function_prototypes (C90), c_restrict (C99),
c_variadic_macros (C99) and c_static_assert (C11). This feature
set can be extended later.
Add a <PREFIX>_RESTRICT symbol define to WriteCompilerDetectionHeader
to conditionally represent the c_restrict feature.
Provide a function to write a portable header to detect compiler
features. Generate a preprocessor #error for unknown compilers
and compiler versions whose features are not yet recorded. This
error condition might be relaxed in the future, but for now it
is useful for verification of expectations.
Remove the use of check_cxx_source_compiles which is now just getting in
the way.
Blacklist the cxx_alignof feature in the test with GNU 4.7. The test
file compiles, but it is documented as available first in GNU 4.8.
205215fb cmTarget: Add CXX_STANDARD_REQUIRED to control decay.
1df2116b Features: Decay language flag if requested is not available.
c4f4dac2 Project: Fix exit-on-error with compile feature tests.
5bb7ce72 Project: Use nullary form of main for compile feature tests.
64254e7a Project: Remove extern from static string in feature tests.
0d9c99bf Help: Fix order of help entries.
dc7639bd Tests: Fix name of cache variable.
3b59f8b7 Project: Refactor C compiler determination into multiple files.
8896501b CompilerId: Allow specifying a prefix for preprocessor defines.
23f451bb CompilerId: Guard the platform-default compiler code with a parameter.
30a99f5c CompilerId: Add option to generate compiler-id-specific defines.
36ed5894 CompilerId: Allow specifying the compiler-specific components to generate.
9a083bce Project: Split the compiler id detection into a separate function.
9d285600 Project: Generate the CXX compiler Id test from multiple files.
Just like -I flag has its -isystem counterpart which marks an include
directory as a system directory and prevents unwanted warnings, on Apple
systems there is -iframework -- a system directory replacement for -F.
Use this flag to implement include_directories(SYSTEM) for frameworks.
This will allow sharing of the logic of the order to test compilers in
and the preprocessor macros used to do that and to determine the
version components.
Use the highest standard compile flags available if requested language
version is too new.
This supports use-cases like
set(CMAKE_CXX_STANDARD 14)
# Compiled with -std=c++11 with GNU 4.7, which has no -std=c++14
# or equivalent flag
add_executable(main main.cpp)
This can be used in combination with preprocessor defines which
communicate the availability of certain language features for
optional use.
When ncurses is built with USE=tinfo we need to find "tinfo" as a
dependency of the main library. Otherwise 'cbreak' is missing:
ld: ...: undefined reference to symbol 'cbreak'
ld: note: 'cbreak' is defined in DSO /lib/libtinfo.so.5 so try adding
it to the linker command line
See https://bugs.gentoo.org/show_bug.cgi?id=468622 for more information.
Applied-by: Rolf Eike Beer <eike@sf-mail.de>
Take our CURSES_USE_NCURSES code path when CURSES_NEED_NCURSES is
enabled even if CURSES_CURSES_LIBRARY also happens to be found.
Applied-by: Rolf Eike Beer <eike@sf-mail.de>
For example if one installs Xcode 4.6 on OS X 10.9, it doesn't contain
a 10.9 SDK, so fallback to the next newest version which, in this case,
happens to be a 10.8 SDK.
This fixes bug #14572.
The MBCS (Multi-Byte Character Set) has been deprecated with VS 2013,
and MSVC no longer ships with an MBCS-version of MFC by default.
However, it can be downloaded as an add-on.
Teach InstallRequiredSystemLibraries to install the MBCS MFC only
for VS < 12 or if it happens to exist on the system.
In commit v3.0.0-rc1~103^2~3 (ExternalProject: Reattempt download when
verification fails, 2014-01-15) a reference to ${CMAKE_COMMAND} was
added to generate a reference to the CMake command in a cmake script.
Escape the '$' so that the literal variable reference appears in the
script instead of writing the path to the current cmake. This is
necessary when the path to CMake contains spaces or other characters
special to CMake syntax.