first
This commit is contained in:
64
calamares/CMakeModules/KPMcoreHelper.cmake
Normal file
64
calamares/CMakeModules/KPMcoreHelper.cmake
Normal file
@@ -0,0 +1,64 @@
|
||||
# === This file is part of Calamares - <https://calamares.io> ===
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2020 Adriaan de Groot <groot@kde.org>
|
||||
# SPDX-License-Identifier: BSD-2-Clause
|
||||
#
|
||||
###
|
||||
#
|
||||
# Finds KPMcore and consistently sets API flags based on the version.
|
||||
#
|
||||
# If KPMcore is not found, still create calamares::kpmcore interface
|
||||
# library, which will add definition WITHOUT_KPMcore.
|
||||
#
|
||||
if(NOT TARGET calapmcore)
|
||||
find_package(${kfname}Config CONFIG)
|
||||
find_package(${kfname}I18n CONFIG)
|
||||
find_package(${kfname}WidgetsAddons CONFIG)
|
||||
|
||||
if(WITH_QT6)
|
||||
find_package(KPMcore 24.01.75)
|
||||
else()
|
||||
find_package(KPMcore 20.04.0)
|
||||
endif()
|
||||
set_package_properties(
|
||||
KPMcore
|
||||
PROPERTIES
|
||||
URL "https://invent.kde.org/kde/kpmcore"
|
||||
DESCRIPTION "KDE Partitioning library"
|
||||
TYPE RECOMMENDED
|
||||
PURPOSE "For disk partitioning support"
|
||||
)
|
||||
|
||||
# Create an internal Calamares interface to KPMcore
|
||||
# and give it a nice alias name. If kpmcore is not found,
|
||||
# then make a "no KPMcore" library.
|
||||
add_library(calapmcore INTERFACE)
|
||||
|
||||
if(KPMcore_FOUND)
|
||||
find_package(${qtname} REQUIRED DBus) # Needed for KPMCore
|
||||
find_package(${kfname}I18n REQUIRED) # Needed for KPMCore
|
||||
find_package(${kfname}WidgetsAddons REQUIRED) # Needed for KPMCore
|
||||
|
||||
target_link_libraries(calapmcore INTERFACE kpmcore ${qtname}::DBus ${kfname}::I18n ${kfname}::WidgetsAddons)
|
||||
target_include_directories(calapmcore INTERFACE ${KPMCORE_INCLUDE_DIR})
|
||||
math(EXPR _kpm_version_number "(0x${KPMcore_VERSION_MAJOR} * 0x10000)+(0x${KPMcore_VERSION_MINOR} * 0x100)+(0x${KPMcore_VERSION_PATCH})" OUTPUT_FORMAT HEXADECIMAL)
|
||||
target_compile_definitions(calapmcore INTERFACE WITH_KPMcore=${_kpm_version_number})
|
||||
|
||||
# Flag that this library has KPMcore support. A variable
|
||||
# set here has the wrong scope. ENV{} would be visible
|
||||
# everywhere but seems the wrong thing to do. Setting
|
||||
# properties on calapmcore requires a newer CMake than
|
||||
# Debian 11 has, so runs into support issues.
|
||||
add_library(calamares::kpmcore ALIAS calapmcore)
|
||||
else()
|
||||
target_compile_definitions(calapmcore INTERFACE WITHOUT_KPMcore)
|
||||
endif()
|
||||
else()
|
||||
if(TARGET calamares::kpmcore)
|
||||
message(STATUS "KPMcore has already been found")
|
||||
set(KPMcore_FOUND TRUE)
|
||||
else()
|
||||
message(STATUS "KPMcore has been searched-for and not found")
|
||||
set(KPMcore_FOUND FALSE)
|
||||
endif()
|
||||
endif()
|
||||
Reference in New Issue
Block a user