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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -3,11 +3,11 @@
# SPDX-FileCopyrightText: 2020 Adriaan de Groot <groot@kde.org> # SPDX-FileCopyrightText: 2020 Adriaan de Groot <groot@kde.org>
# SPDX-License-Identifier: BSD-2-Clause # 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 TYPE viewmodule
EXPORT_MACRO PLUGINDLLEXPORT_PRO EXPORT_MACRO PLUGINDLLEXPORT_PRO
SOURCES SOURCES

View file

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

View file

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

View file

@ -8,12 +8,10 @@
add_test( add_test(
NAME make-grubcfg-dirs NAME make-grubcfg-dirs
COMMAND ${CMAKE_COMMAND} -E make_directory COMMAND
/tmp/calamares/grubcfg-test-2/etc/default ${CMAKE_COMMAND} -E make_directory /tmp/calamares/grubcfg-test-2/etc/default
/tmp/calamares/grubcfg-test-3/etc/default /tmp/calamares/grubcfg-test-3/etc/default /tmp/calamares/grubcfg-test-4/etc/default/grub.d
/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-2 PROPERTIES DEPENDS make-grubcfg-dirs)
set_tests_properties(load-grubcfg-3 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) 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-FileCopyrightText: 2020 Adriaan de Groot <groot@kde.org>
# SPDX-License-Identifier: BSD-2-Clause # SPDX-License-Identifier: BSD-2-Clause
# #
calamares_add_plugin( initcpio calamares_add_plugin(initcpio
TYPE job TYPE job
EXPORT_MACRO PLUGINDLLEXPORT_PRO EXPORT_MACRO PLUGINDLLEXPORT_PRO
SOURCES SOURCES
@ -13,8 +13,7 @@ calamares_add_plugin( initcpio
calamares_add_test( calamares_add_test(
initcpiotest initcpiotest
SOURCES SOURCES Tests.cpp
Tests.cpp
LIBRARIES LIBRARIES
calamares_job_initcpio # From above calamares_job_initcpio # From above
yamlcpp::yamlcpp yamlcpp::yamlcpp

View file

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

View file

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

View file

@ -3,7 +3,7 @@
# SPDX-FileCopyrightText: 2020 Adriaan de Groot <groot@kde.org> # SPDX-FileCopyrightText: 2020 Adriaan de Groot <groot@kde.org>
# SPDX-License-Identifier: BSD-2-Clause # SPDX-License-Identifier: BSD-2-Clause
# #
calamares_add_plugin( keyboard calamares_add_plugin(keyboard
TYPE viewmodule TYPE viewmodule
EXPORT_MACRO PLUGINDLLEXPORT_PRO EXPORT_MACRO PLUGINDLLEXPORT_PRO
SOURCES SOURCES
@ -21,11 +21,4 @@ calamares_add_plugin( keyboard
SHARED_LIB SHARED_LIB
) )
calamares_add_test( calamares_add_test(keyboardtest SOURCES Tests.cpp SetKeyboardLayoutJob.cpp RESOURCES keyboard.qrc)
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-FileCopyrightText: 2020 Adriaan de Groot <groot@kde.org>
# SPDX-License-Identifier: BSD-2-Clause # 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)" ) calamares_skip_module( "keyboardq (QML is not supported in this build)" )
return() return()
endif() 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 TYPE viewmodule
EXPORT_MACRO PLUGINDLLEXPORT_PRO EXPORT_MACRO PLUGINDLLEXPORT_PRO
SOURCES SOURCES

View file

@ -3,9 +3,9 @@
# SPDX-FileCopyrightText: 2020 Adriaan de Groot <groot@kde.org> # SPDX-FileCopyrightText: 2020 Adriaan de Groot <groot@kde.org>
# SPDX-License-Identifier: BSD-2-Clause # 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 TYPE viewmodule
EXPORT_MACRO PLUGINDLLEXPORT_PRO EXPORT_MACRO PLUGINDLLEXPORT_PRO
SOURCES SOURCES

View file

@ -7,14 +7,14 @@
# When debugging the timezone widget, add this debugging definition # When debugging the timezone widget, add this debugging definition
# to have a debugging-friendly timezone widget, debug logging, # to have a debugging-friendly timezone widget, debug logging,
# and no intrusive timezone-setting while clicking around. # and no intrusive timezone-setting while clicking around.
option( DEBUG_TIMEZONES "Debug-friendly timezone widget." OFF ) option(DEBUG_TIMEZONES "Debug-friendly timezone widget." OFF)
if( DEBUG_TIMEZONES ) if(DEBUG_TIMEZONES)
add_definitions( -DDEBUG_TIMEZONES ) add_definitions(-DDEBUG_TIMEZONES)
endif() 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 TYPE viewmodule
EXPORT_MACRO PLUGINDLLEXPORT_PRO EXPORT_MACRO PLUGINDLLEXPORT_PRO
SOURCES SOURCES
@ -39,15 +39,7 @@ calamares_add_plugin( locale
calamares_add_test( calamares_add_test(
localetest localetest
SOURCES SOURCES Tests.cpp Config.cpp LocaleConfiguration.cpp SetTimezoneJob.cpp timezonewidget/TimeZoneImage.cpp
Tests.cpp DEFINITIONS SOURCE_DIR="${CMAKE_CURRENT_LIST_DIR}/images" DEBUG_TIMEZONES=1
Config.cpp LIBRARIES Qt5::Gui
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-FileCopyrightText: 2020 Adriaan de Groot <groot@kde.org>
# SPDX-License-Identifier: BSD-2-Clause # 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)" ) calamares_skip_module( "localeq (QML is not supported in this build)" )
return() return()
endif() endif()
@ -11,28 +11,22 @@ endif()
# When debugging the timezone widget, add this debugging definition # When debugging the timezone widget, add this debugging definition
# to have a debugging-friendly timezone widget, debug logging, # to have a debugging-friendly timezone widget, debug logging,
# and no intrusive timezone-setting while clicking around. # and no intrusive timezone-setting while clicking around.
option( DEBUG_TIMEZONES "Debug-friendly timezone widget." OFF ) option(DEBUG_TIMEZONES "Debug-friendly timezone widget." OFF)
if( DEBUG_TIMEZONES ) if(DEBUG_TIMEZONES)
add_definitions( -DDEBUG_TIMEZONES ) add_definitions(-DDEBUG_TIMEZONES)
endif() endif()
find_package(Qt5Location CONFIG) find_package(Qt5Location CONFIG)
set_package_properties(Qt5Location PROPERTIES set_package_properties(Qt5Location PROPERTIES DESCRIPTION "Used for rendering the map" TYPE RUNTIME)
DESCRIPTION "Used for rendering the map"
TYPE RUNTIME
)
find_package(Qt5Positioning CONFIG) find_package(Qt5Positioning CONFIG)
set_package_properties(Qt5Positioning PROPERTIES set_package_properties(Qt5Positioning PROPERTIES DESCRIPTION "Used for GeoLocation and GeoCoding" TYPE RUNTIME)
DESCRIPTION "Used for GeoLocation and GeoCoding"
TYPE RUNTIME
)
# Because we're sharing sources with the regular locale module # 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 TYPE viewmodule
EXPORT_MACRO PLUGINDLLEXPORT_PRO EXPORT_MACRO PLUGINDLLEXPORT_PRO
SOURCES SOURCES

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -14,29 +14,33 @@ add_test(
) )
add_test( add_test(
NAME configure-packages-${_pm}-ops-1 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} WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
) )
add_test( add_test(
NAME configure-packages-${_pm}-ops-2 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} WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
) )
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)
set( _module packages ) set(_module packages)
set( _schema_file "${CMAKE_CURRENT_SOURCE_DIR}/${_module}/${_module}.schema.yaml" ) set(_schema_file "${CMAKE_CURRENT_SOURCE_DIR}/${_module}/${_module}.schema.yaml")
message(STATUS "Schema ${_schema_file}") message(STATUS "Schema ${_schema_file}")
foreach( _cf pm-pacman-1.yaml pm-pacman-2.yaml ) foreach(_cf pm-pacman-1.yaml pm-pacman-2.yaml)
set( _conf_file "${CMAKE_CURRENT_SOURCE_DIR}/${_module}/tests/${_cf}" ) set(_conf_file "${CMAKE_CURRENT_SOURCE_DIR}/${_module}/tests/${_cf}")
if ( EXISTS "${_schema_file}" AND EXISTS "${_conf_file}" ) if(EXISTS "${_schema_file}" AND EXISTS "${_conf_file}")
add_test( add_test(
NAME validate-packages-${_cf} 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() else()
message(FATAL_ERROR "Missing ${_conf_file}") message(FATAL_ERROR "Missing ${_conf_file}")
endif() endif()
endforeach() endforeach()
endif() endif()

View file

@ -11,41 +11,41 @@
# it will error out at runtime unless you **also** switch **off** # it will error out at runtime unless you **also** switch **off**
# DEBUG_PARTITION_LAME, at which point you are welcome to shoot # DEBUG_PARTITION_LAME, at which point you are welcome to shoot
# yourself in the foot. # yourself in the foot.
option( DEBUG_PARTITION_UNSAFE "Allow unsafe partitioning choices." OFF ) option(DEBUG_PARTITION_UNSAFE "Allow unsafe partitioning choices." OFF)
option( DEBUG_PARTITION_LAME "Unsafe partitioning will error out on exec." ON ) 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. # 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 ) set(_partition_defs)
if( DEBUG_PARTITION_UNSAFE ) if(DEBUG_PARTITION_UNSAFE)
if( DEBUG_PARTITION_LAME ) if(DEBUG_PARTITION_LAME)
list( APPEND _partition_defs DEBUG_PARTITION_LAME ) list(APPEND _partition_defs DEBUG_PARTITION_LAME)
endif() endif()
list( APPEND _partition_defs DEBUG_PARTITION_UNSAFE ) list(APPEND _partition_defs DEBUG_PARTITION_UNSAFE)
endif() endif()
if ( DEBUG_FILESYSTEMS ) if(DEBUG_FILESYSTEMS)
list( APPEND _partition_defs DEBUG_FILESYSTEMS ) list(APPEND _partition_defs DEBUG_FILESYSTEMS)
endif() endif()
find_package(ECM ${ECM_VERSION} REQUIRED NO_MODULE) find_package(ECM ${ECM_VERSION} REQUIRED NO_MODULE)
include( KPMcoreHelper ) include(KPMcoreHelper)
find_package( KF5Config CONFIG ) find_package(KF5Config CONFIG)
find_package( KF5I18n CONFIG ) find_package(KF5I18n CONFIG)
find_package( KF5WidgetsAddons CONFIG ) find_package(KF5WidgetsAddons CONFIG)
if ( KPMcore_FOUND AND Qt5DBus_FOUND AND KF5CoreAddons_FOUND AND KF5Config_FOUND ) if(KPMcore_FOUND AND Qt5DBus_FOUND AND KF5CoreAddons_FOUND AND KF5Config_FOUND)
list( APPEND _partition_defs ${KPMcore_API_DEFINITIONS} ) list(APPEND _partition_defs ${KPMcore_API_DEFINITIONS})
include_directories( ${KPMCORE_INCLUDE_DIR} ) include_directories(${KPMCORE_INCLUDE_DIR})
include_directories( ${PROJECT_BINARY_DIR}/src/libcalamaresui ) include_directories(${PROJECT_BINARY_DIR}/src/libcalamaresui)
add_subdirectory( tests ) add_subdirectory(tests)
calamares_add_plugin( partition calamares_add_plugin(partition
TYPE viewmodule TYPE viewmodule
EXPORT_MACRO PLUGINDLLEXPORT_PRO EXPORT_MACRO PLUGINDLLEXPORT_PRO
SOURCES SOURCES
@ -113,10 +113,9 @@ if ( KPMcore_FOUND AND Qt5DBus_FOUND AND KF5CoreAddons_FOUND AND KF5Config_FOUND
SHARED_LIB SHARED_LIB
) )
else() else()
if ( NOT KPMcore_FOUND ) if(NOT KPMcore_FOUND)
calamares_skip_module( "partition (missing suitable KPMcore)" ) calamares_skip_module( "partition (missing suitable KPMcore)" )
else() else()
calamares_skip_module( "partition (missing dependencies for KPMcore)" ) calamares_skip_module( "partition (missing dependencies for KPMcore)" )
endif() endif()
endif() endif()

View file

@ -3,9 +3,9 @@
# SPDX-FileCopyrightText: 2020 Adriaan de Groot <groot@kde.org> # SPDX-FileCopyrightText: 2020 Adriaan de Groot <groot@kde.org>
# SPDX-License-Identifier: BSD-2-Clause # 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( include_directories(
${Qt5Gui_INCLUDE_DIRS} ${Qt5Gui_INCLUDE_DIRS}
@ -25,22 +25,17 @@ calamares_add_test(
${PartitionModule_SOURCE_DIR}/jobs/DeletePartitionJob.cpp ${PartitionModule_SOURCE_DIR}/jobs/DeletePartitionJob.cpp
${PartitionModule_SOURCE_DIR}/jobs/PartitionJob.cpp ${PartitionModule_SOURCE_DIR}/jobs/PartitionJob.cpp
${PartitionModule_SOURCE_DIR}/jobs/ResizePartitionJob.cpp ${PartitionModule_SOURCE_DIR}/jobs/ResizePartitionJob.cpp
LIBRARIES LIBRARIES kpmcore
kpmcore
DEFINITIONS ${_partition_defs} DEFINITIONS ${_partition_defs}
) )
calamares_add_test( calamares_add_test(
partitionclearmountsjobtest partitionclearmountsjobtest
SOURCES SOURCES ${PartitionModule_SOURCE_DIR}/jobs/ClearMountsJob.cpp ClearMountsJobTests.cpp
${PartitionModule_SOURCE_DIR}/jobs/ClearMountsJob.cpp LIBRARIES kpmcore
ClearMountsJobTests.cpp
LIBRARIES
kpmcore
DEFINITIONS ${_partition_defs} DEFINITIONS ${_partition_defs}
) )
calamares_add_test( calamares_add_test(
partitioncreatelayoutstest partitioncreatelayoutstest
SOURCES SOURCES
@ -50,26 +45,19 @@ calamares_add_test(
${PartitionModule_SOURCE_DIR}/core/PartitionLayout.cpp ${PartitionModule_SOURCE_DIR}/core/PartitionLayout.cpp
${PartitionModule_SOURCE_DIR}/core/PartUtils.cpp ${PartitionModule_SOURCE_DIR}/core/PartUtils.cpp
${PartitionModule_SOURCE_DIR}/core/DeviceModel.cpp ${PartitionModule_SOURCE_DIR}/core/DeviceModel.cpp
LIBRARIES LIBRARIES kpmcore Calamares::calamaresui
kpmcore
Calamares::calamaresui
DEFINITIONS ${_partition_defs} DEFINITIONS ${_partition_defs}
) )
calamares_add_test( calamares_add_test(
partitionautomounttest partitionautomounttest
SOURCES SOURCES ${PartitionModule_SOURCE_DIR}/jobs/AutoMountManagementJob.cpp AutoMountTests.cpp
${PartitionModule_SOURCE_DIR}/jobs/AutoMountManagementJob.cpp
AutoMountTests.cpp
DEFINITIONS ${_partition_defs} DEFINITIONS ${_partition_defs}
) )
calamares_add_test( calamares_add_test(
partitiondevicestest partitiondevicestest
SOURCES SOURCES DevicesTests.cpp ${PartitionModule_SOURCE_DIR}/core/DeviceList.cpp
DevicesTests.cpp LIBRARIES kpmcore
${PartitionModule_SOURCE_DIR}/core/DeviceList.cpp
LIBRARIES
kpmcore
DEFINITIONS ${_partition_defs} 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 # Requires a sufficiently recent Plasma framework, but also
# needs a runtime support component (which we don't test for). # 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} ) find_package(KF5Config ${lnf_ver})
set_package_properties( set_package_properties(KF5Config PROPERTIES PURPOSE "For finding default Plasma Look-and-Feel")
KF5Config PROPERTIES
PURPOSE "For finding default Plasma Look-and-Feel"
)
find_package( KF5Plasma ${lnf_ver} ) find_package(KF5Plasma ${lnf_ver})
set_package_properties( set_package_properties(KF5Plasma PROPERTIES PURPOSE "For Plasma Look-and-Feel selection")
KF5Plasma PROPERTIES
PURPOSE "For Plasma Look-and-Feel selection"
)
find_package( KF5Package ${lnf_ver} ) find_package(KF5Package ${lnf_ver})
set_package_properties( set_package_properties(KF5Package PROPERTIES PURPOSE "For Plasma Look-and-Feel selection")
KF5Package PROPERTIES
PURPOSE "For Plasma Look-and-Feel selection"
)
if ( KF5Plasma_FOUND AND KF5Package_FOUND ) if(KF5Plasma_FOUND AND KF5Package_FOUND)
calamares_add_plugin( plasmalnf calamares_add_plugin(plasmalnf
TYPE viewmodule TYPE viewmodule
EXPORT_MACRO PLUGINDLLEXPORT_PRO EXPORT_MACRO PLUGINDLLEXPORT_PRO
COMPILE_DEFINITIONS COMPILE_DEFINITIONS
@ -48,7 +39,7 @@ if ( KF5Plasma_FOUND AND KF5Package_FOUND )
KF5::Plasma KF5::Plasma
SHARED_LIB SHARED_LIB
) )
if ( KF5Config_FOUND ) if(KF5Config_FOUND)
target_compile_definitions(calamares_viewmodule_plasmalnf PRIVATE WITH_KCONFIG) target_compile_definitions(calamares_viewmodule_plasmalnf PRIVATE WITH_KCONFIG)
endif() endif()
else() else()

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -3,19 +3,19 @@
# SPDX-FileCopyrightText: 2020 Adriaan de Groot <groot@kde.org> # SPDX-FileCopyrightText: 2020 Adriaan de Groot <groot@kde.org>
# SPDX-License-Identifier: BSD-2-Clause # 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 ) find_package(LIBPARTED)
if ( LIBPARTED_FOUND ) if(LIBPARTED_FOUND)
set( PARTMAN_SRC checker/partman_devices.c ) set(PARTMAN_SRC checker/partman_devices.c)
set( PARTMAN_LIB ${LIBPARTED_LIBRARY} ) set(PARTMAN_LIB ${LIBPARTED_LIBRARY})
else() else()
set( PARTMAN_SRC ) set(PARTMAN_SRC)
set( PARTMAN_LIB ) set(PARTMAN_LIB)
add_definitions( -DWITHOUT_LIBPARTED ) add_definitions(-DWITHOUT_LIBPARTED)
endif() endif()
calamares_add_plugin( welcome calamares_add_plugin(welcome
TYPE viewmodule TYPE viewmodule
EXPORT_MACRO PLUGINDLLEXPORT_PRO EXPORT_MACRO PLUGINDLLEXPORT_PRO
SOURCES SOURCES
@ -41,15 +41,6 @@ calamares_add_plugin( welcome
calamares_add_test( calamares_add_test(
welcometest welcometest
SOURCES SOURCES checker/GeneralRequirements.cpp ${PARTMAN_SRC} Config.cpp Tests.cpp
checker/GeneralRequirements.cpp LIBRARIES ${PARTMAN_LIB} Qt5::DBus Qt5::Network Qt5::Widgets Calamares::calamaresui
${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 # This is a re-write of the welcome module using QML view steps
# instead of widgets. # instead of widgets.
if( NOT WITH_QML ) if(NOT WITH_QML)
calamares_skip_module( "welcomeq (QML is not supported in this build)" ) calamares_skip_module( "welcomeq (QML is not supported in this build)" )
return() return()
endif() 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 # 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 ) find_package(LIBPARTED)
if ( LIBPARTED_FOUND ) if(LIBPARTED_FOUND)
set( PARTMAN_SRC ${_welcome}/checker/partman_devices.c ) set(PARTMAN_SRC ${_welcome}/checker/partman_devices.c)
set( CHECKER_LINK_LIBRARIES ${LIBPARTED_LIBRARY} ) set(CHECKER_LINK_LIBRARIES ${LIBPARTED_LIBRARY})
else() else()
set( PARTMAN_SRC ) set(PARTMAN_SRC)
set( CHECKER_LINK_LIBRARIES ) set(CHECKER_LINK_LIBRARIES)
add_definitions( -DWITHOUT_LIBPARTED ) add_definitions(-DWITHOUT_LIBPARTED)
endif() endif()
set( CHECKER_SOURCES set(CHECKER_SOURCES ${_welcome}/checker/GeneralRequirements.cpp ${PARTMAN_SRC})
${_welcome}/checker/GeneralRequirements.cpp
${PARTMAN_SRC}
)
calamares_add_plugin( welcomeq calamares_add_plugin(welcomeq
TYPE viewmodule TYPE viewmodule
EXPORT_MACRO PLUGINDLLEXPORT_PRO EXPORT_MACRO PLUGINDLLEXPORT_PRO
SOURCES SOURCES

View file

@ -3,11 +3,10 @@
# SPDX-FileCopyrightText: 2020 Adriaan de Groot <groot@kde.org> # SPDX-FileCopyrightText: 2020 Adriaan de Groot <groot@kde.org>
# SPDX-License-Identifier: BSD-2-Clause # SPDX-License-Identifier: BSD-2-Clause
# #
calamares_add_plugin( zfs calamares_add_plugin(zfs
TYPE job TYPE job
EXPORT_MACRO PLUGINDLLEXPORT_PRO EXPORT_MACRO PLUGINDLLEXPORT_PRO
SOURCES SOURCES
ZfsJob.cpp ZfsJob.cpp
SHARED_LIB 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, # 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 # and install them into share/calamares/qml/calamares
file( GLOB SUBDIRECTORIES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*" ) file(GLOB SUBDIRECTORIES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*")
foreach( SUBDIRECTORY ${SUBDIRECTORIES} ) foreach(SUBDIRECTORY ${SUBDIRECTORIES})
if( IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}" if(
AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/qmldir" ) 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} ) 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 # We glob all the files inside the subdirectory, and we make sure they are
# synced with the bindir structure and installed. # synced with the bindir structure and installed.
file( GLOB QML_MODULE_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY} "${SUBDIRECTORY}/*" ) file(GLOB QML_MODULE_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY} "${SUBDIRECTORY}/*")
foreach( QML_MODULE_FILE ${QML_MODULE_FILES} ) foreach(QML_MODULE_FILE ${QML_MODULE_FILES})
if( NOT IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/${QML_MODULE_FILE} ) if(NOT IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/${QML_MODULE_FILE})
configure_file( ${SUBDIRECTORY}/${QML_MODULE_FILE} ${SUBDIRECTORY}/${QML_MODULE_FILE} COPYONLY ) configure_file(${SUBDIRECTORY}/${QML_MODULE_FILE} ${SUBDIRECTORY}/${QML_MODULE_FILE} COPYONLY)
install( FILES ${CMAKE_CURRENT_BINARY_DIR}/${SUBDIRECTORY}/${QML_MODULE_FILE} install(
DESTINATION ${QML_MODULE_DESTINATION} ) FILES ${CMAKE_CURRENT_BINARY_DIR}/${SUBDIRECTORY}/${QML_MODULE_FILE}
DESTINATION ${QML_MODULE_DESTINATION}
)
endif() endif()
endforeach() endforeach()
message( "-- ${BoldYellow}Configured QML module: ${BoldRed}calamares.${SUBDIRECTORY}${ColorReset}" ) message("-- ${BoldYellow}Configured QML module: ${BoldRed}calamares.${SUBDIRECTORY}${ColorReset}")
endif() endif()
endforeach() endforeach()
message( "" ) message("")