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
Pick-to: 6.1
Change-Id: Ic2dec5ded7100e22d5afc571efc4b009bc62e41c
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
This commit is contained in:
Joerg Bornemann 2021-02-15 12:25:23 +01:00
parent 09cc63d425
commit 0c51a87563
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