Update upstream source from tag 'upstream/3.25.1'
Update to upstream version '3.25.1' with Debian dir 12ec8b4db1e8ba7631238f0f82d8b671c121ce97
This commit is contained in:
		
						commit
						9d5e505643
					
				| @ -41,7 +41,8 @@ to tell CMake how to invoke the C++20 module dependency scanning tool. | ||||
| 
 | ||||
| MSVC 19.34 (provided with Visual Studio 17.4) and above contains the support | ||||
| that CMake needs and has these variables already set up as required and only | ||||
| the UUID variable needs to be set. | ||||
| the UUID and the ``CMAKE_EXPERIMENTAL_CXX_MODULE_DYNDEP`` variables need to be | ||||
| set. | ||||
| 
 | ||||
| For example, add code like the following to a test project: | ||||
| 
 | ||||
| @ -76,8 +77,9 @@ For compilers that generate module maps, tell CMake as follows: | ||||
|   set(CMAKE_EXPERIMENTAL_CXX_MODULE_MAP_FLAG | ||||
|     "${compiler_flags_for_module_map} -fmodule-mapper=<MODULE_MAP_FILE>") | ||||
| 
 | ||||
| Currently, the only supported format is ``gcc``.  The format is described in | ||||
| the GCC documentation, but the relevant section for the purposes of CMake is: | ||||
| Currently, the only supported formats are ``gcc`` and ``msvc``.  The ``gcc`` | ||||
| format is described in the GCC documentation, but the relevant section for the | ||||
| purposes of CMake is: | ||||
| 
 | ||||
|     A mapping file consisting of space-separated module-name, filename | ||||
|     pairs, one per line.  Only the mappings for the direct imports and any | ||||
| @ -88,6 +90,10 @@ the GCC documentation, but the relevant section for the purposes of CMake is: | ||||
| 
 | ||||
|     -- GCC module mapper documentation | ||||
| 
 | ||||
| The ``msvc`` format is a response file containing flags required to compile | ||||
| any module interfaces properly as well as find any required files to satisfy | ||||
| ``import`` statements as required for Microsoft's Visual Studio toolchains. | ||||
| 
 | ||||
| .. _`D1483r1`: https://mathstuf.fedorapeople.org/fortran-modules/fortran-modules.html | ||||
| .. _`P1689r5`: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p1689r5.html | ||||
| .. _`cxx-modules-sandbox`: https://github.com/mathstuf/cxx-modules-sandbox | ||||
|  | ||||
| @ -223,11 +223,6 @@ Deprecated and Removed Features | ||||
| Other Changes | ||||
| ============= | ||||
| 
 | ||||
| * On Windows, when targeting the MSVC ABI, the :command:`find_library` command | ||||
|   now accepts ``.a`` file names after first considering ``.lib``.  This is | ||||
|   symmetric with existing behavior when targeting the GNU ABI, in which the | ||||
|   command accepts ``.lib`` file names after first considering ``.a``. | ||||
| 
 | ||||
| * The :envvar:`SSL_CERT_FILE` and :envvar:`SSL_CERT_DIR` environment | ||||
|   variables can now be used to override where to find certificate | ||||
|   authorities for TLS/SSL operations. | ||||
| @ -238,3 +233,16 @@ Other Changes | ||||
| * The :generator:`Xcode` generator no longer adds the per-config suffix | ||||
|   ``$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)`` to library search paths. | ||||
|   See policy :policy:`CMP0142`. | ||||
| 
 | ||||
| Updates | ||||
| ======= | ||||
| 
 | ||||
| Changes made since CMake 3.25.0 include the following. | ||||
| 
 | ||||
| 3.25.1 | ||||
| ------ | ||||
| 
 | ||||
| * On Windows, when targeting the MSVC ABI, the :command:`find_library` | ||||
|   command no longer accepts ``.a`` file names.  This behavior was added | ||||
|   in CMake 3.25.0, but has been reverted due finding GNU-ABI libraries | ||||
|   in cases we did not previously. | ||||
|  | ||||
| @ -30,16 +30,19 @@ if(NOT CMAKE_RC_COMPILER) | ||||
| 
 | ||||
|   # finally list compilers to try | ||||
|   if(CMAKE_RC_COMPILER_INIT) | ||||
|     set(CMAKE_RC_COMPILER_LIST ${CMAKE_RC_COMPILER_INIT}) | ||||
|   else() | ||||
|     set(CMAKE_RC_COMPILER_LIST rc) | ||||
|     set(_CMAKE_RC_COMPILER_LIST     ${CMAKE_RC_COMPILER_INIT}) | ||||
|     set(_CMAKE_RC_COMPILER_FALLBACK ${CMAKE_RC_COMPILER_INIT}) | ||||
|   elseif(NOT _CMAKE_RC_COMPILER_LIST) | ||||
|     set(_CMAKE_RC_COMPILER_LIST rc) | ||||
|   endif() | ||||
| 
 | ||||
|   # Find the compiler. | ||||
|   find_program(CMAKE_RC_COMPILER NAMES ${CMAKE_RC_COMPILER_LIST} DOC "RC compiler") | ||||
|   if(CMAKE_RC_COMPILER_INIT AND NOT CMAKE_RC_COMPILER) | ||||
|     set(CMAKE_RC_COMPILER "${CMAKE_RC_COMPILER_INIT}" CACHE FILEPATH "RC compiler" FORCE) | ||||
|   find_program(CMAKE_RC_COMPILER NAMES ${_CMAKE_RC_COMPILER_LIST} DOC "RC compiler") | ||||
|   if(_CMAKE_RC_COMPILER_FALLBACK AND NOT CMAKE_RC_COMPILER) | ||||
|     set(CMAKE_RC_COMPILER "${_CMAKE_RC_COMPILER_FALLBACK}" CACHE FILEPATH "RC compiler" FORCE) | ||||
|   endif() | ||||
|   unset(_CMAKE_RC_COMPILER_FALLBACK) | ||||
|   unset(_CMAKE_RC_COMPILER_LIST) | ||||
| endif() | ||||
| 
 | ||||
| mark_as_advanced(CMAKE_RC_COMPILER) | ||||
|  | ||||
| @ -70,10 +70,11 @@ macro(CHECK_INCLUDE_FILES INCLUDE VARIABLE) | ||||
|       message(FATAL_ERROR "Unknown arguments:\n  ${ARGN}\n") | ||||
|     endif() | ||||
| 
 | ||||
|     string(MAKE_C_IDENTIFIER ${VARIABLE} _variable_escaped) | ||||
|     if(_lang STREQUAL "C") | ||||
|       set(src ${VARIABLE}.c) | ||||
|       set(src ${_variable_escaped}.c) | ||||
|     elseif(_lang STREQUAL "CXX") | ||||
|       set(src ${VARIABLE}.cpp) | ||||
|       set(src ${_variable_escaped}.cpp) | ||||
|     else() | ||||
|       message(FATAL_ERROR "Unknown language:\n  ${_lang}\nSupported languages: C, CXX.\n") | ||||
|     endif() | ||||
|  | ||||
| @ -103,10 +103,11 @@ function(__check_type_size_impl type var map builtin language) | ||||
|   endif() | ||||
| 
 | ||||
|   # Perform language check | ||||
|   string(MAKE_C_IDENTIFIER ${var} _var_escaped) | ||||
|   if(language STREQUAL "C") | ||||
|     set(src ${var}.c) | ||||
|     set(src ${_var_escaped}.c) | ||||
|   elseif(language STREQUAL "CXX") | ||||
|     set(src ${var}.cpp) | ||||
|     set(src ${_var_escaped}.cpp) | ||||
|   else() | ||||
|     message(FATAL_ERROR "Unknown language:\n  ${language}\nSupported languages: C, CXX.\n") | ||||
|   endif() | ||||
|  | ||||
| @ -79,7 +79,6 @@ elseif (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 16.0) | ||||
| endif() | ||||
| 
 | ||||
| if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "19.34") | ||||
|   set(CMAKE_EXPERIMENTAL_CXX_MODULE_DYNDEP 1) | ||||
|   string(CONCAT CMAKE_EXPERIMENTAL_CXX_SCANDEP_SOURCE | ||||
|     "<CMAKE_CXX_COMPILER> <DEFINES> <INCLUDES> <FLAGS> <SOURCE> -nologo -TP" | ||||
|     " -showIncludes" | ||||
|  | ||||
| @ -1150,8 +1150,10 @@ if(NOT CUDA_VERSION VERSION_LESS "9.0") | ||||
|   find_cuda_helper_libs(nppc) | ||||
|   find_cuda_helper_libs(nppial) | ||||
|   find_cuda_helper_libs(nppicc) | ||||
|   set(CUDA_npp_LIBRARY ${CUDA_nppc_LIBRARY} ${CUDA_nppial_LIBRARY} ${CUDA_nppicc_LIBRARY}) | ||||
|   if(CUDA_VERSION VERSION_LESS "11.0") | ||||
|     find_cuda_helper_libs(nppicom) | ||||
|     list(APPEND CUDA_npp_LIBRARY ${CUDA_nppicom_LIBRARY}) | ||||
|   endif() | ||||
|   find_cuda_helper_libs(nppidei) | ||||
|   find_cuda_helper_libs(nppif) | ||||
| @ -1161,7 +1163,7 @@ if(NOT CUDA_VERSION VERSION_LESS "9.0") | ||||
|   find_cuda_helper_libs(nppisu) | ||||
|   find_cuda_helper_libs(nppitc) | ||||
|   find_cuda_helper_libs(npps) | ||||
|   set(CUDA_npp_LIBRARY "${CUDA_nppc_LIBRARY};${CUDA_nppial_LIBRARY};${CUDA_nppicc_LIBRARY};${CUDA_nppicom_LIBRARY};${CUDA_nppidei_LIBRARY};${CUDA_nppif_LIBRARY};${CUDA_nppig_LIBRARY};${CUDA_nppim_LIBRARY};${CUDA_nppist_LIBRARY};${CUDA_nppisu_LIBRARY};${CUDA_nppitc_LIBRARY};${CUDA_npps_LIBRARY}") | ||||
|   list(APPEND CUDA_npp_LIBRARY ${CUDA_nppidei_LIBRARY} ${CUDA_nppif_LIBRARY} ${CUDA_nppig_LIBRARY} ${CUDA_nppim_LIBRARY} ${CUDA_nppist_LIBRARY} ${CUDA_nppisu_LIBRARY} ${CUDA_nppitc_LIBRARY} ${CUDA_npps_LIBRARY}) | ||||
| elseif(CUDA_VERSION VERSION_GREATER "5.0") | ||||
|   # In CUDA 5.5 NPP was split into 3 separate libraries. | ||||
|   find_cuda_helper_libs(nppc) | ||||
|  | ||||
| @ -1060,7 +1060,9 @@ if(CUDAToolkit_FOUND) | ||||
|   if(CUDAToolkit_VERSION VERSION_GREATER_EQUAL 11.1.0) | ||||
|     if(NOT TARGET CUDA::nvptxcompiler_static) | ||||
|       _CUDAToolkit_find_and_add_import_lib(nvptxcompiler_static DEPS cuda_driver) | ||||
|       target_link_libraries(CUDA::nvptxcompiler_static INTERFACE Threads::Threads) | ||||
|       if(TARGET CUDA::nvptxcompiler_static) | ||||
|         target_link_libraries(CUDA::nvptxcompiler_static INTERFACE Threads::Threads) | ||||
|       endif() | ||||
|     endif() | ||||
|   endif() | ||||
| 
 | ||||
|  | ||||
| @ -71,9 +71,6 @@ Hints | ||||
| 
 | ||||
| .. versionadded:: 3.18 | ||||
| 
 | ||||
| ``Ruby_ROOT_DIR`` | ||||
|   Define the root directory of a Ruby installation. | ||||
| 
 | ||||
| ``Ruby_FIND_VIRTUALENV`` | ||||
|   This variable defines the handling of virtual environments managed by | ||||
|   ``rvm``. It is meaningful only when a virtual environment | ||||
|  | ||||
| @ -5,6 +5,7 @@ if(CMAKE_ANDROID_NDK) | ||||
| endif() | ||||
| 
 | ||||
| include(Platform/Linux) | ||||
| unset(LINUX) | ||||
| 
 | ||||
| set(ANDROID 1) | ||||
| 
 | ||||
|  | ||||
| @ -157,7 +157,8 @@ macro(__windows_compiler_gnu lang) | ||||
|   endif() | ||||
| 
 | ||||
|   if(NOT CMAKE_RC_COMPILER_INIT AND NOT CMAKE_GENERATOR_RC) | ||||
|     set(CMAKE_RC_COMPILER_INIT ${_CMAKE_TOOLCHAIN_PREFIX}windres windres) | ||||
|     set(_CMAKE_RC_COMPILER_LIST ${_CMAKE_TOOLCHAIN_PREFIX}windres windres) | ||||
|     set(_CMAKE_RC_COMPILER_FALLBACK windres) | ||||
|   endif() | ||||
| 
 | ||||
|   enable_language(RC) | ||||
|  | ||||
| @ -19,8 +19,8 @@ set(CMAKE_LINK_LIBRARY_SUFFIX ".lib") | ||||
| set(CMAKE_DL_LIBS "") | ||||
| set(CMAKE_EXTRA_LINK_EXTENSIONS ".targets") | ||||
| 
 | ||||
| set(CMAKE_FIND_LIBRARY_PREFIXES "" "lib") | ||||
| set(CMAKE_FIND_LIBRARY_SUFFIXES ".lib" ".a") | ||||
| set(CMAKE_FIND_LIBRARY_PREFIXES "") | ||||
| set(CMAKE_FIND_LIBRARY_SUFFIXES ".lib") | ||||
| 
 | ||||
| # for borland make long command lines are redirected to a file | ||||
| # with the following syntax, see Windows-bcc32.cmake for use | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| # CMake version number components. | ||||
| set(CMake_VERSION_MAJOR 3) | ||||
| set(CMake_VERSION_MINOR 25) | ||||
| set(CMake_VERSION_PATCH 0) | ||||
| set(CMake_VERSION_PATCH 1) | ||||
| #set(CMake_VERSION_RC 0) | ||||
| set(CMake_VERSION_IS_DIRTY 0) | ||||
| 
 | ||||
| @ -21,7 +21,7 @@ endif() | ||||
| 
 | ||||
| if(NOT CMake_VERSION_NO_GIT) | ||||
|   # If this source was exported by 'git archive', use its commit info. | ||||
|   set(git_info [==[13e46189c7 CMake 3.25.0]==]) | ||||
|   set(git_info [==[5676593be9 CMake 3.25.1]==]) | ||||
| 
 | ||||
|   # Otherwise, try to identify the current development source version. | ||||
|   if(NOT git_info MATCHES "^([0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]?[0-9a-f]?)[0-9a-f]* " | ||||
|  | ||||
| @ -548,16 +548,16 @@ union yyalloc | ||||
| /* YYFINAL -- State number of the termination state.  */ | ||||
| #define YYFINAL  2 | ||||
| /* YYLAST -- Last index in YYTABLE.  */ | ||||
| #define YYLAST   432 | ||||
| #define YYLAST   433 | ||||
| 
 | ||||
| /* YYNTOKENS -- Number of terminals.  */ | ||||
| #define YYNTOKENS  41 | ||||
| /* YYNNTS -- Number of nonterminals.  */ | ||||
| #define YYNNTS  14 | ||||
| /* YYNRULES -- Number of rules.  */ | ||||
| #define YYNRULES  64 | ||||
| #define YYNRULES  65 | ||||
| /* YYNSTATES -- Number of states.  */ | ||||
| #define YYNSTATES  121 | ||||
| #define YYNSTATES  123 | ||||
| 
 | ||||
| /* YYMAXUTOK -- Last valid token kind.  */ | ||||
| #define YYMAXUTOK   295 | ||||
| @ -608,15 +608,15 @@ static const yytype_int8 yytranslate[] = | ||||
| 
 | ||||
| #if YYDEBUG | ||||
| /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */ | ||||
| static const yytype_uint8 yyrline[] = | ||||
| static const yytype_int16 yyrline[] = | ||||
| { | ||||
|        0,   106,   106,   106,   109,   113,   118,   123,   129,   136, | ||||
|      141,   145,   150,   162,   167,   172,   177,   182,   187,   192, | ||||
|      197,   202,   206,   210,   214,   218,   219,   224,   224,   224, | ||||
|      225,   225,   226,   226,   227,   227,   228,   228,   229,   229, | ||||
|      230,   230,   231,   231,   232,   232,   233,   233,   236,   237, | ||||
|      238,   239,   240,   241,   242,   243,   244,   245,   246,   247, | ||||
|      248,   249,   250,   251,   252 | ||||
|      141,   146,   150,   155,   167,   172,   177,   182,   187,   192, | ||||
|      197,   202,   207,   211,   215,   219,   223,   224,   229,   229, | ||||
|      229,   230,   230,   231,   231,   232,   232,   233,   233,   234, | ||||
|      234,   235,   235,   236,   236,   237,   237,   238,   238,   241, | ||||
|      242,   243,   244,   245,   246,   247,   248,   249,   250,   251, | ||||
|      252,   253,   254,   255,   256,   257 | ||||
| }; | ||||
| #endif | ||||
| 
 | ||||
| @ -670,15 +670,15 @@ static const yytype_int16 yypact[] = | ||||
|      -39,   -39,   -39,   -39,   -39,   -39,   -39,   -39,   -39,   -39, | ||||
|      -39,   -39,   -39,   -39,   -39,   -39,   -25,   -19,    20,    -8, | ||||
|      -15,   -22,   -39,    -6,    14,    15,    16,    17,   -39,   -39, | ||||
|      -39,   -39,   -39,   -39,    59,    49,    51,   -39,    63,    64, | ||||
|       35,    36,    37,   -39,   -39,   -39,   -39,   -39,   -39,    74, | ||||
|      112,   127,   165,   180,   -39,   -39,   -39,   -39,   -39,   -39, | ||||
|      -39,   -39,   -39,   -39,    59,    51,    48,   -39,    63,    64, | ||||
|       35,    36,    37,   -39,   -39,   -39,   -39,   -39,   -39,    75, | ||||
|      113,   128,   166,   181,   -39,   -39,   -39,   -39,   -39,   -39, | ||||
|      -39,   -39,   -39,   -39,   -39,   -39,   -39,   -39,   -39,   -39, | ||||
|      -39,   -39,   -39,   -39,   -39,   -39,   -39,   -20,    43,   -39, | ||||
|      218,   233,   271,   286,   324,   339,   -39,   -39,   -39,   -39, | ||||
|      -39,    39,    40,    41,   377,   -39,   -39,   -39,   -39,   -39, | ||||
|      -39,    46,    78,   -39,   -39,    50,   -39,   392,    79,   -39, | ||||
|      -39 | ||||
|      -39,   -39,   -39,   -39,    68,   -39,   -39,   -39,   -20,    44, | ||||
|      -39,   219,   234,   272,   287,   325,   340,   -39,   -39,   -39, | ||||
|      -39,   -39,   -39,    40,    41,    42,   378,   -39,   -39,   -39, | ||||
|      -39,   -39,   -39,    46,    79,   -39,   -39,    50,   -39,   393, | ||||
|       90,   -39,   -39 | ||||
| }; | ||||
| 
 | ||||
| /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
 | ||||
| @ -686,19 +686,19 @@ static const yytype_int16 yypact[] = | ||||
|    means the default is an error.  */ | ||||
| static const yytype_int8 yydefact[] = | ||||
| { | ||||
|        2,     0,     1,     0,    25,     0,    27,    28,    29,    31, | ||||
|       30,    33,    32,    34,    36,    38,    42,    40,    44,    35, | ||||
|       37,    39,    43,    41,    45,    46,     0,     0,     0,     0, | ||||
|        0,     0,     3,     0,     0,     0,     0,     0,    46,    46, | ||||
|       46,    46,    26,    46,     0,     0,     0,     4,     0,     0, | ||||
|        0,     0,     0,    46,    46,    46,    46,    46,    46,     0, | ||||
|        0,     0,     0,     0,    15,    57,    56,    64,    62,    58, | ||||
|       59,    60,    61,    63,    55,    48,    49,    50,    51,    52, | ||||
|       53,    54,    47,    10,    13,     9,     6,     0,     0,    46, | ||||
|        0,     0,     0,     0,     0,     0,    21,    22,    23,    24, | ||||
|       14,     0,     0,     0,     0,     5,    16,    17,    18,    19, | ||||
|       20,     0,     0,    46,    11,     0,     7,     0,     0,    12, | ||||
|        8 | ||||
|        2,     0,     1,     0,    26,     0,    28,    29,    30,    32, | ||||
|       31,    34,    33,    35,    37,    39,    43,    41,    45,    36, | ||||
|       38,    40,    44,    42,    46,    47,     0,     0,     0,     0, | ||||
|        0,     0,     3,     0,     0,     0,     0,     0,    47,    47, | ||||
|       47,    47,    27,    47,     0,     0,     0,     4,     0,     0, | ||||
|        0,     0,     0,    47,    47,    47,    47,    47,    47,     0, | ||||
|        0,     0,     0,     0,    16,    58,    57,    65,    63,    59, | ||||
|       60,    61,    62,    64,    56,    49,    50,    51,    52,    53, | ||||
|       54,    55,    48,    11,     0,    14,     9,     6,     0,     0, | ||||
|       47,     0,     0,     0,     0,     0,     0,    22,    23,    24, | ||||
|       25,    15,    10,     0,     0,     0,     0,     5,    17,    18, | ||||
|       19,    20,    21,     0,     0,    47,    12,     0,     7,     0, | ||||
|        0,    13,     8 | ||||
| }; | ||||
| 
 | ||||
| /* YYPGOTO[NTERM-NUM].  */ | ||||
| @ -720,50 +720,50 @@ static const yytype_int8 yydefgoto[] = | ||||
|    number is the opposite.  If YYTABLE_NINF, syntax error.  */ | ||||
| static const yytype_int8 yytable[] = | ||||
| { | ||||
|       59,    60,    61,    62,    51,    63,    52,   101,    42,    43, | ||||
|      102,    53,    45,    46,    50,    90,    91,    92,    93,    94, | ||||
|       95,     2,     3,    47,     4,    49,    54,     5,     6,     7, | ||||
|       59,    60,    61,    62,    51,    63,    52,   103,    42,    43, | ||||
|      104,    53,    45,    46,    50,    91,    92,    93,    94,    95, | ||||
|       96,     2,     3,    47,     4,    49,    54,     5,     6,     7, | ||||
|        8,     9,    10,    11,    12,    13,    14,    15,    16,    17, | ||||
|       18,    19,    20,    21,    22,    23,    24,    55,    56,    57, | ||||
|       58,   104,    83,    48,    84,    25,    26,    27,    28,    29, | ||||
|       30,    31,    64,    65,    66,    67,    85,    86,    87,    88, | ||||
|       89,   103,   111,   112,   113,   117,   115,    96,    65,    66, | ||||
|       67,   116,   120,   118,     0,    68,    69,    70,    71,    72, | ||||
|       58,    85,   106,    48,    83,    25,    26,    27,    28,    29, | ||||
|       30,    31,    64,    65,    66,    67,    86,    87,    88,    89, | ||||
|       90,   102,   105,   113,   114,   115,   117,   119,    97,    65, | ||||
|       66,    67,   118,   120,    84,    68,    69,    70,    71,    72, | ||||
|       73,    74,    75,   122,    76,    77,    78,    79,    80,    81, | ||||
|        0,    68,    69,    70,    71,    72,    73,    74,    75,     0, | ||||
|       76,    77,    78,    79,    80,    81,    98,    65,    66,    67, | ||||
|        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, | ||||
|        0,    99,    65,    66,    67,     0,     0,     0,     0,    68, | ||||
|       69,    70,    71,    72,    73,    74,    75,     0,    76,    77, | ||||
|       78,    79,    80,    81,    68,    69,    70,    71,    72,    73, | ||||
|       74,    75,     0,    76,    77,    78,    79,    80,    81,   100, | ||||
|       65,    66,    67,     0,     0,     0,     0,     0,     0,     0, | ||||
|        0,     0,     0,     0,   101,    65,    66,    67,     0,     0, | ||||
|        0,     0,    68,    69,    70,    71,    72,    73,    74,    75, | ||||
|        0,    76,    77,    78,    79,    80,    81,    68,    69,    70, | ||||
|       71,    72,    73,    74,    75,     0,    76,    77,    78,    79, | ||||
|       80,    81,   107,    65,    66,    67,     0,     0,     0,     0, | ||||
|        0,     0,     0,     0,     0,     0,     0,   108,    65,    66, | ||||
|       67,     0,     0,     0,     0,    68,    69,    70,    71,    72, | ||||
|       73,    74,    75,     0,    76,    77,    78,    79,    80,    81, | ||||
|       68,    69,    70,    71,    72,    73,    74,    75,     0,    76, | ||||
|       77,    78,    79,    80,    81,    97,    65,    66,    67,     0, | ||||
|       77,    78,    79,    80,    81,   109,    65,    66,    67,     0, | ||||
|        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, | ||||
|       98,    65,    66,    67,     0,     0,     0,     0,    68,    69, | ||||
|      110,    65,    66,    67,     0,     0,     0,     0,    68,    69, | ||||
|       70,    71,    72,    73,    74,    75,     0,    76,    77,    78, | ||||
|       79,    80,    81,    68,    69,    70,    71,    72,    73,    74, | ||||
|       75,     0,    76,    77,    78,    79,    80,    81,    99,    65, | ||||
|       75,     0,    76,    77,    78,    79,    80,    81,   111,    65, | ||||
|       66,    67,     0,     0,     0,     0,     0,     0,     0,     0, | ||||
|        0,     0,     0,   100,    65,    66,    67,     0,     0,     0, | ||||
|        0,     0,     0,   112,    65,    66,    67,     0,     0,     0, | ||||
|        0,    68,    69,    70,    71,    72,    73,    74,    75,     0, | ||||
|       76,    77,    78,    79,    80,    81,    68,    69,    70,    71, | ||||
|       72,    73,    74,    75,     0,    76,    77,    78,    79,    80, | ||||
|       81,   105,    65,    66,    67,     0,     0,     0,     0,     0, | ||||
|        0,     0,     0,     0,     0,     0,   106,    65,    66,    67, | ||||
|       81,   116,    65,    66,    67,     0,     0,     0,     0,     0, | ||||
|        0,     0,     0,     0,     0,     0,   121,    65,    66,    67, | ||||
|        0,     0,     0,     0,    68,    69,    70,    71,    72,    73, | ||||
|       74,    75,     0,    76,    77,    78,    79,    80,    81,    68, | ||||
|       69,    70,    71,    72,    73,    74,    75,     0,    76,    77, | ||||
|       78,    79,    80,    81,   107,    65,    66,    67,     0,     0, | ||||
|        0,     0,     0,     0,     0,     0,     0,     0,     0,   108, | ||||
|       65,    66,    67,     0,     0,     0,     0,    68,    69,    70, | ||||
|       71,    72,    73,    74,    75,     0,    76,    77,    78,    79, | ||||
|       80,    81,    68,    69,    70,    71,    72,    73,    74,    75, | ||||
|        0,    76,    77,    78,    79,    80,    81,   109,    65,    66, | ||||
|       67,     0,     0,     0,     0,     0,     0,     0,     0,     0, | ||||
|        0,     0,   110,    65,    66,    67,     0,     0,     0,     0, | ||||
|       68,    69,    70,    71,    72,    73,    74,    75,     0,    76, | ||||
|       77,    78,    79,    80,    81,    68,    69,    70,    71,    72, | ||||
|       73,    74,    75,     0,    76,    77,    78,    79,    80,    81, | ||||
|      114,    65,    66,    67,     0,     0,     0,     0,     0,     0, | ||||
|        0,     0,     0,     0,     0,   119,    65,    66,    67,     0, | ||||
|        0,     0,     0,    68,    69,    70,    71,    72,    73,    74, | ||||
|       75,     0,    76,    77,    78,    79,    80,    81,    68,    69, | ||||
|       70,    71,    72,    73,    74,    75,     0,    76,    77,    78, | ||||
|       79,    80,    81 | ||||
|       78,    79,    80,    81 | ||||
| }; | ||||
| 
 | ||||
| static const yytype_int8 yycheck[] = | ||||
| @ -773,10 +773,26 @@ static const yytype_int8 yycheck[] = | ||||
|       58,     0,     1,     3,     3,    33,    32,     6,     7,     8, | ||||
|        9,    10,    11,    12,    13,    14,    15,    16,    17,    18, | ||||
|       19,    20,    21,    22,    23,    24,    25,    33,    33,    33, | ||||
|       33,    89,     3,    33,     3,    34,    35,    36,    37,    38, | ||||
|       33,     3,    90,    33,     3,    34,    35,    36,    37,    38, | ||||
|       39,    40,     3,     4,     5,     6,     3,     3,    33,    33, | ||||
|       33,    28,    33,    33,    33,   113,    30,     3,     4,     5, | ||||
|        6,     3,     3,    33,    -1,    26,    27,    28,    29,    30, | ||||
|       33,     3,    28,    33,    33,    33,    30,   115,     3,     4, | ||||
|        5,     6,     3,    33,    33,    26,    27,    28,    29,    30, | ||||
|       31,    32,    33,     3,    35,    36,    37,    38,    39,    40, | ||||
|       -1,    26,    27,    28,    29,    30,    31,    32,    33,    -1, | ||||
|       35,    36,    37,    38,    39,    40,     3,     4,     5,     6, | ||||
|       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, | ||||
|       -1,     3,     4,     5,     6,    -1,    -1,    -1,    -1,    26, | ||||
|       27,    28,    29,    30,    31,    32,    33,    -1,    35,    36, | ||||
|       37,    38,    39,    40,    26,    27,    28,    29,    30,    31, | ||||
|       32,    33,    -1,    35,    36,    37,    38,    39,    40,     3, | ||||
|        4,     5,     6,    -1,    -1,    -1,    -1,    -1,    -1,    -1, | ||||
|       -1,    -1,    -1,    -1,     3,     4,     5,     6,    -1,    -1, | ||||
|       -1,    -1,    26,    27,    28,    29,    30,    31,    32,    33, | ||||
|       -1,    35,    36,    37,    38,    39,    40,    26,    27,    28, | ||||
|       29,    30,    31,    32,    33,    -1,    35,    36,    37,    38, | ||||
|       39,    40,     3,     4,     5,     6,    -1,    -1,    -1,    -1, | ||||
|       -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,     5, | ||||
|        6,    -1,    -1,    -1,    -1,    26,    27,    28,    29,    30, | ||||
|       31,    32,    33,    -1,    35,    36,    37,    38,    39,    40, | ||||
|       26,    27,    28,    29,    30,    31,    32,    33,    -1,    35, | ||||
|       36,    37,    38,    39,    40,     3,     4,     5,     6,    -1, | ||||
| @ -795,23 +811,7 @@ static const yytype_int8 yycheck[] = | ||||
|       -1,    -1,    -1,    -1,    26,    27,    28,    29,    30,    31, | ||||
|       32,    33,    -1,    35,    36,    37,    38,    39,    40,    26, | ||||
|       27,    28,    29,    30,    31,    32,    33,    -1,    35,    36, | ||||
|       37,    38,    39,    40,     3,     4,     5,     6,    -1,    -1, | ||||
|       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3, | ||||
|        4,     5,     6,    -1,    -1,    -1,    -1,    26,    27,    28, | ||||
|       29,    30,    31,    32,    33,    -1,    35,    36,    37,    38, | ||||
|       39,    40,    26,    27,    28,    29,    30,    31,    32,    33, | ||||
|       -1,    35,    36,    37,    38,    39,    40,     3,     4,     5, | ||||
|        6,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, | ||||
|       -1,    -1,     3,     4,     5,     6,    -1,    -1,    -1,    -1, | ||||
|       26,    27,    28,    29,    30,    31,    32,    33,    -1,    35, | ||||
|       36,    37,    38,    39,    40,    26,    27,    28,    29,    30, | ||||
|       31,    32,    33,    -1,    35,    36,    37,    38,    39,    40, | ||||
|        3,     4,     5,     6,    -1,    -1,    -1,    -1,    -1,    -1, | ||||
|       -1,    -1,    -1,    -1,    -1,     3,     4,     5,     6,    -1, | ||||
|       -1,    -1,    -1,    26,    27,    28,    29,    30,    31,    32, | ||||
|       33,    -1,    35,    36,    37,    38,    39,    40,    26,    27, | ||||
|       28,    29,    30,    31,    32,    33,    -1,    35,    36,    37, | ||||
|       38,    39,    40 | ||||
|       37,    38,    39,    40 | ||||
| }; | ||||
| 
 | ||||
