From 58213e56de9f11e1c0eff30e26ede9c4be9e4cf8 Mon Sep 17 00:00:00 2001 From: Juha Vuolle Date: Wed, 22 Mar 2023 14:23:26 +0200 Subject: CMake: Fix btscanner manual test to work on macOS Because it's a manual test now instead of an example, use qt_internal_add_manual_test. Remove the code bits that were needed for examples. Enable uic. Manually link to the darwin permission plugin because that's not done automatically for tests yet when targeting macOS. Task-number: QTBUG-104754 Task-number: QTBUG-112212 Change-Id: Id4176f60118a4d3dcca96df56d53f9243a50174d Reviewed-by: Ivan Solovev (cherry picked from commit efc852b0ea327831fcceaa925be8e6721ce93297) Reviewed-by: Qt Cherry-pick Bot --- tests/manual/examples/btscanner/CMakeLists.txt | 56 ++++++++++++-------------- 1 file changed, 26 insertions(+), 30 deletions(-) diff --git a/tests/manual/examples/btscanner/CMakeLists.txt b/tests/manual/examples/btscanner/CMakeLists.txt index 61d44dfc..25e0ccb7 100644 --- a/tests/manual/examples/btscanner/CMakeLists.txt +++ b/tests/manual/examples/btscanner/CMakeLists.txt @@ -1,31 +1,39 @@ -# Copyright (C) 2022 The Qt Company Ltd. +# Copyright (C) 2023 The Qt Company Ltd. # SPDX-License-Identifier: BSD-3-Clause -cmake_minimum_required(VERSION 3.16) -project(btscanner LANGUAGES CXX) +if (NOT QT_BUILD_STANDALONE_TESTS AND NOT QT_BUILDING_QT) + cmake_minimum_required(VERSION 3.16) + project(btscanner LANGUAGES CXX) + find_package(Qt6BuildInternals COMPONENTS STANDALONE_TEST) + endif() + +qt_internal_add_manual_test(btscanner + GUI + SOURCES + device.cpp device.h device.ui + main.cpp + service.cpp service.h service.ui + LIBRARIES + Qt::Bluetooth + Qt::Core + Qt::Widgets + ENABLE_AUTOGEN_TOOLS + uic +) -if(NOT DEFINED INSTALL_EXAMPLESDIR) - set(INSTALL_EXAMPLESDIR "examples") +if(MACOS) + # Explicitly link against the static permission plugin because tests + # currently don't have finalizers run for them except for iOS. + # TODO: Remove this when qtbase automatically runs finalizers for tests: QTBUG-112212 + target_link_libraries(btscanner PRIVATE Qt6::QDarwinBluetoothPermissionPlugin) endif() -set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/bluetooth/btscanner") - -find_package(Qt6 REQUIRED COMPONENTS Bluetooth Core Widgets) - -qt_standard_project_setup() - -qt_add_executable(btscanner - device.cpp device.h device.ui - main.cpp - service.cpp service.h service.ui -) - set_target_properties(btscanner PROPERTIES WIN32_EXECUTABLE TRUE MACOSX_BUNDLE TRUE ) -if (APPLE) +if(APPLE) if (IOS) set_target_properties(btscanner PROPERTIES MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/Info.plist" @@ -38,15 +46,3 @@ if (APPLE) ) endif() endif() - -target_link_libraries(btscanner PRIVATE - Qt::Bluetooth - Qt::Core - Qt::Widgets -) - -install(TARGETS btscanner - RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" - BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" - LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" -) -- cgit v1.2.1