File: itkGenerateNewCompilerFeatureDetectionHeaders.cmake

package info (click to toggle)
insighttoolkit4 4.13.3withdata-dfsg2-4
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 491,256 kB
  • sloc: cpp: 557,600; ansic: 180,546; fortran: 34,788; python: 16,572; sh: 2,187; lisp: 2,070; tcl: 993; java: 362; perl: 200; makefile: 133; csh: 81; pascal: 69; xml: 19; ruby: 10
file content (82 lines) | stat: -rw-r--r-- 6,805 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
if( ITK_MANUAL_GENERATE_NEW_COMPILER_DETECTION_HEADERS )
# In order to provide backwards compatibility to pre-cmake 3.1.0 versions,
# the WriteCompilerDetectionHeader function should be run from a very
# recent version of cmake (i.e. 3.5.2) and the auto-generated files
# should be merged from the temporary build tree with the source
# code managed source tree.  This should only be done VERY infrequently.
#
# SRCDIR=~/ITK
# BINDIR=~/ITK-bld
#
# merge files: ${CMAKE_CURRENT_BINARY_DIR}/TMP/itk_compiler_detection.h  & ${SRCDIR}/Modules/Core/Common/include/itk_compiler_detection.h
# NOTE: ${SRCDIR}/Modules/Core/Common/include/itk_compiler_detection.h needs to include the custom UNKOWN compiler include stub
# merge files: ${CMAKE_CURRENT_BINARY_DIR}/TMP/compilers & ${SRCDIR}/Modules/Core/Common/include/compilers
  ## Dynamically create compiler detection header
  include(WriteCompilerDetectionHeader)
  write_compiler_detection_header(
      FILE "${CMAKE_CURRENT_BINARY_DIR}/TMP/itk_compiler_detection.h"
      PREFIX ITK
      OUTPUT_FILES_VAR compiler_stub_headers
      OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/TMP/compilers
      COMPILERS AppleClang Clang GNU MSVC SunPro Intel #Supported compilers as of 3.5.2
      VERSION ${CMAKE_VERSION}
      FEATURES
        cxx_aggregate_default_initializers      # Aggregate default initializers, as defined in N3605.
        cxx_alias_templates                     # Template aliases, as defined in N2258.
        cxx_alignas                             # Alignment control alignas, as defined in N2341.
        cxx_alignof                             # Alignment control alignof, as defined in N2341.
        cxx_attributes                          # Generic attributes, as defined in N2761.
        cxx_attribute_deprecated                # [[deprecated]] attribute, as defined in N3760.
        cxx_auto_type                           # Automatic type deduction, as defined in N1984.
        cxx_binary_literals                     # Binary literals, as defined in N3472.
        cxx_constexpr                           # Constant expressions, as defined in N2235.
        cxx_contextual_conversions              # Contextual conversions, as defined in N3323.
        cxx_decltype_incomplete_return_types    # Decltype on incomplete return types, as defined in N3276.
        cxx_decltype                            # Decltype, as defined in N2343.
        cxx_decltype_auto                       # decltype(auto) semantics, as defined in N3638.
        cxx_default_function_template_args      # Default template arguments for function templates, as defined in DR226
        cxx_defaulted_functions                 # Defaulted functions, as defined in N2346.
        cxx_defaulted_move_initializers         # Defaulted move initializers, as defined in N3053.
        cxx_delegating_constructors             # Delegating constructors, as defined in N1986.
        cxx_deleted_functions                   # Deleted functions, as defined in N2346.
        cxx_digit_separators                    # Digit separators, as defined in N3781.
        cxx_enum_forward_declarations           # Enum forward declarations, as defined in N2764.
        cxx_explicit_conversions                # Explicit conversion operators, as defined in N2437.
        cxx_extended_friend_declarations        # Extended friend declarations, as defined in N1791.
        cxx_extern_templates                    # Extern templates, as defined in N1987.
        cxx_final                               # Override control final keyword, as defined in N2928, N3206 and N3272.
        cxx_func_identifier                     # Predefined __func__ identifier, as defined in N2340.
        cxx_generalized_initializers            # Initializer lists, as defined in N2672.
        cxx_generic_lambdas                     # Generic lambdas, as defined in N3649.
        cxx_inheriting_constructors             # Inheriting constructors, as defined in N2540.
        cxx_inline_namespaces                   # Inline namespaces, as defined in N2535.
        cxx_lambdas                             #Lambda functions, as defined in N2927.
        cxx_lambda_init_captures                # Initialized lambda captures, as defined in N3648.
        cxx_local_type_template_args            # Local and unnamed types as template arguments, as defined in N2657.
        cxx_long_long_type                      # long long type, as defined in N1811.
        cxx_noexcept                            # Exception specifications, as defined in N3050.
        cxx_nonstatic_member_init               # Non-static data member initialization, as defined in N2756.
        cxx_nullptr                             # Null pointer, as defined in N2431.
        cxx_override                            # Override control override keyword, as defined in N2928, N3206 and N3272.
        cxx_range_for                           # Range-based for, as defined in N2930.
        cxx_raw_string_literals                 # Raw string literals, as defined in N2442.
        cxx_reference_qualified_functions       # Reference qualified functions, as defined in N2439.
        cxx_relaxed_constexpr                   #Relaxed constexpr, as defined in N3652.
        cxx_return_type_deduction               # Return type deduction on normal functions, as defined in N3386.
        cxx_right_angle_brackets                # Right angle bracket parsing, as defined in N1757.
        cxx_rvalue_references                   # R-value references, as defined in N2118.
        cxx_sizeof_member                       # Size of non-static data members, as defined in N2253.
        cxx_static_assert                       # Static assert, as defined in N1720.
        cxx_strong_enums                        # Strongly typed enums, as defined in N2347.
        cxx_thread_local                        #Thread-local variables, as defined in N2659.
        cxx_trailing_return_types               # Automatic function return type, as defined in N2541.
        cxx_unicode_literals                    # Unicode string literals, as defined in N2442.
        cxx_uniform_initialization              # Uniform intialization, as defined in N2640.
        cxx_unrestricted_unions                 # Unrestricted unions, as defined in N2544.
        cxx_user_literals                       # User-defined literals, as defined in N2765.
        cxx_variable_templates                  # Variable templates, as defined in N3651.
        cxx_variadic_macros                     # Variadic macros, as defined in N1653.
        cxx_variadic_templates                  # Variadic templates, as defined in N2242.
        cxx_template_template_parameters        # Template template parameters, as defined in ISO/IEC 14882:1998.
  )
endif()