From 3d289f345ad4d175842c2eb1448b9c869ca9c20e Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 21 Oct 2020 15:02:33 +0200 Subject: [PATCH] [users] Refactor users functionality to a static lib - this makes it less fragile to share all the functionality with usersq, since it ends up in the library which is shared between the modules. --- src/modules/users/CMakeLists.txt | 27 ++++++++++++++++++--------- src/modules/users/Config.h | 2 +- src/modules/usersq/CMakeLists.txt | 10 ++-------- 3 files changed, 21 insertions(+), 18 deletions(-) diff --git a/src/modules/users/CMakeLists.txt b/src/modules/users/CMakeLists.txt index d758e2bb9..ca5d24d34 100644 --- a/src/modules/users/CMakeLists.txt +++ b/src/modules/users/CMakeLists.txt @@ -23,25 +23,35 @@ endif() include_directories( ${PROJECT_BINARY_DIR}/src/libcalamaresui ) -set( JOB_SRC +set( _users_src + # Jobs CreateUserJob.cpp MiscJobs.cpp SetPasswordJob.cpp SetHostNameJob.cpp -) -set( CONFIG_SRC + # Configuration CheckPWQuality.cpp Config.cpp ) +calamares_add_library( + users_internal + EXPORT_MACRO PLUGINDLLEXPORT_PRO + TARGET_TYPE STATIC + NO_INSTALL + NO_VERSION + SOURCES + ${_users_src} + LINK_LIBRARIES + Qt5::DBus +) + calamares_add_plugin( users TYPE viewmodule EXPORT_MACRO PLUGINDLLEXPORT_PRO SOURCES UsersViewStep.cpp UsersPage.cpp - ${JOB_SRC} - ${CONFIG_SRC} UI page_usersetup.ui RESOURCES @@ -50,7 +60,7 @@ calamares_add_plugin( users calamaresui ${CRYPT_LIBRARIES} ${USER_EXTRA_LIB} - Qt5::DBus + users_internal SHARED_LIB ) @@ -83,10 +93,9 @@ calamares_add_test( userstest SOURCES Tests.cpp - ${JOB_SRC} - ${CONFIG_SRC} + ${_users_src} # Build again with test-visibility LIBRARIES ${USER_EXTRA_LIB} - Qt5::DBus # HostName job can use DBus to systemd ${CRYPT_LIBRARIES} # SetPassword job uses crypt() + Qt5::DBus # HostName job can use DBus to systemd ) diff --git a/src/modules/users/Config.h b/src/modules/users/Config.h index 04f37d231..57da73e30 100644 --- a/src/modules/users/Config.h +++ b/src/modules/users/Config.h @@ -84,7 +84,7 @@ private: }; -class Config : public QObject +class PLUGINDLLEXPORT Config : public QObject { Q_OBJECT diff --git a/src/modules/usersq/CMakeLists.txt b/src/modules/usersq/CMakeLists.txt index b6717e7b8..951359c77 100644 --- a/src/modules/usersq/CMakeLists.txt +++ b/src/modules/usersq/CMakeLists.txt @@ -13,9 +13,8 @@ find_package( Crypt REQUIRED ) # Add optional libraries here set( USER_EXTRA_LIB ) -set( _users ${CMAKE_CURRENT_SOURCE_DIR}/../users ) -include_directories( ${PROJECT_BINARY_DIR}/src/libcalamaresui ${CMAKE_CURRENT_SOURCE_DIR}/../../libcalamares ${_users} ) +include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/../users ) find_package( LibPWQuality ) set_package_properties( @@ -33,12 +32,6 @@ calamares_add_plugin( usersq TYPE viewmodule EXPORT_MACRO PLUGINDLLEXPORT_PRO SOURCES - ${_users}/CheckPWQuality.cpp - ${_users}/Config.cpp - ${_users}/CreateUserJob.cpp - ${_users}/MiscJobs.cpp - ${_users}/SetHostNameJob.cpp - ${_users}/SetPasswordJob.cpp UsersQmlViewStep.cpp RESOURCES usersq.qrc @@ -47,5 +40,6 @@ calamares_add_plugin( usersq ${CRYPT_LIBRARIES} ${USER_EXTRA_LIB} Qt5::DBus + users_internal SHARED_LIB )