Fix CMake build of network/torrent example

The ui_XXX.h include did not match the location of the XXX.ui file, and
AUTOUIC failed with
    "SRC:/addtorrentdialog.h"
    includes the uic file "ui_addtorrentform.h",
    but the user interface file "addtorrentform.ui"
    could not be found in the following directories
      "SRC:"

While this could be fixed by adjusting the include paths properly, this
would complicate the CMake project file, and we're dealing with an
example where needless complexity would cloud comprehensibility.

Move the .ui file next to corresponding source files instead.

This removes the need for any special cases in CMakeLists.txt, and we
can remove .prev_CMakeLists.txt.

Fixes: QTBUG-87457
Change-Id: Ic2dec5ded7100e22d5afc571efc4b009bc62e41c
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
(cherry picked from commit 0c51a8756377c40180619046d07b35718fcf1784)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Joerg Bornemann 2021-02-15 12:25:23 +01:00 committed by Qt Cherry-pick Bot
parent aa499b5fbc
commit 90860224c8
5 changed files with 3 additions and 77 deletions

View File

@ -16,7 +16,7 @@ if(TARGET Qt::Widgets)
add_subdirectory(loopback)
add_subdirectory(threadedfortuneserver)
add_subdirectory(googlesuggest)
# add_subdirectory(torrent) FIXME: This does not find its ui file:-/ # special case
add_subdirectory(torrent)
add_subdirectory(multicastreceiver)
add_subdirectory(multicastsender)
add_subdirectory(fortuneclient)

View File

@ -1,73 +0,0 @@
# Generated from torrent.pro.
cmake_minimum_required(VERSION 3.14)
project(torrent LANGUAGES CXX)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
if(NOT DEFINED INSTALL_EXAMPLESDIR)
set(INSTALL_EXAMPLESDIR "examples")
endif()
set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/network/torrent")
find_package(Qt6 COMPONENTS Core)
find_package(Qt6 COMPONENTS Gui)
find_package(Qt6 COMPONENTS Network)
find_package(Qt6 COMPONENTS Widgets)
qt_add_executable(torrent
addtorrentdialog.cpp addtorrentdialog.h
bencodeparser.cpp bencodeparser.h
connectionmanager.cpp connectionmanager.h
filemanager.cpp filemanager.h
forms/addtorrentform.ui
main.cpp
mainwindow.cpp mainwindow.h
metainfo.cpp metainfo.h
peerwireclient.cpp peerwireclient.h
ratecontroller.cpp ratecontroller.h
torrentclient.cpp torrentclient.h
torrentserver.cpp torrentserver.h
trackerclient.cpp trackerclient.h
)
set_target_properties(torrent PROPERTIES
WIN32_EXECUTABLE TRUE
MACOSX_BUNDLE TRUE
)
target_link_libraries(torrent PUBLIC
Qt::Core
Qt::Gui
Qt::Network
Qt::Widgets
)
# Resources:
set(icons_resource_files
"icons/1downarrow.png"
"icons/1uparrow.png"
"icons/bottom.png"
"icons/exit.png"
"icons/peertopeer.png"
"icons/player_pause.png"
"icons/player_play.png"
"icons/player_stop.png"
)
qt6_add_resources(torrent "icons"
PREFIX
"/"
FILES
${icons_resource_files}
)
install(TARGETS torrent
RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
)

View File

@ -22,10 +22,10 @@ find_package(Qt6 COMPONENTS Widgets)
qt_add_executable(torrent
addtorrentdialog.cpp addtorrentdialog.h
addtorrentform.ui
bencodeparser.cpp bencodeparser.h
connectionmanager.cpp connectionmanager.h
filemanager.cpp filemanager.h
forms/addtorrentform.ui
main.cpp
mainwindow.cpp mainwindow.h
metainfo.cpp metainfo.h
@ -39,7 +39,6 @@ set_target_properties(torrent PROPERTIES
WIN32_EXECUTABLE TRUE
MACOSX_BUNDLE TRUE
)
target_include_directories(torrent PUBLIC forms) # special case
target_link_libraries(torrent PUBLIC
Qt::Core
Qt::Gui

View File

@ -27,7 +27,7 @@ SOURCES += main.cpp \
trackerclient.cpp
# Forms and resources
FORMS += forms/addtorrentform.ui
FORMS += addtorrentform.ui
RESOURCES += icons.qrc
# install