Start with basic template for kirigami app using cmake.
This commit is contained in:
9
.gitmodules
vendored
Normal file
9
.gitmodules
vendored
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
[submodule "3rdparty/kirigami"]
|
||||||
|
path = 3rdparty/kirigami
|
||||||
|
url = git://anongit.kde.org/kirigami.git
|
||||||
|
[submodule "3rdparty/breeze-icons"]
|
||||||
|
path = 3rdparty/breeze-icons
|
||||||
|
url = git://anongit.kde.org/breeze-icons.git
|
||||||
|
[submodule "3rdparty/extra-cmake-modules"]
|
||||||
|
path = 3rdparty/extra-cmake-modules
|
||||||
|
url = git://anongit.kde.org/extra-cmake-modules.git
|
||||||
3
3rdparty/CMakeLists.txt
vendored
Normal file
3
3rdparty/CMakeLists.txt
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
set(BUILD_SHARED_LIBS 0)
|
||||||
|
|
||||||
|
add_subdirectory(kirigami)
|
||||||
1
3rdparty/breeze-icons
vendored
Submodule
1
3rdparty/breeze-icons
vendored
Submodule
Submodule 3rdparty/breeze-icons added at 4a9d61afe2
39
3rdparty/ecm/ECMConfig.cmake
vendored
Normal file
39
3rdparty/ecm/ECMConfig.cmake
vendored
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
|
||||||
|
####### Expanded from @PACKAGE_INIT@ by configure_package_config_file() #######
|
||||||
|
####### Any changes to this file will be overwritten by the next CMake run ####
|
||||||
|
####### The input file was ECMConfig.cmake.in ########
|
||||||
|
|
||||||
|
get_filename_component(PACKAGE_PREFIX_DIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE)
|
||||||
|
|
||||||
|
macro(set_and_check _var _file)
|
||||||
|
set(${_var} "${_file}")
|
||||||
|
if(NOT EXISTS "${_file}")
|
||||||
|
message(FATAL_ERROR "File or directory ${_file} referenced by variable ${_var} does not exist !")
|
||||||
|
endif()
|
||||||
|
endmacro()
|
||||||
|
|
||||||
|
macro(check_required_components _NAME)
|
||||||
|
foreach(comp ${${_NAME}_FIND_COMPONENTS})
|
||||||
|
if(NOT ${_NAME}_${comp}_FOUND)
|
||||||
|
if(${_NAME}_FIND_REQUIRED_${comp})
|
||||||
|
set(${_NAME}_FOUND FALSE)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
endmacro()
|
||||||
|
|
||||||
|
####################################################################################
|
||||||
|
|
||||||
|
set(ECM_FIND_MODULE_DIR "${PACKAGE_PREFIX_DIR}/extra-cmake-modules/find-modules/")
|
||||||
|
|
||||||
|
set(ECM_MODULE_DIR "${PACKAGE_PREFIX_DIR}/extra-cmake-modules/modules/")
|
||||||
|
|
||||||
|
set(ECM_KDE_MODULE_DIR "${PACKAGE_PREFIX_DIR}/extra-cmake-modules/kde-modules/")
|
||||||
|
|
||||||
|
set(ECM_PREFIX "${PACKAGE_PREFIX_DIR}")
|
||||||
|
|
||||||
|
set(ECM_MODULE_PATH "${ECM_MODULE_DIR}" "${ECM_FIND_MODULE_DIR}" "${ECM_KDE_MODULE_DIR}")
|
||||||
|
|
||||||
|
set(ECM_GLOBAL_FIND_VERSION "${ECM_FIND_VERSION}")
|
||||||
|
|
||||||
|
include("${ECM_MODULE_DIR}/ECMUseFindModules.cmake")
|
||||||
31
3rdparty/ecm/ECMConfigVersion.cmake
vendored
Normal file
31
3rdparty/ecm/ECMConfigVersion.cmake
vendored
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
# This is a basic version file for the Config-mode of find_package().
|
||||||
|
# It is used by write_basic_package_version_file() as input file for configure_file()
|
||||||
|
# to create a version-file which can be installed along a config.cmake file.
|
||||||
|
#
|
||||||
|
# The created file sets PACKAGE_VERSION_EXACT if the current version string and
|
||||||
|
# the requested version string are exactly the same and it sets
|
||||||
|
# PACKAGE_VERSION_COMPATIBLE if the current version is >= requested version.
|
||||||
|
# The variable CVF_VERSION must be set before calling configure_file().
|
||||||
|
|
||||||
|
set(PACKAGE_VERSION "5.63.0")
|
||||||
|
|
||||||
|
if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION)
|
||||||
|
set(PACKAGE_VERSION_COMPATIBLE FALSE)
|
||||||
|
else()
|
||||||
|
set(PACKAGE_VERSION_COMPATIBLE TRUE)
|
||||||
|
if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION)
|
||||||
|
set(PACKAGE_VERSION_EXACT TRUE)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# if the installed or the using project don't have CMAKE_SIZEOF_VOID_P set, ignore it:
|
||||||
|
if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "" OR "" STREQUAL "")
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# check that the installed version has the same 32/64bit-ness as the one which is currently searching:
|
||||||
|
if(NOT CMAKE_SIZEOF_VOID_P STREQUAL "")
|
||||||
|
math(EXPR installedBits " * 8")
|
||||||
|
set(PACKAGE_VERSION "${PACKAGE_VERSION} (${installedBits}bit)")
|
||||||
|
set(PACKAGE_VERSION_UNSUITABLE TRUE)
|
||||||
|
endif()
|
||||||
1
3rdparty/extra-cmake-modules
vendored
Submodule
1
3rdparty/extra-cmake-modules
vendored
Submodule
Submodule 3rdparty/extra-cmake-modules added at f3f4893b5b
1
3rdparty/kirigami
vendored
Submodule
1
3rdparty/kirigami
vendored
Submodule
Submodule 3rdparty/kirigami added at 307ab1db97
@@ -1,7 +1,24 @@
|
|||||||
cmake_minimum_required(VERSION 3.0)
|
cmake_minimum_required(VERSION 3.2)
|
||||||
|
|
||||||
find_package(Qt5 REQUIRED COMPONENTS Gui Qml)
|
if (POLICY CMP0063)
|
||||||
|
cmake_policy(SET CMP0063 NEW)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(ECM_DIR ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/ecm)
|
||||||
|
find_package(ECM REQUIRED CONFIG)
|
||||||
|
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/ ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH})
|
||||||
|
set(BREEZEICONS_DIR ${CMAKE_SOURCE_DIR}/3rdparty/breeze-icons/)
|
||||||
|
|
||||||
|
find_package(Qt5 5.12 REQUIRED Core Quick Multimedia Test Widgets QuickControls2)
|
||||||
|
|
||||||
|
include(KDEInstallDirs)
|
||||||
|
include(KDECompilerSettings)
|
||||||
|
include(KDECMakeSettings)
|
||||||
|
|
||||||
set(CMAKE_AUTOMOC ON)
|
set(CMAKE_AUTOMOC ON)
|
||||||
|
|
||||||
|
set(CMAKE_CXX_STANDARD 11)
|
||||||
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||||
|
|
||||||
|
add_subdirectory(3rdparty)
|
||||||
add_subdirectory(src)
|
add_subdirectory(src)
|
||||||
|
|||||||
@@ -1,4 +1,18 @@
|
|||||||
qt5_add_resources(qiflora_SRCS resources.qrc)
|
include_directories(${CMAKE_SOURCE_DIR}/3rdparty/kirigami/src)
|
||||||
add_executable(qiflora main.cpp ${qiflora_SRCS})
|
include(${CMAKE_SOURCE_DIR}/3rdparty/kirigami/KF5Kirigami2Macros.cmake)
|
||||||
target_link_libraries(qiflora Qt5::Qml Qt5::Gui)
|
|
||||||
|
|
||||||
|
qt5_add_resources(qiflora_SRCS kirigami-icons.qrc resources.qrc)
|
||||||
|
|
||||||
|
if (CMAKE_SYSTEM_NAME STREQUAL "Android")
|
||||||
|
set(qiflora_EXTRA_LIBS Qt5::AndroidExtras
|
||||||
|
#FIXME: we shouldn't have to link to it but otherwise the lib won't be packaged on Android
|
||||||
|
Qt5::QuickControls2)
|
||||||
|
else ()
|
||||||
|
#qstyle-based qqc2 style needs a QApplication
|
||||||
|
set(qiflora_EXTRA_LIBS Qt5::Widgets)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
add_executable(qiflora main.cpp ${qiflora_SRCS})
|
||||||
|
target_link_libraries(qiflora kirigamiplugin Qt5::Core Qt5::Qml Qt5::Quick Qt5::QuickControls2 ${qiflora_EXTRA_LIBS})
|
||||||
|
|
||||||
|
kirigami_package_breeze_icons(ICONS application-menu document-decrypt folder-sync go-next go-previous go-up handle-left handle-right view-list-icons applications-graphics media-record-symbolic)
|
||||||
|
|||||||
15
src/kirigami-icons.qrc
Normal file
15
src/kirigami-icons.qrc
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<RCC>
|
||||||
|
<qresource prefix="/org/kde/kirigami/">
|
||||||
|
<file alias="icons/application-menu.svg">../3rdparty/breeze-icons/icons/actions/32/application-menu.svg</file>
|
||||||
|
<file alias="icons/document-decrypt.svg">../3rdparty/breeze-icons/icons/actions/32/document-decrypt.svg</file>
|
||||||
|
<file alias="icons/folder-sync.svg">../3rdparty/breeze-icons/icons/actions/32/folder-sync.svg</file>
|
||||||
|
<file alias="icons/go-next.svg">../3rdparty/breeze-icons/icons/actions/22/go-next.svg</file>
|
||||||
|
<file alias="icons/go-previous.svg">../3rdparty/breeze-icons/icons/actions/22/go-previous.svg</file>
|
||||||
|
<file alias="icons/go-up.svg">../3rdparty/breeze-icons/icons/actions/22/go-up.svg</file>
|
||||||
|
<file alias="icons/handle-left.svg">../3rdparty/breeze-icons/icons/actions/22/handle-left.svg</file>
|
||||||
|
<file alias="icons/handle-right.svg">../3rdparty/breeze-icons/icons/actions/22/handle-right.svg</file>
|
||||||
|
<file alias="icons/view-list-icons.svg">../3rdparty/breeze-icons/icons/actions/32/view-list-icons.svg</file>
|
||||||
|
<file alias="icons/applications-graphics.svg">../3rdparty/breeze-icons/icons/categories/32/applications-graphics.svg</file>
|
||||||
|
<file alias="icons/media-record-symbolic.svg">../3rdparty/breeze-icons/icons/actions/symbolic/media-record-symbolic.svg</file>
|
||||||
|
</qresource>
|
||||||
|
</RCC>
|
||||||
Reference in New Issue
Block a user