summaryrefslogtreecommitdiffstats
path: root/tests/auto/cmake/test_qt_add_ui_common/uic_test/CMakeLists.txt
blob: b05efd5e4d76024ff6e833c5b159b4aeeb21ec9a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# Copyright (C) 2023 The Qt Company Ltd.
# SPDX-License-Identifier: BSD-3-Clause

cmake_minimum_required(VERSION 3.16)

project(UicTest LANGUAGES CXX)

find_package(Qt6 REQUIRED COMPONENTS Core Widgets Gui)

set(CMAKE_AUTOMOC ON)

if (NOT DO_NOT_GENERATE_FILE)
  file(GENERATE OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/mainwindow.cpp"
       CONTENT " \
#include \"${CMAKE_CURRENT_SOURCE_DIR}/../UicBuildFolderLeakageCommon/mainwindow.h\" \n \
#include \"${MAINWINDOW_UI_PATH}ui_mainwindow.h\" \n \
MainWindow::MainWindow(QWidget* parent) \n \
  : QMainWindow(parent) \n \
  , ui(new Ui::MainWindow) \n \
{ \n \
  ui->setupUi(this); \n \
} \n \
 \n \
MainWindow::~MainWindow() \n \
{ \n \
  delete ui; \n \
} \n \
")
endif()

qt_add_executable(example
    ../UicBuildFolderLeakageCommon/main.cpp
    ../UicBuildFolderLeakageCommon/mainwindow.h
    mainwindow.ui
)

if (${DO_NOT_GENERATE_FILE})
  target_sources(example PRIVATE mainwindow.cpp)
else()
  target_sources(example PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/mainwindow.cpp")
endif()

target_link_libraries(example PRIVATE Qt6::Widgets
                                      Qt6::Core
                                      Qt6::Gui)

if (NOT UI_NO_CONFIG_OPTIONS)
  set(uic_options "$<$<CONFIG:Debug>:-a>")
endif()
qt6_add_ui(example
    INCLUDE_PREFIX "${MAINWINDOW_UI_PATH}"
    SOURCES "mainwindow.ui"
    OPTIONS "${uic_options}")

if(ADD_NEW_UI)
    qt6_add_ui(example INCLUDE_PREFIX "${NEW_UI_PATH}"
        SOURCES "subdir/mainwindow.ui"
        OPTIONS "${uic_options}")
endif()

# Enable AUTOUIC after qt6_add_ui() has been called
if (CMAKE_AUTOUIC)
    set_property(TARGET example PROPERTY AUTOUIC ON)
endif()