| /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
 | ||||
| @ -826,11 +826,11 @@ static const yytype_int8 yystos[] = | ||||
|       29,    26,    28,    33,    32,    33,    33,    33,    33,    53, | ||||
|       53,    53,    53,    53,     3,     4,     5,     6,    26,    27, | ||||
|       28,    29,    30,    31,    32,    33,    35,    36,    37,    38, | ||||
|       39,    40,    54,     3,     3,     3,     3,    33,    33,    33, | ||||
|       53,    53,    53,    53,    53,    53,     3,     3,     3,     3, | ||||
|        3,    27,    30,    28,    53,     3,     3,     3,     3,     3, | ||||
|        3,    33,    33,    33,     3,    30,     3,    53,    33,     3, | ||||
|        3 | ||||
|       39,    40,    54,     3,    33,     3,     3,     3,    33,    33, | ||||
|       33,    53,    53,    53,    53,    53,    53,     3,     3,     3, | ||||
|        3,     3,     3,    27,    30,    28,    53,     3,     3,     3, | ||||
|        3,     3,     3,    33,    33,    33,     3,    30,     3,    53, | ||||
|       33,     3,     3 | ||||
| }; | ||||
| 
 | ||||
| /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM.  */ | ||||
| @ -838,23 +838,23 @@ static const yytype_int8 yyr1[] = | ||||
| { | ||||
|        0,    41,    42,    42,    43,    43,    43,    43,    43,    43, | ||||
|       43,    43,    43,    43,    43,    43,    43,    43,    43,    43, | ||||
|       43,    43,    43,    43,    43,    43,    43,    44,    44,    44, | ||||
|       45,    45,    46,    46,    47,    47,    48,    48,    49,    49, | ||||
|       50,    50,    51,    51,    52,    52,    53,    53,    54,    54, | ||||
|       43,    43,    43,    43,    43,    43,    43,    43,    44,    44, | ||||
|       44,    45,    45,    46,    46,    47,    47,    48,    48,    49, | ||||
|       49,    50,    50,    51,    51,    52,    52,    53,    53,    54, | ||||
|       54,    54,    54,    54,    54,    54,    54,    54,    54,    54, | ||||
|       54,    54,    54,    54,    54 | ||||
|       54,    54,    54,    54,    54,    54 | ||||
| }; | ||||
| 
 | ||||
