From 4ec72f4afb101924b5305a0c29d68325cb4179a4 Mon Sep 17 00:00:00 2001 From: Teo Mrnjavac Date: Thu, 3 Jul 2014 18:00:40 +0200 Subject: [PATCH] Refactored calamares_bin into calamares_bin and libcalamaresui. Now linking with -Wl,--no-undefined! Moved find_package KF5 from the root CMakeLists.txt to the partitioning module where it belongs. KF5 deps should be limited to plugins. Lots of random fixage to make stuff link. Removed CalamaresApplication reference from Settings. Removed the use of AbstractPage, we don't need it right now. --- CMakeLists.txt | 3 +- CalamaresAddLibrary.cmake | 14 ++++----- src/CMakeLists.txt | 5 ++-- src/calamares/CMakeLists.txt | 14 ++------- src/calamares/CalamaresApplication.cpp | 7 +++-- .../progresstree/ProgressTreeDelegate.cpp | 2 +- src/libcalamares/JobQueue.cpp | 11 +++++++ src/libcalamaresui/CMakeLists.txt | 30 +++++++++++++++++++ .../Settings.cpp | 9 +++--- src/{calamares => libcalamaresui}/Settings.h | 6 ++-- .../UiDllMacro.h | 0 .../ViewManager.cpp | 0 .../ViewManager.h | 0 .../modulesystem/Module.cpp | 2 +- .../modulesystem/Module.h | 0 .../modulesystem/ModuleManager.cpp | 0 .../modulesystem/ModuleManager.h | 0 .../modulesystem/ViewModule.cpp | 0 .../modulesystem/ViewModule.h | 0 .../utils/CalamaresUtilsGui.cpp | 0 .../utils/CalamaresUtilsGui.h | 0 .../utils}/YamlUtils.cpp | 0 .../utils}/YamlUtils.h | 0 .../viewpages/AbstractPage.cpp | 0 .../viewpages/AbstractPage.h | 0 .../viewpages/ViewStep.cpp | 0 .../viewpages/ViewStep.h | 0 src/modules/greeting/CMakeLists.txt | 4 ++- src/modules/locale/CMakeLists.txt | 5 ++-- src/modules/partition/CMakeLists.txt | 7 +++-- src/modules/partition/PartitionPage.cpp | 2 +- src/modules/partition/PartitionPage.h | 5 ++-- 32 files changed, 81 insertions(+), 45 deletions(-) create mode 100644 src/libcalamaresui/CMakeLists.txt rename src/{calamares => libcalamaresui}/Settings.cpp (95%) rename src/{calamares => libcalamaresui}/Settings.h (90%) rename src/{calamares => libcalamaresui}/UiDllMacro.h (100%) rename src/{calamares => libcalamaresui}/ViewManager.cpp (100%) rename src/{calamares => libcalamaresui}/ViewManager.h (100%) rename src/{calamares => libcalamaresui}/modulesystem/Module.cpp (99%) rename src/{calamares => libcalamaresui}/modulesystem/Module.h (100%) rename src/{calamares => libcalamaresui}/modulesystem/ModuleManager.cpp (100%) rename src/{calamares => libcalamaresui}/modulesystem/ModuleManager.h (100%) rename src/{calamares => libcalamaresui}/modulesystem/ViewModule.cpp (100%) rename src/{calamares => libcalamaresui}/modulesystem/ViewModule.h (100%) rename src/{calamares => libcalamaresui}/utils/CalamaresUtilsGui.cpp (100%) rename src/{calamares => libcalamaresui}/utils/CalamaresUtilsGui.h (100%) rename src/{calamares => libcalamaresui/utils}/YamlUtils.cpp (100%) rename src/{calamares => libcalamaresui/utils}/YamlUtils.h (100%) rename src/{calamares => libcalamaresui}/viewpages/AbstractPage.cpp (100%) rename src/{calamares => libcalamaresui}/viewpages/AbstractPage.h (100%) rename src/{calamares => libcalamaresui}/viewpages/ViewStep.cpp (100%) rename src/{calamares => libcalamaresui}/viewpages/ViewStep.h (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 471a91d55..027323364 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,7 @@ project( calamares ) cmake_minimum_required( VERSION 2.8.12 ) set( CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules" ) -#set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wl,--no-undefined" ) +set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wl,--no-undefined" ) set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wl,--fatal-warnings -Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-type" ) if( CMAKE_COMPILER_IS_GNUCXX ) @@ -19,7 +19,6 @@ cmake_policy( SET CMP0043 OLD ) find_package( Qt5 5.3.0 CONFIG REQUIRED Core Gui Widgets LinguistTools ) find_package( YamlCpp 0.5.1 REQUIRED ) -find_package( KF5 CONFIG REQUIRED CoreAddons ) ### ### Calamares application info diff --git a/CalamaresAddLibrary.cmake b/CalamaresAddLibrary.cmake index 050c08a5d..aef6a7be7 100644 --- a/CalamaresAddLibrary.cmake +++ b/CalamaresAddLibrary.cmake @@ -10,13 +10,13 @@ function(calamares_add_library) set(LIBRARY_NAME ${NAME}) -# message("*** Arguments for ${LIBRARY_NAME}") -# message("Sources: ${LIBRARY_SOURCES}") -# message("Link libraries: ${LIBRARY_LINK_LIBRARIES}") -# message("UI: ${LIBRARY_UI}") -# message("TARGET_TYPE: ${LIBRARY_TARGET_TYPE}") -# message("EXPORT_MACRO: ${LIBRARY_EXPORT_MACRO}") -# message("NO_INSTALL: ${LIBRARY_NO_INSTALL}") + message("*** Arguments for ${LIBRARY_NAME}") + message("Sources: ${LIBRARY_SOURCES}") + message("Link libraries: ${LIBRARY_LINK_LIBRARIES}") + message("UI: ${LIBRARY_UI}") + message("TARGET_TYPE: ${LIBRARY_TARGET_TYPE}") + message("EXPORT_MACRO: ${LIBRARY_EXPORT_MACRO}") + message("NO_INSTALL: ${LIBRARY_NO_INSTALL}") set(target ${LIBRARY_NAME}) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 3158ae1c2..4e267d901 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -8,12 +8,13 @@ include_directories( ${CMAKE_CURRENT_LIST_DIR} ) # library add_subdirectory( libcalamares ) +add_subdirectory( libcalamaresui ) # application add_subdirectory( calamares ) -include_directories( ${CMAKE_CURRENT_BINARY_DIR}/calamares ) -include_directories( ${CMAKE_CURRENT_LIST_DIR}/calamares ) +include_directories( ${CMAKE_CURRENT_BINARY_DIR}/libcalamaresui ) +include_directories( ${CMAKE_CURRENT_LIST_DIR}/libcalamaresui ) # plugins add_subdirectory( modules ) diff --git a/src/calamares/CMakeLists.txt b/src/calamares/CMakeLists.txt index 1bc5c0f57..4d11469de 100644 --- a/src/calamares/CMakeLists.txt +++ b/src/calamares/CMakeLists.txt @@ -10,13 +10,6 @@ set( calamaresSources main.cpp CalamaresApplication.cpp CalamaresWindow.cpp - Settings.cpp - ViewManager.cpp - YamlUtils.cpp - - modulesystem/Module.cpp - modulesystem/ModuleManager.cpp - modulesystem/ViewModule.cpp progresstree/CategoryItem.cpp progresstree/ProgressTreeDelegate.cpp @@ -24,11 +17,6 @@ set( calamaresSources progresstree/ProgressTreeModel.cpp progresstree/ProgressTreeView.cpp progresstree/ViewStepItem.cpp - - utils/CalamaresUtilsGui.cpp - - viewpages/ViewStep.cpp - viewpages/AbstractPage.cpp ) set( calamaresUi @@ -41,6 +29,7 @@ include_directories( ${CMAKE_CURRENT_BINARY_DIR}/../libcalamares ../libcalamares + ../libcalamaresui ) include( GNUInstallDirs ) @@ -68,6 +57,7 @@ qt5_use_modules( calamares_bin Core Widgets ) target_link_libraries( calamares_bin ${LINK_LIBRARIES} ${CALAMARES_LIBRARIES} + calamaresui Qt5::Core Qt5::Widgets yaml-cpp diff --git a/src/calamares/CalamaresApplication.cpp b/src/calamares/CalamaresApplication.cpp index 067243f06..89eb3f8a9 100644 --- a/src/calamares/CalamaresApplication.cpp +++ b/src/calamares/CalamaresApplication.cpp @@ -20,12 +20,13 @@ #include "CalamaresWindow.h" #include "CalamaresVersion.h" -#include "modulesystem/ModuleManager.h" #include "progresstree/ProgressTreeView.h" #include "progresstree/ProgressTreeModel.h" -#include "Settings.h" + +#include "modulesystem/ModuleManager.h" #include "utils/CalamaresUtils.h" #include "utils/Logger.h" +#include "Settings.h" #include "ViewManager.h" @@ -108,7 +109,7 @@ CalamaresApplication::mainWindow() void CalamaresApplication::initSettings() { - new Calamares::Settings( this ); + new Calamares::Settings( isDebug(), this ); } diff --git a/src/calamares/progresstree/ProgressTreeDelegate.cpp b/src/calamares/progresstree/ProgressTreeDelegate.cpp index 02d6f4b57..82417935f 100644 --- a/src/calamares/progresstree/ProgressTreeDelegate.cpp +++ b/src/calamares/progresstree/ProgressTreeDelegate.cpp @@ -22,7 +22,7 @@ #include "../CalamaresWindow.h" #include "ViewStepItem.h" #include "ProgressTreeModel.h" -#include "../ViewManager.h" +#include "ViewManager.h" #include #include diff --git a/src/libcalamares/JobQueue.cpp b/src/libcalamares/JobQueue.cpp index f7b21b2d1..fe4e74423 100644 --- a/src/libcalamares/JobQueue.cpp +++ b/src/libcalamares/JobQueue.cpp @@ -20,22 +20,33 @@ namespace Calamares { + JobQueue* JobQueue::s_instance = nullptr; + JobQueue* JobQueue::instance() { return s_instance; } + JobQueue::JobQueue( QObject* parent ) : QObject( parent ) { } + void JobQueue::enqueue( const Calamares::job_ptr& job ) { } + +void +JobQueue::enqueue( const QList< job_ptr >& jobs ) +{ + +} + } // namespace Calamares diff --git a/src/libcalamaresui/CMakeLists.txt b/src/libcalamaresui/CMakeLists.txt new file mode 100644 index 000000000..1b2ee1430 --- /dev/null +++ b/src/libcalamaresui/CMakeLists.txt @@ -0,0 +1,30 @@ +set( CALAMARESUI_LIBRARY_TARGET calamaresui ) + +list( APPEND ${CALAMARESUI_LIBRARY_TARGET}_SOURCES + modulesystem/Module.cpp + modulesystem/ModuleManager.cpp + modulesystem/ViewModule.cpp + + utils/CalamaresUtilsGui.cpp + utils/YamlUtils.cpp + + viewpages/AbstractPage.cpp + viewpages/ViewStep.cpp + + Settings.cpp + ViewManager.cpp +) + +list( APPEND ${CALAMARESUI_LIBRARY_TARGET}_UI + +) + +calamares_add_library( ${CALAMARESUI_LIBRARY_TARGET} + SOURCES ${${CALAMARESUI_LIBRARY_TARGET}_SOURCES} + UI ${${CALAMARESUI_LIBRARY_TARGET}_UI} + EXPORT_MACRO UIDLLEXPORT_PRO + LINK_LIBRARIES + yaml-cpp + EXPORT CalamaresLibraryDepends + VERSION ${CALAMARES_VERSION_SHORT} +) diff --git a/src/calamares/Settings.cpp b/src/libcalamaresui/Settings.cpp similarity index 95% rename from src/calamares/Settings.cpp rename to src/libcalamaresui/Settings.cpp index f76798aa7..f9c3e3112 100644 --- a/src/calamares/Settings.cpp +++ b/src/libcalamaresui/Settings.cpp @@ -18,10 +18,9 @@ #include "Settings.h" -#include "CalamaresApplication.h" #include "utils/CalamaresUtils.h" #include "utils/Logger.h" -#include "YamlUtils.h" +#include "utils/YamlUtils.h" #include #include @@ -41,11 +40,11 @@ Settings::instance() } -Settings::Settings( QObject* parent ) +Settings::Settings( bool debugMode, QObject* parent ) : QObject( parent ) { QFileInfo settingsFile( CalamaresUtils::appDataDir().absoluteFilePath( "settings.conf" ) ); - if ( APP->isDebug() ) + if ( debugMode ) { QFileInfo localFile( QDir( QDir::currentPath() ).absoluteFilePath( "settings.conf" ) ); if ( localFile.exists() && localFile.isReadable() ) @@ -72,7 +71,7 @@ Settings::Settings( QObject* parent ) // If we're running in debug mode, we assume we might also be // running from the build dir, so we add a maximum priority // module search path in the build dir. - if ( APP->isDebug() ) + if ( debugMode ) { QString buildDirModules = QDir::current().absolutePath() + QDir::separator() + "src" + diff --git a/src/calamares/Settings.h b/src/libcalamaresui/Settings.h similarity index 90% rename from src/calamares/Settings.h rename to src/libcalamaresui/Settings.h index 42731f102..f2ee7c88d 100644 --- a/src/calamares/Settings.h +++ b/src/libcalamaresui/Settings.h @@ -19,6 +19,8 @@ #ifndef SETTINGS_H #define SETTINGS_H +#include "UiDllMacro.h" + #include #include @@ -26,11 +28,11 @@ namespace Calamares { -class Settings : public QObject +class UIDLLEXPORT Settings : public QObject { Q_OBJECT public: - explicit Settings( QObject *parent = nullptr ); + explicit Settings( bool debugMode, QObject *parent = nullptr ); static Settings* instance(); //TODO: load from JSON then emit ready diff --git a/src/calamares/UiDllMacro.h b/src/libcalamaresui/UiDllMacro.h similarity index 100% rename from src/calamares/UiDllMacro.h rename to src/libcalamaresui/UiDllMacro.h diff --git a/src/calamares/ViewManager.cpp b/src/libcalamaresui/ViewManager.cpp similarity index 100% rename from src/calamares/ViewManager.cpp rename to src/libcalamaresui/ViewManager.cpp diff --git a/src/calamares/ViewManager.h b/src/libcalamaresui/ViewManager.h similarity index 100% rename from src/calamares/ViewManager.h rename to src/libcalamaresui/ViewManager.h diff --git a/src/calamares/modulesystem/Module.cpp b/src/libcalamaresui/modulesystem/Module.cpp similarity index 99% rename from src/calamares/modulesystem/Module.cpp rename to src/libcalamaresui/modulesystem/Module.cpp index 184858feb..7fa64661e 100644 --- a/src/calamares/modulesystem/Module.cpp +++ b/src/libcalamaresui/modulesystem/Module.cpp @@ -19,7 +19,7 @@ #include "Module.h" #include "ViewModule.h" -#include "YamlUtils.h" +#include "utils/YamlUtils.h" #include "utils/Logger.h" #include diff --git a/src/calamares/modulesystem/Module.h b/src/libcalamaresui/modulesystem/Module.h similarity index 100% rename from src/calamares/modulesystem/Module.h rename to src/libcalamaresui/modulesystem/Module.h diff --git a/src/calamares/modulesystem/ModuleManager.cpp b/src/libcalamaresui/modulesystem/ModuleManager.cpp similarity index 100% rename from src/calamares/modulesystem/ModuleManager.cpp rename to src/libcalamaresui/modulesystem/ModuleManager.cpp diff --git a/src/calamares/modulesystem/ModuleManager.h b/src/libcalamaresui/modulesystem/ModuleManager.h similarity index 100% rename from src/calamares/modulesystem/ModuleManager.h rename to src/libcalamaresui/modulesystem/ModuleManager.h diff --git a/src/calamares/modulesystem/ViewModule.cpp b/src/libcalamaresui/modulesystem/ViewModule.cpp similarity index 100% rename from src/calamares/modulesystem/ViewModule.cpp rename to src/libcalamaresui/modulesystem/ViewModule.cpp diff --git a/src/calamares/modulesystem/ViewModule.h b/src/libcalamaresui/modulesystem/ViewModule.h similarity index 100% rename from src/calamares/modulesystem/ViewModule.h rename to src/libcalamaresui/modulesystem/ViewModule.h diff --git a/src/calamares/utils/CalamaresUtilsGui.cpp b/src/libcalamaresui/utils/CalamaresUtilsGui.cpp similarity index 100% rename from src/calamares/utils/CalamaresUtilsGui.cpp rename to src/libcalamaresui/utils/CalamaresUtilsGui.cpp diff --git a/src/calamares/utils/CalamaresUtilsGui.h b/src/libcalamaresui/utils/CalamaresUtilsGui.h similarity index 100% rename from src/calamares/utils/CalamaresUtilsGui.h rename to src/libcalamaresui/utils/CalamaresUtilsGui.h diff --git a/src/calamares/YamlUtils.cpp b/src/libcalamaresui/utils/YamlUtils.cpp similarity index 100% rename from src/calamares/YamlUtils.cpp rename to src/libcalamaresui/utils/YamlUtils.cpp diff --git a/src/calamares/YamlUtils.h b/src/libcalamaresui/utils/YamlUtils.h similarity index 100% rename from src/calamares/YamlUtils.h rename to src/libcalamaresui/utils/YamlUtils.h diff --git a/src/calamares/viewpages/AbstractPage.cpp b/src/libcalamaresui/viewpages/AbstractPage.cpp similarity index 100% rename from src/calamares/viewpages/AbstractPage.cpp rename to src/libcalamaresui/viewpages/AbstractPage.cpp diff --git a/src/calamares/viewpages/AbstractPage.h b/src/libcalamaresui/viewpages/AbstractPage.h similarity index 100% rename from src/calamares/viewpages/AbstractPage.h rename to src/libcalamaresui/viewpages/AbstractPage.h diff --git a/src/calamares/viewpages/ViewStep.cpp b/src/libcalamaresui/viewpages/ViewStep.cpp similarity index 100% rename from src/calamares/viewpages/ViewStep.cpp rename to src/libcalamaresui/viewpages/ViewStep.cpp diff --git a/src/calamares/viewpages/ViewStep.h b/src/libcalamaresui/viewpages/ViewStep.h similarity index 100% rename from src/calamares/viewpages/ViewStep.h rename to src/libcalamaresui/viewpages/ViewStep.h diff --git a/src/modules/greeting/CMakeLists.txt b/src/modules/greeting/CMakeLists.txt index 5ca3a131f..904dcb039 100644 --- a/src/modules/greeting/CMakeLists.txt +++ b/src/modules/greeting/CMakeLists.txt @@ -1,4 +1,4 @@ -include_directories( ${PROJECT_BINARY_DIR}/src/calamares ) +include_directories( ${PROJECT_BINARY_DIR}/src/libcalamaresui ) calamares_add_plugin( greeting TYPE viewmodule EXPORT_MACRO PLUGINDLLEXPORT_PRO @@ -9,5 +9,7 @@ calamares_add_plugin( greeting UI LINK_LIBRARIES ${CALAMARES_LIBRARIES} + calamaresui + ${CALAMARESUI_LIBRARIES} SHARED_LIB ) diff --git a/src/modules/locale/CMakeLists.txt b/src/modules/locale/CMakeLists.txt index 7778400b1..97d53ac7a 100644 --- a/src/modules/locale/CMakeLists.txt +++ b/src/modules/locale/CMakeLists.txt @@ -1,4 +1,5 @@ -include_directories( ${PROJECT_BINARY_DIR}/src/calamares ) +include_directories( ${PROJECT_BINARY_DIR}/src/libcalamaresui ) + calamares_add_plugin( locale TYPE viewmodule EXPORT_MACRO PLUGINDLLEXPORT_PRO @@ -11,6 +12,6 @@ calamares_add_plugin( locale timezonewidget/localeglobal.cpp UI LINK_LIBRARIES - ${CALAMARES_LIBRARIES} + calamaresui SHARED_LIB ) diff --git a/src/modules/partition/CMakeLists.txt b/src/modules/partition/CMakeLists.txt index f6835d931..9f81eb20a 100644 --- a/src/modules/partition/CMakeLists.txt +++ b/src/modules/partition/CMakeLists.txt @@ -1,8 +1,10 @@ if( WITH_PARTITIONMANAGER ) +find_package( KF5 CONFIG REQUIRED CoreAddons ) + add_definitions( -DCALAMARES ) -include_directories( ${PROJECT_BINARY_DIR}/src/calamares ) +include_directories( ${PROJECT_BINARY_DIR}/src/libcalamaresui ) calamares_add_plugin( partition TYPE viewmodule EXPORT_MACRO PLUGINDLLEXPORT_PRO @@ -22,7 +24,7 @@ calamares_add_plugin( partition PartitionPage.ui LINK_LIBRARIES calapm - ${CALAMARES_LIBRARIES} + calamaresui KF5::CoreAddons SHARED_LIB ) @@ -37,7 +39,6 @@ set( partview_SRCS PartitionModel.cpp PartitionPage.cpp PMUtils.cpp - ${calamares_SOURCE_DIR}/viewpages/AbstractPage.cpp main.cpp ) qt5_wrap_ui( partview_SRCS diff --git a/src/modules/partition/PartitionPage.cpp b/src/modules/partition/PartitionPage.cpp index 96ba77c31..291dc7f0f 100644 --- a/src/modules/partition/PartitionPage.cpp +++ b/src/modules/partition/PartitionPage.cpp @@ -33,7 +33,7 @@ #include PartitionPage::PartitionPage( PartitionCoreModule* core, QWidget* parent ) - : Calamares::AbstractPage( parent ) + : QWidget( parent ) , m_ui( new Ui_PartitionPage ) , m_core( core ) { diff --git a/src/modules/partition/PartitionPage.h b/src/modules/partition/PartitionPage.h index 69d5a4ace..be9643ce1 100644 --- a/src/modules/partition/PartitionPage.h +++ b/src/modules/partition/PartitionPage.h @@ -19,8 +19,7 @@ #ifndef PARTITIONPAGE_H #define PARTITIONPAGE_H -#include "viewpages/AbstractPage.h" - +#include #include class PartitionCoreModule; @@ -28,7 +27,7 @@ class Ui_PartitionPage; class DeviceModel; -class PartitionPage : public Calamares::AbstractPage +class PartitionPage : public QWidget { Q_OBJECT public: