# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2020 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause # # When debugging the partitioning widget, or experimenting, you may # want to allow unsafe partitioning choices (e.g. doing things to the # current disk). Set DEBUG_PARTITION_UNSAFE to allow that (it turns off # some filtering of devices). If you **do** allow unsafe partitioning, # it will error out at runtime unless you **also** switch **off** # DEBUG_PARTITION_LAME, at which point you are welcome to shoot # yourself in the foot. option( DEBUG_PARTITION_UNSAFE "Allow unsafe partitioning choices." OFF ) option( DEBUG_PARTITION_LAME "Unsafe partitioning will error out on exec." ON ) # This is very chatty, useful mostly if you don't know what KPMCore offers. option( DEBUG_FILESYSTEMS "Log all available Filesystems from KPMCore." OFF ) include_directories( ${CMAKE_SOURCE_DIR} ) # For 3rdparty set( _partition_defs ) if( DEBUG_PARTITION_UNSAFE ) if( DEBUG_PARTITION_LAME ) list( APPEND _partition_defs DEBUG_PARTITION_LAME ) endif() list( APPEND _partition_defs DEBUG_PARTITION_UNSAFE ) endif() if ( DEBUG_FILESYSTEMS ) list( APPEND _partition_defs DEBUG_FILESYSTEMS ) endif() find_package(ECM ${ECM_VERSION} REQUIRED NO_MODULE) include( KPMcoreHelper ) find_package( KF5Config CONFIG ) find_package( KF5I18n CONFIG ) find_package( KF5WidgetsAddons CONFIG ) if ( KPMcore_FOUND AND Qt5DBus_FOUND AND KF5CoreAddons_FOUND AND KF5Config_FOUND ) list( APPEND _partition_defs ${KPMcore_API_DEFINITIONS} ) include_directories( ${KPMCORE_INCLUDE_DIR} ) include_directories( ${PROJECT_BINARY_DIR}/src/libcalamaresui ) add_subdirectory( tests ) calamares_add_plugin( partition TYPE viewmodule EXPORT_MACRO PLUGINDLLEXPORT_PRO SOURCES Config.cpp PartitionViewStep.cpp core/BootLoaderModel.cpp core/ColorUtils.cpp core/DeviceList.cpp core/DeviceModel.cpp core/KPMHelpers.cpp core/PartitionActions.cpp core/PartitionCoreModule.cpp core/PartitionInfo.cpp core/PartitionLayout.cpp core/PartitionModel.cpp core/PartUtils.cpp gui/BootInfoWidget.cpp gui/ChoicePage.cpp gui/CreatePartitionDialog.cpp gui/CreateVolumeGroupDialog.cpp gui/DeviceInfoWidget.cpp gui/EditExistingPartitionDialog.cpp gui/EncryptWidget.cpp gui/ListPhysicalVolumeWidgetItem.cpp gui/PartitionPage.cpp gui/PartitionBarsView.cpp gui/PartitionDialogHelpers.cpp gui/PartitionLabelsView.cpp gui/PartitionSizeController.cpp gui/PartitionSplitterWidget.cpp gui/ResizeVolumeGroupDialog.cpp gui/ScanningDialog.cpp gui/ReplaceWidget.cpp gui/VolumeGroupBaseDialog.cpp jobs/AutoMountManagementJob.cpp jobs/ChangeFilesystemLabelJob.cpp jobs/ClearMountsJob.cpp jobs/ClearTempMountsJob.cpp jobs/CreatePartitionJob.cpp jobs/CreatePartitionTableJob.cpp jobs/CreateVolumeGroupJob.cpp jobs/DeactivateVolumeGroupJob.cpp jobs/DeletePartitionJob.cpp jobs/FillGlobalStorageJob.cpp jobs/FormatPartitionJob.cpp jobs/PartitionJob.cpp jobs/RemoveVolumeGroupJob.cpp jobs/ResizePartitionJob.cpp jobs/ResizeVolumeGroupJob.cpp jobs/SetPartitionFlagsJob.cpp UI gui/ChoicePage.ui gui/CreatePartitionDialog.ui gui/CreatePartitionTableDialog.ui gui/EditExistingPartitionDialog.ui gui/EncryptWidget.ui gui/PartitionPage.ui gui/ReplaceWidget.ui gui/VolumeGroupBaseDialog.ui LINK_PRIVATE_LIBRARIES kpmcore KF5::CoreAddons COMPILE_DEFINITIONS ${_partition_defs} SHARED_LIB ) else() if ( NOT KPMcore_FOUND ) calamares_skip_module( "partition (missing suitable KPMcore)" ) else() calamares_skip_module( "partition (missing dependencies for KPMcore)" ) endif() endif()