| /* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM.  */ | ||||
| static const yytype_int8 yyr2[] = | ||||
| { | ||||
|        0,     2,     0,     2,     2,     4,     3,     6,     8,     3, | ||||
|        3,     5,     7,     3,     4,     3,     4,     4,     4,     4, | ||||
|        4,     3,     3,     3,     3,     1,     2,     1,     1,     1, | ||||
|        4,     3,     5,     7,     3,     4,     3,     4,     4,     4, | ||||
|        4,     4,     3,     3,     3,     3,     1,     2,     1,     1, | ||||
|        1,     1,     1,     1,     1,     1,     1,     1,     1,     1, | ||||
|        1,     1,     1,     1,     1,     1,     0,     2,     1,     1, | ||||
|        1,     1,     1,     1,     1,     1,     1,     0,     2,     1, | ||||
|        1,     1,     1,     1,     1,     1,     1,     1,     1,     1, | ||||
|        1,     1,     1,     1,     1 | ||||
|        1,     1,     1,     1,     1,     1 | ||||
| }; | ||||
| 
 | ||||
| 
 | ||||
| @ -1679,27 +1679,37 @@ yyreduce: | ||||
| #line 1680 "cmFortranParser.cxx" | ||||
|     break; | ||||
| 
 | ||||
|   case 10: /* stmt: END INTERFACE EOSTMT  */ | ||||
|   case 10: /* stmt: END INTERFACE WORD EOSTMT  */ | ||||
| #line 141 "cmFortranParser.y" | ||||
|                             { | ||||
|     cmFortranParser* parser = cmFortran_yyget_extra(yyscanner); | ||||
|     cmFortranParser_SetInInterface(parser, false); | ||||
|     free((yyvsp[-1].string)); | ||||
|   } | ||||
| #line 1690 "cmFortranParser.cxx" | ||||
|     break; | ||||
| 
 | ||||
