cmake: Modernize build system
authorManuel Nickschas <sputnick@quassel-irc.org>
Thu, 2 Aug 2018 21:16:22 +0000 (23:16 +0200)
committerManuel Nickschas <sputnick@quassel-irc.org>
Sun, 18 Nov 2018 10:06:43 +0000 (11:06 +0100)
commit4ce53949ab7d52a49ae79b8817bd3aa50fada0d1
tree2c5220c6cf713984174a3230a650b10de9ca5dc6
parent48d41896ba35eafc64b4cb00e446d6123b3502cb
cmake: Modernize build system

Move to the modern, property-based way of using CMake. This
simplifies a lot of things:
 - No need to manually specify interface include dirs and libraries
   of dependencies
 - No need to carry around variables
 - Clear separation of local and global dependencies and definitions
 - No need for hacks to make the triple-executable thing work

Provide convenience functions to set up library and executable
targets. This will make it very easy in the future to split up
some modules, as well as move towards using shared libraries.

Use the modern, property-based way of using Qt, too. This removes
the need for the deprecated qt5_use_modules() macro, and a bunch
of manual things we had to do to get the compile flags right
for the different Quassel executables.
Also make use of CMake's AUTOUIC and AUTORCC to avoid a bunch of
boilerplate for dealing with .ui files and Qt resources.

Move the .ui files from their subdirectory into the qtui directory,
since the separation doesn't really make too much sense. We'd rather
want to split the QtUi module into smaller parts/libraries.

Remove a bunch of unnecessary stuff from the CMake files.
46 files changed:
CMakeLists.txt
cmake/QuasselCompileSettings.cmake
cmake/QuasselInstallDirs.cmake
cmake/QuasselMacros.cmake
src/CMakeLists.txt
src/client/CMakeLists.txt
src/common/CMakeLists.txt
src/common/quassel.cpp
src/core/CMakeLists.txt
src/main/CMakeLists.txt [new file with mode: 0644]
src/main/main.cpp [moved from src/common/main.cpp with 100% similarity]
src/main/monoapplication.cpp [moved from src/qtui/monoapplication.cpp with 100% similarity]
src/main/monoapplication.h [moved from src/qtui/monoapplication.h with 100% similarity]
src/qtui/CMakeLists.txt
src/qtui/aboutdlg.ui [moved from src/qtui/ui/aboutdlg.ui with 100% similarity]
src/qtui/bufferviewwidget.ui [moved from src/qtui/ui/bufferviewwidget.ui with 100% similarity]
src/qtui/bufferwidget.ui [moved from src/qtui/ui/bufferwidget.ui with 100% similarity]
src/qtui/channellistdlg.ui [moved from src/qtui/ui/channellistdlg.ui with 100% similarity]
src/qtui/chatviewsearchbar.ui [moved from src/qtui/ui/chatviewsearchbar.ui with 100% similarity]
src/qtui/coreconfigwizardadminuserpage.ui [moved from src/qtui/ui/coreconfigwizardadminuserpage.ui with 100% similarity]
src/qtui/coreconfigwizardauthenticationselectionpage.ui [moved from src/qtui/ui/coreconfigwizardauthenticationselectionpage.ui with 100% similarity]
src/qtui/coreconfigwizardintropage.ui [moved from src/qtui/ui/coreconfigwizardintropage.ui with 100% similarity]
src/qtui/coreconfigwizardstorageselectionpage.ui [moved from src/qtui/ui/coreconfigwizardstorageselectionpage.ui with 100% similarity]
src/qtui/coreconfigwizardsyncpage.ui [moved from src/qtui/ui/coreconfigwizardsyncpage.ui with 100% similarity]
src/qtui/coreconnectauthdlg.ui [moved from src/qtui/ui/coreconnectauthdlg.ui with 100% similarity]
src/qtui/coreconnectionstatuswidget.ui [moved from src/qtui/ui/coreconnectionstatuswidget.ui with 100% similarity]
src/qtui/coreinfodlg.ui [moved from src/qtui/ui/coreinfodlg.ui with 100% similarity]
src/qtui/coresessionwidget.ui [moved from src/qtui/ui/coresessionwidget.ui with 100% similarity]
src/qtui/debugbufferviewoverlay.ui [moved from src/qtui/ui/debugbufferviewoverlay.ui with 100% similarity]
src/qtui/debugconsole.ui [moved from src/qtui/ui/debugconsole.ui with 100% similarity]
src/qtui/debuglogdlg.ui [moved from src/qtui/ui/debuglogdlg.ui with 100% similarity]
src/qtui/inputwidget.ui [moved from src/qtui/ui/inputwidget.ui with 100% similarity]
src/qtui/msgprocessorstatuswidget.ui [moved from src/qtui/ui/msgprocessorstatuswidget.ui with 100% similarity]
src/qtui/nicklistwidget.ui [moved from src/qtui/ui/nicklistwidget.ui with 100% similarity]
src/qtui/passwordchangedlg.ui [moved from src/qtui/ui/passwordchangedlg.ui with 100% similarity]
src/qtui/qtmultimedianotificationconfigwidget.ui [moved from src/qtui/ui/qtmultimedianotificationconfigwidget.ui with 100% similarity]
src/qtui/receivefiledlg.ui [moved from src/qtui/ui/receivefiledlg.ui with 100% similarity]
src/qtui/settingsdlg.ui [moved from src/qtui/ui/settingsdlg.ui with 100% similarity]
src/qtui/settingspagedlg.ui [moved from src/qtui/ui/settingspagedlg.ui with 100% similarity]
src/qtui/settingspages/settingspages.cmake
src/qtui/simplenetworkeditor.ui [moved from src/qtui/ui/simplenetworkeditor.ui with 100% similarity]
src/qtui/snorentificationconfigwidget.ui [moved from src/qtui/ui/snorentificationconfigwidget.ui with 100% similarity]
src/qtui/sslinfodlg.ui [moved from src/qtui/ui/sslinfodlg.ui with 100% similarity]
src/qtui/systrayanimationconfigwidget.ui [moved from src/qtui/ui/systrayanimationconfigwidget.ui with 100% similarity]
src/qtui/topicwidget.ui [moved from src/qtui/ui/topicwidget.ui with 100% similarity]
src/uisupport/CMakeLists.txt