From 6ed4b9e4eafd81358fd86a112183561ce1572df4 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Fri, 22 Apr 2022 14:59:35 -0700 Subject: CMake: use the --build-macro option to qtwaylandscanner So we get correct exports different from imports, which are required for GCC 12 with -mno-direct-extern-access and protected visibility. Change-Id: If05aeeb7176e4f13af9afffd16e856de1f4f68d6 Reviewed-by: Qt CI Bot Reviewed-by: Alexandru Croitor --- src/compositor/Qt6WaylandCompositorMacros.cmake | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'src/compositor/Qt6WaylandCompositorMacros.cmake') diff --git a/src/compositor/Qt6WaylandCompositorMacros.cmake b/src/compositor/Qt6WaylandCompositorMacros.cmake index 92ad0469..91d0d283 100644 --- a/src/compositor/Qt6WaylandCompositorMacros.cmake +++ b/src/compositor/Qt6WaylandCompositorMacros.cmake @@ -14,6 +14,11 @@ function(qt6_generate_wayland_protocol_server_sources target) message(FATAL_ERROR "qtwaylandscanner executable not found. Most likely there is an issue with your Qt installation.") endif() + string(TOUPPER "${target}" module_define_infix) + string(REPLACE "-" "_" module_define_infix "${module_define_infix}") + string(REPLACE "." "_" module_define_infix "${module_define_infix}") + set(build_macro "QT_BUILD_${module_define_infix}_LIB") + foreach(protocol_file IN LISTS arg_FILES) get_filename_component(protocol_name "${protocol_file}" NAME_WLE) @@ -47,12 +52,20 @@ function(qt6_generate_wayland_protocol_server_sources target) add_custom_command( OUTPUT "${qtwaylandscanner_header_output}" - COMMAND Qt6::qtwaylandscanner server-header "${protocol_file}" "${wayland_include_dir}" > "${qtwaylandscanner_header_output}" + COMMAND Qt6::qtwaylandscanner server-header + "${protocol_file}" + --build-macro=${build_macro} + --header-path='${wayland_include_dir}' + > "${qtwaylandscanner_header_output}" ) add_custom_command( OUTPUT "${qtwaylandscanner_code_output}" - COMMAND Qt6::qtwaylandscanner server-code "${protocol_file}" "${wayland_include_dir}" > "${qtwaylandscanner_code_output}" + COMMAND Qt6::qtwaylandscanner server-code + "${protocol_file}" + --build-macro=${build_macro} + --header-path='${wayland_include_dir}' + > "${qtwaylandscanner_code_output}" ) target_sources(${target} PRIVATE -- cgit v1.2.1