mirror of
https://github.com/Kitware/CMake.git
synced 2025-12-30 18:29:37 -06:00
LCC: Add dedicated support for MCST LCC compiler
Divert LCC compiler as a new one, instead of treating it as GNU. Since old times, Elbrus C/C++/Fortran Compiler (LCC) by MCST has been passing checks for GNU compilers, so it has been identified as GNU. Now, with intent of seriously upstreaming its support, it has been added as a separate LCC compiler, and its version displays not a supported GCC version, but LCC version itself (e.g. LCC 1.25.19 instead of GNU 7.3.0). This commit adds its support for detection, and also converts basically every check like 'is this compiler GNU?' to 'is this compiler GNU or LCC?'. The only places where this check is untouched, is where it regards other platforms where LCC is unavailable (primarily non-Linux), and where it REALLY differs from GNU compiler. Note: this transition may break software that are already ported to Elbrus, but hardly relies that LCC will be detected as GNU; still such software is not known.
This commit is contained in:
@@ -13,7 +13,7 @@ fi
|
||||
# $2: language (e.g. C/CXX/Fortran)
|
||||
# $3: The compiler ID, defaults to GNU.
|
||||
# Possible values are: GNU, Intel, Clang, SunPro, HP, XL, VisualAge, PGI,
|
||||
# PathScale, Cray, SCO, MSVC
|
||||
# PathScale, Cray, SCO, MSVC, LCC
|
||||
# $4: optional extra arguments to cmake, e.g. "-DCMAKE_SIZEOF_VOID_P=8"
|
||||
# $5: optional path to cmake binary
|
||||
AC_DEFUN([CMAKE_FIND_PACKAGE], [
|
||||
|
||||
@@ -633,7 +633,7 @@ macro (CMAKE_BUILD_UTILITIES)
|
||||
message(FATAL_ERROR
|
||||
"CMAKE_USE_SYSTEM_JSONCPP is ON but a JsonCpp is not found!")
|
||||
endif()
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|LCC|Clang")
|
||||
set_property(TARGET JsonCpp::JsonCpp APPEND PROPERTY
|
||||
INTERFACE_COMPILE_OPTIONS -Wno-deprecated-declarations)
|
||||
endif()
|
||||
@@ -820,7 +820,8 @@ if(NOT CMake_TEST_EXTERNAL_CMAKE)
|
||||
(CMAKE_C_COMPILER_ID STREQUAL "Clang" AND
|
||||
NOT "${CMAKE_C_COMPILER_VERSION}" VERSION_LESS 3.0 AND
|
||||
NOT "x${CMAKE_C_SIMULATE_ID}" STREQUAL "xMSVC") OR
|
||||
CMAKE_C_COMPILER_ID STREQUAL "AppleClang")
|
||||
CMAKE_C_COMPILER_ID STREQUAL "AppleClang" OR
|
||||
CMAKE_C_COMPILER_ID STREQUAL "LCC")
|
||||
set(C_FLAGS_LIST -Wcast-align -Werror-implicit-function-declaration -Wchar-subscripts
|
||||
-Wall -W -Wpointer-arith -Wwrite-strings -Wformat-security
|
||||
-Wmissing-format-attribute -fno-common -Wundef
|
||||
|
||||
@@ -10,7 +10,7 @@ target_compile_features(tutorial_compiler_flags INTERFACE cxx_std_11)
|
||||
|
||||
# add compiler warning flags just when building this project via
|
||||
# the BUILD_INTERFACE genex
|
||||
set(gcc_like_cxx "$<COMPILE_LANG_AND_ID:CXX,ARMClang,AppleClang,Clang,GNU>")
|
||||
set(gcc_like_cxx "$<COMPILE_LANG_AND_ID:CXX,ARMClang,AppleClang,Clang,GNU,LCC>")
|
||||
set(msvc_cxx "$<COMPILE_LANG_AND_ID:CXX,MSVC>")
|
||||
target_compile_options(tutorial_compiler_flags INTERFACE
|
||||
"$<${gcc_like_cxx}:$<BUILD_INTERFACE:-Wall;-Wextra;-Wshadow;-Wformat=2;-Wunused>>"
|
||||
|
||||
@@ -8,7 +8,7 @@ target_compile_features(tutorial_compiler_flags INTERFACE cxx_std_11)
|
||||
|
||||
# add compiler warning flags just when building this project via
|
||||
# the BUILD_INTERFACE genex
|
||||
set(gcc_like_cxx "$<COMPILE_LANG_AND_ID:CXX,ARMClang,AppleClang,Clang,GNU>")
|
||||
set(gcc_like_cxx "$<COMPILE_LANG_AND_ID:CXX,ARMClang,AppleClang,Clang,GNU,LCC>")
|
||||
set(msvc_cxx "$<COMPILE_LANG_AND_ID:CXX,MSVC>")
|
||||
target_compile_options(tutorial_compiler_flags INTERFACE
|
||||
"$<${gcc_like_cxx}:$<BUILD_INTERFACE:-Wall;-Wextra;-Wshadow;-Wformat=2;-Wunused>>"
|
||||
|
||||
@@ -8,7 +8,7 @@ target_compile_features(tutorial_compiler_flags INTERFACE cxx_std_11)
|
||||
|
||||
# add compiler warning flags just when building this project via
|
||||
# the BUILD_INTERFACE genex
|
||||
set(gcc_like_cxx "$<COMPILE_LANG_AND_ID:CXX,ARMClang,AppleClang,Clang,GNU>")
|
||||
set(gcc_like_cxx "$<COMPILE_LANG_AND_ID:CXX,ARMClang,AppleClang,Clang,GNU,LCC>")
|
||||
set(msvc_cxx "$<COMPILE_LANG_AND_ID:CXX,MSVC>")
|
||||
target_compile_options(tutorial_compiler_flags INTERFACE
|
||||
"$<${gcc_like_cxx}:$<BUILD_INTERFACE:-Wall;-Wextra;-Wshadow;-Wformat=2;-Wunused>>"
|
||||
|
||||
@@ -28,6 +28,7 @@ include:
|
||||
IAR = IAR Systems (iar.com)
|
||||
Intel = Intel Compiler (intel.com)
|
||||
IntelLLVM = Intel LLVM-Based Compiler (intel.com)
|
||||
LCC = MCST Elbrus C/C++/Fortran Compiler (mcst.ru)
|
||||
MSVC = Microsoft Visual Studio (microsoft.com)
|
||||
NVHPC = NVIDIA HPC SDK Compiler (nvidia.com)
|
||||
NVIDIA = NVIDIA CUDA Compiler (nvidia.com)
|
||||
|
||||
@@ -84,6 +84,7 @@ function(compiler_id_detection outvar lang)
|
||||
)
|
||||
list(APPEND ordered_compilers
|
||||
Clang
|
||||
LCC
|
||||
GNU
|
||||
MSVC
|
||||
ADSP
|
||||
|
||||
@@ -160,7 +160,7 @@ endif ()
|
||||
# "arm-unknown-nto-qnx6" instead of the correct "arm-unknown-nto-qnx6.3.0-"
|
||||
if (NOT _CMAKE_TOOLCHAIN_PREFIX)
|
||||
|
||||
if(CMAKE_C_COMPILER_ID MATCHES "GNU|Clang|QCC")
|
||||
if(CMAKE_C_COMPILER_ID MATCHES "GNU|Clang|QCC|LCC")
|
||||
get_filename_component(COMPILER_BASENAME "${CMAKE_C_COMPILER}" NAME)
|
||||
if (COMPILER_BASENAME MATCHES "^(.+-)?(clang|g?cc)(-cl)?(-[0-9]+(\\.[0-9]+)*)?(-[^.]+)?(\\.exe)?$")
|
||||
set(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_MATCH_1})
|
||||
|
||||
@@ -159,7 +159,7 @@ endif ()
|
||||
|
||||
if (NOT _CMAKE_TOOLCHAIN_PREFIX)
|
||||
|
||||
if("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU|Clang|QCC")
|
||||
if("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU|Clang|QCC|LCC")
|
||||
get_filename_component(COMPILER_BASENAME "${CMAKE_CXX_COMPILER}" NAME)
|
||||
if (COMPILER_BASENAME MATCHES "^(.+-)?(clang\\+\\+|[gc]\\+\\+|clang-cl)(-[0-9]+(\\.[0-9]+)*)?(-[^.]+)?(\\.exe)?$")
|
||||
set(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_MATCH_1})
|
||||
|
||||
@@ -148,7 +148,7 @@ macro(_cmake_find_compiler_path lang)
|
||||
endmacro()
|
||||
|
||||
function(_cmake_find_compiler_sysroot lang)
|
||||
if(CMAKE_${lang}_COMPILER_ID STREQUAL "GNU")
|
||||
if(CMAKE_${lang}_COMPILER_ID STREQUAL "GNU" OR CMAKE_${lang}_COMPILER_ID STREQUAL "LCC")
|
||||
execute_process(COMMAND "${CMAKE_${lang}_COMPILER}" -print-sysroot
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
OUTPUT_VARIABLE _cmake_sysroot_run_out
|
||||
|
||||
@@ -150,7 +150,7 @@ function(CMAKE_DETERMINE_COMPILER_ID lang flagvar src)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (COMPILER_QNXNTO AND CMAKE_${lang}_COMPILER_ID STREQUAL "GNU")
|
||||
if (COMPILER_QNXNTO AND (CMAKE_${lang}_COMPILER_ID STREQUAL "GNU" OR CMAKE_${lang}_COMPILER_ID STREQUAL "LCC"))
|
||||
execute_process(
|
||||
COMMAND "${CMAKE_${lang}_COMPILER}"
|
||||
-V
|
||||
|
||||
@@ -78,12 +78,13 @@ else()
|
||||
set(CMAKE_Fortran_COMPILER_LIST
|
||||
ftn
|
||||
ifort ifc ifx efc pgf95 pgfortran lf95 xlf95 fort
|
||||
flang gfortran gfortran-4 g95 f90 pgf90
|
||||
flang lfortran gfortran gfortran-4 g95 f90 pgf90
|
||||
frt pgf77 xlf g77 f77 nag
|
||||
)
|
||||
endif()
|
||||
|
||||
# Vendor-specific compiler names.
|
||||
set(_Fortran_COMPILER_NAMES_LCC lfortran gfortran)
|
||||
set(_Fortran_COMPILER_NAMES_GNU gfortran gfortran-4 g95 g77)
|
||||
set(_Fortran_COMPILER_NAMES_Intel ifort ifc efc ifx)
|
||||
set(_Fortran_COMPILER_NAMES_Absoft af95 af90 af77)
|
||||
|
||||
@@ -88,7 +88,7 @@ set(ENV{LANG} C)
|
||||
|
||||
# Now check for C, works for gcc and Intel compiler at least
|
||||
if (NOT CMAKE_EXTRA_GENERATOR_C_SYSTEM_INCLUDE_DIRS)
|
||||
if (CMAKE_C_COMPILER_ID MATCHES GNU OR CMAKE_C_COMPILER_ID MATCHES "Intel" OR CMAKE_C_COMPILER_ID MATCHES Clang)
|
||||
if (CMAKE_C_COMPILER_ID MATCHES GNU OR CMAKE_C_COMPILER_ID MATCHES "LCC" OR CMAKE_C_COMPILER_ID MATCHES "Intel" OR CMAKE_C_COMPILER_ID MATCHES Clang)
|
||||
_DETERMINE_GCC_SYSTEM_INCLUDE_DIRS(c _dirs _defines)
|
||||
set(CMAKE_EXTRA_GENERATOR_C_SYSTEM_INCLUDE_DIRS "${_dirs}" CACHE INTERNAL "C compiler system include directories")
|
||||
set(CMAKE_EXTRA_GENERATOR_C_SYSTEM_DEFINED_MACROS "${_defines}" CACHE INTERNAL "C compiler system defined macros")
|
||||
@@ -99,7 +99,7 @@ endif ()
|
||||
|
||||
# And now the same for C++
|
||||
if (NOT CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_INCLUDE_DIRS)
|
||||
if ("${CMAKE_CXX_COMPILER_ID}" MATCHES GNU OR "${CMAKE_CXX_COMPILER_ID}" MATCHES "Intel" OR "${CMAKE_CXX_COMPILER_ID}" MATCHES Clang)
|
||||
if ("${CMAKE_CXX_COMPILER_ID}" MATCHES GNU OR "${CMAKE_CXX_COMPILER_ID}" MATCHES "LCC" OR "${CMAKE_CXX_COMPILER_ID}" MATCHES "Intel" OR "${CMAKE_CXX_COMPILER_ID}" MATCHES Clang)
|
||||
_DETERMINE_GCC_SYSTEM_INCLUDE_DIRS(c++ _dirs _defines)
|
||||
set(CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_INCLUDE_DIRS "${_dirs}" CACHE INTERNAL "CXX compiler system include directories")
|
||||
set(CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_DEFINED_MACROS "${_defines}" CACHE INTERNAL "CXX compiler system defined macros")
|
||||
|
||||
@@ -95,6 +95,13 @@
|
||||
# endif
|
||||
#elif defined(__ABSOFT__)
|
||||
PRINT *, 'INFO:compiler[Absoft]'
|
||||
#elif defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__))
|
||||
PRINT *, 'INFO:compiler[LCC]'
|
||||
# define COMPILER_VERSION_MAJOR DEC(1)
|
||||
# define COMPILER_VERSION_MINOR DEC(__LCC__ - 100)
|
||||
# if defined(__LCC_MINOR__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__)
|
||||
# endif
|
||||
#elif defined(__GNUC__)
|
||||
PRINT *, 'INFO:compiler[GNU]'
|
||||
# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
|
||||
|
||||
@@ -58,6 +58,10 @@ function(CMAKE_PARSE_IMPLICIT_LINK_INFO text lib_var dir_var fwk_var log_var obj
|
||||
endif()
|
||||
separate_arguments(args NATIVE_COMMAND "${line}")
|
||||
list(GET args 0 cmd)
|
||||
if("${cmd}" MATCHES "->")
|
||||
# LCC has '-> ' in-front of the linker
|
||||
list(GET args 1 cmd)
|
||||
endif()
|
||||
else()
|
||||
#check to see if the link line is comma-separated instead of space separated
|
||||
string(REGEX REPLACE "," " " line "${line}")
|
||||
|
||||
11
Modules/Compiler/LCC-C-DetermineCompiler.cmake
Normal file
11
Modules/Compiler/LCC-C-DetermineCompiler.cmake
Normal file
@@ -0,0 +1,11 @@
|
||||
|
||||
set(_compiler_id_pp_test "defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__))")
|
||||
|
||||
set(_compiler_id_version_compute "
|
||||
# define @PREFIX@COMPILER_VERSION_MAJOR @MACRO_DEC@(1)
|
||||
# if defined(__LCC__)
|
||||
# define @PREFIX@COMPILER_VERSION_MINOR @MACRO_DEC@(__LCC__- 100)
|
||||
# endif
|
||||
# if defined(__LCC_MINOR__)
|
||||
# define @PREFIX@COMPILER_VERSION_PATCH @MACRO_DEC@(__LCC_MINOR__)
|
||||
# endif")
|
||||
17
Modules/Compiler/LCC-C-FeatureTests.cmake
Normal file
17
Modules/Compiler/LCC-C-FeatureTests.cmake
Normal file
@@ -0,0 +1,17 @@
|
||||
|
||||
set(_cmake_oldestSupported "(__GNUC__ * 100 + __GNUC_MINOR__) >= 304")
|
||||
|
||||
# GNU 4.7 correctly sets __STDC_VERSION__ to 201112L, but GNU 4.6 sets it
|
||||
# to 201000L. As the former is strictly greater than the latter, test only
|
||||
# for the latter. If in the future CMake learns about a C feature which was
|
||||
# introduced with GNU 4.7, that should test for the correct version, similar
|
||||
# to the distinction between __cplusplus and __GXX_EXPERIMENTAL_CXX0X__ tests.
|
||||
set(GNU46_C11 "(__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201000L")
|
||||
set(_cmake_feature_test_c_static_assert "${GNU46_C11}")
|
||||
# Since 3.4 at least:
|
||||
set(GNU34_C99 "(__GNUC__ * 100 + __GNUC_MINOR__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L")
|
||||
set(_cmake_feature_test_c_restrict "${GNU34_C99}")
|
||||
set(_cmake_feature_test_c_variadic_macros "${GNU34_C99}")
|
||||
|
||||
set(GNU_C90 "${_cmake_oldestSupported}")
|
||||
set(_cmake_feature_test_c_function_prototypes "${GNU_C90}")
|
||||
29
Modules/Compiler/LCC-C.cmake
Normal file
29
Modules/Compiler/LCC-C.cmake
Normal file
@@ -0,0 +1,29 @@
|
||||
include(Compiler/LCC)
|
||||
__compiler_lcc(C)
|
||||
|
||||
|
||||
if((NOT DEFINED CMAKE_DEPENDS_USE_COMPILER OR CMAKE_DEPENDS_USE_COMPILER)
|
||||
AND CMAKE_GENERATOR MATCHES "Makefiles|WMake"
|
||||
AND CMAKE_DEPFILE_FLAGS_C)
|
||||
# dependencies are computed by the compiler itself
|
||||
set(CMAKE_C_DEPFILE_FORMAT gcc)
|
||||
set(CMAKE_C_DEPENDS_USE_COMPILER TRUE)
|
||||
endif()
|
||||
|
||||
set(CMAKE_C_COMPILE_OPTIONS_EXPLICIT_LANGUAGE -x c)
|
||||
|
||||
set(CMAKE_C90_STANDARD_COMPILE_OPTION "-std=c90")
|
||||
set(CMAKE_C90_EXTENSION_COMPILE_OPTION "-std=gnu90")
|
||||
set(CMAKE_C90_STANDARD__HAS_FULL_SUPPORT ON)
|
||||
set(CMAKE_C99_STANDARD_COMPILE_OPTION "-std=c99")
|
||||
set(CMAKE_C99_EXTENSION_COMPILE_OPTION "-std=gnu99")
|
||||
set(CMAKE_C99_STANDARD__HAS_FULL_SUPPORT ON)
|
||||
set(CMAKE_C11_STANDARD_COMPILE_OPTION "-std=c11")
|
||||
set(CMAKE_C11_EXTENSION_COMPILE_OPTION "-std=gnu11")
|
||||
set(CMAKE_C11_STANDARD__HAS_FULL_SUPPORT ON)
|
||||
set(CMAKE_C17_STANDARD_COMPILE_OPTION "-std=c17")
|
||||
set(CMAKE_C17_EXTENSION_COMPILE_OPTION "-std=gnu17")
|
||||
set(CMAKE_C23_STANDARD_COMPILE_OPTION "-std=c2x")
|
||||
set(CMAKE_C23_EXTENSION_COMPILE_OPTION "-std=gnu2x")
|
||||
|
||||
__compiler_check_default_language_standard(C 1.23 90 1.20 11 1.26 17)
|
||||
11
Modules/Compiler/LCC-CXX-DetermineCompiler.cmake
Normal file
11
Modules/Compiler/LCC-CXX-DetermineCompiler.cmake
Normal file
@@ -0,0 +1,11 @@
|
||||
|
||||
set(_compiler_id_pp_test "defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__))")
|
||||
|
||||
set(_compiler_id_version_compute "
|
||||
# define @PREFIX@COMPILER_VERSION_MAJOR @MACRO_DEC@(1)
|
||||
# if defined(__LCC__)
|
||||
# define @PREFIX@COMPILER_VERSION_MINOR @MACRO_DEC@(__LCC__- 100)
|
||||
# endif
|
||||
# if defined(__LCC_MINOR__)
|
||||
# define @PREFIX@COMPILER_VERSION_PATCH @MACRO_DEC@(__LCC_MINOR__)
|
||||
# endif")
|
||||
109
Modules/Compiler/LCC-CXX-FeatureTests.cmake
Normal file
109
Modules/Compiler/LCC-CXX-FeatureTests.cmake
Normal file
@@ -0,0 +1,109 @@
|
||||
|
||||
# Reference: http://gcc.gnu.org/projects/cxx0x.html
|
||||
# http://gcc.gnu.org/projects/cxx1y.html
|
||||
|
||||
set(_cmake_oldestSupported "(__GNUC__ * 100 + __GNUC_MINOR__) >= 404")
|
||||
|
||||
set(GNU50_CXX14 "(__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L")
|
||||
set(_cmake_feature_test_cxx_variable_templates "${GNU50_CXX14}")
|
||||
set(_cmake_feature_test_cxx_relaxed_constexpr "${GNU50_CXX14}")
|
||||
set(_cmake_feature_test_cxx_aggregate_default_initializers "${GNU50_CXX14}")
|
||||
|
||||
# GNU 4.9 in c++14 mode sets __cplusplus to 201300L, so don't test for the
|
||||
# correct value of it below.
|
||||
# https://patchwork.ozlabs.org/patch/382470/
|
||||
set(GNU49_CXX14 "(__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L")
|
||||
set(_cmake_feature_test_cxx_contextual_conversions "${GNU49_CXX14}")
|
||||
set(_cmake_feature_test_cxx_attribute_deprecated "${GNU49_CXX14}")
|
||||
set(_cmake_feature_test_cxx_decltype_auto "${GNU49_CXX14}")
|
||||
set(_cmake_feature_test_cxx_digit_separators "${GNU49_CXX14}")
|
||||
set(_cmake_feature_test_cxx_generic_lambdas "${GNU49_CXX14}")
|
||||
# GNU 4.3 supports binary literals as an extension, but may warn about
|
||||
# use of extensions prior to GNU 4.9
|
||||
# http://stackoverflow.com/questions/16334024/difference-between-gcc-binary-literals-and-c14-ones
|
||||
set(_cmake_feature_test_cxx_binary_literals "${GNU49_CXX14}")
|
||||
# The features below are documented as available in GNU 4.8 (by implementing an
|
||||
# earlier draft of the standard paper), but that version of the compiler
|
||||
# does not set __cplusplus to a value greater than 201103L until GNU 4.9:
|
||||
# http://gcc.gnu.org/onlinedocs/gcc-4.8.2/cpp/Standard-Predefined-Macros.html#Standard-Predefined-Macros
|
||||
# http://gcc.gnu.org/onlinedocs/gcc-4.9.0/cpp/Standard-Predefined-Macros.html#Standard-Predefined-Macros
|
||||
# So, CMake only reports availability for it with GNU 4.9 or later.
|
||||
set(_cmake_feature_test_cxx_return_type_deduction "${GNU49_CXX14}")
|
||||
set(_cmake_feature_test_cxx_lambda_init_captures "${GNU49_CXX14}")
|
||||
|
||||
# Introduced in GCC 4.8.1
|
||||
set(GNU481_CXX11 "((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L")
|
||||
set(_cmake_feature_test_cxx_decltype_incomplete_return_types "${GNU481_CXX11}")
|
||||
set(_cmake_feature_test_cxx_reference_qualified_functions "${GNU481_CXX11}")
|
||||
set(GNU48_CXX11 "(__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L")
|
||||
set(_cmake_feature_test_cxx_alignas "${GNU48_CXX11}")
|
||||
# The alignof feature works with GNU 4.7 and -std=c++11, but it is documented
|
||||
# as available with GNU 4.8, so treat that as true.
|
||||
set(_cmake_feature_test_cxx_alignof "${GNU48_CXX11}")
|
||||
set(_cmake_feature_test_cxx_attributes "${GNU48_CXX11}")
|
||||
set(_cmake_feature_test_cxx_inheriting_constructors "${GNU48_CXX11}")
|
||||
set(_cmake_feature_test_cxx_thread_local "${GNU48_CXX11}")
|
||||
set(GNU47_CXX11 "(__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L")
|
||||
set(_cmake_feature_test_cxx_alias_templates "${GNU47_CXX11}")
|
||||
set(_cmake_feature_test_cxx_delegating_constructors "${GNU47_CXX11}")
|
||||
set(_cmake_feature_test_cxx_extended_friend_declarations "${GNU47_CXX11}")
|
||||
set(_cmake_feature_test_cxx_final "${GNU47_CXX11}")
|
||||
set(_cmake_feature_test_cxx_nonstatic_member_init "${GNU47_CXX11}")
|
||||
set(_cmake_feature_test_cxx_override "${GNU47_CXX11}")
|
||||
set(_cmake_feature_test_cxx_user_literals "${GNU47_CXX11}")
|
||||
# NOTE: C++11 was ratified in September 2011. GNU 4.7 is the first minor
|
||||
# release following that (March 2012), and the first minor release to
|
||||
# support -std=c++11. Prior to that, support for C++11 features is technically
|
||||
# experiemental and possibly incomplete (see for example the note below about
|
||||
# cxx_variadic_template_template_parameters)
|
||||
# GNU does not define __cplusplus correctly before version 4.7.
|
||||
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=1773
|
||||
# __GXX_EXPERIMENTAL_CXX0X__ is defined in prior versions, but may not be
|
||||
# defined in the future.
|
||||
set(GNU_CXX0X_DEFINED "(__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))")
|
||||
set(GNU46_CXX11 "(__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && ${GNU_CXX0X_DEFINED}")
|
||||
set(_cmake_feature_test_cxx_constexpr "${GNU46_CXX11}")
|
||||
set(_cmake_feature_test_cxx_defaulted_move_initializers "${GNU46_CXX11}")
|
||||
set(_cmake_feature_test_cxx_enum_forward_declarations "${GNU46_CXX11}")
|
||||
set(_cmake_feature_test_cxx_noexcept "${GNU46_CXX11}")
|
||||
set(_cmake_feature_test_cxx_nullptr "${GNU46_CXX11}")
|
||||
set(_cmake_feature_test_cxx_range_for "${GNU46_CXX11}")
|
||||
set(_cmake_feature_test_cxx_unrestricted_unions "${GNU46_CXX11}")
|
||||
set(GNU45_CXX11 "(__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && ${GNU_CXX0X_DEFINED}")
|
||||
set(_cmake_feature_test_cxx_explicit_conversions "${GNU45_CXX11}")
|
||||
set(_cmake_feature_test_cxx_lambdas "${GNU45_CXX11}")
|
||||
set(_cmake_feature_test_cxx_local_type_template_args "${GNU45_CXX11}")
|
||||
set(_cmake_feature_test_cxx_raw_string_literals "${GNU45_CXX11}")
|
||||
set(GNU44_CXX11 "(__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && ${GNU_CXX0X_DEFINED}")
|
||||
set(_cmake_feature_test_cxx_auto_type "${GNU44_CXX11}")
|
||||
set(_cmake_feature_test_cxx_defaulted_functions "${GNU44_CXX11}")
|
||||
set(_cmake_feature_test_cxx_deleted_functions "${GNU44_CXX11}")
|
||||
set(_cmake_feature_test_cxx_generalized_initializers "${GNU44_CXX11}")
|
||||
set(_cmake_feature_test_cxx_inline_namespaces "${GNU44_CXX11}")
|
||||
set(_cmake_feature_test_cxx_sizeof_member "${GNU44_CXX11}")
|
||||
set(_cmake_feature_test_cxx_strong_enums "${GNU44_CXX11}")
|
||||
set(_cmake_feature_test_cxx_trailing_return_types "${GNU44_CXX11}")
|
||||
set(_cmake_feature_test_cxx_unicode_literals "${GNU44_CXX11}")
|
||||
set(_cmake_feature_test_cxx_uniform_initialization "${GNU44_CXX11}")
|
||||
set(_cmake_feature_test_cxx_variadic_templates "${GNU44_CXX11}")
|
||||
# TODO: If features are ever recorded for GNU 4.3, there should possibly
|
||||
# be a new feature added like cxx_variadic_template_template_parameters,
|
||||
# which is implemented by GNU 4.4, but not 4.3. cxx_variadic_templates is
|
||||
# actually implemented by GNU 4.3, but variadic template template parameters
|
||||
# 'completes' it, so that is the version we record as having the variadic
|
||||
# templates capability in CMake. See
|
||||
# http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2555.pdf
|
||||
# TODO: Should be supported by GNU 4.3
|
||||
set(GNU43_CXX11 "${_cmake_oldestSupported} && ${GNU_CXX0X_DEFINED}")
|
||||
set(_cmake_feature_test_cxx_decltype "${GNU43_CXX11}")
|
||||
set(_cmake_feature_test_cxx_default_function_template_args "${GNU43_CXX11}")
|
||||
set(_cmake_feature_test_cxx_long_long_type "${GNU43_CXX11}")
|
||||
set(_cmake_feature_test_cxx_right_angle_brackets "${GNU43_CXX11}")
|
||||
set(_cmake_feature_test_cxx_rvalue_references "${GNU43_CXX11}")
|
||||
set(_cmake_feature_test_cxx_static_assert "${GNU43_CXX11}")
|
||||
# TODO: Should be supported since GNU 3.4?
|
||||
set(_cmake_feature_test_cxx_extern_templates "${_cmake_oldestSupported} && ${GNU_CXX0X_DEFINED}")
|
||||
# TODO: Should be supported forever?
|
||||
set(_cmake_feature_test_cxx_func_identifier "${_cmake_oldestSupported} && ${GNU_CXX0X_DEFINED}")
|
||||
set(_cmake_feature_test_cxx_variadic_macros "${_cmake_oldestSupported} && ${GNU_CXX0X_DEFINED}")
|
||||
set(_cmake_feature_test_cxx_template_template_parameters "${_cmake_oldestSupported} && __cplusplus")
|
||||
31
Modules/Compiler/LCC-CXX.cmake
Normal file
31
Modules/Compiler/LCC-CXX.cmake
Normal file
@@ -0,0 +1,31 @@
|
||||
include(Compiler/LCC)
|
||||
__compiler_lcc(CXX)
|
||||
|
||||
|
||||
if((NOT DEFINED CMAKE_DEPENDS_USE_COMPILER OR CMAKE_DEPENDS_USE_COMPILER)
|
||||
AND CMAKE_GENERATOR MATCHES "Makefiles|WMake"
|
||||
AND CMAKE_DEPFILE_FLAGS_CXX)
|
||||
# dependencies are computed by the compiler itself
|
||||
set(CMAKE_CXX_DEPFILE_FORMAT gcc)
|
||||
set(CMAKE_CXX_DEPENDS_USE_COMPILER TRUE)
|
||||
endif()
|
||||
|
||||
set(CMAKE_CXX_COMPILE_OPTIONS_EXPLICIT_LANGUAGE -x c++)
|
||||
|
||||
set(CMAKE_CXX_COMPILE_OPTIONS_VISIBILITY_INLINES_HIDDEN "-fvisibility-inlines-hidden")
|
||||
|
||||
set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "-std=c++98")
|
||||
set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "-std=gnu++98")
|
||||
set(CMAKE_CXX98_STANDARD__HAS_FULL_SUPPORT ON)
|
||||
set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-std=c++11")
|
||||
set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-std=gnu++11")
|
||||
set(CMAKE_CXX11_STANDARD__HAS_FULL_SUPPORT ON)
|
||||
set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "-std=c++14")
|
||||
set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-std=gnu++14")
|
||||
set(CMAKE_CXX14_STANDARD__HAS_FULL_SUPPORT ON)
|
||||
set(CMAKE_CXX17_STANDARD_COMPILE_OPTION "-std=c++17")
|
||||
set(CMAKE_CXX17_EXTENSION_COMPILE_OPTION "-std=gnu++17")
|
||||
set(CMAKE_CXX20_STANDARD_COMPILE_OPTION "-std=c++2a")
|
||||
set(CMAKE_CXX20_EXTENSION_COMPILE_OPTION "-std=gnu++2a")
|
||||
|
||||
__compiler_check_default_language_standard(CXX 1.19 98 1.20 11 1.21 14 1.24 17 1.26 20)
|
||||
37
Modules/Compiler/LCC-FindBinUtils.cmake
Normal file
37
Modules/Compiler/LCC-FindBinUtils.cmake
Normal file
@@ -0,0 +1,37 @@
|
||||
if(NOT DEFINED _CMAKE_PROCESSING_LANGUAGE OR _CMAKE_PROCESSING_LANGUAGE STREQUAL "")
|
||||
message(FATAL_ERROR "Internal error: _CMAKE_PROCESSING_LANGUAGE is not set")
|
||||
endif()
|
||||
|
||||
# Ubuntu 16.04:
|
||||
# * /usr/bin/gcc-ar-5
|
||||
# * /usr/bin/gcc-ranlib-5
|
||||
string(REGEX MATCH "^([0-9]+)" __version_x
|
||||
"${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_VERSION}")
|
||||
|
||||
string(REGEX MATCH "^([0-9]+\\.[0-9]+)" __version_x_y
|
||||
"${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_VERSION}")
|
||||
|
||||
# Try to find tools in the same directory as GCC itself
|
||||
get_filename_component(__gcc_hints "${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER}" DIRECTORY)
|
||||
|
||||
# http://manpages.ubuntu.com/manpages/wily/en/man1/gcc-ar.1.html
|
||||
find_program(CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_AR NAMES
|
||||
"${_CMAKE_TOOLCHAIN_PREFIX}gcc-ar-${__version_x_y}"
|
||||
"${_CMAKE_TOOLCHAIN_PREFIX}gcc-ar-${__version_x}"
|
||||
"${_CMAKE_TOOLCHAIN_PREFIX}gcc-ar${_CMAKE_COMPILER_SUFFIX}"
|
||||
HINTS ${__gcc_hints}
|
||||
NO_CMAKE_PATH NO_CMAKE_ENVIRONMENT_PATH
|
||||
DOC "A wrapper around 'ar' adding the appropriate '--plugin' option for the GCC compiler"
|
||||
)
|
||||
mark_as_advanced(CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_AR)
|
||||
|
||||
# http://manpages.ubuntu.com/manpages/wily/en/man1/gcc-ranlib.1.html
|
||||
find_program(CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_RANLIB NAMES
|
||||
"${_CMAKE_TOOLCHAIN_PREFIX}gcc-ranlib-${__version_x_y}"
|
||||
"${_CMAKE_TOOLCHAIN_PREFIX}gcc-ranlib-${__version_x}"
|
||||
"${_CMAKE_TOOLCHAIN_PREFIX}gcc-ranlib${_CMAKE_COMPILER_SUFFIX}"
|
||||
HINTS ${__gcc_hints}
|
||||
NO_CMAKE_PATH NO_CMAKE_ENVIRONMENT_PATH
|
||||
DOC "A wrapper around 'ranlib' adding the appropriate '--plugin' option for the GCC compiler"
|
||||
)
|
||||
mark_as_advanced(CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_RANLIB)
|
||||
26
Modules/Compiler/LCC-Fortran.cmake
Normal file
26
Modules/Compiler/LCC-Fortran.cmake
Normal file
@@ -0,0 +1,26 @@
|
||||
include(Compiler/LCC)
|
||||
__compiler_lcc(Fortran)
|
||||
|
||||
set(CMAKE_Fortran_SUBMODULE_SEP "@")
|
||||
set(CMAKE_Fortran_SUBMODULE_EXT ".smod")
|
||||
|
||||
set(CMAKE_Fortran_PREPROCESS_SOURCE
|
||||
"<CMAKE_Fortran_COMPILER> -cpp <DEFINES> <INCLUDES> <FLAGS> -E <SOURCE> -o <PREPROCESSED_SOURCE>")
|
||||
|
||||
set(CMAKE_Fortran_FORMAT_FIXED_FLAG "-ffixed-form")
|
||||
set(CMAKE_Fortran_FORMAT_FREE_FLAG "-ffree-form")
|
||||
|
||||
set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_ON "-cpp")
|
||||
set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_OFF "-nocpp")
|
||||
|
||||
set(CMAKE_Fortran_POSTPROCESS_FLAG "-fpreprocessed")
|
||||
|
||||
# No -DNDEBUG for Fortran.
|
||||
string(APPEND CMAKE_Fortran_FLAGS_MINSIZEREL_INIT " -Os")
|
||||
string(APPEND CMAKE_Fortran_FLAGS_RELEASE_INIT " -O3")
|
||||
|
||||
# No -isystem for Fortran because it will not find .mod files.
|
||||
unset(CMAKE_INCLUDE_SYSTEM_FLAG_Fortran)
|
||||
|
||||
# Fortran-specific feature flags.
|
||||
set(CMAKE_Fortran_MODDIR_FLAG -J)
|
||||
95
Modules/Compiler/LCC.cmake
Normal file
95
Modules/Compiler/LCC.cmake
Normal file
@@ -0,0 +1,95 @@
|
||||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
|
||||
|
||||
# This module is shared by multiple languages; use include blocker.
|
||||
if(__COMPILER_LCC)
|
||||
return()
|
||||
endif()
|
||||
set(__COMPILER_LCC 1)
|
||||
|
||||
include(Compiler/CMakeCommonCompilerMacros)
|
||||
|
||||
set(__pch_header_C "c-header")
|
||||
set(__pch_header_CXX "c++-header")
|
||||
set(__pch_header_OBJC "objective-c-header")
|
||||
set(__pch_header_OBJCXX "objective-c++-header")
|
||||
|
||||
macro(__compiler_lcc lang)
|
||||
# Feature flags.
|
||||
set(CMAKE_${lang}_VERBOSE_FLAG "-v")
|
||||
set(CMAKE_${lang}_COMPILE_OPTIONS_PIC "-fPIC")
|
||||
set (_CMAKE_${lang}_PIE_MAY_BE_SUPPORTED_BY_LINKER NO)
|
||||
set(CMAKE_${lang}_COMPILE_OPTIONS_PIE "-fPIE")
|
||||
# Support of PIE at link stage depends on various elements : platform, compiler, linker
|
||||
# so to activate it, module CheckPIESupported must be used.
|
||||
set (_CMAKE_${lang}_PIE_MAY_BE_SUPPORTED_BY_LINKER YES)
|
||||
set(CMAKE_${lang}_LINK_OPTIONS_PIE ${CMAKE_${lang}_COMPILE_OPTIONS_PIE} "-pie")
|
||||
set(CMAKE_${lang}_LINK_OPTIONS_NO_PIE "-no-pie")
|
||||
set(CMAKE_${lang}_COMPILE_OPTIONS_VISIBILITY "-fvisibility=")
|
||||
set(CMAKE_SHARED_LIBRARY_${lang}_FLAGS "-fPIC")
|
||||
set(CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS "-shared")
|
||||
set(CMAKE_${lang}_COMPILE_OPTIONS_SYSROOT "--sysroot=")
|
||||
|
||||
set(CMAKE_${lang}_LINKER_WRAPPER_FLAG "-Wl,")
|
||||
set(CMAKE_${lang}_LINKER_WRAPPER_FLAG_SEP ",")
|
||||
|
||||
# Older versions of gcc (< 4.5) contain a bug causing them to report a missing
|
||||
# header file as a warning if depfiles are enabled, causing check_header_file
|
||||
# tests to always succeed. Work around this by disabling dependency tracking
|
||||
# in try_compile mode.
|
||||
get_property(_IN_TC GLOBAL PROPERTY IN_TRY_COMPILE)
|
||||
if(CMAKE_${lang}_COMPILER_ID STREQUAL "LCC" AND _IN_TC AND NOT CMAKE_FORCE_DEPFILES)
|
||||
else()
|
||||
# distcc does not transform -o to -MT when invoking the preprocessor
|
||||
# internally, as it ought to. Work around this bug by setting -MT here
|
||||
# even though it isn't strictly necessary.
|
||||
set(CMAKE_DEPFILE_FLAGS_${lang} "-MD -MT <DEP_TARGET> -MF <DEP_FILE>")
|
||||
endif()
|
||||
|
||||
# Initial configuration flags.
|
||||
string(APPEND CMAKE_${lang}_FLAGS_INIT " ")
|
||||
string(APPEND CMAKE_${lang}_FLAGS_DEBUG_INIT " -g")
|
||||
string(APPEND CMAKE_${lang}_FLAGS_MINSIZEREL_INIT " -Os -DNDEBUG")
|
||||
string(APPEND CMAKE_${lang}_FLAGS_RELEASE_INIT " -O3 -DNDEBUG")
|
||||
string(APPEND CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT " -O2 -g -DNDEBUG")
|
||||
set(CMAKE_${lang}_CREATE_PREPROCESSED_SOURCE "<CMAKE_${lang}_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>")
|
||||
set(CMAKE_${lang}_CREATE_ASSEMBLY_SOURCE "<CMAKE_${lang}_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -S <SOURCE> -o <ASSEMBLY_SOURCE>")
|
||||
set(CMAKE_INCLUDE_SYSTEM_FLAG_${lang} "-isystem ")
|
||||
set(_CMAKE_${lang}_IPO_SUPPORTED_BY_CMAKE YES)
|
||||
set(_CMAKE_${lang}_IPO_MAY_BE_SUPPORTED_BY_COMPILER NO)
|
||||
set(_CMAKE_${lang}_IPO_MAY_BE_SUPPORTED_BY_COMPILER YES)
|
||||
set(__lto_flags -flto)
|
||||
list(APPEND __lto_flags -fno-fat-lto-objects)
|
||||
set(CMAKE_${lang}_COMPILE_OPTIONS_IPO ${__lto_flags})
|
||||
|
||||
set(CMAKE_${lang}_ARCHIVE_CREATE_IPO
|
||||
"\"${CMAKE_${lang}_COMPILER_AR}\" cr <TARGET> <LINK_FLAGS> <OBJECTS>"
|
||||
)
|
||||
|
||||
set(CMAKE_${lang}_ARCHIVE_APPEND_IPO
|
||||
"\"${CMAKE_${lang}_COMPILER_AR}\" r <TARGET> <LINK_FLAGS> <OBJECTS>"
|
||||
)
|
||||
|
||||
set(CMAKE_${lang}_ARCHIVE_FINISH_IPO
|
||||
"\"${CMAKE_${lang}_COMPILER_RANLIB}\" <TARGET>"
|
||||
)
|
||||
|
||||
set(CMAKE_${lang}_COMPILER_PREDEFINES_COMMAND "${CMAKE_${lang}_COMPILER}")
|
||||
if(CMAKE_${lang}_COMPILER_ARG1)
|
||||
separate_arguments(_COMPILER_ARGS NATIVE_COMMAND "${CMAKE_${lang}_COMPILER_ARG1}")
|
||||
list(APPEND CMAKE_${lang}_COMPILER_PREDEFINES_COMMAND ${_COMPILER_ARGS})
|
||||
unset(_COMPILER_ARGS)
|
||||
endif()
|
||||
list(APPEND CMAKE_${lang}_COMPILER_PREDEFINES_COMMAND "-dM" "-E" "-c" "${CMAKE_ROOT}/Modules/CMakeCXXCompilerABI.cpp")
|
||||
|
||||
if(NOT "x${lang}" STREQUAL "xFortran")
|
||||
set(CMAKE_PCH_EXTENSION .gch)
|
||||
if (NOT CMAKE_GENERATOR MATCHES "Xcode")
|
||||
set(CMAKE_PCH_PROLOGUE "#pragma GCC system_header")
|
||||
endif()
|
||||
set(CMAKE_${lang}_COMPILE_OPTIONS_INVALID_PCH -Winvalid-pch)
|
||||
set(CMAKE_${lang}_COMPILE_OPTIONS_USE_PCH -include <PCH_HEADER>)
|
||||
set(CMAKE_${lang}_COMPILE_OPTIONS_CREATE_PCH -x ${__pch_header_${lang}} -include <PCH_HEADER>)
|
||||
endif()
|
||||
endmacro()
|
||||
@@ -437,7 +437,7 @@ if(BLA_VENDOR MATCHES "Intel" OR BLA_VENDOR STREQUAL "All")
|
||||
set(BLAS_mkl_END_GROUP "")
|
||||
endif()
|
||||
# Switch to GNU Fortran support layer if needed (but not on Apple, where MKL does not provide it)
|
||||
if(CMAKE_Fortran_COMPILER_LOADED AND CMAKE_Fortran_COMPILER_ID STREQUAL "GNU" AND NOT APPLE)
|
||||
if(CMAKE_Fortran_COMPILER_LOADED AND (CMAKE_Fortran_COMPILER_ID STREQUAL "GNU" OR CMAKE_Fortran_COMPILER_ID STREQUAL "LCC") AND NOT APPLE)
|
||||
set(BLAS_mkl_INTFACE "gf")
|
||||
set(BLAS_mkl_THREADING "gnu")
|
||||
set(BLAS_mkl_OMP "gomp")
|
||||
|
||||
@@ -917,14 +917,14 @@ function(_Boost_GUESS_COMPILER_PREFIX _ret)
|
||||
if(NOT Boost_VERSION_STRING VERSION_LESS 1.69.0)
|
||||
# From GCC 5 and clang 4, versioning changes and minor becomes patch.
|
||||
# For those compilers, patch is exclude from compiler tag in Boost 1.69+ library naming.
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND _boost_COMPILER_VERSION_MAJOR VERSION_GREATER 4)
|
||||
if((CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND _boost_COMPILER_VERSION_MAJOR VERSION_GREATER 4) OR CMAKE_CXX_COMPILER_ID STREQUAL "LCC")
|
||||
set(_boost_COMPILER_VERSION "${_boost_COMPILER_VERSION_MAJOR}")
|
||||
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND _boost_COMPILER_VERSION_MAJOR VERSION_GREATER 3)
|
||||
set(_boost_COMPILER_VERSION "${_boost_COMPILER_VERSION_MAJOR}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "LCC")
|
||||
if(Boost_VERSION_STRING VERSION_LESS 1.34)
|
||||
set(_boost_COMPILER "-gcc") # no GCC version encoding prior to 1.34
|
||||
else()
|
||||
|
||||
@@ -873,7 +873,7 @@ if( NOT HDF5_FOUND )
|
||||
# Add library-based search paths for Fortran modules.
|
||||
if (NOT _hdf5_main_library STREQUAL "")
|
||||
# gfortran module directory
|
||||
if (CMAKE_Fortran_COMPILER_ID STREQUAL "GNU")
|
||||
if (CMAKE_Fortran_COMPILER_ID STREQUAL "GNU" OR CMAKE_Fortran_COMPILER_ID STREQUAL "LCC")
|
||||
get_filename_component(_hdf5_library_dir "${_hdf5_main_library}" DIRECTORY)
|
||||
list(APPEND _hdf5_inc_extra_paths "${_hdf5_library_dir}")
|
||||
unset(_hdf5_library_dir)
|
||||
|
||||
@@ -102,6 +102,7 @@ function(_OPENMP_FLAG_CANDIDATES LANG)
|
||||
unset(OpenMP_FLAG_CANDIDATES)
|
||||
|
||||
set(OMP_FLAG_GNU "-fopenmp")
|
||||
set(OMP_FLAG_LCC "-fopenmp")
|
||||
set(OMP_FLAG_Clang "-fopenmp=libomp" "-fopenmp=libiomp5" "-fopenmp" "-Xclang -fopenmp")
|
||||
set(OMP_FLAG_AppleClang "-Xclang -fopenmp")
|
||||
set(OMP_FLAG_HP "+Oopenmp")
|
||||
|
||||
2
Modules/Platform/Linux-LCC-C.cmake
Normal file
2
Modules/Platform/Linux-LCC-C.cmake
Normal file
@@ -0,0 +1,2 @@
|
||||
include(Platform/Linux-LCC)
|
||||
__linux_compiler_lcc(C)
|
||||
2
Modules/Platform/Linux-LCC-CXX.cmake
Normal file
2
Modules/Platform/Linux-LCC-CXX.cmake
Normal file
@@ -0,0 +1,2 @@
|
||||
include(Platform/Linux-LCC)
|
||||
__linux_compiler_lcc(CXX)
|
||||
3
Modules/Platform/Linux-LCC-Fortran.cmake
Normal file
3
Modules/Platform/Linux-LCC-Fortran.cmake
Normal file
@@ -0,0 +1,3 @@
|
||||
include(Platform/Linux-LCC)
|
||||
__linux_compiler_lcc(Fortran)
|
||||
set(CMAKE_SHARED_LIBRARY_LINK_Fortran_FLAGS "-llfortran")
|
||||
15
Modules/Platform/Linux-LCC.cmake
Normal file
15
Modules/Platform/Linux-LCC.cmake
Normal file
@@ -0,0 +1,15 @@
|
||||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
|
||||
|
||||
# This module is shared by multiple languages; use include blocker.
|
||||
if(__LINUX_COMPILER_LCC)
|
||||
return()
|
||||
endif()
|
||||
set(__LINUX_COMPILER_LCC 1)
|
||||
|
||||
macro(__linux_compiler_lcc lang)
|
||||
# We pass this for historical reasons. Projects may have
|
||||
# executables that use dlopen but do not set ENABLE_EXPORTS.
|
||||
set(CMAKE_SHARED_LIBRARY_LINK_${lang}_FLAGS "-rdynamic")
|
||||
endmacro()
|
||||
@@ -81,6 +81,7 @@ static const char* cmCTestErrorMatches[] = {
|
||||
"^The project cannot be built\\.",
|
||||
"^\\[ERROR\\]",
|
||||
"^Command .* failed with exit code",
|
||||
"lcc: \"([^\"]+)\", (line|строка) ([0-9]+): (error|ошибка)",
|
||||
nullptr
|
||||
};
|
||||
|
||||
@@ -122,6 +123,7 @@ static const char* cmCTestWarningMatches[] = {
|
||||
"cc-[0-9]* CC: REMARK File = .*, Line = [0-9]*",
|
||||
"^CMake Warning.*:",
|
||||
"^\\[WARNING\\]",
|
||||
"lcc: \"([^\"]+)\", (line|строка) ([0-9]+): (warning|предупреждение)",
|
||||
nullptr
|
||||
};
|
||||
|
||||
@@ -160,6 +162,9 @@ static cmCTestBuildCompileErrorWarningRex cmCTestWarningErrorFileLine[] = {
|
||||
{ "^([a-zA-Z./0-9_+ ~-]+)\\(([0-9]+)\\)", 1, 2 },
|
||||
{ "\"([a-zA-Z./0-9_+ ~-]+)\", line ([0-9]+)", 1, 2 },
|
||||
{ "File = ([a-zA-Z./0-9_+ ~-]+), Line = ([0-9]+)", 1, 2 },
|
||||
{ "lcc: \"([^\"]+)\", (line|строка) ([0-9]+): "
|
||||
"(error|ошибка|warning|предупреждение)",
|
||||
1, 3 },
|
||||
{ nullptr, 0, 0 }
|
||||
};
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
set(CMake_C11_THREAD_LOCAL_BROKEN 0)
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU" AND CMAKE_C11_STANDARD_COMPILE_OPTION)
|
||||
if((CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "LCC") AND CMAKE_C11_STANDARD_COMPILE_OPTION)
|
||||
if(NOT DEFINED CMake_C11_THREAD_LOCAL_WORKS)
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/cm_message_checks_compat.cmake)
|
||||
cm_message_checks_compat(
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
set(CMake_CXX14_BROKEN 0)
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang|PGI|Intel")
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|LCC|Clang|PGI|Intel")
|
||||
if(NOT CMAKE_CXX14_STANDARD_COMPILE_OPTION)
|
||||
set(CMake_CXX14_WORKS 0)
|
||||
endif()
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
set(CMake_CXX17_BROKEN 0)
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang|PGI|Intel")
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|LCC|Clang|PGI|Intel")
|
||||
if(NOT CMAKE_CXX17_STANDARD_COMPILE_OPTION)
|
||||
set(CMake_CXX17_WORKS 0)
|
||||
endif()
|
||||
|
||||
@@ -5,7 +5,7 @@ project(CMAKE_FORM)
|
||||
|
||||
# Disable warnings to avoid changing 3rd party code.
|
||||
if(CMAKE_C_COMPILER_ID MATCHES
|
||||
"^(GNU|Clang|AppleClang|XLClang|XL|VisualAge|SunPro|HP|Intel|IntelLLVM|NVHPC)$")
|
||||
"^(GNU|LCC|Clang|AppleClang|XLClang|XL|VisualAge|SunPro|HP|Intel|IntelLLVM|NVHPC)$")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w")
|
||||
elseif(CMAKE_C_COMPILER_ID STREQUAL "PathScale")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -woffall")
|
||||
|
||||
@@ -677,6 +677,12 @@ std::string cmExtraCodeBlocksGenerator::GetCBCompilerId(const cmMakefile* mf)
|
||||
} else {
|
||||
compiler = "pgi"; // does not exist as default in CodeBlocks 16.01
|
||||
}
|
||||
} else if (compilerId == "LCC") {
|
||||
if (pureFortran) {
|
||||
compiler = "lfortran";
|
||||
} else {
|
||||
compiler = "lcc";
|
||||
}
|
||||
} else if (compilerId == "GNU") {
|
||||
if (pureFortran) {
|
||||
compiler = "gfortran";
|
||||
|
||||
@@ -9,7 +9,7 @@ set(SRCS)
|
||||
# and also generate assembler files from C:
|
||||
if("${CMAKE_GENERATOR}" MATCHES "Makefile|Xcode|Ninja" AND
|
||||
NOT CMAKE_OSX_ARCHITECTURES MATCHES ";")
|
||||
if((CMAKE_C_COMPILER_ID MATCHES "^(GNU|Clang|AppleClang|HP|SunPro|XL)$") OR (CMAKE_C_COMPILER_ID MATCHES "Intel" AND UNIX)
|
||||
if((CMAKE_C_COMPILER_ID MATCHES "^(GNU|LCC|Clang|AppleClang|HP|SunPro|XL)$") OR (CMAKE_C_COMPILER_ID MATCHES "Intel" AND UNIX)
|
||||
AND NOT (CMAKE_C_COMPILER_ID STREQUAL "Clang" AND "x${CMAKE_C_COMPILER_FRONTEND_VARIANT}" STREQUAL "xMSVC"))
|
||||
set(C_FLAGS "${CMAKE_C_FLAGS}")
|
||||
separate_arguments(C_FLAGS)
|
||||
|
||||
@@ -6,7 +6,7 @@ add_compile_options(-DTEST_OPTION)
|
||||
|
||||
add_executable(add_compile_options main.cpp)
|
||||
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|LCC")
|
||||
target_compile_definitions(add_compile_options
|
||||
PRIVATE
|
||||
"DO_GNU_TESTS"
|
||||
|
||||
@@ -7,14 +7,14 @@ add_executable(target_compile_options
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/main.cpp"
|
||||
)
|
||||
target_compile_options(target_compile_options
|
||||
PRIVATE $<$<CXX_COMPILER_ID:AppleClang,Clang,GNU>:-DMY_PRIVATE_DEFINE>
|
||||
PUBLIC $<$<COMPILE_LANG_AND_ID:CXX,GNU>:-DMY_PUBLIC_DEFINE>
|
||||
PUBLIC $<$<COMPILE_LANG_AND_ID:CXX,GNU,Clang,AppleClang>:-DMY_MUTLI_COMP_PUBLIC_DEFINE>
|
||||
INTERFACE $<$<CXX_COMPILER_ID:GNU>:-DMY_INTERFACE_DEFINE>
|
||||
INTERFACE $<$<CXX_COMPILER_ID:GNU,Clang,AppleClang>:-DMY_MULTI_COMP_INTERFACE_DEFINE>
|
||||
PRIVATE $<$<CXX_COMPILER_ID:AppleClang,Clang,GNU,LCC>:-DMY_PRIVATE_DEFINE>
|
||||
PUBLIC $<$<COMPILE_LANG_AND_ID:CXX,GNU,LCC>:-DMY_PUBLIC_DEFINE>
|
||||
PUBLIC $<$<COMPILE_LANG_AND_ID:CXX,GNU,LCC,Clang,AppleClang>:-DMY_MUTLI_COMP_PUBLIC_DEFINE>
|
||||
INTERFACE $<$<CXX_COMPILER_ID:GNU,LCC>:-DMY_INTERFACE_DEFINE>
|
||||
INTERFACE $<$<CXX_COMPILER_ID:GNU,LCC,Clang,AppleClang>:-DMY_MULTI_COMP_INTERFACE_DEFINE>
|
||||
)
|
||||
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|LCC")
|
||||
target_compile_definitions(target_compile_options
|
||||
PRIVATE
|
||||
"DO_GNU_TESTS"
|
||||
@@ -47,10 +47,10 @@ if(CMAKE_GENERATOR MATCHES "Visual Studio")
|
||||
endif()
|
||||
|
||||
target_compile_options(consumer
|
||||
PRIVATE $<$<CXX_COMPILER_ID:GNU,Clang,AppleClang>:$<TARGET_PROPERTY:target_compile_options,INTERFACE_COMPILE_OPTIONS>>
|
||||
PRIVATE $<$<CXX_COMPILER_ID:GNU,LCC,Clang,AppleClang>:$<TARGET_PROPERTY:target_compile_options,INTERFACE_COMPILE_OPTIONS>>
|
||||
)
|
||||
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|LCC")
|
||||
target_compile_definitions(consumer
|
||||
PRIVATE
|
||||
"DO_GNU_TESTS"
|
||||
|
||||
@@ -25,7 +25,7 @@ target_link_libraries(staticlib1 LINK_PUBLIC staticlib2)
|
||||
|
||||
# Try adding a private link item to be propagated out of a static lib.
|
||||
set(private_link "")
|
||||
if (CMAKE_CXX_COMPILER_ID MATCHES GNU OR CMAKE_CXX_COMPILER_ID MATCHES Clang)
|
||||
if (CMAKE_CXX_COMPILER_ID MATCHES GNU OR CMAKE_CXX_COMPILER_ID MATCHES Clang OR CMAKE_CXX_COMPILER_ID MATCHES LCC)
|
||||
if (CMAKE_SYSTEM_NAME STREQUAL "SunOS")
|
||||
set(private_link "-Wl,-V")
|
||||
else()
|
||||
|
||||
@@ -531,8 +531,8 @@ if(BUILD_TESTING)
|
||||
if (NOT CMAKE_GENERATOR STREQUAL "Xcode")
|
||||
ADD_TEST_MACRO(SourceFileIncludeDirProperty SourceFileIncludeDirProperty)
|
||||
endif()
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL GNU
|
||||
AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.7)
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "LCC" OR (CMAKE_CXX_COMPILER_ID STREQUAL "GNU"
|
||||
AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.7))
|
||||
set(runCxxDialectTest 1)
|
||||
endif()
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL Clang
|
||||
@@ -670,7 +670,7 @@ if(BUILD_TESTING)
|
||||
|
||||
ADD_TEST_MACRO(Module.WriteCompilerDetectionHeader WriteCompilerDetectionHeader)
|
||||
|
||||
if (APPLE OR CMAKE_CXX_COMPILER_ID MATCHES "GNU")
|
||||
if (APPLE OR CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "LCC")
|
||||
include(CheckCXXCompilerFlag)
|
||||
check_cxx_compiler_flag(-fPIE run_pic_test)
|
||||
else()
|
||||
@@ -687,9 +687,10 @@ if(BUILD_TESTING)
|
||||
ADD_TEST_MACRO(PositionIndependentTargets PositionIndependentTargets)
|
||||
endif()
|
||||
|
||||
if((CMAKE_CXX_COMPILER_ID MATCHES "GNU") AND
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "LCC" OR
|
||||
((CMAKE_CXX_COMPILER_ID MATCHES "GNU") AND
|
||||
(NOT "${CMAKE_CXX_COMPILER_VERSION}" VERSION_LESS 4.2) AND
|
||||
(CMAKE_SYSTEM_NAME MATCHES "Linux"))
|
||||
(CMAKE_SYSTEM_NAME MATCHES "Linux")))
|
||||
|
||||
include(CheckCXXCompilerFlag)
|
||||
check_cxx_compiler_flag(
|
||||
@@ -2004,7 +2005,7 @@ if(BUILD_TESTING)
|
||||
set_tests_properties ( linkorder2 PROPERTIES DEPENDS linkorder1)
|
||||
|
||||
# Test static linking on toolchains known to support it.
|
||||
if(CMAKE_C_COMPILER_ID STREQUAL "GNU"
|
||||
if((CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID STREQUAL "LCC")
|
||||
AND NOT APPLE AND NOT WIN32 AND NOT CYGWIN
|
||||
AND EXISTS "/usr/lib/libm.a")
|
||||
add_test(LinkStatic ${CMAKE_CTEST_COMMAND}
|
||||
@@ -3657,6 +3658,7 @@ if(BUILD_TESTING)
|
||||
if(CMAKE_GENERATOR MATCHES "^((Unix|MSYS) Makefiles|Ninja)$" AND
|
||||
((CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.4)
|
||||
OR (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND NOT "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC")
|
||||
OR (CMAKE_CXX_COMPILER_ID STREQUAL "LCC")
|
||||
OR (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")))
|
||||
add_test(IncludeDirectoriesCPATH ${CMAKE_CTEST_COMMAND}
|
||||
--build-and-test
|
||||
|
||||
@@ -57,7 +57,7 @@ else()
|
||||
message("Unhandled Platform")
|
||||
endif()
|
||||
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang" AND NOT "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC")
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|LCC|Clang" AND NOT "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC")
|
||||
check_cxx_compiler_flag("-x c++" HAVE_X_CXX)
|
||||
if(NOT HAVE_X_CXX)
|
||||
message(FATAL_ERROR "${CMAKE_CXX_COMPILER_ID} compiler flag '-x c++' check failed")
|
||||
|
||||
@@ -11,8 +11,11 @@ class initializer_list
|
||||
const _E* __begin_;
|
||||
size_t __size_;
|
||||
|
||||
#ifdef __INTEL_COMPILER
|
||||
// The Intel compiler internally asserts the constructor overloads, so
|
||||
#if defined(__INTEL_COMPILER) || \
|
||||
(defined(__LCC__) && \
|
||||
(defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__)))
|
||||
// Compilers based on EDG, such as Intel compiler and MCST LCC,
|
||||
// internally assert the constructor overloads, so
|
||||
// reproduce the constructor used in its <initializer_list> header.
|
||||
initializer_list(const _E*, size_t) {}
|
||||
#else
|
||||
|
||||
@@ -30,8 +30,8 @@ endif()
|
||||
set_property(TARGET CompileOptions PROPERTY COMPILE_OPTIONS
|
||||
"-DTEST_DEFINE"
|
||||
"-DNEEDS_ESCAPE=\"E$CAPE\""
|
||||
"$<$<CXX_COMPILER_ID:GNU>:-DTEST_DEFINE_GNU>"
|
||||
"$<$<COMPILE_LANG_AND_ID:CXX,GNU>:-DTEST_DEFINE_CXX_AND_GNU>"
|
||||
"$<$<CXX_COMPILER_ID:GNU,LCC>:-DTEST_DEFINE_GNU>"
|
||||
"$<$<COMPILE_LANG_AND_ID:CXX,GNU,LCC>:-DTEST_DEFINE_CXX_AND_GNU>"
|
||||
"SHELL:" # produces no options
|
||||
${c_tests}
|
||||
${cxx_tests}
|
||||
@@ -49,15 +49,15 @@ else()
|
||||
)
|
||||
endif()
|
||||
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang|Borland|Embarcadero" AND NOT "${CMAKE_GENERATOR}" MATCHES "NMake Makefiles")
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|LCC|Clang|Borland|Embarcadero" AND NOT "${CMAKE_GENERATOR}" MATCHES "NMake Makefiles")
|
||||
set_property(TARGET CompileOptions APPEND PROPERTY COMPILE_OPTIONS
|
||||
"-DTEST_OCTOTHORPE=\"#\""
|
||||
)
|
||||
endif()
|
||||
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "^(GNU|AppleClang|MSVC)$")
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "^(GNU|LCC|AppleClang|MSVC)$")
|
||||
target_compile_definitions(CompileOptions PRIVATE "DO_FLAG_TESTS")
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "^(GNU|AppleClang)$")
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "^(GNU|LCC|AppleClang)$")
|
||||
string(APPEND CMAKE_CXX_FLAGS " -w")
|
||||
endif()
|
||||
string(APPEND CMAKE_CXX_FLAGS " -DFLAG_A=1 -DFLAG_B=1")
|
||||
@@ -79,7 +79,7 @@ endif()
|
||||
|
||||
target_link_libraries(CompileOptions testlib)
|
||||
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|LCC")
|
||||
target_compile_definitions(CompileOptions
|
||||
PRIVATE
|
||||
"DO_GNU_TESTS"
|
||||
|
||||
@@ -286,6 +286,7 @@ set_property(TARGET testSharedLibRequired
|
||||
set_property(TARGET testSharedLibRequired APPEND PROPERTY
|
||||
INTERFACE_COMPILE_OPTIONS
|
||||
$<$<CXX_COMPILER_ID:GNU>:-DCUSTOM_COMPILE_OPTION>
|
||||
$<$<CXX_COMPILER_ID:LCC>:-DCUSTOM_COMPILE_OPTION>
|
||||
)
|
||||
|
||||
add_library(testSharedLibRequiredUser SHARED testSharedLibRequiredUser.cpp)
|
||||
|
||||
@@ -325,14 +325,14 @@ target_compile_definitions(deps_shared_iface
|
||||
$<$<STREQUAL:$<TARGET_PROPERTY:CUSTOM_STRING>,testcontent>:CUSTOM_STRING_IS_MATCH>
|
||||
)
|
||||
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "LCC")
|
||||
target_compile_definitions(deps_shared_iface
|
||||
PRIVATE
|
||||
"DO_GNU_TESTS"
|
||||
)
|
||||
endif()
|
||||
|
||||
if (APPLE OR CMAKE_CXX_COMPILER_ID MATCHES "GNU")
|
||||
if (APPLE OR CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "LCC")
|
||||
include(CheckCXXCompilerFlag)
|
||||
check_cxx_compiler_flag(-fPIE run_pic_test)
|
||||
else()
|
||||
@@ -365,7 +365,7 @@ endif()
|
||||
|
||||
add_executable(deps_shared_iface2 deps_shared_iface.cpp)
|
||||
target_link_libraries(deps_shared_iface2 bld_testSharedLibDepends bld_subdirlib)
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "LCC")
|
||||
target_compile_definitions(deps_shared_iface2
|
||||
PRIVATE
|
||||
"DO_GNU_TESTS"
|
||||
@@ -413,6 +413,7 @@ endforeach()
|
||||
unset(_configs)
|
||||
|
||||
if (((CMAKE_C_COMPILER_ID STREQUAL GNU AND CMAKE_C_COMPILER_VERSION VERSION_GREATER 4.4)
|
||||
OR CMAKE_C_COMPILER_ID MATCHES "LCC"
|
||||
OR (CMAKE_C_COMPILER_ID STREQUAL Clang AND NOT "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC"))
|
||||
AND (CMAKE_GENERATOR STREQUAL "Unix Makefiles" OR CMAKE_GENERATOR STREQUAL "Ninja"))
|
||||
include(CheckCXXCompilerFlag)
|
||||
|
||||
@@ -14,7 +14,7 @@ if(CMAKE_Fortran_COMPILER_ID MATCHES "^(XL|VisualAge)$")
|
||||
# We do not implement SHARED Fortran libs on AIX yet!
|
||||
# Workaround: Set LINKER_LANGUAGE to C, which uses 'xlc' and Fortran implicits.
|
||||
set(_SHARED STATIC)
|
||||
elseif(CMAKE_Fortran_COMPILER_ID STREQUAL "GNU")
|
||||
elseif(CMAKE_Fortran_COMPILER_ID MATCHES "GNU|LCC")
|
||||
# g77 2.96 does not support shared libs on Itanium because g2c is not -fPIC
|
||||
execute_process(COMMAND ${CMAKE_Fortran_COMPILER} --version
|
||||
OUTPUT_VARIABLE output ERROR_VARIABLE output)
|
||||
@@ -26,7 +26,7 @@ endif()
|
||||
# Pick a module .def file with the properly mangled symbol name.
|
||||
set(world_def "")
|
||||
if(WIN32 AND NOT CYGWIN)
|
||||
if(CMAKE_Fortran_COMPILER_ID MATCHES "GNU")
|
||||
if(CMAKE_Fortran_COMPILER_ID MATCHES "GNU|LCC")
|
||||
set(world_def world_gnu.def)
|
||||
elseif(CMAKE_Fortran_COMPILER_ID MATCHES "Intel" OR
|
||||
CMAKE_GENERATOR MATCHES "Visual Studio") # Intel plugin
|
||||
|
||||
@@ -4,6 +4,7 @@ project(IncludeDirectories)
|
||||
if (((CMAKE_C_COMPILER_ID STREQUAL GNU AND CMAKE_C_COMPILER_VERSION VERSION_GREATER 4.4)
|
||||
OR (CMAKE_C_COMPILER_ID STREQUAL Clang AND NOT "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC")
|
||||
OR CMAKE_C_COMPILER_ID STREQUAL AppleClang
|
||||
OR CMAKE_C_COMPILER_ID STREQUAL LCC
|
||||
OR ("x${CMAKE_C_COMPILER_ID}" STREQUAL "xMSVC" AND
|
||||
CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL "19.29.30036.3" AND
|
||||
NOT CMAKE_GENERATOR MATCHES "Visual Studio")) # No support for VS generators yet.
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
cmake_minimum_required(VERSION 2.8.4.20110303 FATAL_ERROR)
|
||||
project(LinkStatic C)
|
||||
|
||||
if(NOT CMAKE_C_COMPILER_ID STREQUAL "GNU")
|
||||
message(FATAL_ERROR "This test works only with the GNU compiler!")
|
||||
if(NOT CMAKE_C_COMPILER_ID MATCHES "GNU|LCC")
|
||||
message(FATAL_ERROR "This test works only with the GNU or LCC compiler!")
|
||||
endif()
|
||||
|
||||
find_library(MATH_LIBRARY NAMES libm.a)
|
||||
|
||||
@@ -52,7 +52,7 @@ endmacro()
|
||||
# detailed features tables, not just meta-features
|
||||
|
||||
if (CMAKE_C_COMPILE_FEATURES)
|
||||
if (NOT CMAKE_C_COMPILER_ID MATCHES "^(Cray|PGI|NVHPC|XL|XLClang|IntelLLVM|Fujitsu|FujitsuClang)$")
|
||||
if (NOT CMAKE_C_COMPILER_ID MATCHES "^(LCC|Cray|PGI|NVHPC|XL|XLClang|IntelLLVM|Fujitsu|FujitsuClang)$")
|
||||
set(C_expected_features ${CMAKE_C_COMPILE_FEATURES})
|
||||
list(FILTER C_expected_features EXCLUDE REGEX "^c_std_[0-9][0-9]")
|
||||
endif()
|
||||
@@ -95,7 +95,7 @@ if (C_expected_features)
|
||||
endif()
|
||||
|
||||
if (CMAKE_CXX_COMPILE_FEATURES)
|
||||
if (NOT CMAKE_CXX_COMPILER_ID MATCHES "^(Cray|PGI|NVHPC|XL|XLClang|IntelLLVM|Fujitsu|FujitsuClang)$")
|
||||
if (NOT CMAKE_CXX_COMPILER_ID MATCHES "^(LCC|Cray|PGI|NVHPC|XL|XLClang|IntelLLVM|Fujitsu|FujitsuClang)$")
|
||||
set(CXX_expected_features ${CMAKE_CXX_COMPILE_FEATURES})
|
||||
list(FILTER CXX_expected_features EXCLUDE REGEX "^cxx_std_[0-9][0-9]")
|
||||
endif()
|
||||
|
||||
@@ -159,6 +159,7 @@ endif()
|
||||
|
||||
if ((RunCMake_GENERATOR STREQUAL "Unix Makefiles"
|
||||
AND (CMAKE_C_COMPILER_ID STREQUAL "GNU"
|
||||
OR CMAKE_C_COMPILER_ID STREQUAL "LCC"
|
||||
OR CMAKE_C_COMPILER_ID STREQUAL "Clang"
|
||||
OR CMAKE_C_COMPILER_ID STREQUAL "AppleClang"))
|
||||
OR (RunCMake_GENERATOR STREQUAL "NMake Makefiles"
|
||||
|
||||
@@ -12,6 +12,6 @@ if(NOT RunCMake_GENERATOR MATCHES "Visual Studio|Xcode" AND
|
||||
run_CMP0119(WARN)
|
||||
run_CMP0119(OLD)
|
||||
endif()
|
||||
if((CMAKE_C_COMPILER_ID MATCHES "(GNU|Clang|MSVC|Borland|Embarcadero|Intel|TI)"))
|
||||
if((CMAKE_C_COMPILER_ID MATCHES "(GNU|LCC|Clang|MSVC|Borland|Embarcadero|Intel|TI)"))
|
||||
run_CMP0119(NEW)
|
||||
endif()
|
||||
|
||||
@@ -256,7 +256,7 @@ endif()
|
||||
add_RunCMake_test(ArtifactOutputDirs)
|
||||
|
||||
if(NOT DEFINED CMake_TEST_BuildDepends_GNU_AS
|
||||
AND CMAKE_C_COMPILER_ID STREQUAL "GNU"
|
||||
AND (CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID STREQUAL "LCC")
|
||||
AND CMAKE_GENERATOR MATCHES "^Ninja"
|
||||
)
|
||||
execute_process(COMMAND "${CMAKE_C_COMPILER}" -print-prog-name=as
|
||||
@@ -682,7 +682,7 @@ set_property(TEST RunCMake.CheckCompilerFlag
|
||||
add_RunCMake_test(CheckModules)
|
||||
add_RunCMake_test(CheckIPOSupported)
|
||||
if (CMAKE_SYSTEM_NAME MATCHES "(Linux|Darwin)"
|
||||
AND (CMAKE_C_COMPILER_ID MATCHES "Clang|GNU" OR CMAKE_Fortran_COMPILER_ID MATCHES "GNU"))
|
||||
AND (CMAKE_C_COMPILER_ID MATCHES "Clang|GNU|LCC" OR CMAKE_Fortran_COMPILER_ID MATCHES "GNU|LCC"))
|
||||
add_RunCMake_test(CheckLinkerFlag -DCMAKE_C_COMPILER_ID=${CMAKE_C_COMPILER_ID}
|
||||
-DCMAKE_Fortran_COMPILER_ID=${CMAKE_Fortran_COMPILER_ID}
|
||||
-DCMake_TEST_CUDA=${CMake_TEST_CUDA}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
set(CMAKE_BUILD_WITH_INSTALL_RPATH 1)
|
||||
|
||||
# Some compilers do not add build id to binaries by default.
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "^(IntelLLVM|PGI|NVHPC)$")
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "^(LCC|IntelLLVM|PGI|NVHPC)$")
|
||||
string(APPEND CMAKE_EXE_LINKER_FLAGS "-Wl,--build-id")
|
||||
string(APPEND CMAKE_SHARED_LINKER_FLAGS "-Wl,--build-id")
|
||||
endif()
|
||||
|
||||
@@ -9,14 +9,14 @@ if(SHOULD_FAIL)
|
||||
message(SEND_ERROR "invalid C compile flag didn't fail.")
|
||||
endif()
|
||||
|
||||
if(CMAKE_C_COMPILER_ID MATCHES "GNU|Clang" AND NOT "x${CMAKE_C_SIMULATE_ID}" STREQUAL "xMSVC")
|
||||
if(CMAKE_C_COMPILER_ID MATCHES "GNU|LCC|Clang" AND NOT "x${CMAKE_C_SIMULATE_ID}" STREQUAL "xMSVC")
|
||||
check_compiler_flag(C "-x c" SHOULD_WORK)
|
||||
if(NOT SHOULD_WORK)
|
||||
message(SEND_ERROR "${CMAKE_C_COMPILER_ID} compiler flag '-x c' check failed")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
|
||||
if(CMAKE_C_COMPILER_ID STREQUAL "GNU") # LCC C compiler silently ignore -frtti instead of failing, so skip it here.
|
||||
check_compiler_flag(C "-frtti" SHOULD_FAIL_RTTI)
|
||||
if(SHOULD_FAIL_RTTI)
|
||||
message(SEND_ERROR "${CMAKE_C_COMPILER_ID} compiler flag '-frtti' check passed but should have failed")
|
||||
|
||||
@@ -9,7 +9,7 @@ if(SHOULD_FAIL)
|
||||
message(SEND_ERROR "invalid CXX compile flag didn't fail.")
|
||||
endif()
|
||||
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang" AND NOT "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC")
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|LCC|Clang" AND NOT "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC")
|
||||
check_compiler_flag(CXX "-x c++" SHOULD_WORK)
|
||||
if(NOT SHOULD_WORK)
|
||||
message(SEND_ERROR "${CMAKE_CXX_COMPILER_ID} compiler flag '-x c++' check failed")
|
||||
|
||||
@@ -8,7 +8,7 @@ if(SHOULD_FAIL)
|
||||
message(SEND_ERROR "invalid Fortran compile flag didn't fail.")
|
||||
endif()
|
||||
|
||||
if(CMAKE_Fortran_COMPILER_ID STREQUAL "GNU")
|
||||
if(CMAKE_Fortran_COMPILER_ID STREQUAL "GNU|LCC")
|
||||
check_compiler_flag(Fortran "-Wall" SHOULD_WORK)
|
||||
if(NOT SHOULD_WORK)
|
||||
message(SEND_ERROR "${CMAKE_Fortran_COMPILER_ID} compiler flag '-Wall' check failed")
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
include(RunCMake)
|
||||
|
||||
if (CMAKE_C_COMPILER_ID MATCHES "Clang|GNU")
|
||||
if (CMAKE_C_COMPILER_ID MATCHES "Clang|GNU|LCC")
|
||||
run_cmake(CheckCLinkerFlag)
|
||||
run_cmake(CheckCXXLinkerFlag)
|
||||
if (APPLE)
|
||||
@@ -9,7 +9,7 @@ if (CMAKE_C_COMPILER_ID MATCHES "Clang|GNU")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (CMAKE_Fortran_COMPILER_ID MATCHES "GNU")
|
||||
if (CMAKE_Fortran_COMPILER_ID MATCHES "GNU|LCC")
|
||||
run_cmake(CheckFortranLinkerFlag)
|
||||
endif()
|
||||
|
||||
|
||||
@@ -731,7 +731,7 @@ def gen_check_targets(c, g, inSource):
|
||||
read_codemodel_json_data("targets/generated_exe.json"),
|
||||
]
|
||||
|
||||
if cxx_compiler_id in ['Clang', 'AppleClang', 'GNU', 'Intel', 'IntelLLVM', 'MSVC', 'Embarcadero'] and g["name"] != "Xcode":
|
||||
if cxx_compiler_id in ['Clang', 'AppleClang', 'LCC', 'GNU', 'Intel', 'IntelLLVM', 'MSVC', 'Embarcadero'] and g["name"] != "Xcode":
|
||||
for e in expected:
|
||||
if e["name"] == "cxx_exe":
|
||||
if matches(g["name"], "^(Visual Studio |Ninja Multi-Config)"):
|
||||
|
||||
@@ -26,6 +26,7 @@ if (PIE_SUPPORTED OR NO_PIE_SUPPORTED)
|
||||
|
||||
if ((READELF OR OTOOL) AND
|
||||
(CMAKE_CXX_COMPILER_ID STREQUAL "GNU"
|
||||
OR CMAKE_CXX_COMPILER_ID STREQUAL "LCC"
|
||||
OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang"
|
||||
OR CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang"))
|
||||
macro(run_cmake_target test subtest)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
if (NOT CMAKE_C_COMPILER_ID MATCHES "GNU|Intel" OR
|
||||
if (NOT CMAKE_C_COMPILER_ID MATCHES "GNU|LCC|Intel" OR
|
||||
(CMAKE_C_COMPILER_ID STREQUAL "Intel" AND CMAKE_HOST_WIN32))
|
||||
return()
|
||||
endif()
|
||||
|
||||
@@ -2,7 +2,7 @@ include(RunCMake)
|
||||
|
||||
run_cmake(empty_keyword_args)
|
||||
|
||||
if (CMAKE_C_COMPILER_ID MATCHES "GNU|Clang")
|
||||
if (CMAKE_C_COMPILER_ID MATCHES "GNU|LCC|Clang")
|
||||
macro(run_cmake_target test subtest target)
|
||||
set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/${test}-build)
|
||||
set(RunCMake_TEST_OUTPUT_MERGE 1)
|
||||
@@ -28,7 +28,7 @@ function(run_Order)
|
||||
run_cmake_command(Order-build ${CMAKE_COMMAND} --build . --verbose --config Custom)
|
||||
endfunction()
|
||||
if(RunCMake_GENERATOR MATCHES "Ninja|Make" AND
|
||||
CMAKE_C_COMPILER_ID MATCHES "^(GNU|Clang|AppleClang)$" AND
|
||||
CMAKE_C_COMPILER_ID MATCHES "^(GNU|LCC|Clang|AppleClang)$" AND
|
||||
NOT CMAKE_C_SIMULATE_ID STREQUAL "MSVC")
|
||||
run_Order()
|
||||
endif()
|
||||
|
||||
@@ -26,7 +26,7 @@ run_cmake(TargetTypeInvalid)
|
||||
run_cmake(TargetTypeStatic)
|
||||
|
||||
if (CMAKE_SYSTEM_NAME MATCHES "^(Linux|Darwin|Windows)$" AND
|
||||
CMAKE_C_COMPILER_ID MATCHES "^(MSVC|GNU|Clang|AppleClang)$")
|
||||
CMAKE_C_COMPILER_ID MATCHES "^(MSVC|GNU|LCC|Clang|AppleClang)$")
|
||||
set (RunCMake_TEST_OPTIONS -DRunCMake_C_COMPILER_ID=${CMAKE_C_COMPILER_ID})
|
||||
run_cmake(LinkOptions)
|
||||
unset (RunCMake_TEST_OPTIONS)
|
||||
@@ -60,10 +60,10 @@ if(CMake_TEST_ISPC)
|
||||
endif()
|
||||
run_cmake(ISPCDuplicateTarget${ninja})
|
||||
endif()
|
||||
if(CMAKE_C_COMPILER_ID STREQUAL "GNU" AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.4)
|
||||
if(CMAKE_C_COMPILER_ID MATCHES "GNU|LCC" AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.4)
|
||||
run_cmake(CStandardGNU)
|
||||
endif()
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.4)
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|LCC" AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.4)
|
||||
run_cmake(CxxStandardGNU)
|
||||
endif()
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ include(RunCMake)
|
||||
run_cmake(BadLinkLibraries)
|
||||
|
||||
if (CMAKE_SYSTEM_NAME MATCHES "^(Linux|Darwin|Windows)$" AND
|
||||
CMAKE_C_COMPILER_ID MATCHES "^(MSVC|GNU|Clang|AppleClang)$")
|
||||
CMAKE_C_COMPILER_ID MATCHES "^(MSVC|GNU|LCC|Clang|AppleClang)$")
|
||||
set (RunCMake_TEST_OPTIONS -DRunCMake_C_COMPILER_ID=${CMAKE_C_COMPILER_ID})
|
||||
run_cmake(LinkOptions)
|
||||
unset (RunCMake_TEST_OPTIONS)
|
||||
|
||||
@@ -20,7 +20,7 @@ if(CMAKE_GENERATOR MATCHES "^Visual Studio" AND "x${CMAKE_C_COMPILER_ID}" STREQU
|
||||
set_property(TARGET stay PROPERTY COMPILE_OPTIONS "-TP")
|
||||
endif()
|
||||
|
||||
if((CMAKE_C_COMPILER_ID MATCHES "(GNU|Clang|MSVC|Borland|Embarcadero|Intel|TI|XL)"))
|
||||
if((CMAKE_C_COMPILER_ID MATCHES "(GNU|LCC|Clang|MSVC|Borland|Embarcadero|Intel|TI|XL)"))
|
||||
cmake_policy(SET CMP0119 NEW)
|
||||
add_library(zoom zoom.zzz)
|
||||
set_source_files_properties(zoom.zzz PROPERTIES LANGUAGE CXX)
|
||||
|
||||
@@ -321,7 +321,7 @@ if(DEFINED CXX_BOGUS_FLAG)
|
||||
message(SEND_ERROR "CHECK_CXX_COMPILER_FLAG shouldn't construct CXX_BOGUS_FLAG as a normal variable")
|
||||
endif()
|
||||
|
||||
if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
|
||||
if(CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID STREQUAL "LCC")
|
||||
unset(C_STRICT_PROTOTYPES CACHE)
|
||||
CHECK_C_COMPILER_FLAG("-Werror;-Wstrict-prototypes" C_STRICT_PROTOTYPES)
|
||||
TEST_ASSERT(C_STRICT_PROTOTYPES "CHECK_C_COMPILER_FLAG failed -Werror -Wstrict-prototypes")
|
||||
|
||||
@@ -2,7 +2,7 @@ project(bzip2)
|
||||
|
||||
# Disable warnings to avoid changing 3rd party code.
|
||||
if(CMAKE_C_COMPILER_ID MATCHES
|
||||
"^(GNU|Clang|AppleClang|XLClang|XL|VisualAge|SunPro|HP|Intel|IntelLLVM|NVHPC)$")
|
||||
"^(GNU|LCC|Clang|AppleClang|XLClang|XL|VisualAge|SunPro|HP|Intel|IntelLLVM|NVHPC)$")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w")
|
||||
elseif(CMAKE_C_COMPILER_ID STREQUAL "PathScale")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -woffall")
|
||||
|
||||
@@ -83,7 +83,7 @@ elseif(APPLE)
|
||||
)
|
||||
endif()
|
||||
if(NOT OSX_VERSION VERSION_LESS 10.6 AND
|
||||
CMAKE_C_COMPILER_ID MATCHES "GNU|Clang|AppleClang")
|
||||
CMAKE_C_COMPILER_ID MATCHES "GNU|LCC|Clang|AppleClang")
|
||||
set(CMAKE_USE_SECTRANSP ON CACHE INTERNAL "enable Apple OS native SSL/TLS")
|
||||
else()
|
||||
set(CMAKE_USE_SECTRANSP OFF CACHE INTERNAL "enable Apple OS native SSL/TLS")
|
||||
@@ -112,7 +112,7 @@ endif(APPLE)
|
||||
|
||||
# Disable warnings to avoid changing 3rd party code.
|
||||
if(CMAKE_C_COMPILER_ID MATCHES
|
||||
"^(GNU|Clang|AppleClang|XLClang|XL|VisualAge|SunPro|HP|Intel|IntelLLVM|NVHPC)$")
|
||||
"^(GNU|LCC|Clang|AppleClang|XLClang|XL|VisualAge|SunPro|HP|Intel|IntelLLVM|NVHPC)$")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w")
|
||||
elseif(CMAKE_C_COMPILER_ID STREQUAL "PathScale")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -woffall")
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Disable warnings to avoid changing 3rd party code.
|
||||
IF(CMAKE_C_COMPILER_ID MATCHES
|
||||
"^(GNU|Clang|AppleClang|XLClang|XL|VisualAge|SunPro|HP|Intel|IntelLLVM|NVHPC)$")
|
||||
"^(GNU|LCC|Clang|AppleClang|XLClang|XL|VisualAge|SunPro|HP|Intel|IntelLLVM|NVHPC)$")
|
||||
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w")
|
||||
ELSEIF(CMAKE_C_COMPILER_ID STREQUAL "PathScale")
|
||||
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -woffall")
|
||||
|
||||
@@ -2,7 +2,7 @@ project(JsonCpp CXX)
|
||||
|
||||
# Disable warnings to avoid changing 3rd party code.
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES
|
||||
"^(GNU|Clang|AppleClang|XLClang|XL|VisualAge|SunPro|HP|Intel|IntelLLVM|NVHPC)$")
|
||||
"^(GNU|LCC|Clang|AppleClang|XLClang|XL|VisualAge|SunPro|HP|Intel|IntelLLVM|NVHPC)$")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w")
|
||||
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "PathScale")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -woffall")
|
||||
|
||||
@@ -94,7 +94,7 @@ SET(CMAKE_REQUIRED_FLAGS)
|
||||
|
||||
# Disable warnings to avoid changing 3rd party code.
|
||||
IF(CMAKE_C_COMPILER_ID MATCHES
|
||||
"^(GNU|Clang|AppleClang|XLClang|XL|VisualAge|SunPro|HP|Intel|IntelLLVM|NVHPC)$")
|
||||
"^(GNU|LCC|Clang|AppleClang|XLClang|XL|VisualAge|SunPro|HP|Intel|IntelLLVM|NVHPC)$")
|
||||
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w")
|
||||
ELSEIF(CMAKE_C_COMPILER_ID STREQUAL "PathScale")
|
||||
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -woffall")
|
||||
@@ -110,7 +110,7 @@ endif ()
|
||||
# Especially for early development, we want to be a little
|
||||
# aggressive about diagnosing build problems; this can get
|
||||
# relaxed somewhat in final shipping versions.
|
||||
IF (CMAKE_C_COMPILER_ID MATCHES "^GNU$")
|
||||
IF (CMAKE_C_COMPILER_ID MATCHES "^GNU$" OR CMAKE_C_COMPILER_ID MATCHES "^LCC$")
|
||||
SET(CMAKE_REQUIRED_FLAGS "-Wall -Wformat -Wformat-security")
|
||||
#################################################################
|
||||
# Set compile flags for all build types.
|
||||
@@ -126,7 +126,7 @@ IF (CMAKE_C_COMPILER_ID MATCHES "^GNU$")
|
||||
SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -Wshadow")
|
||||
SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -Wmissing-prototypes")
|
||||
SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -Wcast-qual")
|
||||
ENDIF (CMAKE_C_COMPILER_ID MATCHES "^GNU$")
|
||||
ENDIF (CMAKE_C_COMPILER_ID MATCHES "^GNU$" OR CMAKE_C_COMPILER_ID MATCHES "^LCC$")
|
||||
IF (CMAKE_C_COMPILER_ID MATCHES "^Clang$")
|
||||
SET(CMAKE_REQUIRED_FLAGS "-Wall -Wformat -Wformat-security")
|
||||
#################################################################
|
||||
@@ -1038,7 +1038,7 @@ ENDMACRO(CHECK_CRYPTO_WIN CRYPTO_LIST)
|
||||
MACRO(CHECK_ICONV LIB TRY_ICONV_CONST)
|
||||
IF(NOT HAVE_ICONV)
|
||||
CMAKE_PUSH_CHECK_STATE() # Save the state of the variables
|
||||
IF (CMAKE_C_COMPILER_ID MATCHES "^GNU$" OR
|
||||
IF (CMAKE_C_COMPILER_ID MATCHES "^GNU$" OR CMAKE_C_COMPILER_ID MATCHES "^LCC$" OR
|
||||
CMAKE_C_COMPILER_ID MATCHES "^Clang$")
|
||||
#
|
||||
# During checking iconv proto type, we should use -Werror to avoid the
|
||||
@@ -1046,7 +1046,7 @@ MACRO(CHECK_ICONV LIB TRY_ICONV_CONST)
|
||||
# detection. So this needs for all build mode(even it's a release mode).
|
||||
#
|
||||
SET(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -Werror")
|
||||
ENDIF (CMAKE_C_COMPILER_ID MATCHES "^GNU$" OR
|
||||
ENDIF (CMAKE_C_COMPILER_ID MATCHES "^GNU$" OR CMAKE_C_COMPILER_ID MATCHES "^LCC$" OR
|
||||
CMAKE_C_COMPILER_ID MATCHES "^Clang$")
|
||||
IF (CMAKE_C_COMPILER_ID MATCHES "^XL$")
|
||||
SET(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -qhalt=w -qflag=w:w")
|
||||
@@ -1335,7 +1335,7 @@ ENDIF(NOT FOUND_POSIX_REGEX_LIB AND POSIX_REGEX_LIB MATCHES "^(AUTO|LIBPCREPOSIX
|
||||
# Check functions
|
||||
#
|
||||
CMAKE_PUSH_CHECK_STATE() # Save the state of the variables
|
||||
IF (CMAKE_C_COMPILER_ID MATCHES "^GNU$" OR
|
||||
IF (CMAKE_C_COMPILER_ID MATCHES "^GNU$" OR CMAKE_C_COMPILER_ID MATCHES "^LCC$" OR
|
||||
CMAKE_C_COMPILER_ID MATCHES "^Clang$")
|
||||
#
|
||||
# During checking functions, we should use -fno-builtin to avoid the
|
||||
@@ -1343,7 +1343,7 @@ IF (CMAKE_C_COMPILER_ID MATCHES "^GNU$" OR
|
||||
# types for built-in function" caused by using -Werror option.
|
||||
#
|
||||
SET(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -fno-builtin")
|
||||
ENDIF (CMAKE_C_COMPILER_ID MATCHES "^GNU$" OR
|
||||
ENDIF (CMAKE_C_COMPILER_ID MATCHES "^GNU$" OR CMAKE_C_COMPILER_ID MATCHES "^LCC$" OR
|
||||
CMAKE_C_COMPILER_ID MATCHES "^Clang$")
|
||||
CHECK_SYMBOL_EXISTS(_CrtSetReportMode "crtdbg.h" HAVE__CrtSetReportMode)
|
||||
CHECK_FUNCTION_EXISTS_GLIBC(arc4random_buf HAVE_ARC4RANDOM_BUF)
|
||||
|
||||
@@ -160,7 +160,7 @@ INCLUDE_DIRECTORIES(
|
||||
|
||||
# Disable warnings to avoid changing 3rd party code.
|
||||
IF(CMAKE_C_COMPILER_ID MATCHES
|
||||
"^(GNU|Clang|AppleClang|XLClang|XL|VisualAge|SunPro|HP|Intel|IntelLLVM|NVHPC)$")
|
||||
"^(GNU|LCC|Clang|AppleClang|XLClang|XL|VisualAge|SunPro|HP|Intel|IntelLLVM|NVHPC)$")
|
||||
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w")
|
||||
ELSEIF(CMAKE_C_COMPILER_ID STREQUAL "PathScale")
|
||||
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -woffall")
|
||||
@@ -172,7 +172,7 @@ IF(CMAKE_C_COMPILER_ID STREQUAL "XL")
|
||||
# Disable the XL compiler optimizer because it causes crashes
|
||||
# and other bad behavior in liblzma code.
|
||||
SET_PROPERTY(TARGET cmliblzma PROPERTY COMPILE_FLAGS "-qnooptimize")
|
||||
ELSEIF(CMAKE_C_COMPILER_ID STREQUAL "GNU" AND
|
||||
ELSEIF((CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID STREQUAL "LCC") AND
|
||||
CMAKE_C_COMPILER_VERSION VERSION_LESS 3.4)
|
||||
# Disable the old GNU compiler optimizer.
|
||||
SET_PROPERTY(TARGET cmliblzma PROPERTY COMPILE_FLAGS "-O0")
|
||||
|
||||
@@ -2,7 +2,7 @@ project(librhash C)
|
||||
|
||||
# Disable warnings to avoid changing 3rd party code.
|
||||
if(CMAKE_C_COMPILER_ID MATCHES
|
||||
"^(GNU|Clang|AppleClang|XLClang|XL|VisualAge|SunPro|HP|Intel|IntelLLVM|NVHPC)$")
|
||||
"^(GNU|LCC|Clang|AppleClang|XLClang|XL|VisualAge|SunPro|HP|Intel|IntelLLVM|NVHPC)$")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w")
|
||||
elseif(CMAKE_C_COMPILER_ID STREQUAL "PathScale")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -woffall")
|
||||
|
||||
@@ -2,7 +2,7 @@ project(libuv C)
|
||||
|
||||
# Disable warnings to avoid changing 3rd party code.
|
||||
if(CMAKE_C_COMPILER_ID MATCHES
|
||||
"^(GNU|Clang|AppleClang|XLClang|XL|VisualAge|SunPro|HP|Intel|IntelLLVM|NVHPC)$")
|
||||
"^(GNU|LCC|Clang|AppleClang|XLClang|XL|VisualAge|SunPro|HP|Intel|IntelLLVM|NVHPC)$")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w")
|
||||
elseif(CMAKE_C_COMPILER_ID STREQUAL "PathScale")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -woffall")
|
||||
|
||||
@@ -855,7 +855,7 @@ void uv_free_cpu_info(uv_cpu_info_t* cpu_infos, int count) {
|
||||
}
|
||||
|
||||
|
||||
#ifdef __GNUC__ /* Also covers __clang__ and __INTEL_COMPILER. */
|
||||
#ifdef __GNUC__ /* Also covers __clang__, __LCC__, and __INTEL_COMPILER. */
|
||||
__attribute__((destructor))
|
||||
#endif
|
||||
void uv_library_shutdown(void) {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Disable warnings to avoid changing 3rd party code.
|
||||
if(CMAKE_C_COMPILER_ID MATCHES
|
||||
"^(GNU|Clang|AppleClang|XLClang|XL|VisualAge|SunPro|HP|Intel|IntelLLVM|NVHPC)$")
|
||||
"^(GNU|LCC|Clang|AppleClang|XLClang|XL|VisualAge|SunPro|HP|Intel|IntelLLVM|NVHPC)$")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w")
|
||||
elseif(CMAKE_C_COMPILER_ID STREQUAL "PathScale")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -woffall")
|
||||
|
||||
@@ -2,7 +2,7 @@ PROJECT(CMZLIB)
|
||||
|
||||
# Disable warnings to avoid changing 3rd party code.
|
||||
if(CMAKE_C_COMPILER_ID MATCHES
|
||||
"^(GNU|Clang|AppleClang|XLClang|XL|VisualAge|SunPro|HP|Intel|IntelLLVM|NVHPC)$")
|
||||
"^(GNU|LCC|Clang|AppleClang|XLClang|XL|VisualAge|SunPro|HP|Intel|IntelLLVM|NVHPC)$")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w")
|
||||
elseif(CMAKE_C_COMPILER_ID STREQUAL "PathScale")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -woffall")
|
||||
|
||||
@@ -2,7 +2,7 @@ project(zstd C)
|
||||
|
||||
# Disable warnings to avoid changing 3rd party code.
|
||||
if(CMAKE_C_COMPILER_ID MATCHES
|
||||
"^(GNU|Clang|AppleClang|XLClang|XL|VisualAge|SunPro|HP|Intel|IntelLLVM|NVHPC)$")
|
||||
"^(GNU|LCC|Clang|AppleClang|XLClang|XL|VisualAge|SunPro|HP|Intel|IntelLLVM|NVHPC)$")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w")
|
||||
elseif(CMAKE_C_COMPILER_ID STREQUAL "PathScale")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -woffall")
|
||||
|
||||
Reference in New Issue
Block a user