qt5base-lts/tests/auto/cmake
Alexey Edelev 5fb99e3860 Check the impact of static link order for user projects
For user projects we run the static link order check once
'find_package(Qt6 ...)' is called.

If linker can resolve circular dependencies between static libraries
and object files we set the _qt_link_order_matters property of the
Qt::Platform target. This indicates the use of finalizers is not
required and we may rely on CMake-base propagation of resource
libraries and resource object files.

If linker could not resolve circular dependencies depending on
the _qt_resource_objects_finalizer_mode value:
  - Finalizer will be called and collected resource objects will be
    linked to the target directly.
  - Finalizer will be omitted and resource objects will be linked
    using the target_sources function implicitly. This only
    propagates resource one level up if consumer links the static
    library PUBLICly, but all symbols will be resolved correctly
    since object files are placed in the beginning of the linker line.

In the CMake version 3.21 we expect that CMake will take care about
the order of the resource object files in a linker line, it's
expected that all object files are located at the beginning of the
linker line.

TODO: Need to confirm that the CMake 3.21 meets the expectations.

Amends 4e901a2f99

Pick-to: 6.2
Task-number: QTBUG-93002
Task-number: QTBUG-94528
Change-Id: Ia68976df8182d3d3007b90c475c1e3928a305339
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-06-16 16:58:45 +02:00
..
mockplugins Remove CMake compatibility functions for old API 2021-06-04 14:27:20 +02:00
test_add_big_resource Support multiple equally named .qrc files in qt_add_big_resources 2021-05-22 22:32:27 +02:00
test_add_binary_resources_delayed_file CMake: Get tests/auto/cmake tests working 2020-07-17 09:43:04 +02:00
test_add_resource_options Another round of replacing 0 with nullptr 2020-10-07 23:02:47 +02:00
test_add_resources_binary_generated CMake: Change generated resources naming 2020-11-24 21:51:29 +01:00
test_add_resources_delayed_file CMake: Get tests/auto/cmake tests working 2020-07-17 09:43:04 +02:00
test_concurrent_module CMake: Get tests/auto/cmake tests working 2020-07-17 09:43:04 +02:00
test_dbus_module Another round of replacing 0 with nullptr 2020-10-07 23:02:47 +02:00
test_dependent_modules Another round of replacing 0 with nullptr 2020-10-07 23:02:47 +02:00
test_egl_lib CMake: Get tests/auto/cmake tests working 2020-07-17 09:43:04 +02:00
test_global_promotion CMake: Allow promoting the Qt libraries to be global targets 2021-06-16 13:22:17 +02:00
test_import_plugins CMake: Revise plugin finalizer mode usage 2021-05-27 14:28:17 +02:00
test_interface CMake: Build minimal subset of tests in desktop static builds 2021-04-06 09:15:37 +01:00
test_interface_link_libraries Another round of replacing 0 with nullptr 2020-10-07 23:02:47 +02:00
test_json_plugin_includes Another round of replacing 0 with nullptr 2020-10-07 23:02:47 +02:00
test_moc_macro_target Another round of replacing 0 with nullptr 2020-10-07 23:02:47 +02:00
test_multiple_find_package CMake: Get tests/auto/cmake tests working 2020-07-17 09:43:04 +02:00
test_opengl_lib CMake: Get tests/auto/cmake tests working 2020-07-17 09:43:04 +02:00
test_platform_defs_include CMake: Get tests/auto/cmake tests working 2020-07-17 09:43:04 +02:00
test_plugin_shared_static_flavor CMake: Choose better defaults for qt_add_plugin STATIC/SHARED 2021-04-07 10:10:55 +02:00
test_plugins CMake: Get tests/auto/cmake tests working 2020-07-17 09:43:04 +02:00
test_private_includes CMake: Get tests/auto/cmake tests working 2020-07-17 09:43:04 +02:00
test_private_targets CMake: Get tests/auto/cmake tests working 2020-07-17 09:43:04 +02:00
test_QFINDTESTDATA Specify QT_TESTCASE_BUILDDIR for Qt::Test users implicitly 2021-04-08 13:16:41 +02:00
test_QT_TESTCASE_BUILDDIR Specify QT_TESTCASE_BUILDDIR for Qt::Test users implicitly 2021-04-08 13:16:41 +02:00
test_QTBUG-63422 CMake: Get tests/auto/cmake tests working 2020-07-17 09:43:04 +02:00
test_qtmainwin_library Another round of replacing 0 with nullptr 2020-10-07 23:02:47 +02:00
test_static_resources Check the impact of static link order for user projects 2021-06-16 16:58:45 +02:00
test_testlib_definitions Replace QtTest headers with QTest 2020-12-22 15:20:30 +01:00
test_testlib_no_link_gui CMake: Get tests/auto/cmake tests working 2020-07-17 09:43:04 +02:00
test_testlib_no_link_widgets CMake: Get tests/auto/cmake tests working 2020-07-17 09:43:04 +02:00
test_umbrella_config CMake: Get tests/auto/cmake tests working 2020-07-17 09:43:04 +02:00
test_versionless_targets CMake: Get tests/auto/cmake tests working 2020-07-17 09:43:04 +02:00
test_wrap_cpp_and_resources Another round of replacing 0 with nullptr 2020-10-07 23:02:47 +02:00
test_wrap_cpp_options Another round of replacing 0 with nullptr 2020-10-07 23:02:47 +02:00
test(needsquoting)dirname Another round of replacing 0 with nullptr 2020-10-07 23:02:47 +02:00
tst_qaddpreroutine CMake: Fix tst_qaddpreroutine to work with static builds 2021-04-26 19:35:55 +02:00
CMakeLists.txt CMake: Allow promoting the Qt libraries to be global targets 2021-06-16 13:22:17 +02:00
test_plugin_shared_static_flavor.cmake CMake: Choose better defaults for qt_add_plugin STATIC/SHARED 2021-04-07 10:10:55 +02:00