|   case 11: /* stmt: END INTERFACE EOSTMT  */ | ||||
| #line 146 "cmFortranParser.y" | ||||
|                        { | ||||
|     cmFortranParser* parser = cmFortran_yyget_extra(yyscanner); | ||||
|     cmFortranParser_SetInInterface(parser, false); | ||||
|   } | ||||
| #line 1689 "cmFortranParser.cxx" | ||||
| #line 1699 "cmFortranParser.cxx" | ||||
|     break; | ||||
| 
 | ||||
|   case 11: /* stmt: USE DCOLON WORD other EOSTMT  */ | ||||
| #line 145 "cmFortranParser.y" | ||||
|   case 12: /* stmt: USE DCOLON WORD other EOSTMT  */ | ||||
| #line 150 "cmFortranParser.y" | ||||
|                                { | ||||
|     cmFortranParser* parser = cmFortran_yyget_extra(yyscanner); | ||||
|     cmFortranParser_RuleUse(parser, (yyvsp[-2].string)); | ||||
|     free((yyvsp[-2].string)); | ||||
|   } | ||||
| #line 1699 "cmFortranParser.cxx" | ||||
| #line 1709 "cmFortranParser.cxx" | ||||
|     break; | ||||
| 
 | ||||
|   case 12: /* stmt: USE COMMA WORD DCOLON WORD other EOSTMT  */ | ||||
| #line 150 "cmFortranParser.y" | ||||
|   case 13: /* stmt: USE COMMA WORD DCOLON WORD other EOSTMT  */ | ||||
| #line 155 "cmFortranParser.y" | ||||
|                                           { | ||||
|     if (cmsysString_strcasecmp((yyvsp[-4].string), "non_intrinsic") == 0) { | ||||
|       cmFortranParser* parser = cmFortran_yyget_extra(yyscanner); | ||||
| @ -1712,42 +1722,32 @@ yyreduce: | ||||
|     free((yyvsp[-4].string)); | ||||
|     free((yyvsp[-2].string)); | ||||
|   } | ||||
| #line 1716 "cmFortranParser.cxx" | ||||
| #line 1726 "cmFortranParser.cxx" | ||||
|     break; | ||||
| 
 | ||||
|   case 13: /* stmt: INCLUDE STRING EOSTMT  */ | ||||
| #line 162 "cmFortranParser.y" | ||||
|   case 14: /* stmt: INCLUDE STRING EOSTMT  */ | ||||
| #line 167 "cmFortranParser.y" | ||||
|                         { | ||||
|     cmFortranParser* parser = cmFortran_yyget_extra(yyscanner); | ||||
|     cmFortranParser_RuleInclude(parser, (yyvsp[-1].string)); | ||||
|     free((yyvsp[-1].string)); | ||||
|   } | ||||
| #line 1726 "cmFortranParser.cxx" | ||||
| #line 1736 "cmFortranParser.cxx" | ||||
|     break; | ||||
| 
 | ||||
|   case 14: /* stmt: CPP_LINE_DIRECTIVE STRING other EOSTMT  */ | ||||
| #line 167 "cmFortranParser.y" | ||||
|   case 15: /* stmt: CPP_LINE_DIRECTIVE STRING other EOSTMT  */ | ||||
| #line 172 "cmFortranParser.y" | ||||
|                                          { | ||||
|     cmFortranParser* parser = cmFortran_yyget_extra(yyscanner); | ||||
|     cmFortranParser_RuleLineDirective(parser, (yyvsp[-2].string)); | ||||
|     free((yyvsp[-2].string)); | ||||
|   } | ||||
| #line 1736 "cmFortranParser.cxx" | ||||
|     break; | ||||
| 
 | ||||
|   case 15: /* stmt: CPP_INCLUDE_ANGLE other EOSTMT  */ | ||||
| #line 172 "cmFortranParser.y" | ||||
|                                  { | ||||
|     cmFortranParser* parser = cmFortran_yyget_extra(yyscanner); | ||||
|     cmFortranParser_RuleInclude(parser, (yyvsp[-2].string)); | ||||
|     free((yyvsp[-2].string)); | ||||
|   } | ||||
| #line 1746 "cmFortranParser.cxx" | ||||
|     break; | ||||
| 
 | ||||
|   case 16: /* stmt: include STRING other EOSTMT  */ | ||||
|   case 16: /* stmt: CPP_INCLUDE_ANGLE other EOSTMT  */ | ||||
| #line 177 "cmFortranParser.y" | ||||
|                               { | ||||
|                                  { | ||||
|     cmFortranParser* parser = cmFortran_yyget_extra(yyscanner); | ||||
|     cmFortranParser_RuleInclude(parser, (yyvsp[-2].string)); | ||||
|     free((yyvsp[-2].string)); | ||||
| @ -1755,96 +1755,106 @@ yyreduce: | ||||
| #line 1756 "cmFortranParser.cxx" | ||||
|     break; | ||||
| 
 | ||||
|   case 17: /* stmt: define WORD other EOSTMT  */ | ||||
|   case 17: /* stmt: include STRING other EOSTMT  */ | ||||
| #line 182 "cmFortranParser.y" | ||||
|                            { | ||||
|                               { | ||||
|     cmFortranParser* parser = cmFortran_yyget_extra(yyscanner); | ||||
|     cmFortranParser_RuleDefine(parser, (yyvsp[-2].string)); | ||||
|     cmFortranParser_RuleInclude(parser, (yyvsp[-2].string)); | ||||
|     free((yyvsp[-2].string)); | ||||
|   } | ||||
| #line 1766 "cmFortranParser.cxx" | ||||
|     break; | ||||
| 
 | ||||
|   case 18: /* stmt: undef WORD other EOSTMT  */ | ||||
|   case 18: /* stmt: define WORD other EOSTMT  */ | ||||
| #line 187 "cmFortranParser.y" | ||||
|                           { | ||||
|                            { | ||||
|     cmFortranParser* parser = cmFortran_yyget_extra(yyscanner); | ||||
|     cmFortranParser_RuleUndef(parser, (yyvsp[-2].string)); | ||||
|     cmFortranParser_RuleDefine(parser, (yyvsp[-2].string)); | ||||
|     free((yyvsp[-2].string)); | ||||
|   } | ||||
| #line 1776 "cmFortranParser.cxx" | ||||
|     break; | ||||
| 
 | ||||
|   case 19: /* stmt: ifdef WORD other EOSTMT  */ | ||||
|   case 19: /* stmt: undef WORD other EOSTMT  */ | ||||
| #line 192 "cmFortranParser.y" | ||||
|                           { | ||||
|     cmFortranParser* parser = cmFortran_yyget_extra(yyscanner); | ||||
|     cmFortranParser_RuleIfdef(parser, (yyvsp[-2].string)); | ||||
|     cmFortranParser_RuleUndef(parser, (yyvsp[-2].string)); | ||||
|     free((yyvsp[-2].string)); | ||||
|   } | ||||
| #line 1786 "cmFortranParser.cxx" | ||||
|     break; | ||||
| 
 | ||||
|   case 20: /* stmt: ifndef WORD other EOSTMT  */ | ||||
|   case 20: /* stmt: ifdef WORD other EOSTMT  */ | ||||
| #line 197 "cmFortranParser.y" | ||||
|                            { | ||||
|                           { | ||||
|     cmFortranParser* parser = cmFortran_yyget_extra(yyscanner); | ||||
|     cmFortranParser_RuleIfndef(parser, (yyvsp[-2].string)); | ||||
|     cmFortranParser_RuleIfdef(parser, (yyvsp[-2].string)); | ||||
|     free((yyvsp[-2].string)); | ||||
|   } | ||||
| #line 1796 "cmFortranParser.cxx" | ||||
|     break; | ||||
| 
 | ||||
|   case 21: /* stmt: if other EOSTMT  */ | ||||
|   case 21: /* stmt: ifndef WORD other EOSTMT  */ | ||||
| #line 202 "cmFortranParser.y" | ||||
|                            { | ||||
|     cmFortranParser* parser = cmFortran_yyget_extra(yyscanner); | ||||
|     cmFortranParser_RuleIfndef(parser, (yyvsp[-2].string)); | ||||
|     free((yyvsp[-2].string)); | ||||
|   } | ||||
| #line 1806 "cmFortranParser.cxx" | ||||
|     break; | ||||
| 
 | ||||
|   case 22: /* stmt: if other EOSTMT  */ | ||||
| #line 207 "cmFortranParser.y" | ||||
|                   { | ||||
|     cmFortranParser* parser = cmFortran_yyget_extra(yyscanner); | ||||
|     cmFortranParser_RuleIf(parser); | ||||
|   } | ||||
| #line 1805 "cmFortranParser.cxx" | ||||
| #line 1815 "cmFortranParser.cxx" | ||||
|     break; | ||||
| 
 | ||||
|   case 22: /* stmt: elif other EOSTMT  */ | ||||
| #line 206 "cmFortranParser.y" | ||||
|   case 23: /* stmt: elif other EOSTMT  */ | ||||
| #line 211 "cmFortranParser.y" | ||||
|                     { | ||||
|     cmFortranParser* parser = cmFortran_yyget_extra(yyscanner); | ||||
|     cmFortranParser_RuleElif(parser); | ||||
|   } | ||||
| #line 1814 "cmFortranParser.cxx" | ||||
| #line 1824 "cmFortranParser.cxx" | ||||
|     break; | ||||
| 
 | ||||
|   case 23: /* stmt: else other EOSTMT  */ | ||||
| #line 210 "cmFortranParser.y" | ||||
|   case 24: /* stmt: else other EOSTMT  */ | ||||
| #line 215 "cmFortranParser.y" | ||||
|                     { | ||||
|     cmFortranParser* parser = cmFortran_yyget_extra(yyscanner); | ||||
|     cmFortranParser_RuleElse(parser); | ||||
|   } | ||||
| #line 1823 "cmFortranParser.cxx" | ||||
| #line 1833 "cmFortranParser.cxx" | ||||
|     break; | ||||
| 
 | ||||
|   case 24: /* stmt: endif other EOSTMT  */ | ||||
| #line 214 "cmFortranParser.y" | ||||
|   case 25: /* stmt: endif other EOSTMT  */ | ||||
| #line 219 "cmFortranParser.y" | ||||
|                      { | ||||
|     cmFortranParser* parser = cmFortran_yyget_extra(yyscanner); | ||||
|     cmFortranParser_RuleEndif(parser); | ||||
|   } | ||||
| #line 1832 "cmFortranParser.cxx" | ||||
| #line 1842 "cmFortranParser.cxx" | ||||
|     break; | ||||
| 
 | ||||
|   case 48: /* misc_code: WORD  */ | ||||
| #line 236 "cmFortranParser.y" | ||||
|   case 49: /* misc_code: WORD  */ | ||||
| #line 241 "cmFortranParser.y" | ||||
|                       { free ((yyvsp[0].string)); } | ||||
| #line 1838 "cmFortranParser.cxx" | ||||
|     break; | ||||
| 
 | ||||
|   case 55: /* misc_code: STRING  */ | ||||
| #line 243 "cmFortranParser.y" | ||||
|                       { free ((yyvsp[0].string)); } | ||||
| #line 1844 "cmFortranParser.cxx" | ||||
|     break; | ||||
| 
 | ||||
| 
 | ||||
| #line 1848 "cmFortranParser.cxx" | ||||
|     break; | ||||
| 
 | ||||
|   case 56: /* misc_code: STRING  */ | ||||
| #line 248 "cmFortranParser.y" | ||||
|                       { free ((yyvsp[0].string)); } | ||||
| #line 1854 "cmFortranParser.cxx" | ||||
|     break; | ||||
| 
 | ||||
| 
 | ||||
| #line 1858 "cmFortranParser.cxx" | ||||
| 
 | ||||
|       default: break; | ||||
|     } | ||||
| @ -2068,6 +2078,6 @@ yyreturnlab: | ||||
|   return yyresult; | ||||
| } | ||||
| 
 | ||||
| #line 255 "cmFortranParser.y" | ||||
| #line 260 "cmFortranParser.y" | ||||
| 
 | ||||
| /* End of grammar */ | ||||
|  | ||||
| @ -138,6 +138,11 @@ stmt: | ||||
|     cmFortranParser_SetInInterface(parser, true); | ||||
|     free($2); | ||||
|   } | ||||
| | END INTERFACE WORD EOSTMT { | ||||
|     cmFortranParser* parser = cmFortran_yyget_extra(yyscanner); | ||||
|     cmFortranParser_SetInInterface(parser, false); | ||||
|     free($3); | ||||
|   } | ||||
| | END INTERFACE EOSTMT { | ||||
|     cmFortranParser* parser = cmFortran_yyget_extra(yyscanner); | ||||
|     cmFortranParser_SetInInterface(parser, false); | ||||
|  | ||||
| @ -206,6 +206,8 @@ auto const TryRunSourcesArgParser = | ||||
| auto const TryRunOldArgParser = makeTryRunParser(TryCompileOldArgParser); | ||||
| 
 | ||||
| #undef BIND_LANG_PROPS | ||||
| 
 | ||||
| std::string const TryCompileDefaultConfig = "DEBUG"; | ||||
| } | ||||
| 
 | ||||
| Arguments cmCoreTryCompile::ParseArgs( | ||||
| @ -706,9 +708,9 @@ bool cmCoreTryCompile::TryCompileCode(Arguments& arguments, | ||||
|         CM_FALLTHROUGH; | ||||
|       case cmPolicies::NEW: { | ||||
|         // NEW behavior is to pass config-specific compiler flags.
 | ||||
|         static std::string const cfgDefault = "DEBUG"; | ||||
|         std::string const cfg = | ||||
|           !tcConfig.empty() ? cmSystemTools::UpperCase(tcConfig) : cfgDefault; | ||||
|         std::string const cfg = !tcConfig.empty() | ||||
|           ? cmSystemTools::UpperCase(tcConfig) | ||||
|           : TryCompileDefaultConfig; | ||||
|         for (std::string const& li : testLangs) { | ||||
|           std::string const langFlagsCfg = | ||||
|             cmStrCat("CMAKE_", li, "_FLAGS_", cfg); | ||||
| @ -1199,7 +1201,12 @@ void cmCoreTryCompile::FindOutputFile(const std::string& targetName) | ||||
|   tmpOutputFile += targetName; | ||||
| 
 | ||||
|   if (this->Makefile->GetGlobalGenerator()->IsMultiConfig()) { | ||||
|     tmpOutputFile += "_DEBUG"; | ||||
|     std::string const tcConfig = | ||||
|       this->Makefile->GetSafeDefinition("CMAKE_TRY_COMPILE_CONFIGURATION"); | ||||
|     std::string const cfg = !tcConfig.empty() | ||||
|       ? cmSystemTools::UpperCase(tcConfig) | ||||
|       : TryCompileDefaultConfig; | ||||
|     tmpOutputFile = cmStrCat(tmpOutputFile, '_', cfg); | ||||
|   } | ||||
|   tmpOutputFile += "_loc"; | ||||
| 
 | ||||
|  | ||||
| @ -3581,27 +3581,36 @@ void cmGlobalXCodeGenerator::AddDependAndLinkInformation(cmXCodeObject* target) | ||||
|             libItem.IsPath == cmComputeLinkInformation::ItemIsPath::Yes && | ||||
|             forceLinkPhase))) { | ||||
|         std::string libName; | ||||
|         bool canUseLinkPhase = true; | ||||
|         if (libItem.Target) { | ||||
|           if (libItem.Target->GetType() == cmStateEnums::UNKNOWN_LIBRARY) { | ||||
|             canUseLinkPhase = canUseLinkPhase && forceLinkPhase; | ||||
|           } else { | ||||
|             // If a library target uses custom build output directory Xcode
 | ||||
|             // won't pick it up so we have to resort back to linker flags, but
 | ||||
|             // that's OK as long as the custom output dir is absolute path.
 | ||||
|             for (auto const& libConfigName : this->CurrentConfigurationTypes) { | ||||
|               canUseLinkPhase = canUseLinkPhase && | ||||
|                 libItem.Target->UsesDefaultOutputDir( | ||||
|                   libConfigName, cmStateEnums::RuntimeBinaryArtifact); | ||||
|         bool canUseLinkPhase = !libItem.HasFeature() || | ||||
|           libItem.GetFeatureName() == "__CMAKE_LINK_FRAMEWORK"_s || | ||||
|           libItem.GetFeatureName() == "FRAMEWORK"_s || | ||||
|           libItem.GetFeatureName() == "WEAK_FRAMEWORK"_s || | ||||
|           libItem.GetFeatureName() == "WEAK_LIBRARY"_s; | ||||
|         if (canUseLinkPhase) { | ||||
|           if (libItem.Target) { | ||||
|             if (libItem.Target->GetType() == cmStateEnums::UNKNOWN_LIBRARY) { | ||||
|               canUseLinkPhase = canUseLinkPhase && forceLinkPhase; | ||||
|             } else { | ||||
|               // If a library target uses custom build output directory Xcode
 | ||||
|               // won't pick it up so we have to resort back to linker flags,
 | ||||
|               // but that's OK as long as the custom output dir is absolute
 | ||||
|               // path.
 | ||||
|               for (auto const& libConfigName : | ||||
|                    this->CurrentConfigurationTypes) { | ||||
|                 canUseLinkPhase = canUseLinkPhase && | ||||
|                   libItem.Target->UsesDefaultOutputDir( | ||||
|                     libConfigName, cmStateEnums::RuntimeBinaryArtifact); | ||||
|               } | ||||
|             } | ||||
|             libName = libItem.Target->GetName(); | ||||
|           } else { | ||||
|             libName = cmSystemTools::GetFilenameName(libItem.Value.Value); | ||||
|             // We don't want all the possible files here, just standard
 | ||||
|             // libraries
 | ||||
|             const auto libExt = cmSystemTools::GetFilenameExtension(libName); | ||||
|             if (!IsLinkPhaseLibraryExtension(libExt)) { | ||||
|               canUseLinkPhase = false; | ||||
|             } | ||||
|           } | ||||
|           libName = libItem.Target->GetName(); | ||||
|         } else { | ||||
|           libName = cmSystemTools::GetFilenameName(libItem.Value.Value); | ||||
|           // We don't want all the possible files here, just standard libraries
 | ||||
|           const auto libExt = cmSystemTools::GetFilenameExtension(libName); | ||||
|           if (!IsLinkPhaseLibraryExtension(libExt)) { | ||||
|             canUseLinkPhase = false; | ||||
|           } | ||||
|         } | ||||
|         if (canUseLinkPhase) { | ||||
| @ -3658,6 +3667,7 @@ void cmGlobalXCodeGenerator::AddDependAndLinkInformation(cmXCodeObject* target) | ||||
|   // separately.
 | ||||
|   std::vector<std::string> linkSearchPaths; | ||||
|   std::vector<std::string> frameworkSearchPaths; | ||||
|   std::set<std::pair<cmXCodeObject*, std::string>> linkBuildFileSet; | ||||
|   for (auto const& libItem : linkPhaseTargetVector) { | ||||
|     // Add target output directory as a library search path
 | ||||
|     std::string linkDir; | ||||
| @ -3760,8 +3770,30 @@ void cmGlobalXCodeGenerator::AddDependAndLinkInformation(cmXCodeObject* target) | ||||
|       cmSystemTools::Error("Missing files of PBXFrameworksBuildPhase"); | ||||
|       continue; | ||||
|     } | ||||
|     if (buildFile && !buildFiles->HasObject(buildFile)) { | ||||
|       buildFiles->AddObject(buildFile); | ||||
|     if (buildFile) { | ||||
|       if (cmHasPrefix(libItem->GetFeatureName(), "WEAK_"_s)) { | ||||
|         auto key = std::make_pair(buildFile->GetAttribute("fileRef"), | ||||
|                                   libItem->GetFeatureName()); | ||||
|         if (linkBuildFileSet.find(key) != linkBuildFileSet.end()) { | ||||
|           continue; | ||||
|         } | ||||
|         linkBuildFileSet.insert(key); | ||||
| 
 | ||||
|         cmXCodeObject* buildObject = | ||||
|           this->CreateObject(cmXCodeObject::PBXBuildFile); | ||||
|         buildObject->AddAttribute("fileRef", key.first); | ||||
|         // Add settings, ATTRIBUTES, Weak flag
 | ||||
|         cmXCodeObject* settings = | ||||
|           this->CreateObject(cmXCodeObject::ATTRIBUTE_GROUP); | ||||
|         cmXCodeObject* attrs = this->CreateObject(cmXCodeObject::OBJECT_LIST); | ||||
|         attrs->AddObject(this->CreateString("Weak")); | ||||
|         settings->AddAttribute("ATTRIBUTES", attrs); | ||||
|         buildObject->AddAttribute("settings", settings); | ||||
|         buildFile = buildObject; | ||||
|       } | ||||
|       if (!buildFiles->HasObject(buildFile)) { | ||||
|         buildFiles->AddObject(buildFile); | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|  | ||||
| @ -2,10 +2,10 @@ cmake_minimum_required(VERSION 3.14) | ||||
| project(TestFindBoostPython CXX) | ||||
| include(CTest) | ||||
| 
 | ||||
| find_package(Boost OPTIONAL_COMPONENTS python27 python34 python35 python36 python37 python38 python39 python310) | ||||
| find_package(Boost OPTIONAL_COMPONENTS python27 python34 python35 python36 python37 python38 python39 python310 python311 python312) | ||||
| 
 | ||||
| set(FAILTEST TRUE) | ||||
| foreach (v IN ITEMS 27 34 35 36 37 38 39 310) | ||||
| foreach (v IN ITEMS 27 34 35 36 37 38 39 310 311 312) | ||||
|   if (Boost_PYTHON${v}_FOUND) | ||||
|     set(FAILTEST FALSE) | ||||
|     break() | ||||
|  | ||||
| @ -42,6 +42,16 @@ add_executable(test_module | ||||
|   test_module_implementation.f90 | ||||
|   test_module_interface.f90) | ||||
| 
 | ||||
| add_executable(test_multi_module | ||||
|   # Place this first so that we do not get "lucky" and find the module provided | ||||
|   # by compiling `test_multi_module.f90` first. | ||||
|   test_multi_module_main.f90 | ||||
|   test_multi_module.f90) | ||||
| set_property(TARGET test_multi_module PROPERTY | ||||
|   JOB_POOL_COMPILE multi_module_serial) | ||||
| set_property(GLOBAL APPEND PROPERTY | ||||
|   JOB_POOLS multi_module_serial=1) | ||||
| 
 | ||||
| add_executable(test_use_in_comment_fixedform | ||||
|   test_use_in_comment_fixedform.f) | ||||
| set_property(SOURCE test_use_in_comment_fixedform.f PROPERTY Fortran_FORMAT FIXED) | ||||
|  | ||||
							
								
								
									
										8
									
								
								Tests/FortranModules/test_multi_module.f90
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								Tests/FortranModules/test_multi_module.f90
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,8 @@ | ||||
| module first | ||||
|   interface inner | ||||
|   end interface inner | ||||
| end module first | ||||
| 
 | ||||
| module second | ||||
|   REAL :: C = 1 | ||||
| end module second | ||||
							
								
								
									
										4
									
								
								Tests/FortranModules/test_multi_module_main.f90
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								Tests/FortranModules/test_multi_module_main.f90
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,4 @@ | ||||
| PROGRAM MAINF90 | ||||
|   use second | ||||
|   PRINT *,'Constant is',C | ||||
| END PROGRAM MAINF90 | ||||
| @ -65,8 +65,12 @@ add_custom_target(prebuildDependencies ALL | ||||
|     COMMAND ${CMAKE_COMMAND} --build ${CMAKE_CURRENT_BINARY_DIR}/ExternalFrameworks/build --target staticFrameworkExt sharedFrameworkExt --config Debug | ||||
| ) | ||||
| add_executable(app1 mainOuter.m) | ||||
| add_executable(app2 mainOuter.m) | ||||
| add_executable(app3 mainOuter.m) | ||||
| add_library(static1 STATIC funcOuter.c) | ||||
| add_library(shared1 SHARED funcOuter.c) | ||||
| add_library(shared3 SHARED funcOuter.c) | ||||
| add_library(shared4 SHARED funcOuter.c) | ||||
| add_library(module1 MODULE funcOuter.c) | ||||
| add_library(obj1    OBJECT funcOuter.c) | ||||
| add_library(staticFramework1 STATIC funcOuter.c) | ||||
| @ -74,8 +78,12 @@ add_library(sharedFramework1 SHARED funcOuter.c) | ||||
| set_target_properties(staticFramework1 PROPERTIES FRAMEWORK TRUE) | ||||
| set_target_properties(sharedFramework1 PROPERTIES FRAMEWORK TRUE) | ||||
| add_dependencies(app1 prebuildDependencies) | ||||
| add_dependencies(app2 prebuildDependencies) | ||||
| add_dependencies(app3 prebuildDependencies) | ||||
| add_dependencies(static1 prebuildDependencies) | ||||
| add_dependencies(shared1 prebuildDependencies) | ||||
| add_dependencies(shared3 prebuildDependencies) | ||||
| add_dependencies(shared4 prebuildDependencies) | ||||
| add_dependencies(module1 prebuildDependencies) | ||||
| add_dependencies(obj1 prebuildDependencies) | ||||
| add_dependencies(staticFramework1 prebuildDependencies) | ||||
| @ -103,6 +111,14 @@ set(libresolv \"${libresolv}\") | ||||
| set(CoreFoundation \"${CoreFoundation}\") | ||||
| ") | ||||
| 
 | ||||
| macro(SET_LINK_LIBRARIES) | ||||
|   foreach(mainTarget IN LISTS mainTargets) | ||||
|     foreach(linkTo IN LISTS linkToThings) | ||||
|       target_link_libraries(${mainTarget} PRIVATE ${linkTo}) | ||||
|     endforeach() | ||||
|   endforeach() | ||||
| endmacro() | ||||
| 
 | ||||
| set(mainTargets | ||||
|     app1 | ||||
|     static1 | ||||
| @ -125,8 +141,44 @@ set(linkToThings | ||||
|     "${CMAKE_CURRENT_BINARY_DIR}/ExternalFrameworks/build/Debug/staticFrameworkExt.framework" | ||||
| ) | ||||
| 
 | ||||
| foreach(mainTarget IN LISTS mainTargets) | ||||
|   foreach(linkTo IN LISTS linkToThings) | ||||
|     target_link_libraries(${mainTarget} PRIVATE ${linkTo}) | ||||
|   endforeach() | ||||
| endforeach() | ||||
| set_link_libraries() | ||||
| 
 | ||||
| set(mainTargets | ||||
|     app2 | ||||
|     shared3 | ||||
| ) | ||||
| 
 | ||||
| set(linkToThings | ||||
|     static2 | ||||
|     "$<LINK_LIBRARY:WEAK_LIBRARY,shared2>" | ||||
|     obj2 | ||||
|     staticFramework2 | ||||
|     "$<LINK_LIBRARY:WEAK_FRAMEWORK,sharedFramework2>" | ||||
|     imported2 | ||||
|     ${libresolv} | ||||
|     ${CoreFoundation} | ||||
|     "$<LINK_LIBRARY:WEAK_FRAMEWORK,${CMAKE_CURRENT_BINARY_DIR}/ExternalFrameworks/build/Debug/sharedFrameworkExt.framework>" | ||||
|     "${CMAKE_CURRENT_BINARY_DIR}/ExternalFrameworks/build/Debug/staticFrameworkExt.framework" | ||||
| ) | ||||
| 
 | ||||
| set_link_libraries() | ||||
| 
 | ||||
| set(mainTargets | ||||
|     app3 | ||||
|     shared4 | ||||
| ) | ||||
| 
 | ||||
| set(linkToThings | ||||
|     static2 | ||||
|     "$<LINK_LIBRARY:REEXPORT_LIBRARY,shared2>" | ||||
|     obj2 | ||||
|     staticFramework2 | ||||
|     "$<LINK_LIBRARY:REEXPORT_FRAMEWORK,sharedFramework2>" | ||||
|     imported2 | ||||
|     ${libresolv} | ||||
|     ${CoreFoundation} | ||||
|     "$<LINK_LIBRARY:REEXPORT_FRAMEWORK,${CMAKE_CURRENT_BINARY_DIR}/ExternalFrameworks/build/Debug/sharedFrameworkExt.framework>" | ||||
|     "${CMAKE_CURRENT_BINARY_DIR}/ExternalFrameworks/build/Debug/staticFrameworkExt.framework" | ||||
| ) | ||||
| 
 | ||||
| set_link_libraries() | ||||
|  | ||||
| @ -4,13 +4,20 @@ include(${RunCMake_TEST_BINARY_DIR}/foundLibs.cmake) | ||||
| # obj2    --> Embeds func3.o in the link flags, but obj2 is part of the path | ||||
| # ${libz} --> This is for imported2 | ||||
| 
 | ||||
| foreach(mainTarget IN ITEMS app1 shared1 module1 sharedFramework1) | ||||
| foreach(mainTarget IN ITEMS app1 app2 shared1 shared3 module1 sharedFramework1) | ||||
|   checkFlags(OTHER_LDFLAGS ${mainTarget} | ||||
|     "obj2;${libz};${libresolv};CoreFoundation;sharedFrameworkExt;staticFrameworkExt" | ||||
|     "static2;shared2;staticFramework2;sharedFramework2" | ||||
|   ) | ||||
| endforeach() | ||||
| 
 | ||||
| foreach(mainTarget IN ITEMS app3 shared4) | ||||
|   checkFlags(OTHER_LDFLAGS ${mainTarget} | ||||
|     "obj2;${libz};${libresolv};CoreFoundation;sharedFrameworkExt;staticFrameworkExt;shared2;sharedFramework2" | ||||
|     "static2;staticFramework2" | ||||
|   ) | ||||
| endforeach() | ||||
| 
 | ||||
| foreach(mainTarget IN ITEMS static1 staticFramework1) | ||||
|   checkFlags(OTHER_LIBTOOLFLAGS ${mainTarget} | ||||
|     "obj2" | ||||
|  | ||||
| @ -4,13 +4,20 @@ include(${RunCMake_TEST_BINARY_DIR}/foundLibs.cmake) | ||||
| # obj2    --> Embeds func3.o in the link flags, but obj2 is part of the path | ||||
| # ${libz} --> This is for imported2 | ||||
| 
 | ||||
| foreach(mainTarget IN ITEMS app1 shared1 module1 sharedFramework1) | ||||
| foreach(mainTarget IN ITEMS app1 app2 shared1 shared3 module1 sharedFramework1) | ||||
|   checkFlags(OTHER_LDFLAGS ${mainTarget} | ||||
|     "obj2" | ||||
|     "static2;shared2;staticFramework2;sharedFramework2;${libz};${libresolv};CoreFoundation;sharedFrameworkExt;staticFrameworkExt" | ||||
|   ) | ||||
| endforeach() | ||||
| 
 | ||||
| foreach(mainTarget IN ITEMS app3 shared4) | ||||
|   checkFlags(OTHER_LDFLAGS ${mainTarget} | ||||
|     "obj2;shared2;sharedFramework2;sharedFrameworkExt" | ||||
|     "static2;staticFramework2;${libz};${libresolv};CoreFoundation;staticFrameworkExt" | ||||
|   ) | ||||
| endforeach() | ||||
| 
 | ||||
| foreach(mainTarget IN ITEMS static1 staticFramework1) | ||||
|   checkFlags(OTHER_LIBTOOLFLAGS ${mainTarget} | ||||
|     "obj2" | ||||
|  | ||||
| @ -4,7 +4,7 @@ include(${RunCMake_TEST_BINARY_DIR}/foundLibs.cmake) | ||||
| # obj2    --> Embeds func3.o in the link flags, but obj2 is part of the path | ||||
| # ${libz} --> This is for imported2 | ||||
| 
 | ||||
| foreach(mainTarget IN ITEMS app1 shared1 module1 sharedFramework1) | ||||
| foreach(mainTarget IN ITEMS app1 app2 app3 shared1 shared3 shared4 module1 sharedFramework1) | ||||
|   checkFlags(OTHER_LDFLAGS ${mainTarget} | ||||
|     "static2;shared2;staticFramework2;sharedFramework2;obj2;${libz};${libresolv};CoreFoundation;sharedFrameworkExt;staticFrameworkExt" | ||||
|     "" | ||||
|  | ||||
							
								
								
									
										8
									
								
								Tests/RunCMake/try_compile/CopyFileConfig.cmake
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								Tests/RunCMake/try_compile/CopyFileConfig.cmake
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,8 @@ | ||||
| enable_language(C) | ||||
| set(CMAKE_TRY_COMPILE_CONFIGURATION Release) | ||||
| 
 | ||||
| include(${CMAKE_CURRENT_SOURCE_DIR}/${try_compile_DEFS}) | ||||
| try_compile(RESULT | ||||
|   ${try_compile_bindir_or_SOURCES} ${CMAKE_CURRENT_SOURCE_DIR}/src.c | ||||
|   COPY_FILE "${CMAKE_CURRENT_BINARY_DIR}/out.bin" | ||||
|   ) | ||||
| @ -23,6 +23,7 @@ run_cmake(TryRunArgs) | ||||
| run_cmake(BuildType) | ||||
| run_cmake(BuildTypeAsFlag) | ||||
| run_cmake(OutputDirAsFlag) | ||||
| run_cmake(CopyFileConfig) | ||||
| 
 | ||||
| run_cmake(EnvConfig) | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user