refactor(cmake): establish Cutefish Framework identity

main
reionwong 3 weeks ago
parent 5f6b068982
commit bb1751fad3

@ -1,5 +0,0 @@
{
"files.associations": {
"variant": "cpp"
}
}

@ -1,22 +1,29 @@
cmake_minimum_required(VERSION 3.5)
cmake_minimum_required(VERSION 3.16)
project(libcutefish)
project(CutefishFramework
VERSION 1.0.0
LANGUAGES CXX
)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
list(APPEND CMAKE_MODULE_PATH
"${CMAKE_CURRENT_SOURCE_DIR}/cmake"
)
include(GenerateExportHeader)
include(GNUInstallDirs)
include(GenerateExportHeader)
include(CMakePackageConfigHelpers)
set(QT Core Gui Quick QuickControls2 Widgets DBus Xml Concurrent Qml)
find_package(Qt6 REQUIRED ${QT})
find_package(Qt6 REQUIRED COMPONENTS
Core
Qml
)
# Get the installation directory from Qt 6
find_program(QT_PATHS_EXECUTABLE NAMES qtpaths6 REQUIRED)

@ -1,14 +1,32 @@
# System Library
# Cutefish Framework
Cutefish Framework provides shared system APIs and backend integrations for
Cutefish desktop components and applications.
It provides common access to application metadata, networking, Bluetooth,
audio, display, appearance, accounts, media controls, and other desktop
services.
## Dependencies
The framework uses Qt 6, KDE Frameworks 6, and a C++20 compiler.
### Debian/Ubuntu
```shell
sudo pacman -S gcc cmake qt5-base qt5-quickcontrols2 networkmanager-qt modemmanager-qt
sudo apt install cmake extra-cmake-modules pkg-config build-essential \
qt6-base-dev qt6-declarative-dev qt6-tools-dev qt6-tools-dev-tools \
libkscreen-dev libkf6networkmanagerqt-dev libkf6bluezqt-dev \
libkf6modemmanagerqt-dev libcanberra-dev libpulse-dev \
sound-theme-freedesktop
```
Note that when using apt, the names of certain packages are different:
### Arch Linux
```shell
sudo apt install qtbase5-dev qtquickcontrols2-5-dev modemmanager-qt-dev libkf5networkmanagerqt-dev libkf5bluezqt-dev libkf5kio-dev cmake qtdeclarative5-dev libcanberra-dev libpulse-dev libcanberra-pulse extra-cmake-modules qttools5-dev qttools5-dev-tools
sudo pacman -S --needed base-devel cmake extra-cmake-modules pkgconf \
qt6-base qt6-declarative kscreen bluez-qt networkmanager-qt \
modemmanager-qt libcanberra libpulse sound-theme-freedesktop
```
## Build and Install

@ -1,3 +1,5 @@
find_package(Qt6 REQUIRED COMPONENTS Core DBus Gui Quick)
set(ACCOUNTS_SRCS
accountsmanager.cpp
accountsmanager.h

@ -1,3 +1,5 @@
find_package(Qt6 REQUIRED COMPONENTS Core DBus Gui Qml)
set(CUTEFISH_APPLICATIONS_SRCS
applicationlauncher.cpp
applicationlauncher.h

@ -1,3 +1,5 @@
find_package(Qt6 REQUIRED COMPONENTS Core DBus Gui Qml Quick Widgets)
add_definitions(-DTRANSLATION_DOMAIN=\"cutefish_pulseaudio\")
set(USE_GSETTINGS False)

@ -1,3 +1,5 @@
find_package(Qt6 REQUIRED COMPONENTS Core DBus Qml)
set(bluezqtextensionplugin_SRCS
declarativemanager.cpp
declarativeadapter.cpp

@ -1,3 +1,5 @@
find_package(Qt6 REQUIRED COMPONENTS Core DBus Gui Quick)
set(NETWORKMGR_SRCS
mpris.cpp
mpris.h

@ -1,3 +1,5 @@
find_package(Qt6 REQUIRED COMPONENTS Core DBus Gui Quick)
set(NETWORKMGR_SRCS
appletproxymodel.cpp
appletproxymodel.h

Loading…
Cancel
Save