CMake: apply gersemi styling

This commit is contained in:
Adriaan de Groot 2022-02-08 16:18:47 +01:00
parent b167d8da03
commit cf097850de
44 changed files with 649 additions and 740 deletions

View File

@ -41,43 +41,39 @@
# One special target is "show-version", which can be built
# to obtain the version number from here.
cmake_minimum_required( VERSION 3.16 FATAL_ERROR )
cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
set( CALAMARES_VERSION 3.3.0 )
set( CALAMARES_RELEASE_MODE OFF ) # Set to ON during a release
set(CALAMARES_VERSION 3.3.0)
set(CALAMARES_RELEASE_MODE OFF) # Set to ON during a release
if ( CMAKE_SCRIPT_MODE_FILE )
include( ${CMAKE_CURRENT_LIST_DIR}/CMakeModules/ExtendedVersion.cmake )
set( CMAKE_SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR} )
if(CMAKE_SCRIPT_MODE_FILE)
include(${CMAKE_CURRENT_LIST_DIR}/CMakeModules/ExtendedVersion.cmake)
set(CMAKE_SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR})
extend_version( ${CALAMARES_VERSION} OFF _vshort _vlong )
message( "${_vlong}" )
message("${_vlong}")
return()
endif()
project( CALAMARES
VERSION ${CALAMARES_VERSION}
LANGUAGES C CXX
)
project(CALAMARES VERSION ${CALAMARES_VERSION} LANGUAGES C CXX)
if( CALAMARES_RELEASE_MODE AND CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR )
message( FATAL_ERROR "Do not build development versions in the source-directory." )
if(CALAMARES_RELEASE_MODE AND CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR)
message(FATAL_ERROR "Do not build development versions in the source-directory.")
endif()
### OPTIONS
#
option( INSTALL_CONFIG "Install configuration files" OFF )
option( INSTALL_POLKIT "Install Polkit configuration" ON )
option( INSTALL_COMPLETION "Install shell completions" OFF )
option(INSTALL_CONFIG "Install configuration files" OFF)
option(INSTALL_POLKIT "Install Polkit configuration" ON)
option(INSTALL_COMPLETION "Install shell completions" OFF)
# When adding WITH_* that affects the ABI offered by libcalamares,
# also update libcalamares/CalamaresConfig.h.in
option( WITH_PYTHON "Enable Python modules API (requires Boost.Python)." ON )
option( WITH_QML "Enable QML UI options." ON )
option(WITH_PYTHON "Enable Python modules API (requires Boost.Python)." ON)
option(WITH_QML "Enable QML UI options." ON)
#
# Additional parts to build that do not affect ABI
option( BUILD_SCHEMA_TESTING "Enable schema-validation-tests" ON )
option(BUILD_SCHEMA_TESTING "Enable schema-validation-tests" ON)
# Options for the calamares executable
option( BUILD_KF5Crash "Enable crash reporting with KCrash." ON )
option(BUILD_KF5Crash "Enable crash reporting with KCrash." ON)
# Possible debugging flags are:
# - DEBUG_TIMEZONES draws latitude and longitude lines on the timezone
@ -88,7 +84,6 @@ option( BUILD_KF5Crash "Enable crash reporting with KCrash." ON )
# - DEBUG_PARTITION_UNSAFE (see partition/CMakeLists.txt)
# - DEBUG_PARTITION_LAME (see partition/CMakeLists.txt)
### USE_*
#
# By convention, when there are multiple modules that implement similar
@ -112,15 +107,14 @@ option( BUILD_KF5Crash "Enable crash reporting with KCrash." ON )
# - *services* picks one of the two service-configuration modules,
# for either systemd or openrc. This defaults to empty so that
# **both** modules are available.
set( USE_services "" CACHE STRING "Select the services module to use" )
set(USE_services "" CACHE STRING "Select the services module to use")
### Calamares application info
#
set( CALAMARES_ORGANIZATION_NAME "Calamares" )
set( CALAMARES_ORGANIZATION_DOMAIN "github.com/calamares" )
set( CALAMARES_APPLICATION_NAME "Calamares" )
set( CALAMARES_DESCRIPTION_SUMMARY
"The distribution-independent installer framework" )
set(CALAMARES_ORGANIZATION_NAME "Calamares")
set(CALAMARES_ORGANIZATION_DOMAIN "github.com/calamares")
set(CALAMARES_APPLICATION_NAME "Calamares")
set(CALAMARES_DESCRIPTION_SUMMARY "The distribution-independent installer framework")
### Transifex (languages) info
#
@ -147,40 +141,114 @@ set( CALAMARES_DESCRIPTION_SUMMARY
# `txstats.py -e`. See also
#
# Total 74 languages
set( _tx_complete az az_AZ ca de fa fi_FI he hi hr ja ko lt pt_BR
pt_PT si sq sv tr_TR uk zh_TW )
set( _tx_good as be ca@valencia cs_CZ da fr fur it_IT ml nl ru sk
tg vi zh_CN )
set( _tx_ok ar ast bg bn el en_GB es es_MX et eu gl hu id is mr nb
pl ro sl sr sr@latin th )
set( _tx_incomplete eo es_PR gu ie kk kn lo lv mk ne ne_NP ta_IN te
ur zh zh_HK )
set(_tx_complete
az
az_AZ
ca
de
fa
fi_FI
he
hi
hr
ja
ko
lt
pt_BR
pt_PT
si
sq
sv
tr_TR
uk
zh_TW
)
set(_tx_good
as
be
ca@valencia
cs_CZ
da
fr
fur
it_IT
ml
nl
ru
sk
tg
vi
zh_CN
)
set(_tx_ok
ar
ast
bg
bn
el
en_GB
es
es_MX
et
eu
gl
hu
id
is
mr
nb
pl
ro
sl
sr
sr@latin
th
)
set(_tx_incomplete
eo
es_PR
gu
ie
kk
kn
lo
lv
mk
ne
ne_NP
ta_IN
te
ur
zh
zh_HK
)
### Required versions
#
# See DEPENDENCIES section below.
set( QT_VERSION 5.15.0 )
set( YAMLCPP_VERSION 0.5.1 )
set( ECM_VERSION 5.18 )
set( PYTHONLIBS_VERSION 3.6 )
set( BOOSTPYTHON_VERSION 1.67.0 )
set(QT_VERSION 5.15.0)
set(YAMLCPP_VERSION 0.5.1)
set(ECM_VERSION 5.18)
set(PYTHONLIBS_VERSION 3.6)
set(BOOSTPYTHON_VERSION 1.67.0)
### CMAKE SETUP
#
set( CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/CMakeModules" )
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/CMakeModules")
# Enable IN_LIST
if( POLICY CMP0057 )
cmake_policy( SET CMP0057 NEW )
if(POLICY CMP0057)
cmake_policy(SET CMP0057 NEW)
endif()
# Let ``AUTOMOC`` and ``AUTOUIC`` process ``GENERATED`` files.
if( POLICY CMP0071 )
cmake_policy( SET CMP0071 NEW )
if(POLICY CMP0071)
cmake_policy(SET CMP0071 NEW)
endif()
# Recognize more macros to trigger automoc
if(NOT CMAKE_VERSION VERSION_LESS "3.10.0")
list(APPEND CMAKE_AUTOMOC_MACRO_NAMES
list(
APPEND
CMAKE_AUTOMOC_MACRO_NAMES
"K_PLUGIN_FACTORY_WITH_JSON"
"K_EXPORT_PLASMA_DATAENGINE_WITH_JSON"
"K_EXPORT_PLASMA_RUNNER"
@ -188,49 +256,50 @@ if(NOT CMAKE_VERSION VERSION_LESS "3.10.0")
endif()
# CMake Modules
include( CMakePackageConfigHelpers )
include( CTest )
include( FeatureSummary )
include(CMakePackageConfigHelpers)
include(CTest)
include(FeatureSummary)
# Calamares Modules
include( CMakeColors )
include(CMakeColors)
### C++ SETUP
#
set( CMAKE_CXX_STANDARD 17 )
set( CMAKE_CXX_STANDARD_REQUIRED ON )
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Werror=return-type" )
set( CMAKE_CXX_FLAGS_DEBUG "-Og -g ${CMAKE_CXX_FLAGS_DEBUG}" )
set( CMAKE_CXX_FLAGS_MINSIZEREL "-Os -DNDEBUG" )
set( CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG" )
set( CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g" )
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Werror=return-type")
set(CMAKE_CXX_FLAGS_DEBUG "-Og -g ${CMAKE_CXX_FLAGS_DEBUG}")
set(CMAKE_CXX_FLAGS_MINSIZEREL "-Os -DNDEBUG")
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g")
set( CMAKE_C_STANDARD 99 )
set( CMAKE_C_STANDARD_REQUIRED ON )
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall" )
set( CMAKE_C_FLAGS_DEBUG "-Og -g" )
set( CMAKE_C_FLAGS_MINSIZEREL "-Os -DNDEBUG" )
set( CMAKE_C_FLAGS_RELEASE "-O4 -DNDEBUG" )
set( CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g" )
set(CMAKE_C_STANDARD 99)
set(CMAKE_C_STANDARD_REQUIRED ON)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
set(CMAKE_C_FLAGS_DEBUG "-Og -g")
set(CMAKE_C_FLAGS_MINSIZEREL "-Os -DNDEBUG")
set(CMAKE_C_FLAGS_RELEASE "-O4 -DNDEBUG")
set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g")
set( CMAKE_SHARED_LINKER_FLAGS "-Wl,--no-undefined -Wl,--fatal-warnings" )
set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--no-undefined -Wl,--fatal-warnings")
# If no build type is set, pick a reasonable one
if( NOT CMAKE_BUILD_TYPE )
if ( CALAMARES_RELEASE_MODE )
set( CMAKE_BUILD_TYPE "RelWithDebInfo" )
if(NOT CMAKE_BUILD_TYPE)
if(CALAMARES_RELEASE_MODE)
set(CMAKE_BUILD_TYPE "RelWithDebInfo")
else()
set( CMAKE_BUILD_TYPE "Debug" )
set(CMAKE_BUILD_TYPE "Debug")
endif()
endif()
if( CMAKE_CXX_COMPILER_ID MATCHES "Clang" )
message( STATUS "Found Clang ${CMAKE_CXX_COMPILER_VERSION}, setting up Clang-specific compiler flags." )
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
message(STATUS "Found Clang ${CMAKE_CXX_COMPILER_VERSION}, setting up Clang-specific compiler flags.")
# Clang warnings: doing *everything* is counter-productive, since it warns
# about things which we can't fix (e.g. C++98 incompatibilities, but
# Calamares is C++17).
foreach( CLANG_WARNINGS
foreach(
CLANG_WARNINGS
-Weverything
-Wno-c++98-compat
-Wno-c++98-compat-pedantic
@ -242,70 +311,69 @@ if( CMAKE_CXX_COMPILER_ID MATCHES "Clang" )
-Wno-documentation-unknown-command
-Wno-unknown-warning-option
)
string( APPEND CMAKE_CXX_FLAGS " ${CLANG_WARNINGS}" )
string(APPEND CMAKE_CXX_FLAGS " ${CLANG_WARNINGS}")
endforeach()
# The dwarf-debugging flags are slightly different, too
string( APPEND CMAKE_CXX_FLAGS_DEBUG " -gdwarf" )
string( APPEND CMAKE_C_FLAGS_DEBUG " -gdwarf" )
string(APPEND CMAKE_CXX_FLAGS_DEBUG " -gdwarf")
string(APPEND CMAKE_C_FLAGS_DEBUG " -gdwarf")
# Third-party code where we don't care so much about compiler warnings
# (because it's uncomfortable to patch) get different flags; use
# mark_thirdparty_code( <file> [<file>...] )
# to switch off warnings for those sources.
set( SUPPRESS_3RDPARTY_WARNINGS "-Wno-everything" )
set(SUPPRESS_3RDPARTY_WARNINGS "-Wno-everything")
set( CMAKE_TOOLCHAIN_PREFIX "llvm-" )
set(CMAKE_TOOLCHAIN_PREFIX "llvm-")
# The path prefix is only relevant for CMake 3.16 and later, fixes #1286
set( CMAKE_AUTOMOC_PATH_PREFIX OFF )
set( CALAMARES_AUTOMOC_OPTIONS "-butils/moc-warnings.h" )
set( CALAMARES_AUTOUIC_OPTIONS --include utils/moc-warnings.h )
set(CMAKE_AUTOMOC_PATH_PREFIX OFF)
set(CALAMARES_AUTOMOC_OPTIONS "-butils/moc-warnings.h")
set(CALAMARES_AUTOUIC_OPTIONS --include utils/moc-warnings.h)
else()
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wnon-virtual-dtor -Woverloaded-virtual" )
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wnon-virtual-dtor -Woverloaded-virtual")
set( SUPPRESS_3RDPARTY_WARNINGS "" )
set(SUPPRESS_3RDPARTY_WARNINGS "")
endif()
# Use mark_thirdparty_code() to reduce warnings from the compiler
# on code that we're not going to fix. Call this with a list of files.
macro(mark_thirdparty_code)
set_source_files_properties( ${ARGV}
PROPERTIES
COMPILE_FLAGS "${SUPPRESS_3RDPARTY_WARNINGS}"
COMPILE_DEFINITIONS "THIRDPARTY"
set_source_files_properties(
${ARGV}
PROPERTIES COMPILE_FLAGS "${SUPPRESS_3RDPARTY_WARNINGS}" COMPILE_DEFINITIONS "THIRDPARTY"
)
endmacro()
if( CMAKE_COMPILER_IS_GNUCXX )
if( CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.9 OR
CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 4.9 )
message( STATUS "Found GNU g++ ${CMAKE_CXX_COMPILER_VERSION}, enabling colorized error messages." )
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fdiagnostics-color=auto" )
if(CMAKE_COMPILER_IS_GNUCXX)
if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.9 OR CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 4.9)
message(STATUS "Found GNU g++ ${CMAKE_CXX_COMPILER_VERSION}, enabling colorized error messages.")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fdiagnostics-color=auto")
endif()
endif()
# API that was deprecated before Qt 5.15 causes a compile error
add_compile_definitions( QT_DISABLE_DEPRECATED_BEFORE=0x050f00 )
add_compile_definitions(QT_DISABLE_DEPRECATED_BEFORE=0x050f00)
### DEPENDENCIES
#
find_package( Qt5 ${QT_VERSION} CONFIG REQUIRED Concurrent Core Gui LinguistTools Network Svg Widgets )
if( WITH_QML )
find_package( Qt5 ${QT_VERSION} CONFIG REQUIRED Quick QuickWidgets )
find_package(Qt5 ${QT_VERSION} CONFIG REQUIRED Concurrent Core Gui LinguistTools Network Svg Widgets)
if(WITH_QML)
find_package(Qt5 ${QT_VERSION} CONFIG REQUIRED Quick QuickWidgets)
endif()
# Optional Qt parts
find_package( Qt5DBus CONFIG )
find_package(Qt5DBus CONFIG)
find_package( YAMLCPP ${YAMLCPP_VERSION} REQUIRED )
if( INSTALL_POLKIT )
find_package( PolkitQt5-1 REQUIRED )
find_package(YAMLCPP ${YAMLCPP_VERSION} REQUIRED)
if(INSTALL_POLKIT)
find_package(PolkitQt5-1 REQUIRED)
else()
# Find it anyway, for dependencies-reporting
find_package( PolkitQt5-1 )
find_package(PolkitQt5-1)
endif()
set_package_properties(
PolkitQt5-1 PROPERTIES
PolkitQt5-1
PROPERTIES
DESCRIPTION "Qt5 support for Polkit"
URL "https://cgit.kde.org/polkit-qt-1.git"
PURPOSE "PolkitQt5-1 helps with installing Polkit configuration"
@ -316,98 +384,108 @@ set_package_properties(
# find_package(ECM ${ECM_VERSION} REQUIRED NO_MODULE),
# no need to mess with the module path after.
find_package(ECM ${ECM_VERSION} NO_MODULE)
if( ECM_FOUND )
if(ECM_FOUND)
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_MODULE_PATH})
if ( BUILD_TESTING )
if(BUILD_TESTING)
# ECM implies that we can build the tests, too
find_package( Qt5 COMPONENTS Test REQUIRED )
include( ECMAddTests )
find_package(Qt5 COMPONENTS Test REQUIRED)
include(ECMAddTests)
endif()
include(KDEInstallDirs)
endif()
find_package( KF5 QUIET COMPONENTS CoreAddons Crash DBusAddons )
find_package(KF5 QUIET COMPONENTS CoreAddons Crash DBusAddons)
set_package_properties(
KF5::CoreAddons PROPERTIES
KF5::CoreAddons
PROPERTIES
TYPE REQUIRED
DESCRIPTION "Classes built on QtCore for About Data"
URL "https://api.kde.org/frameworks/kcoreaddons/"
PURPOSE "About Calamares"
)
set_package_properties(
KF5::DBusAddons PROPERTIES
KF5::DBusAddons
PROPERTIES
TYPE REQUIRED
DESCRIPTION "Classes for DBus activation"
URL "https://api.kde.org/frameworks/dbusaddons/"
PURPOSE "Unique instance of Calamares"
)
if( NOT KF5Crash_FOUND )
if( BUILD_KF5Crash )
if(NOT KF5Crash_FOUND)
if(BUILD_KF5Crash)
message(WARNING "BUILD_KF5Crash is set, but KF5::Crash is not available.")
endif()
set( BUILD_KF5Crash OFF )
set(BUILD_KF5Crash OFF)
endif()
# TODO:3.3: Use FindPython3 instead
find_package( PythonInterp ${PYTHONLIBS_VERSION} )
find_package(PythonInterp ${PYTHONLIBS_VERSION})
set_package_properties(
PythonInterp PROPERTIES
PythonInterp
PROPERTIES
DESCRIPTION "Python 3 interpreter."
URL "https://python.org"
PURPOSE "Python 3 interpreter for certain tests."
)
set( _schema_explanation "" )
if ( PYTHONINTERP_FOUND )
if ( BUILD_SCHEMA_TESTING )
set(_schema_explanation "")
if(PYTHONINTERP_FOUND)
if(BUILD_SCHEMA_TESTING)
# The configuration validator script has some dependencies,
# and if they are not installed, don't run. If errors out
# with exit(1) on missing dependencies.
if ( CALAMARES_CONFIGVALIDATOR_CHECKED )
set( _validator_deps ${CALAMARES_CONFIGVALIDATOR_RESULT} )
if(CALAMARES_CONFIGVALIDATOR_CHECKED)
set(_validator_deps ${CALAMARES_CONFIGVALIDATOR_RESULT})
else()
exec_program( ${PYTHON_EXECUTABLE} ARGS "${CMAKE_SOURCE_DIR}/ci/configvalidator.py" -x RETURN_VALUE _validator_deps )
set( CALAMARES_CONFIGVALIDATOR_CHECKED TRUE CACHE INTERNAL "Dependencies for configvalidator checked" )
set( CALAMARES_CONFIGVALIDATOR_RESULT ${_validator_deps} CACHE INTERNAL "Result of configvalidator dependency check" )
exec_program(
${PYTHON_EXECUTABLE}
ARGS
"${CMAKE_SOURCE_DIR}/ci/configvalidator.py"
-x
RETURN_VALUE
_validator_deps
)
set(CALAMARES_CONFIGVALIDATOR_CHECKED TRUE CACHE INTERNAL "Dependencies for configvalidator checked")
set(CALAMARES_CONFIGVALIDATOR_RESULT ${_validator_deps}
CACHE INTERNAL "Result of configvalidator dependency check"
)
endif()
# It should never succeed, but only returns 1 when the imports fail
if ( _validator_deps EQUAL 1 )
set( _schema_explanation " Missing dependencies for configvalidator.py." )
set( BUILD_SCHEMA_TESTING OFF )
if(_validator_deps EQUAL 1)
set(_schema_explanation " Missing dependencies for configvalidator.py.")
set(BUILD_SCHEMA_TESTING OFF)
endif()
endif()
else()
# Can't run schema tests without Python3.
set( _schema_explanation " Missing Python3." )
set( BUILD_SCHEMA_TESTING OFF )
set(_schema_explanation " Missing Python3.")
set(BUILD_SCHEMA_TESTING OFF)
endif()
add_feature_info( yaml-schema BUILD_SCHEMA_TESTING "Validate YAML (config files) with schema.${_schema_explanation}" )
add_feature_info(yaml-schema BUILD_SCHEMA_TESTING "Validate YAML (config files) with schema.${_schema_explanation}")
find_package( PythonLibs ${PYTHONLIBS_VERSION} )
find_package(PythonLibs ${PYTHONLIBS_VERSION})
set_package_properties(
PythonLibs PROPERTIES
PythonLibs
PROPERTIES
DESCRIPTION "C interface libraries for the Python 3 interpreter."
URL "https://python.org"
PURPOSE "Python 3 is used for Python job modules."
)
if ( PYTHONLIBS_FOUND )
if(PYTHONLIBS_FOUND)
# TODO:3.3: Require Boost + CMake; sort out Boost::Python
# Since Boost provides CMake config files (starting with Boost 1.70.
# or so) the mess that is the Calamares find code picks the wrong
# bits. Suppress those CMake config files, as suggested by @jmrcpn
set(Boost_NO_BOOST_CMAKE ON)
include( BoostPython3 )
include(BoostPython3)
find_boost_python3( ${BOOSTPYTHON_VERSION} ${PYTHONLIBS_VERSION_STRING} CALAMARES_BOOST_PYTHON3_FOUND )
set_package_properties(
Boost PROPERTIES
PURPOSE "Boost.Python is used for Python job modules."
)
set_package_properties(Boost PROPERTIES PURPOSE "Boost.Python is used for Python job modules.")
endif()
if( NOT PYTHONLIBS_FOUND OR NOT CALAMARES_BOOST_PYTHON3_FOUND )
if(NOT PYTHONLIBS_FOUND OR NOT CALAMARES_BOOST_PYTHON3_FOUND)
message(STATUS "Disabling Boost::Python modules")
set( WITH_PYTHON OFF )
set(WITH_PYTHON OFF)
endif()
# Now we know the state of the ABI-options, copy them into "Calamares_"
@ -423,39 +501,39 @@ set(Calamares_WITH_QML ${WITH_QML})
# for some obvious error. The actual work of compiling translations
# is done in the lang/ directory.
#
if( Qt5_VERSION VERSION_GREATER 5.12.1 )
if(Qt5_VERSION VERSION_GREATER 5.12.1)
# At least Qt 5.12.2 seems to support Esperanto in QLocale
if( "eo" IN_LIST _tx_incomplete )
if("eo" IN_LIST _tx_incomplete)
message(STATUS "Esperanto support since Qt 5.12.2, enabling Esperanto locale")
list( REMOVE_ITEM _tx_incomplete "eo" )
list( APPEND _tx_ok "eo" )
list(REMOVE_ITEM _tx_incomplete "eo")
list(APPEND _tx_ok "eo")
endif()
endif()
set( curr_tx ${_tx_complete} ${_tx_good} ${_tx_ok} ${_tx_incomplete} )
set( tx_errors OFF )
if ( curr_tx )
set(curr_tx ${_tx_complete} ${_tx_good} ${_tx_ok} ${_tx_incomplete})
set(tx_errors OFF)
if(curr_tx)
# New in list
foreach( l ${curr_tx} )
set( p_l "lang/calamares_${l}.ts" )
if( NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${p_l} )
foreach(l ${curr_tx})
set(p_l "lang/calamares_${l}.ts")
if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${p_l})
message(WARNING "Language ${l} has no .ts file yet.")
set( tx_errors ON )
set(tx_errors ON)
endif()
endforeach()
unset( p_l )
unset( l )
unset(p_l)
unset(l)
endif()
unset( curr_tx )
if( tx_errors )
message( FATAL_ERROR "Translation warnings, see above." )
unset(curr_tx)
if(tx_errors)
message(FATAL_ERROR "Translation warnings, see above.")
endif()
set( CALAMARES_TRANSLATION_LANGUAGES en ${_tx_complete} ${_tx_good} ${_tx_ok} )
list( SORT CALAMARES_TRANSLATION_LANGUAGES )
set(CALAMARES_TRANSLATION_LANGUAGES en ${_tx_complete} ${_tx_good} ${_tx_ok})
list(SORT CALAMARES_TRANSLATION_LANGUAGES)
add_subdirectory( lang ) # i18n tools
add_subdirectory(lang) # i18n tools
### Example Distro
#
@ -474,22 +552,22 @@ add_subdirectory( lang ) # i18n tools
#
# make example-distro
#
find_program( mksquashfs_PROGRAM mksquashfs )
if( mksquashfs_PROGRAM )
set( mksquashfs_FOUND ON )
set( src_fs ${CMAKE_SOURCE_DIR}/data/example-root/ )
set( dst_fs ${CMAKE_BINARY_DIR}/example.sqfs )
if( EXISTS ${src_fs} )
find_program(mksquashfs_PROGRAM mksquashfs)
if(mksquashfs_PROGRAM)
set(mksquashfs_FOUND ON)
set(src_fs ${CMAKE_SOURCE_DIR}/data/example-root/)
set(dst_fs ${CMAKE_BINARY_DIR}/example.sqfs)
if(EXISTS ${src_fs})
# based on the build host. If /lib64 exists, assume it is needed.
# Collect directories needed for a minimal binary distro,
# Note that the last path component is added to the root, so
# if you add /usr/sbin here, it will be put into /sbin_1.
# Add such paths to /etc/profile under ${src_fs}.
set( candidate_fs /sbin /bin /lib /lib64 )
set( host_fs "" )
foreach( c_fs ${candidate_fs} )
if( EXISTS ${c_fs} )
list( APPEND host_fs ${c_fs} )
set(candidate_fs /sbin /bin /lib /lib64)
set(host_fs "")
foreach(c_fs ${candidate_fs})
if(EXISTS ${c_fs})
list(APPEND host_fs ${c_fs})
endif()
endforeach()
add_custom_command(
@ -500,71 +578,63 @@ if( mksquashfs_PROGRAM )
add_custom_target(example-distro DEPENDS ${dst_fs})
endif()
else()
set( mksquashfs_FOUND OFF )
set(mksquashfs_FOUND OFF)
endif()
# Doesn't list mksquashfs as an optional dep, though, because it
# hasn't been sent through the find_package() scheme.
#
# "http://tldp.org/HOWTO/SquashFS-HOWTO/creatingandusing.html"
add_feature_info( ExampleDistro ${mksquashfs_FOUND} "Create example-distro target.")
add_feature_info(ExampleDistro ${mksquashfs_FOUND} "Create example-distro target.")
### CALAMARES PROPER
#
set( CALAMARES_VERSION ${CALAMARES_VERSION_MAJOR}.${CALAMARES_VERSION_MINOR}.${CALAMARES_VERSION_PATCH} )
set(CALAMARES_VERSION ${CALAMARES_VERSION_MAJOR}.${CALAMARES_VERSION_MINOR}.${CALAMARES_VERSION_PATCH})
# In rare cases we have hotfix-releases with a tweak
if( CALAMARES_VERSION_TWEAK )
set( CALAMARES_VERSION "${CALAMARES_VERSION}.${CALAMARES_VERSION_TWEAK}" )
if(CALAMARES_VERSION_TWEAK)
set(CALAMARES_VERSION "${CALAMARES_VERSION}.${CALAMARES_VERSION_TWEAK}")
endif()
set( CALAMARES_VERSION_SHORT "${CALAMARES_VERSION}" )
set(CALAMARES_VERSION_SHORT "${CALAMARES_VERSION}")
# Additional info for non-release builds. The "extended" version information
# with date and git information (commit, dirty status) is used only
# by CalamaresVersionX.h, which is included by consumers that need a full
# version number with all that information; normal consumers can include
# CalamaresVersion.h with more stable numbers.
if( NOT BUILD_RELEASE AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git/" )
include( ExtendedVersion )
if(NOT BUILD_RELEASE AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git/")
include(ExtendedVersion)
extend_version( "${CALAMARES_VERSION}" OFF CALAMARES_VERSION_SHORT CALAMARES_VERSION )
endif()
# Special target for not-RC (e.g. might-be-release) builds.
# This is used by the release script to get the version.
if ( CALAMARES_VERSION_RC EQUAL 0 )
add_custom_target(show-version
${CMAKE_COMMAND} -E echo CALAMARES_VERSION=${CALAMARES_VERSION_SHORT}
USES_TERMINAL
)
if(CALAMARES_VERSION_RC EQUAL 0)
add_custom_target(show-version ${CMAKE_COMMAND} -E echo CALAMARES_VERSION=${CALAMARES_VERSION_SHORT} USES_TERMINAL)
endif()
# enforce using constBegin, constEnd for const-iterators
add_definitions(
-DQT_STRICT_ITERATORS
-DQT_SHARED
-DQT_SHAREDPOINTER_TRACK_POINTERS
)
add_definitions(-DQT_STRICT_ITERATORS -DQT_SHARED -DQT_SHAREDPOINTER_TRACK_POINTERS)
# set paths
set( CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}" )
set( CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}" )
set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}" )
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}")
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}")
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}")
# Better default installation paths: GNUInstallDirs defines
# CMAKE_INSTALL_FULL_SYSCONFDIR to be CMAKE_INSTALL_PREFIX/etc by default
# but we really want /etc
if( NOT DEFINED CMAKE_INSTALL_SYSCONFDIR )
set( CMAKE_INSTALL_SYSCONFDIR "/etc" )
if(NOT DEFINED CMAKE_INSTALL_SYSCONFDIR)
set(CMAKE_INSTALL_SYSCONFDIR "/etc")
endif()
# make predefined install dirs available everywhere
include( GNUInstallDirs )
include(GNUInstallDirs)
# This is used by CalamaresAddLibrary; once Calamares is installed,
# the CalamaresConfig.cmake module sets this variable to the IMPORTED
# libraries for Calamares.
set( Calamares_LIBRARIES calamares )
set(Calamares_LIBRARIES calamares)
add_subdirectory( src )
add_subdirectory(src)
add_feature_info(Python ${WITH_PYTHON} "Python job modules")
add_feature_info(Qml ${WITH_QML} "QML UI support")
@ -575,30 +645,22 @@ add_feature_info(KCrash ${BUILD_KF5Crash} "Crash dumps via KCrash")
### CMake infrastructure installation
#
#
set( CMAKE_INSTALL_CMAKEDIR "${CMAKE_INSTALL_LIBDIR}/cmake/Calamares" CACHE PATH "Installation directory for CMake files" )
set( CMAKE_INSTALL_FULL_CMAKEDIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_CMAKEDIR}" )
set(CMAKE_INSTALL_CMAKEDIR "${CMAKE_INSTALL_LIBDIR}/cmake/Calamares" CACHE PATH "Installation directory for CMake files")
set(CMAKE_INSTALL_FULL_CMAKEDIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_CMAKEDIR}")
export( PACKAGE Calamares )
export(PACKAGE Calamares)
configure_package_config_file(
"CalamaresConfig.cmake.in"
"${PROJECT_BINARY_DIR}/CalamaresConfig.cmake"
INSTALL_DESTINATION "${CMAKE_INSTALL_CMAKEDIR}"
PATH_VARS
CMAKE_INSTALL_INCLUDEDIR
CMAKE_INSTALL_LIBDIR
CMAKE_INSTALL_DATADIR
PATH_VARS CMAKE_INSTALL_INCLUDEDIR CMAKE_INSTALL_LIBDIR CMAKE_INSTALL_DATADIR
)
write_basic_package_version_file(
${PROJECT_BINARY_DIR}/CalamaresConfigVersion.cmake
VERSION ${PROJECT_VERSION}
COMPATIBILITY SameMajorVersion
)
install(
EXPORT Calamares
DESTINATION "${CMAKE_INSTALL_CMAKEDIR}"
FILE "CalamaresTargets.cmake"
NAMESPACE Calamares::
)
install(EXPORT Calamares DESTINATION "${CMAKE_INSTALL_CMAKEDIR}" FILE "CalamaresTargets.cmake" NAMESPACE Calamares::)
# Install the cmake files
install(
@ -615,69 +677,48 @@ install(
"CMakeModules/CalamaresCheckModuleSelection.cmake"
"CMakeModules/CMakeColors.cmake"
"CMakeModules/FindYAMLCPP.cmake"
DESTINATION
"${CMAKE_INSTALL_CMAKEDIR}"
DESTINATION "${CMAKE_INSTALL_CMAKEDIR}"
)
### Miscellaneous installs
#
#
if( INSTALL_CONFIG )
install(
FILES settings.conf
DESTINATION share/calamares
)
if(INSTALL_CONFIG)
install(FILES settings.conf DESTINATION share/calamares)
endif()
if( INSTALL_POLKIT )
install(
FILES com.github.calamares.calamares.policy
DESTINATION "${POLKITQT-1_POLICY_FILES_INSTALL_DIR}"
)
if(INSTALL_POLKIT)
install(FILES com.github.calamares.calamares.policy DESTINATION "${POLKITQT-1_POLICY_FILES_INSTALL_DIR}")
endif()
if ( INSTALL_COMPLETION )
if( NOT CMAKE_INSTALL_BASHCOMPLETIONDIR )
set( CMAKE_INSTALL_BASHCOMPLETIONDIR "${CMAKE_INSTALL_DATADIR}/bash-completion/completions" )
if(INSTALL_COMPLETION)
if(NOT CMAKE_INSTALL_BASHCOMPLETIONDIR)
set(CMAKE_INSTALL_BASHCOMPLETIONDIR "${CMAKE_INSTALL_DATADIR}/bash-completion/completions")
endif()
install( FILES ${CMAKE_SOURCE_DIR}/data/completion/bash/calamares DESTINATION "${CMAKE_INSTALL_BASHCOMPLETIONDIR}" )
install(FILES ${CMAKE_SOURCE_DIR}/data/completion/bash/calamares DESTINATION "${CMAKE_INSTALL_BASHCOMPLETIONDIR}")
endif()
install(
FILES calamares.desktop
DESTINATION ${CMAKE_INSTALL_DATADIR}/applications
)
install(FILES calamares.desktop DESTINATION ${CMAKE_INSTALL_DATADIR}/applications)
install(
FILES man/calamares.8
DESTINATION ${CMAKE_INSTALL_MANDIR}/man8/
)
install(FILES man/calamares.8 DESTINATION ${CMAKE_INSTALL_MANDIR}/man8/)
# uninstall target
configure_file(
"${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
IMMEDIATE @ONLY
IMMEDIATE
@ONLY
)
add_custom_target( uninstall
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake
)
add_custom_target(uninstall COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake)
### CMAKE SUMMARY REPORT
#
get_directory_property( SKIPPED_MODULES
DIRECTORY src/modules
DEFINITION LIST_SKIPPED_MODULES
)
get_directory_property(SKIPPED_MODULES DIRECTORY src/modules DEFINITION LIST_SKIPPED_MODULES)
calamares_explain_skipped_modules( ${SKIPPED_MODULES} )
feature_summary(
WHAT DISABLED_FEATURES
DESCRIPTION "The following features have been disabled:"
QUIET_ON_EMPTY
)
feature_summary(WHAT DISABLED_FEATURES DESCRIPTION "The following features have been disabled:" QUIET_ON_EMPTY)
feature_summary(
WHAT OPTIONAL_PACKAGES_NOT_FOUND
DESCRIPTION "The following OPTIONAL packages were not found:"
@ -697,7 +738,9 @@ feature_summary(
# TODO:3.3 With newer CMake, move HOMEPAGE_URL to the project()call
set(CPACK_PACKAGE_VENDOR calamares)
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "A Linux system installer")
set(CPACK_PACKAGE_DESCRIPTION "Calamares is a Linux system installer, intended for Linux distributions to use on their ISOs and other bootable media to install the distribution to the end-user's computer. Calamares can also be used as an OEM configuration tool. It is modular, extensible and highly-configurable for Linux distributions from all five major Linux families.")
set(CPACK_PACKAGE_DESCRIPTION
"Calamares is a Linux system installer, intended for Linux distributions to use on their ISOs and other bootable media to install the distribution to the end-user's computer. Calamares can also be used as an OEM configuration tool. It is modular, extensible and highly-configurable for Linux distributions from all five major Linux families."
)
set(CPACK_PACKAGE_HOMEPAGE_URL "https://calamares.io")
set(CPACK_PACKAGE_ICON "data/images/squid.png")

View File

@ -13,15 +13,15 @@
# - defines an OBJECT LIBRARY calamares-i18n for linking the compiled
# translations into an executable.
include( CalamaresAddTranslations )
include(CalamaresAddTranslations)
find_package(Qt5 COMPONENTS Xml)
if( Qt5Xml_FOUND )
if(Qt5Xml_FOUND)
add_executable(txload txload.cpp)
target_link_libraries(txload Qt5::Xml)
endif()
install_calamares_gettext_translations( python
install_calamares_gettext_translations(python
SOURCE_DIR ${CMAKE_SOURCE_DIR}/lang/python
FILENAME python.mo
RENAME calamares-python.mo
@ -30,25 +30,25 @@ install_calamares_gettext_translations( python
### TRANSLATIONS
#
#
set( TS_FILES "" )
set( calamares_i18n_qrc_content "" )
set(TS_FILES "")
set(calamares_i18n_qrc_content "")
# calamares and qt language files
foreach( lang ${CALAMARES_TRANSLATION_LANGUAGES} )
foreach( tlsource "calamares_${lang}" "tz_${lang}" "kb_${lang}" )
if( EXISTS "${CMAKE_SOURCE_DIR}/lang/${tlsource}.ts" )
string( APPEND calamares_i18n_qrc_content "<file>${tlsource}.qm</file>\n" )
list( APPEND TS_FILES "${CMAKE_SOURCE_DIR}/lang/${tlsource}.ts" )
foreach(lang ${CALAMARES_TRANSLATION_LANGUAGES})
foreach(tlsource "calamares_${lang}" "tz_${lang}" "kb_${lang}")
if(EXISTS "${CMAKE_SOURCE_DIR}/lang/${tlsource}.ts")
string(APPEND calamares_i18n_qrc_content "<file>${tlsource}.qm</file>\n")
list(APPEND TS_FILES "${CMAKE_SOURCE_DIR}/lang/${tlsource}.ts")
endif()
endforeach()
endforeach()
set( trans_file calamares_i18n )
set( trans_infile ${CMAKE_CURRENT_BINARY_DIR}/${trans_file}.qrc )
set( trans_outfile ${CMAKE_CURRENT_BINARY_DIR}/calamares-i18n.cxx )
set( CALAMARES_TRANSLATIONS_SOURCE ${trans_outfile} )
set(trans_file calamares_i18n)
set(trans_infile ${CMAKE_CURRENT_BINARY_DIR}/${trans_file}.qrc)
set(trans_outfile ${CMAKE_CURRENT_BINARY_DIR}/calamares-i18n.cxx)
set(CALAMARES_TRANSLATIONS_SOURCE ${trans_outfile})
configure_file( ${CMAKE_SOURCE_DIR}/lang/calamares_i18n.qrc.in ${trans_infile} @ONLY )
configure_file(${CMAKE_SOURCE_DIR}/lang/calamares_i18n.qrc.in ${trans_infile} @ONLY)
qt5_add_translation(QM_FILES ${TS_FILES})

View File

@ -3,26 +3,26 @@
# SPDX-FileCopyrightText: 2020 Adriaan de Groot <groot@kde.org>
# SPDX-License-Identifier: BSD-2-Clause
#
include( CalamaresAddBrandingSubdirectory )
include( CalamaresAddLibrary )
include( CalamaresAddModuleSubdirectory )
include( CalamaresAddPlugin )
include( CalamaresAddTest )
include( CalamaresAddTranslations )
include(CalamaresAddBrandingSubdirectory)
include(CalamaresAddLibrary)
include(CalamaresAddModuleSubdirectory)
include(CalamaresAddPlugin)
include(CalamaresAddTest)
include(CalamaresAddTranslations)
# library
add_subdirectory( libcalamares )
add_subdirectory(libcalamares)
add_subdirectory( libcalamaresui )
add_subdirectory(libcalamaresui)
# all things qml
add_subdirectory( qml/calamares )
add_subdirectory(qml/calamares)
# application
add_subdirectory( calamares )
add_subdirectory(calamares)
# plugins
add_subdirectory( modules )
add_subdirectory(modules)
# branding components
add_subdirectory( branding )
add_subdirectory(branding)

View File

@ -4,14 +4,12 @@
# SPDX-License-Identifier: BSD-2-Clause
#
set( calamaresSources
set(calamaresSources
main.cpp
CalamaresApplication.cpp
CalamaresWindow.cpp
DebugWindow.cpp
VariantModel.cpp
progresstree/ProgressTreeDelegate.cpp
progresstree/ProgressTreeView.cpp
)
@ -31,42 +29,30 @@ include_directories(
# The calamares-i18n.cxx file -- full path in CALAMARES_TRANSLATIONS_SOURCE --
# is created as a target in the lang/ directory. This is compiled to a
# library (it's just the result of a QRC compile).
add_executable( calamares_bin ${calamaresSources} calamares.qrc )
target_include_directories( calamares_bin PRIVATE ${CMAKE_SOURCE_DIR} )
set_target_properties(calamares_bin
PROPERTIES
ENABLE_EXPORTS TRUE
RUNTIME_OUTPUT_NAME calamares
)
add_executable(calamares_bin ${calamaresSources} calamares.qrc)
target_include_directories(calamares_bin PRIVATE ${CMAKE_SOURCE_DIR})
set_target_properties(calamares_bin PROPERTIES ENABLE_EXPORTS TRUE RUNTIME_OUTPUT_NAME calamares)
calamares_automoc( calamares_bin )
calamares_autouic( calamares_bin )
calamares_autorcc( calamares_bin )
if( kdsagSources )
set_source_files_properties( ${kdsagSources} PROPERTIES AUTOMOC OFF )
if(kdsagSources)
set_source_files_properties(${kdsagSources} PROPERTIES AUTOMOC OFF)
endif()
target_link_libraries( calamares_bin
PRIVATE
calamares
calamaresui
calamares-i18n
Qt5::Core
Qt5::Widgets
KF5::CoreAddons
KF5::DBusAddons
target_link_libraries(
calamares_bin
PRIVATE calamares calamaresui calamares-i18n Qt5::Core Qt5::Widgets KF5::CoreAddons KF5::DBusAddons
)
if( BUILD_KF5Crash )
target_link_libraries( calamares_bin PRIVATE KF5::Crash )
target_compile_definitions( calamares_bin PRIVATE BUILD_KF5Crash )
if(BUILD_KF5Crash)
target_link_libraries(calamares_bin PRIVATE KF5::Crash)
target_compile_definitions(calamares_bin PRIVATE BUILD_KF5Crash)
endif()
install( TARGETS calamares_bin
BUNDLE DESTINATION .
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
install(TARGETS calamares_bin BUNDLE DESTINATION . RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
install( FILES ${CMAKE_SOURCE_DIR}/data/images/squid.svg
install(
FILES ${CMAKE_SOURCE_DIR}/data/images/squid.svg
RENAME calamares.svg
DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/scalable/apps
)
@ -74,11 +60,11 @@ install( FILES ${CMAKE_SOURCE_DIR}/data/images/squid.svg
### TESTS
#
#
if( BUILD_TESTING )
if(BUILD_TESTING)
# Don't install, these are just for enable_testing
add_executable( loadmodule testmain.cpp )
target_link_libraries( loadmodule PRIVATE Qt5::Core Qt5::Widgets calamares calamaresui )
add_executable(loadmodule testmain.cpp)
target_link_libraries(loadmodule PRIVATE Qt5::Core Qt5::Widgets calamares calamaresui)
add_executable( test_conf test_conf.cpp )
target_link_libraries( test_conf PUBLIC yamlcpp::yamlcpp Qt5::Core )
add_executable(test_conf test_conf.cpp)
target_link_libraries(test_conf PUBLIC yamlcpp::yamlcpp Qt5::Core)
endif()

View File

@ -8,7 +8,7 @@
# individual modules can also decide they must be skipped (e.g. OS-specific
# modules, or ones with unmet dependencies). Collect the skipped modules
# in this list.
set( LIST_SKIPPED_MODULES "" )
set(LIST_SKIPPED_MODULES "")
include_directories(
${CMAKE_SOURCE_DIR}/src/libcalamares
@ -16,46 +16,47 @@ include_directories(
${CMAKE_SOURCE_DIR}/src/libcalamaresui
)
string( REPLACE " " ";" SKIP_LIST "${SKIP_MODULES}" )
string(REPLACE " " ";" SKIP_LIST "${SKIP_MODULES}")
file( GLOB SUBDIRECTORIES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*" )
list( SORT SUBDIRECTORIES )
file(GLOB SUBDIRECTORIES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*")
list(SORT SUBDIRECTORIES)
foreach( SUBDIRECTORY ${SUBDIRECTORIES} )
foreach(SUBDIRECTORY ${SUBDIRECTORIES})
calamares_add_module_subdirectory( ${SUBDIRECTORY} LIST_SKIPPED_MODULES )
endforeach()
# TODO:3.3: Use FindPython3
if ( BUILD_TESTING AND BUILD_SCHEMA_TESTING AND PYTHONINTERP_FOUND AND PYTHON_EXECUTABLE )
if(BUILD_TESTING AND BUILD_SCHEMA_TESTING AND PYTHONINTERP_FOUND AND PYTHON_EXECUTABLE)
# The tests for each config file are independent of whether the
# module is enabled or not: the config file should match its schema
# regardless.
foreach( SUBDIRECTORY ${SUBDIRECTORIES} )
set( _schema_file "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/${SUBDIRECTORY}.schema.yaml" )
foreach(SUBDIRECTORY ${SUBDIRECTORIES})
set(_schema_file "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/${SUBDIRECTORY}.schema.yaml")
# Collect config files from the module-directory and from a tests/ subdir,
# using the same mechanism to find those test-config-files as function
# calamares_add_module_subdirectory() would do.
set( _conf_files "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/${SUBDIRECTORY}.conf" )
set( _count 1 )
set( _testdir "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/tests" )
while ( EXISTS "${_testdir}/${_count}.global" OR EXISTS "${_testdir}/${_count}.job" )
if ( EXISTS "${_testdir}/${_count}.job" )
list( APPEND _conf_files "${_testdir}/${_count}.job" )
set(_conf_files "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/${SUBDIRECTORY}.conf")
set(_count 1)
set(_testdir "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/tests")
while(EXISTS "${_testdir}/${_count}.global" OR EXISTS "${_testdir}/${_count}.job")
if(EXISTS "${_testdir}/${_count}.job")
list(APPEND _conf_files "${_testdir}/${_count}.job")
endif()
math( EXPR _count "${_count} + 1" )
math(EXPR _count "${_count} + 1")
endwhile()
if ( EXISTS "${_schema_file}" )
foreach( _conf_file ${_conf_files} )
if ( EXISTS ${_conf_file} )
get_filename_component( _conf_base "${_conf_file}" NAME_WE )
if(EXISTS "${_schema_file}")
foreach(_conf_file ${_conf_files})
if(EXISTS ${_conf_file})
get_filename_component(_conf_base "${_conf_file}" NAME_WE)
add_test(
NAME validate-${SUBDIRECTORY}-${_conf_base}
COMMAND ${PYTHON_EXECUTABLE} "${CMAKE_SOURCE_DIR}/ci/configvalidator.py" "${_schema_file}" "${_conf_file}"
COMMAND
${PYTHON_EXECUTABLE} "${CMAKE_SOURCE_DIR}/ci/configvalidator.py" "${_schema_file}"
"${_conf_file}"
)
endif()
endforeach()
endif()
endforeach()
endif()

View File

@ -3,7 +3,7 @@
# SPDX-FileCopyrightText: 2020 Adriaan de Groot <groot@kde.org>
# SPDX-License-Identifier: BSD-2-Clause
#
calamares_add_plugin( contextualprocess
calamares_add_plugin(contextualprocess
TYPE job
EXPORT_MACRO PLUGINDLLEXPORT_PRO
SOURCES
@ -16,6 +16,5 @@ calamares_add_test(
SOURCES
Tests.cpp
ContextualProcessJob.cpp # Builds it a second time
LIBRARIES
yamlcpp::yamlcpp
LIBRARIES yamlcpp::yamlcpp
)

View File

@ -3,7 +3,7 @@
# SPDX-FileCopyrightText: 2020 Adriaan de Groot <groot@kde.org>
# SPDX-License-Identifier: BSD-2-Clause
#
calamares_add_plugin( dracutlukscfg
calamares_add_plugin(dracutlukscfg
TYPE job
EXPORT_MACRO PLUGINDLLEXPORT_PRO
SOURCES

View File

@ -3,7 +3,7 @@
# SPDX-FileCopyrightText: 2020 Adriaan de Groot <groot@kde.org>
# SPDX-License-Identifier: BSD-2-Clause
#
calamares_add_plugin( dummycpp
calamares_add_plugin(dummycpp
TYPE job
EXPORT_MACRO PLUGINDLLEXPORT_PRO
SOURCES

View File

@ -3,11 +3,11 @@
# SPDX-FileCopyrightText: 2020 Adriaan de Groot <groot@kde.org>
# SPDX-License-Identifier: BSD-2-Clause
#
find_package( Qt5 ${QT_VERSION} CONFIG REQUIRED DBus Network )
find_package(Qt5 ${QT_VERSION} CONFIG REQUIRED DBus Network)
include_directories( ${PROJECT_BINARY_DIR}/src/libcalamaresui )
include_directories(${PROJECT_BINARY_DIR}/src/libcalamaresui)
calamares_add_plugin( finished
calamares_add_plugin(finished
TYPE viewmodule
EXPORT_MACRO PLUGINDLLEXPORT_PRO
SOURCES

View File

@ -3,21 +3,21 @@
# SPDX-FileCopyrightText: 2021 Anke Boersma <demm@kaosx.us>
# SPDX-License-Identifier: BSD-2-Clause
#
if( NOT WITH_QML )
if(NOT WITH_QML)
calamares_skip_module( "finishedq (QML is not supported in this build)" )
return()
endif()
find_package( Qt5 ${QT_VERSION} CONFIG COMPONENTS DBus Network )
if ( NOT TARGET Qt5::DBus OR NOT TARGET Qt5::Network )
find_package(Qt5 ${QT_VERSION} CONFIG COMPONENTS DBus Network)
if(NOT TARGET Qt5::DBus OR NOT TARGET Qt5::Network)
calamares_skip_module( "finishedq (missing DBus or Network)" )
return()
endif()
set( _finished ${CMAKE_CURRENT_SOURCE_DIR}/../finished )
include_directories( ${_finished} )
set(_finished ${CMAKE_CURRENT_SOURCE_DIR}/../finished)
include_directories(${_finished})
calamares_add_plugin( finishedq
calamares_add_plugin(finishedq
TYPE viewmodule
EXPORT_MACRO PLUGINDLLEXPORT_PRO
SOURCES

View File

@ -3,18 +3,18 @@
# SPDX-FileCopyrightText: 2020 Adriaan de Groot <groot@kde.org>
# SPDX-License-Identifier: BSD-2-Clause
#
find_package( KF5Config CONFIG )
find_package( KF5I18n CONFIG )
find_package( KF5WidgetsAddons CONFIG )
find_package(KF5Config CONFIG)
find_package(KF5I18n CONFIG)
find_package(KF5WidgetsAddons CONFIG)
include( KPMcoreHelper )
include(KPMcoreHelper)
if ( KPMcore_FOUND AND Qt5DBus_FOUND AND KF5CoreAddons_FOUND AND KF5Config_FOUND )
include_directories( ${KPMCORE_INCLUDE_DIR} ${CMAKE_SOURCE_DIR}/src/modules/partition )
if(KPMcore_FOUND AND Qt5DBus_FOUND AND KF5CoreAddons_FOUND AND KF5Config_FOUND)
include_directories(${KPMCORE_INCLUDE_DIR} ${CMAKE_SOURCE_DIR}/src/modules/partition)
# The PartitionIterator is a small class, and it's easiest -- but also a
# gross hack -- to just compile it again from the partition module tree.
calamares_add_plugin( fsresizer
calamares_add_plugin(fsresizer
TYPE job
EXPORT_MACRO PLUGINDLLEXPORT_PRO
SOURCES
@ -27,15 +27,14 @@ if ( KPMcore_FOUND AND Qt5DBus_FOUND AND KF5CoreAddons_FOUND AND KF5Config_FOUND
calamares_add_test(
fsresizertest
SOURCES
Tests.cpp
SOURCES Tests.cpp
LIBRARIES
calamares_job_fsresizer # From above
yamlcpp::yamlcpp
DEFINITIONS ${KPMcore_API_DEFINITIONS}
)
else()
if ( NOT KPMcore_FOUND )
if(NOT KPMcore_FOUND)
calamares_skip_module( "fsresizer (missing suitable KPMcore)" )
else()
calamares_skip_module( "fsresizer (missing dependencies for KPMcore)" )

View File

@ -8,12 +8,10 @@
add_test(
NAME make-grubcfg-dirs
COMMAND ${CMAKE_COMMAND} -E make_directory
/tmp/calamares/grubcfg-test-2/etc/default
/tmp/calamares/grubcfg-test-3/etc/default
/tmp/calamares/grubcfg-test-4/etc/default/grub.d
)
COMMAND
${CMAKE_COMMAND} -E make_directory /tmp/calamares/grubcfg-test-2/etc/default
/tmp/calamares/grubcfg-test-3/etc/default /tmp/calamares/grubcfg-test-4/etc/default/grub.d
)
set_tests_properties(load-grubcfg-2 PROPERTIES DEPENDS make-grubcfg-dirs)
set_tests_properties(load-grubcfg-3 PROPERTIES DEPENDS make-grubcfg-dirs)
set_tests_properties(load-grubcfg-4 PROPERTIES DEPENDS make-grubcfg-dirs)

View File

@ -3,7 +3,7 @@
# SPDX-FileCopyrightText: 2020 Adriaan de Groot <groot@kde.org>
# SPDX-License-Identifier: BSD-2-Clause
#
calamares_add_plugin( initcpio
calamares_add_plugin(initcpio
TYPE job
EXPORT_MACRO PLUGINDLLEXPORT_PRO
SOURCES
@ -13,8 +13,7 @@ calamares_add_plugin( initcpio
calamares_add_test(
initcpiotest
SOURCES
Tests.cpp
SOURCES Tests.cpp
LIBRARIES
calamares_job_initcpio # From above
yamlcpp::yamlcpp

View File

@ -3,7 +3,7 @@
# SPDX-FileCopyrightText: 2020 Adriaan de Groot <groot@kde.org>
# SPDX-License-Identifier: BSD-2-Clause
#
calamares_add_plugin( initramfs
calamares_add_plugin(initramfs
TYPE job
EXPORT_MACRO PLUGINDLLEXPORT_PRO
SOURCES
@ -13,8 +13,7 @@ calamares_add_plugin( initramfs
calamares_add_test(
initramfstest
SOURCES
Tests.cpp
SOURCES Tests.cpp
LIBRARIES
calamares_job_initramfs # From above
yamlcpp::yamlcpp

View File

@ -5,21 +5,15 @@
#
find_package(ECM ${ECM_VERSION} REQUIRED NO_MODULE)
set( kf5_ver 5.41 )
set(kf5_ver 5.41)
find_package( KF5Service ${kf5_ver} )
find_package( KF5Parts ${kf5_ver} )
set_package_properties(
KF5Service PROPERTIES
PURPOSE "For finding KDE services at runtime"
)
set_package_properties(
KF5Parts PROPERTIES
PURPOSE "For finding KDE parts at runtime"
)
find_package(KF5Service ${kf5_ver})
find_package(KF5Parts ${kf5_ver})
set_package_properties(KF5Service PROPERTIES PURPOSE "For finding KDE services at runtime")
set_package_properties(KF5Parts PROPERTIES PURPOSE "For finding KDE parts at runtime")
if ( KF5Parts_FOUND AND KF5Service_FOUND )
calamares_add_plugin( interactiveterminal
if(KF5Parts_FOUND AND KF5Service_FOUND)
calamares_add_plugin(interactiveterminal
TYPE viewmodule
EXPORT_MACRO PLUGINDLLEXPORT_PRO
SOURCES

View File

@ -3,7 +3,7 @@
# SPDX-FileCopyrightText: 2020 Adriaan de Groot <groot@kde.org>
# SPDX-License-Identifier: BSD-2-Clause
#
calamares_add_plugin( keyboard
calamares_add_plugin(keyboard
TYPE viewmodule
EXPORT_MACRO PLUGINDLLEXPORT_PRO
SOURCES
@ -21,11 +21,4 @@ calamares_add_plugin( keyboard
SHARED_LIB
)
calamares_add_test(
keyboardtest
SOURCES
Tests.cpp
SetKeyboardLayoutJob.cpp
RESOURCES
keyboard.qrc
)
calamares_add_test(keyboardtest SOURCES Tests.cpp SetKeyboardLayoutJob.cpp RESOURCES keyboard.qrc)

View File

@ -3,16 +3,16 @@
# SPDX-FileCopyrightText: 2020 Adriaan de Groot <groot@kde.org>
# SPDX-License-Identifier: BSD-2-Clause
#
if( NOT WITH_QML )
if(NOT WITH_QML)
calamares_skip_module( "keyboardq (QML is not supported in this build)" )
return()
endif()
set( _keyboard ${CMAKE_CURRENT_SOURCE_DIR}/../keyboard )
set(_keyboard ${CMAKE_CURRENT_SOURCE_DIR}/../keyboard)
include_directories( ${_keyboard} )
include_directories(${_keyboard})
calamares_add_plugin( keyboardq
calamares_add_plugin(keyboardq
TYPE viewmodule
EXPORT_MACRO PLUGINDLLEXPORT_PRO
SOURCES

View File

@ -3,9 +3,9 @@
# SPDX-FileCopyrightText: 2020 Adriaan de Groot <groot@kde.org>
# SPDX-License-Identifier: BSD-2-Clause
#
include_directories( ${PROJECT_BINARY_DIR}/src/libcalamaresui )
include_directories(${PROJECT_BINARY_DIR}/src/libcalamaresui)
calamares_add_plugin( license
calamares_add_plugin(license
TYPE viewmodule
EXPORT_MACRO PLUGINDLLEXPORT_PRO
SOURCES

View File

@ -7,14 +7,14 @@
# When debugging the timezone widget, add this debugging definition
# to have a debugging-friendly timezone widget, debug logging,
# and no intrusive timezone-setting while clicking around.
option( DEBUG_TIMEZONES "Debug-friendly timezone widget." OFF )
if( DEBUG_TIMEZONES )
add_definitions( -DDEBUG_TIMEZONES )
option(DEBUG_TIMEZONES "Debug-friendly timezone widget." OFF)
if(DEBUG_TIMEZONES)
add_definitions(-DDEBUG_TIMEZONES)
endif()
include_directories( ${PROJECT_BINARY_DIR}/src/libcalamaresui )
include_directories(${PROJECT_BINARY_DIR}/src/libcalamaresui)
calamares_add_plugin( locale
calamares_add_plugin(locale
TYPE viewmodule
EXPORT_MACRO PLUGINDLLEXPORT_PRO
SOURCES
@ -39,15 +39,7 @@ calamares_add_plugin( locale
calamares_add_test(
localetest
SOURCES
Tests.cpp
Config.cpp
LocaleConfiguration.cpp
SetTimezoneJob.cpp
timezonewidget/TimeZoneImage.cpp
DEFINITIONS
SOURCE_DIR="${CMAKE_CURRENT_LIST_DIR}/images"
DEBUG_TIMEZONES=1
LIBRARIES
Qt5::Gui
SOURCES Tests.cpp Config.cpp LocaleConfiguration.cpp SetTimezoneJob.cpp timezonewidget/TimeZoneImage.cpp
DEFINITIONS SOURCE_DIR="${CMAKE_CURRENT_LIST_DIR}/images" DEBUG_TIMEZONES=1
LIBRARIES Qt5::Gui
)

View File

@ -3,7 +3,7 @@
# SPDX-FileCopyrightText: 2020 Adriaan de Groot <groot@kde.org>
# SPDX-License-Identifier: BSD-2-Clause
#
if( NOT WITH_QML )
if(NOT WITH_QML)
calamares_skip_module( "localeq (QML is not supported in this build)" )
return()
endif()
@ -11,28 +11,22 @@ endif()
# When debugging the timezone widget, add this debugging definition
# to have a debugging-friendly timezone widget, debug logging,
# and no intrusive timezone-setting while clicking around.
option( DEBUG_TIMEZONES "Debug-friendly timezone widget." OFF )
if( DEBUG_TIMEZONES )
add_definitions( -DDEBUG_TIMEZONES )
option(DEBUG_TIMEZONES "Debug-friendly timezone widget." OFF)
if(DEBUG_TIMEZONES)
add_definitions(-DDEBUG_TIMEZONES)
endif()
find_package(Qt5Location CONFIG)
set_package_properties(Qt5Location PROPERTIES
DESCRIPTION "Used for rendering the map"
TYPE RUNTIME
)
set_package_properties(Qt5Location PROPERTIES DESCRIPTION "Used for rendering the map" TYPE RUNTIME)
find_package(Qt5Positioning CONFIG)
set_package_properties(Qt5Positioning PROPERTIES
DESCRIPTION "Used for GeoLocation and GeoCoding"
TYPE RUNTIME
)
set_package_properties(Qt5Positioning PROPERTIES DESCRIPTION "Used for GeoLocation and GeoCoding" TYPE RUNTIME)
# Because we're sharing sources with the regular locale module
set( _locale ${CMAKE_CURRENT_SOURCE_DIR}/../locale )
set(_locale ${CMAKE_CURRENT_SOURCE_DIR}/../locale)
include_directories( ${_locale} )
include_directories(${_locale})
calamares_add_plugin( localeq
calamares_add_plugin(localeq
TYPE viewmodule
EXPORT_MACRO PLUGINDLLEXPORT_PRO
SOURCES

View File

@ -3,7 +3,7 @@
# SPDX-FileCopyrightText: 2020 Adriaan de Groot <groot@kde.org>
# SPDX-License-Identifier: BSD-2-Clause
#
calamares_add_plugin( luksbootkeyfile
calamares_add_plugin(luksbootkeyfile
TYPE job
EXPORT_MACRO PLUGINDLLEXPORT_PRO
SOURCES

View File

@ -6,7 +6,7 @@
# Because LUKS Open Swap Hook (Job) is such a mouthful, we'll
# use LOSH all over the place as a shorthand.
calamares_add_plugin( luksopenswaphookcfg
calamares_add_plugin(luksopenswaphookcfg
TYPE job
EXPORT_MACRO PLUGINDLLEXPORT_PRO
SOURCES
@ -14,9 +14,4 @@ calamares_add_plugin( luksopenswaphookcfg
SHARED_LIB
)
calamares_add_test(
luksopenswaphooktest
SOURCES
LOSHJob.cpp
Tests.cpp
)
calamares_add_test(luksopenswaphooktest SOURCES LOSHJob.cpp Tests.cpp)

View File

@ -3,7 +3,7 @@
# SPDX-FileCopyrightText: 2020 Adriaan de Groot <groot@kde.org>
# SPDX-License-Identifier: BSD-2-Clause
#
calamares_add_plugin( machineid
calamares_add_plugin(machineid
TYPE job
EXPORT_MACRO PLUGINDLLEXPORT_PRO
SOURCES
@ -12,10 +12,4 @@ calamares_add_plugin( machineid
SHARED_LIB
)
calamares_add_test(
machineidtest
SOURCES
Tests.cpp
MachineIdJob.cpp
Workers.cpp
)
calamares_add_test(machineidtest SOURCES Tests.cpp MachineIdJob.cpp Workers.cpp)

View File

@ -3,12 +3,12 @@
# SPDX-FileCopyrightText: 2020 Adriaan de Groot <groot@kde.org>
# SPDX-License-Identifier: BSD-2-Clause
#
if( NOT WITH_QML )
if(NOT WITH_QML)
calamares_skip_module( "notesqml (QML is not supported in this build)" )
return()
endif()
calamares_add_plugin( notesqml
calamares_add_plugin(notesqml
TYPE viewmodule
EXPORT_MACRO PLUGINDLLEXPORT_PRO
SOURCES

View File

@ -3,7 +3,7 @@
# SPDX-FileCopyrightText: 2020 Adriaan de Groot <groot@kde.org>
# SPDX-License-Identifier: BSD-2-Clause
#
calamares_add_plugin( oemid
calamares_add_plugin(oemid
TYPE viewmodule
EXPORT_MACRO PLUGINDLLEXPORT_PRO
SOURCES

View File

@ -3,45 +3,46 @@
# SPDX-FileCopyrightText: 2020 Adriaan de Groot <groot@kde.org>
# SPDX-License-Identifier: BSD-2-Clause
#
find_package( Qt5 COMPONENTS Core Gui Widgets REQUIRED )
set( _extra_libraries "" )
set( _extra_src "" )
find_package(Qt5 COMPONENTS Core Gui Widgets REQUIRED)
set(_extra_libraries "")
set(_extra_src "")
### OPTIONAL AppData XML support in PackageModel
#
#
# TODO:3.3:WITH->BUILD (this doesn't affect the ABI offered by Calamares)
option( WITH_APPDATA "Support appdata: items in PackageChooser (requires QtXml)" ON )
if ( WITH_APPDATA )
option(WITH_APPDATA "Support appdata: items in PackageChooser (requires QtXml)" ON)
if(WITH_APPDATA)
find_package(Qt5 COMPONENTS Xml)
if ( Qt5Xml_FOUND )
add_definitions( -DHAVE_APPDATA )
list( APPEND _extra_libraries Qt5::Xml )
list( APPEND _extra_src ItemAppData.cpp )
if(Qt5Xml_FOUND)
add_definitions(-DHAVE_APPDATA)
list(APPEND _extra_libraries Qt5::Xml)
list(APPEND _extra_src ItemAppData.cpp)
endif()
endif()
### OPTIONAL AppStream support in PackageModel
#
#
option( WITH_APPSTREAM "Support appstream: items in PackageChooser (requires libappstream-qt)" ON )
if ( WITH_APPSTREAM )
option(WITH_APPSTREAM "Support appstream: items in PackageChooser (requires libappstream-qt)" ON)
if(WITH_APPSTREAM)
find_package(AppStreamQt)
set_package_properties(
AppStreamQt PROPERTIES
AppStreamQt
PROPERTIES
DESCRIPTION "Support for AppStream (cache) data"
URL "https://github.com/ximion/appstream"
PURPOSE "AppStream provides package data"
TYPE OPTIONAL
)
if ( AppStreamQt_FOUND )
add_definitions( -DHAVE_APPSTREAM )
list( APPEND _extra_libraries AppStreamQt )
list( APPEND _extra_src ItemAppStream.cpp )
if(AppStreamQt_FOUND)
add_definitions(-DHAVE_APPSTREAM)
list(APPEND _extra_libraries AppStreamQt)
list(APPEND _extra_src ItemAppStream.cpp)
endif()
endif()
calamares_add_plugin( packagechooser
calamares_add_plugin(packagechooser
TYPE viewmodule
EXPORT_MACRO PLUGINDLLEXPORT_PRO
SOURCES
@ -62,9 +63,6 @@ calamares_add_plugin( packagechooser
calamares_add_test(
packagechoosertest
GUI
SOURCES
Tests.cpp
LIBRARIES
calamares_viewmodule_packagechooser
${_extra_libraries}
SOURCES Tests.cpp
LIBRARIES calamares_viewmodule_packagechooser ${_extra_libraries}
)

View File

@ -4,55 +4,56 @@
# SPDX-FileCopyrightText: 2021 Anke Boersma <demm@kaosx.us>
# SPDX-License-Identifier: BSD-2-Clause
#
if( NOT WITH_QML )
if(NOT WITH_QML)
calamares_skip_module( "packagechooserq (QML is not supported in this build)" )
return()
endif()
find_package( Qt5 ${QT_VERSION} CONFIG REQUIRED Core )
find_package(Qt5 ${QT_VERSION} CONFIG REQUIRED Core)
# Add optional libraries here
set( USER_EXTRA_LIB )
set(USER_EXTRA_LIB)
# include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/../packagechooser )
set( _packagechooser ${CMAKE_CURRENT_SOURCE_DIR}/../packagechooser )
include_directories( ${_packagechooser} )
set(_packagechooser ${CMAKE_CURRENT_SOURCE_DIR}/../packagechooser)
include_directories(${_packagechooser})
### OPTIONAL AppData XML support in PackageModel
#
#
# TODO:3.3:WITH->BUILD (this doesn't affect the ABI offered by Calamares)
option( WITH_APPDATA "Support appdata: items in PackageChooser (requires QtXml)" ON )
if ( WITH_APPDATA )
option(WITH_APPDATA "Support appdata: items in PackageChooser (requires QtXml)" ON)
if(WITH_APPDATA)
find_package(Qt5 COMPONENTS Xml)
if ( Qt5Xml_FOUND )
add_definitions( -DHAVE_APPDATA )
list( APPEND _extra_libraries Qt5::Xml )
list( APPEND _extra_src ${_packagechooser}/ItemAppData.cpp )
if(Qt5Xml_FOUND)
add_definitions(-DHAVE_APPDATA)
list(APPEND _extra_libraries Qt5::Xml)
list(APPEND _extra_src ${_packagechooser}/ItemAppData.cpp)
endif()
endif()
### OPTIONAL AppStream support in PackageModel
#
#
option( WITH_APPSTREAM "Support appstream: items in PackageChooser (requires libappstream-qt)" ON )
if ( WITH_APPSTREAM )
option(WITH_APPSTREAM "Support appstream: items in PackageChooser (requires libappstream-qt)" ON)
if(WITH_APPSTREAM)
find_package(AppStreamQt)
set_package_properties(
AppStreamQt PROPERTIES
AppStreamQt
PROPERTIES
DESCRIPTION "Support for AppStream (cache) data"
URL "https://github.com/ximion/appstream"
PURPOSE "AppStream provides package data"
TYPE OPTIONAL
)
if ( AppStreamQt_FOUND )
add_definitions( -DHAVE_APPSTREAM )
list( APPEND _extra_libraries AppStreamQt )
list( APPEND _extra_src ${_packagechooser}/ItemAppStream.cpp )
if(AppStreamQt_FOUND)
add_definitions(-DHAVE_APPSTREAM)
list(APPEND _extra_libraries AppStreamQt)
list(APPEND _extra_src ${_packagechooser}/ItemAppStream.cpp)
endif()
endif()
calamares_add_plugin( packagechooserq
calamares_add_plugin(packagechooserq
TYPE viewmodule
EXPORT_MACRO PLUGINDLLEXPORT_PRO
SOURCES

View File

@ -14,29 +14,33 @@ add_test(
)
add_test(
NAME configure-packages-${_pm}-ops-1
COMMAND env PYTHONPATH=.: python3 ${CMAKE_CURRENT_LIST_DIR}/test-pm-${_pm}.py ${CMAKE_CURRENT_LIST_DIR}/pm-pacman-1.yaml 4 1 1
COMMAND
env PYTHONPATH=.: python3 ${CMAKE_CURRENT_LIST_DIR}/test-pm-${_pm}.py ${CMAKE_CURRENT_LIST_DIR}/pm-pacman-1.yaml
4 1 1
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
)
add_test(
NAME configure-packages-${_pm}-ops-2
COMMAND env PYTHONPATH=.: python3 ${CMAKE_CURRENT_LIST_DIR}/test-pm-${_pm}.py ${CMAKE_CURRENT_LIST_DIR}/pm-pacman-2.yaml 3 0 0
COMMAND
env PYTHONPATH=.: python3 ${CMAKE_CURRENT_LIST_DIR}/test-pm-${_pm}.py ${CMAKE_CURRENT_LIST_DIR}/pm-pacman-2.yaml
3 0 0
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
)
if ( BUILD_TESTING AND BUILD_SCHEMA_TESTING AND PYTHONINTERP_FOUND AND PYTHON_EXECUTABLE )
set( _module packages )
set( _schema_file "${CMAKE_CURRENT_SOURCE_DIR}/${_module}/${_module}.schema.yaml" )
if(BUILD_TESTING AND BUILD_SCHEMA_TESTING AND PYTHONINTERP_FOUND AND PYTHON_EXECUTABLE)
set(_module packages)
set(_schema_file "${CMAKE_CURRENT_SOURCE_DIR}/${_module}/${_module}.schema.yaml")
message(STATUS "Schema ${_schema_file}")
foreach( _cf pm-pacman-1.yaml pm-pacman-2.yaml )
set( _conf_file "${CMAKE_CURRENT_SOURCE_DIR}/${_module}/tests/${_cf}" )
if ( EXISTS "${_schema_file}" AND EXISTS "${_conf_file}" )
foreach(_cf pm-pacman-1.yaml pm-pacman-2.yaml)
set(_conf_file "${CMAKE_CURRENT_SOURCE_DIR}/${_module}/tests/${_cf}")
if(EXISTS "${_schema_file}" AND EXISTS "${_conf_file}")
add_test(
NAME validate-packages-${_cf}
COMMAND ${PYTHON_EXECUTABLE} "${CMAKE_SOURCE_DIR}/ci/configvalidator.py" "${_schema_file}" "${_conf_file}"
COMMAND
${PYTHON_EXECUTABLE} "${CMAKE_SOURCE_DIR}/ci/configvalidator.py" "${_schema_file}" "${_conf_file}"
)
else()
message(FATAL_ERROR "Missing ${_conf_file}")
endif()
endforeach()
endif()

View File

@ -11,41 +11,41 @@
# 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 )
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 )
option(DEBUG_FILESYSTEMS "Log all available Filesystems from KPMCore." OFF)
include_directories( ${CMAKE_SOURCE_DIR} ) # For 3rdparty
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 )
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 )
list(APPEND _partition_defs DEBUG_PARTITION_UNSAFE)
endif()
if ( DEBUG_FILESYSTEMS )
list( APPEND _partition_defs DEBUG_FILESYSTEMS )
if(DEBUG_FILESYSTEMS)
list(APPEND _partition_defs DEBUG_FILESYSTEMS)
endif()
find_package(ECM ${ECM_VERSION} REQUIRED NO_MODULE)
include( KPMcoreHelper )
include(KPMcoreHelper)
find_package( KF5Config CONFIG )
find_package( KF5I18n CONFIG )
find_package( KF5WidgetsAddons CONFIG )
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 )
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 )
add_subdirectory(tests)
calamares_add_plugin( partition
calamares_add_plugin(partition
TYPE viewmodule
EXPORT_MACRO PLUGINDLLEXPORT_PRO
SOURCES
@ -113,10 +113,9 @@ if ( KPMcore_FOUND AND Qt5DBus_FOUND AND KF5CoreAddons_FOUND AND KF5Config_FOUND
SHARED_LIB
)
else()
if ( NOT KPMcore_FOUND )
if(NOT KPMcore_FOUND)
calamares_skip_module( "partition (missing suitable KPMcore)" )
else()
calamares_skip_module( "partition (missing dependencies for KPMcore)" )
endif()
endif()

View File

@ -3,9 +3,9 @@
# SPDX-FileCopyrightText: 2020 Adriaan de Groot <groot@kde.org>
# SPDX-License-Identifier: BSD-2-Clause
#
find_package( Qt5 COMPONENTS Gui REQUIRED )
find_package(Qt5 COMPONENTS Gui REQUIRED)
set( PartitionModule_SOURCE_DIR .. )
set(PartitionModule_SOURCE_DIR ..)
include_directories(
${Qt5Gui_INCLUDE_DIRS}
@ -25,22 +25,17 @@ calamares_add_test(
${PartitionModule_SOURCE_DIR}/jobs/DeletePartitionJob.cpp
${PartitionModule_SOURCE_DIR}/jobs/PartitionJob.cpp
${PartitionModule_SOURCE_DIR}/jobs/ResizePartitionJob.cpp
LIBRARIES
kpmcore
LIBRARIES kpmcore
DEFINITIONS ${_partition_defs}
)
calamares_add_test(
partitionclearmountsjobtest
SOURCES
${PartitionModule_SOURCE_DIR}/jobs/ClearMountsJob.cpp
ClearMountsJobTests.cpp
LIBRARIES
kpmcore
SOURCES ${PartitionModule_SOURCE_DIR}/jobs/ClearMountsJob.cpp ClearMountsJobTests.cpp
LIBRARIES kpmcore
DEFINITIONS ${_partition_defs}
)
calamares_add_test(
partitioncreatelayoutstest
SOURCES
@ -50,26 +45,19 @@ calamares_add_test(
${PartitionModule_SOURCE_DIR}/core/PartitionLayout.cpp
${PartitionModule_SOURCE_DIR}/core/PartUtils.cpp
${PartitionModule_SOURCE_DIR}/core/DeviceModel.cpp
LIBRARIES
kpmcore
Calamares::calamaresui
LIBRARIES kpmcore Calamares::calamaresui
DEFINITIONS ${_partition_defs}
)
calamares_add_test(
partitionautomounttest
SOURCES
${PartitionModule_SOURCE_DIR}/jobs/AutoMountManagementJob.cpp
AutoMountTests.cpp
SOURCES ${PartitionModule_SOURCE_DIR}/jobs/AutoMountManagementJob.cpp AutoMountTests.cpp
DEFINITIONS ${_partition_defs}
)
calamares_add_test(
partitiondevicestest
SOURCES
DevicesTests.cpp
${PartitionModule_SOURCE_DIR}/core/DeviceList.cpp
LIBRARIES
kpmcore
SOURCES DevicesTests.cpp ${PartitionModule_SOURCE_DIR}/core/DeviceList.cpp
LIBRARIES kpmcore
DEFINITIONS ${_partition_defs}
)

View File

@ -7,28 +7,19 @@ find_package(ECM ${ECM_VERSION} REQUIRED NO_MODULE)
# Requires a sufficiently recent Plasma framework, but also
# needs a runtime support component (which we don't test for).
set( lnf_ver 5.41 )
set(lnf_ver 5.41)
find_package( KF5Config ${lnf_ver} )
set_package_properties(
KF5Config PROPERTIES
PURPOSE "For finding default Plasma Look-and-Feel"
)
find_package(KF5Config ${lnf_ver})
set_package_properties(KF5Config PROPERTIES PURPOSE "For finding default Plasma Look-and-Feel")
find_package( KF5Plasma ${lnf_ver} )
set_package_properties(
KF5Plasma PROPERTIES
PURPOSE "For Plasma Look-and-Feel selection"
)
find_package(KF5Plasma ${lnf_ver})
set_package_properties(KF5Plasma PROPERTIES PURPOSE "For Plasma Look-and-Feel selection")
find_package( KF5Package ${lnf_ver} )
set_package_properties(
KF5Package PROPERTIES
PURPOSE "For Plasma Look-and-Feel selection"
)
find_package(KF5Package ${lnf_ver})
set_package_properties(KF5Package PROPERTIES PURPOSE "For Plasma Look-and-Feel selection")
if ( KF5Plasma_FOUND AND KF5Package_FOUND )
calamares_add_plugin( plasmalnf
if(KF5Plasma_FOUND AND KF5Package_FOUND)
calamares_add_plugin(plasmalnf
TYPE viewmodule
EXPORT_MACRO PLUGINDLLEXPORT_PRO
COMPILE_DEFINITIONS
@ -48,7 +39,7 @@ if ( KF5Plasma_FOUND AND KF5Package_FOUND )
KF5::Plasma
SHARED_LIB
)
if ( KF5Config_FOUND )
if(KF5Config_FOUND)
target_compile_definitions(calamares_viewmodule_plasmalnf PRIVATE WITH_KCONFIG)
endif()
else()

View File

@ -3,7 +3,7 @@
# SPDX-FileCopyrightText: 2020 Adriaan de Groot <groot@kde.org>
# SPDX-License-Identifier: BSD-2-Clause
#
calamares_add_plugin( preservefiles
calamares_add_plugin(preservefiles
TYPE job
EXPORT_MACRO PLUGINDLLEXPORT_PRO
SOURCES
@ -14,9 +14,4 @@ calamares_add_plugin( preservefiles
EMERGENCY
)
calamares_add_test(
preservefilestest
SOURCES
Item.cpp
Tests.cpp
)
calamares_add_test(preservefilestest SOURCES Item.cpp Tests.cpp)

View File

@ -3,7 +3,7 @@
# SPDX-FileCopyrightText: 2020 Adriaan de Groot <groot@kde.org>
# SPDX-License-Identifier: BSD-2-Clause
#
calamares_add_plugin( removeuser
calamares_add_plugin(removeuser
TYPE job
EXPORT_MACRO PLUGINDLLEXPORT_PRO
SOURCES

View File

@ -3,7 +3,7 @@
# SPDX-FileCopyrightText: 2020 Adriaan de Groot <groot@kde.org>
# SPDX-License-Identifier: BSD-2-Clause
#
calamares_add_plugin( shellprocess
calamares_add_plugin(shellprocess
TYPE job
EXPORT_MACRO PLUGINDLLEXPORT_PRO
SOURCES
@ -11,10 +11,4 @@ calamares_add_plugin( shellprocess
SHARED_LIB
)
calamares_add_test(
shellprocesstest
SOURCES
Tests.cpp
LIBRARIES
yamlcpp::yamlcpp
)
calamares_add_test(shellprocesstest SOURCES Tests.cpp LIBRARIES yamlcpp::yamlcpp)

View File

@ -3,8 +3,8 @@
# SPDX-FileCopyrightText: 2020 Adriaan de Groot <groot@kde.org>
# SPDX-License-Identifier: BSD-2-Clause
#
include_directories( ${PROJECT_BINARY_DIR}/src/libcalamaresui )
calamares_add_plugin( summary
include_directories(${PROJECT_BINARY_DIR}/src/libcalamaresui)
calamares_add_plugin(summary
TYPE viewmodule
EXPORT_MACRO PLUGINDLLEXPORT_PRO
SOURCES

View File

@ -3,15 +3,15 @@
# SPDX-FileCopyrightText: 2021 Anke Boersma <demm@kaosx.us>
# SPDX-License-Identifier: BSD-2-Clause
#
if( NOT WITH_QML )
if(NOT WITH_QML)
calamares_skip_module( "summaryq (QML is not supported in this build)" )
return()
endif()
set( _summary ${CMAKE_CURRENT_SOURCE_DIR}/../summary )
include_directories( ${_summary} )
set(_summary ${CMAKE_CURRENT_SOURCE_DIR}/../summary)
include_directories(${_summary})
calamares_add_plugin( summaryq
calamares_add_plugin(summaryq
TYPE viewmodule
EXPORT_MACRO PLUGINDLLEXPORT_PRO
SOURCES

View File

@ -3,7 +3,7 @@
# SPDX-FileCopyrightText: 2021 Adriaan de Groot <groot@kde.org>
# SPDX-License-Identifier: BSD-2-Clause
#
calamares_add_plugin( umount
calamares_add_plugin(umount
TYPE job
EXPORT_MACRO PLUGINDLLEXPORT_PRO
SOURCES
@ -12,8 +12,4 @@ calamares_add_plugin( umount
EMERGENCY
)
calamares_add_test(
umounttest
SOURCES
Tests.cpp
)
calamares_add_test(umounttest SOURCES Tests.cpp)

View File

@ -3,39 +3,33 @@
# SPDX-FileCopyrightText: 2020 Adriaan de Groot <groot@kde.org>
# SPDX-License-Identifier: BSD-2-Clause
#
find_package( Qt5 ${QT_VERSION} CONFIG REQUIRED Core DBus Network )
find_package( Crypt REQUIRED )
find_package(Qt5 ${QT_VERSION} CONFIG REQUIRED Core DBus Network)
find_package(Crypt REQUIRED)
# Add optional libraries here
set( USER_EXTRA_LIB )
set(USER_EXTRA_LIB)
find_package( LibPWQuality )
set_package_properties(
LibPWQuality PROPERTIES
PURPOSE "Extra checks of password quality"
)
find_package(LibPWQuality)
set_package_properties(LibPWQuality PROPERTIES PURPOSE "Extra checks of password quality")
if( LibPWQuality_FOUND )
list( APPEND USER_EXTRA_LIB ${LibPWQuality_LIBRARIES} )
include_directories( ${LibPWQuality_INCLUDE_DIRS} )
add_definitions( -DCHECK_PWQUALITY -DHAVE_LIBPWQUALITY )
if(LibPWQuality_FOUND)
list(APPEND USER_EXTRA_LIB ${LibPWQuality_LIBRARIES})
include_directories(${LibPWQuality_INCLUDE_DIRS})
add_definitions(-DCHECK_PWQUALITY -DHAVE_LIBPWQUALITY)
endif()
find_package( ICU COMPONENTS uc i18n )
set_package_properties(
ICU PROPERTIES
PURPOSE "Transliteration support for full name to username conversion"
)
find_package(ICU COMPONENTS uc i18n)
set_package_properties(ICU PROPERTIES PURPOSE "Transliteration support for full name to username conversion")
if( ICU_FOUND )
list( APPEND USER_EXTRA_LIB ICU::uc ICU::i18n )
include_directories( ${ICU_INCLUDE_DIRS} )
add_definitions( -DHAVE_ICU )
if(ICU_FOUND)
list(APPEND USER_EXTRA_LIB ICU::uc ICU::i18n)
include_directories(${ICU_INCLUDE_DIRS})
add_definitions(-DHAVE_ICU)
endif()
include_directories( ${PROJECT_BINARY_DIR}/src/libcalamaresui )
include_directories(${PROJECT_BINARY_DIR}/src/libcalamaresui)
set( _users_src
set(_users_src
# Jobs
CreateUserJob.cpp
MiscJobs.cpp
@ -59,7 +53,7 @@ calamares_add_library(
${CRYPT_LIBRARIES}
)
calamares_add_plugin( users
calamares_add_plugin(users
TYPE viewmodule
EXPORT_MACRO PLUGINDLLEXPORT_PRO
SOURCES
@ -76,14 +70,7 @@ calamares_add_plugin( users
SHARED_LIB
)
calamares_add_test(
userspasswordtest
SOURCES
TestPasswordJob.cpp
SetPasswordJob.cpp
LIBRARIES
${CRYPT_LIBRARIES}
)
calamares_add_test(userspasswordtest SOURCES TestPasswordJob.cpp SetPasswordJob.cpp LIBRARIES ${CRYPT_LIBRARIES})
calamares_add_test(
usersgroupstest
@ -98,9 +85,7 @@ calamares_add_test(
calamares_add_test(
usershostnametest
SOURCES
TestSetHostNameJob.cpp
SetHostNameJob.cpp
SOURCES TestSetHostNameJob.cpp SetHostNameJob.cpp
LIBRARIES
Qt5::DBus # HostName job can use DBus to systemd
)

View File

@ -3,45 +3,39 @@
# SPDX-FileCopyrightText: 2020 Adriaan de Groot <groot@kde.org>
# SPDX-License-Identifier: BSD-2-Clause
#
if( NOT WITH_QML )
if(NOT WITH_QML)
calamares_skip_module( "usersq (QML is not supported in this build)" )
return()
endif()
find_package( Qt5 ${QT_VERSION} CONFIG REQUIRED Core DBus Network )
find_package( Crypt REQUIRED )
find_package(Qt5 ${QT_VERSION} CONFIG REQUIRED Core DBus Network)
find_package(Crypt REQUIRED)
# Add optional libraries here
set( USER_EXTRA_LIB )
set(USER_EXTRA_LIB)
include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/../users )
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../users)
find_package( LibPWQuality )
set_package_properties(
LibPWQuality PROPERTIES
PURPOSE "Extra checks of password quality"
)
find_package(LibPWQuality)
set_package_properties(LibPWQuality PROPERTIES PURPOSE "Extra checks of password quality")
if( LibPWQuality_FOUND )
list( APPEND USER_EXTRA_LIB ${LibPWQuality_LIBRARIES} )
include_directories( ${LibPWQuality_INCLUDE_DIRS} )
add_definitions( -DCHECK_PWQUALITY -DHAVE_LIBPWQUALITY )
if(LibPWQuality_FOUND)
list(APPEND USER_EXTRA_LIB ${LibPWQuality_LIBRARIES})
include_directories(${LibPWQuality_INCLUDE_DIRS})
add_definitions(-DCHECK_PWQUALITY -DHAVE_LIBPWQUALITY)
endif()
#needed for ${_users}/Config.cpp
find_package( ICU COMPONENTS uc i18n )
set_package_properties(
ICU PROPERTIES
PURPOSE "Transliteration support for full name to username conversion"
)
find_package(ICU COMPONENTS uc i18n)
set_package_properties(ICU PROPERTIES PURPOSE "Transliteration support for full name to username conversion")
if( ICU_FOUND )
list( APPEND USER_EXTRA_LIB ICU::uc ICU::i18n )
include_directories( ${ICU_INCLUDE_DIRS} )
add_definitions( -DHAVE_ICU )
if(ICU_FOUND)
list(APPEND USER_EXTRA_LIB ICU::uc ICU::i18n)
include_directories(${ICU_INCLUDE_DIRS})
add_definitions(-DHAVE_ICU)
endif()
calamares_add_plugin( usersq
calamares_add_plugin(usersq
TYPE viewmodule
EXPORT_MACRO PLUGINDLLEXPORT_PRO
SOURCES

View File

@ -3,52 +3,41 @@
# SPDX-FileCopyrightText: 2020 Adriaan de Groot <groot@kde.org>
# SPDX-License-Identifier: BSD-2-Clause
#
set( CALA_WEBVIEW_LINK_LIBRARIES "" )
set(CALA_WEBVIEW_LINK_LIBRARIES "")
option( WEBVIEW_FORCE_WEBKIT "Always build webview with WebKit instead of WebEngine regardless of Qt version." OFF)
option(WEBVIEW_FORCE_WEBKIT "Always build webview with WebKit instead of WebEngine regardless of Qt version." OFF)
set( _reason "" )
set(_reason "")
message( STATUS "Found Qt version ${Qt5Core_VERSION}")
if ( Qt5Core_VERSION VERSION_LESS 5.6 OR WEBVIEW_FORCE_WEBKIT )
message( STATUS " .. using webkit")
find_package( Qt5 ${QT_VERSION} CONFIG COMPONENTS WebKit WebKitWidgets )
message(STATUS "Found Qt version ${Qt5Core_VERSION}")
if(Qt5Core_VERSION VERSION_LESS 5.6 OR WEBVIEW_FORCE_WEBKIT)
message(STATUS " .. using webkit")
find_package(Qt5 ${QT_VERSION} CONFIG COMPONENTS WebKit WebKitWidgets)
if ( Qt5WebKit_FOUND AND Qt5WebKitWidgets_FOUND )
list( APPEND CALA_WEBVIEW_INCLUDE_DIRECTORIES
${QT_QTWEBKIT_INCLUDE_DIR}
)
list( APPEND CALA_WEBVIEW_LINK_LIBRARIES
Qt5::WebKit
Qt5::WebKitWidgets
)
set( WEBVIEW_WITH_WEBKIT 1 )
if(Qt5WebKit_FOUND AND Qt5WebKitWidgets_FOUND)
list(APPEND CALA_WEBVIEW_INCLUDE_DIRECTORIES ${QT_QTWEBKIT_INCLUDE_DIR})
list(APPEND CALA_WEBVIEW_LINK_LIBRARIES Qt5::WebKit Qt5::WebKitWidgets)
set(WEBVIEW_WITH_WEBKIT 1)
else()
set( _reason "No suitable WebKit" )
set(_reason "No suitable WebKit")
endif()
else()
message( STATUS " .. using webengine")
find_package( Qt5 ${QT_VERSION} CONFIG COMPONENTS WebEngine WebEngineWidgets )
message(STATUS " .. using webengine")
find_package(Qt5 ${QT_VERSION} CONFIG COMPONENTS WebEngine WebEngineWidgets)
if ( Qt5WebEngine_FOUND AND Qt5WebEngineWidgets_FOUND )
list( APPEND CALA_WEBVIEW_INCLUDE_DIRECTORIES
${QT_QTWEBENGINE_INCLUDE_DIR}
)
list( APPEND CALA_WEBVIEW_LINK_LIBRARIES
Qt5::WebEngine
Qt5::WebEngineWidgets
)
set( WEBVIEW_WITH_WEBENGINE 1 )
if(Qt5WebEngine_FOUND AND Qt5WebEngineWidgets_FOUND)
list(APPEND CALA_WEBVIEW_INCLUDE_DIRECTORIES ${QT_QTWEBENGINE_INCLUDE_DIR})
list(APPEND CALA_WEBVIEW_LINK_LIBRARIES Qt5::WebEngine Qt5::WebEngineWidgets)
set(WEBVIEW_WITH_WEBENGINE 1)
else()
set( _reason "No suitable WebEngine" )
set(_reason "No suitable WebEngine")
endif()
endif()
if ( NOT _reason )
configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/WebViewConfig.h.in
${CMAKE_CURRENT_BINARY_DIR}/WebViewConfig.h )
if(NOT _reason)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/WebViewConfig.h.in ${CMAKE_CURRENT_BINARY_DIR}/WebViewConfig.h)
calamares_add_plugin( webview
calamares_add_plugin(webview
TYPE viewmodule
EXPORT_MACRO PLUGINDLLEXPORT_PRO
SOURCES

View File

@ -3,19 +3,19 @@
# SPDX-FileCopyrightText: 2020 Adriaan de Groot <groot@kde.org>
# SPDX-License-Identifier: BSD-2-Clause
#
find_package( Qt5 ${QT_VERSION} CONFIG REQUIRED DBus Network )
find_package(Qt5 ${QT_VERSION} CONFIG REQUIRED DBus Network)
find_package( LIBPARTED )
if ( LIBPARTED_FOUND )
set( PARTMAN_SRC checker/partman_devices.c )
set( PARTMAN_LIB ${LIBPARTED_LIBRARY} )
find_package(LIBPARTED)
if(LIBPARTED_FOUND)
set(PARTMAN_SRC checker/partman_devices.c)
set(PARTMAN_LIB ${LIBPARTED_LIBRARY})
else()
set( PARTMAN_SRC )
set( PARTMAN_LIB )
add_definitions( -DWITHOUT_LIBPARTED )
set(PARTMAN_SRC)
set(PARTMAN_LIB)
add_definitions(-DWITHOUT_LIBPARTED)
endif()
calamares_add_plugin( welcome
calamares_add_plugin(welcome
TYPE viewmodule
EXPORT_MACRO PLUGINDLLEXPORT_PRO
SOURCES
@ -41,15 +41,6 @@ calamares_add_plugin( welcome
calamares_add_test(
welcometest
SOURCES
checker/GeneralRequirements.cpp
${PARTMAN_SRC}
Config.cpp
Tests.cpp
LIBRARIES
${PARTMAN_LIB}
Qt5::DBus
Qt5::Network
Qt5::Widgets
Calamares::calamaresui
SOURCES checker/GeneralRequirements.cpp ${PARTMAN_SRC} Config.cpp Tests.cpp
LIBRARIES ${PARTMAN_LIB} Qt5::DBus Qt5::Network Qt5::Widgets Calamares::calamaresui
)

View File

@ -7,34 +7,31 @@
# This is a re-write of the welcome module using QML view steps
# instead of widgets.
if( NOT WITH_QML )
if(NOT WITH_QML)
calamares_skip_module( "welcomeq (QML is not supported in this build)" )
return()
endif()
set( _welcome ${CMAKE_CURRENT_SOURCE_DIR}/../welcome )
set(_welcome ${CMAKE_CURRENT_SOURCE_DIR}/../welcome)
include_directories( ${_welcome} )
include_directories(${_welcome})
# DUPLICATED WITH WELCOME MODULE
find_package( Qt5 ${QT_VERSION} CONFIG REQUIRED DBus Network )
find_package(Qt5 ${QT_VERSION} CONFIG REQUIRED DBus Network)
find_package( LIBPARTED )
if ( LIBPARTED_FOUND )
set( PARTMAN_SRC ${_welcome}/checker/partman_devices.c )
set( CHECKER_LINK_LIBRARIES ${LIBPARTED_LIBRARY} )
find_package(LIBPARTED)
if(LIBPARTED_FOUND)
set(PARTMAN_SRC ${_welcome}/checker/partman_devices.c)
set(CHECKER_LINK_LIBRARIES ${LIBPARTED_LIBRARY})
else()
set( PARTMAN_SRC )
set( CHECKER_LINK_LIBRARIES )
add_definitions( -DWITHOUT_LIBPARTED )
set(PARTMAN_SRC)
set(CHECKER_LINK_LIBRARIES)
add_definitions(-DWITHOUT_LIBPARTED)
endif()
set( CHECKER_SOURCES
${_welcome}/checker/GeneralRequirements.cpp
${PARTMAN_SRC}
)
set(CHECKER_SOURCES ${_welcome}/checker/GeneralRequirements.cpp ${PARTMAN_SRC})
calamares_add_plugin( welcomeq
calamares_add_plugin(welcomeq
TYPE viewmodule
EXPORT_MACRO PLUGINDLLEXPORT_PRO
SOURCES

View File

@ -3,11 +3,10 @@
# SPDX-FileCopyrightText: 2020 Adriaan de Groot <groot@kde.org>
# SPDX-License-Identifier: BSD-2-Clause
#
calamares_add_plugin( zfs
calamares_add_plugin(zfs
TYPE job
EXPORT_MACRO PLUGINDLLEXPORT_PRO
SOURCES
ZfsJob.cpp
SHARED_LIB
)

View File

@ -12,29 +12,31 @@
# Iterate over all the subdirectories which have a qmldir file, copy them over to the build dir,
# and install them into share/calamares/qml/calamares
file( GLOB SUBDIRECTORIES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*" )
foreach( SUBDIRECTORY ${SUBDIRECTORIES} )
if( IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}"
AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/qmldir" )
set( QML_DIR share/calamares/qml )
set( QML_MODULE_DESTINATION ${QML_DIR}/calamares/${SUBDIRECTORY} )
file(GLOB SUBDIRECTORIES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*")
foreach(SUBDIRECTORY ${SUBDIRECTORIES})
if(
IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}"
AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/qmldir"
)
set(QML_DIR share/calamares/qml)
set(QML_MODULE_DESTINATION ${QML_DIR}/calamares/${SUBDIRECTORY})
# We glob all the files inside the subdirectory, and we make sure they are
# synced with the bindir structure and installed.
file( GLOB QML_MODULE_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY} "${SUBDIRECTORY}/*" )
foreach( QML_MODULE_FILE ${QML_MODULE_FILES} )
if( NOT IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/${QML_MODULE_FILE} )
configure_file( ${SUBDIRECTORY}/${QML_MODULE_FILE} ${SUBDIRECTORY}/${QML_MODULE_FILE} COPYONLY )
file(GLOB QML_MODULE_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY} "${SUBDIRECTORY}/*")
foreach(QML_MODULE_FILE ${QML_MODULE_FILES})
if(NOT IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/${QML_MODULE_FILE})
configure_file(${SUBDIRECTORY}/${QML_MODULE_FILE} ${SUBDIRECTORY}/${QML_MODULE_FILE} COPYONLY)
install( FILES ${CMAKE_CURRENT_BINARY_DIR}/${SUBDIRECTORY}/${QML_MODULE_FILE}
DESTINATION ${QML_MODULE_DESTINATION} )
install(
FILES ${CMAKE_CURRENT_BINARY_DIR}/${SUBDIRECTORY}/${QML_MODULE_FILE}
DESTINATION ${QML_MODULE_DESTINATION}
)
endif()
endforeach()
message( "-- ${BoldYellow}Configured QML module: ${BoldRed}calamares.${SUBDIRECTORY}${ColorReset}" )
message("-- ${BoldYellow}Configured QML module: ${BoldRed}calamares.${SUBDIRECTORY}${ColorReset}")
endif()
endforeach()
message( "" )
message("")