New upstream version 3.25.1

ci/unstable
Timo Röhling 2 years ago
parent 1d5f9d1e05
commit b61d7a265d

@ -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,139 +1722,139 @@ 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"
#line 1746 "cmFortranParser.cxx"
break;
case 15: /* stmt: CPP_INCLUDE_ANGLE other EOSTMT */
#line 172 "cmFortranParser.y"
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));
}
#line 1746 "cmFortranParser.cxx"
#line 1756 "cmFortranParser.cxx"
break;
case 16: /* stmt: include STRING other EOSTMT */
#line 177 "cmFortranParser.y"
case 17: /* stmt: include STRING other EOSTMT */
#line 182 "cmFortranParser.y"
{
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
cmFortranParser_RuleInclude(parser, (yyvsp[-2].string));
free((yyvsp[-2].string));
}
#line 1756 "cmFortranParser.cxx"
#line 1766 "cmFortranParser.cxx"
break;
case 17: /* stmt: define WORD other EOSTMT */
#line 182 "cmFortranParser.y"
case 18: /* stmt: define WORD other EOSTMT */
#line 187 "cmFortranParser.y"
{
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
cmFortranParser_RuleDefine(parser, (yyvsp[-2].string));
free((yyvsp[-2].string));
}
#line 1766 "cmFortranParser.cxx"
#line 1776 "cmFortranParser.cxx"
break;
case 18: /* stmt: undef WORD other EOSTMT */
#line 187 "cmFortranParser.y"
case 19: /* stmt: undef WORD other EOSTMT */
#line 192 "cmFortranParser.y"
{
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
cmFortranParser_RuleUndef(parser, (yyvsp[-2].string));
free((yyvsp[-2].string));
}
#line 1776 "cmFortranParser.cxx"
#line 1786 "cmFortranParser.cxx"
break;
case 19: /* stmt: ifdef WORD other EOSTMT */
#line 192 "cmFortranParser.y"
case 20: /* stmt: ifdef WORD other EOSTMT */
#line 197 "cmFortranParser.y"
{
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
cmFortranParser_RuleIfdef(parser, (yyvsp[-2].string));
free((yyvsp[-2].string));
}
#line 1786 "cmFortranParser.cxx"
#line 1796 "cmFortranParser.cxx"
break;
case 20: /* stmt: ifndef WORD other EOSTMT */
#line 197 "cmFortranParser.y"
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 1796 "cmFortranParser.cxx"
#line 1806 "cmFortranParser.cxx"
break;
case 21: /* stmt: if other EOSTMT */
#line 202 "cmFortranParser.y"
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"
#line 1848 "cmFortranParser.cxx"
break;
case 55: /* misc_code: STRING */
#line 243 "cmFortranParser.y"
case 56: /* misc_code: STRING */
#line 248 "cmFortranParser.y"
{ free ((yyvsp[0].string)); }
#line 1844 "cmFortranParser.cxx"
#line 1854 "cmFortranParser.cxx"
break;
#line 1848 "cmFortranParser.cxx"
#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,28 +3581,37 @@ 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;
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 {
// 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 = 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) {
// Add unique configuration name to target-config map for later
@ -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)

@ -0,0 +1,8 @@
module first
interface inner
end interface inner
end module first
module second
REAL :: C = 1
end module second

@ -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"
""

@ -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…
Cancel
Save