diff --git a/.gitignore b/.gitignore index 38b7644..0bc0768 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,7 @@ *.jsc *.mo /dist -*/.kdev4/* \ No newline at end of file +.kdev4/* +*.kdev4 +build/* +target/* \ No newline at end of file diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..53f603a --- /dev/null +++ b/.gitmodules @@ -0,0 +1,4 @@ +[submodule "qmltermwidget"] + path = qmltermwidget + url = git@github.com:koldbyte/qmltermwidget.git + branch = 48274c75660e28d44af7c195e79accdf1bd44963_cmake_changes diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..95f62f2 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,21 @@ +# Set minimum CMake version (required for CMake 3.0 or later) +cmake_minimum_required(VERSION 3.1) + +project(termoid) +set(PROJECT_NAME "termoid") +set(PROJECT_VERSION_MAJOR 1) +set(PROJECT_VERSION_MINOR 0) +set(PROJECT_VERSION_PATCH 0) +set(PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}) +set(PROJECT_AUTHOR "Bhaskar Divya") +set(PROJECT_YEAR_COPYRIGHT "2020") +set(PROJECT_URL "https://github.com/koldbyte/termoid") +set(PROJECT_DESCRIPTION_SUMMARY "Terminal on a Desktop") + +set_property(GLOBAL PROPERTY GLOBAL_DEPENDS_DEBUG_MODE 1) + +add_subdirectory(qmltermwidget) +add_subdirectory(plasmoid) + +# Packaging stuff (deb, rpm etc) +add_subdirectory(packaging) \ No newline at end of file diff --git a/ReadMe.md b/ReadMe.md index 03f0d96..8dbe004 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -141,3 +141,12 @@ Note that official KDE software is only mirrored on github, however github is mu * Source Code https://github.com/KDE/plasma-framework/tree/master/src/declarativeimports/ * [plasmapkg2 source code](https://github.com/KDE/plasma-framework/blob/master/src/plasmapkg/plasmapkg.cpp) + + +## Cleanup +``` +rm -rf /usr/lib/qt/qml/qmlkonsole/ +rm -rf /usr/share/kservices5/plasma-applet-com.koldbyte.kde.termoid.desktop +rm -rf /usr/share/metainfo/com.koldbyte.kde.termoid.appdata.xml +rm -rf /usr/share/plasma/plasmoids/com.koldbyte.kde.termoid +``` \ No newline at end of file diff --git a/make.sh b/make.sh new file mode 100755 index 0000000..df78f07 --- /dev/null +++ b/make.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +set -e +rm -rf build +mkdir build -p && cd build +cmake -DCMAKE_INSTALL_PREFIX=`kf5-config --prefix` -DCMAKE_BUILD_TYPE=Release -DKDE_INSTALL_LIBDIR=lib -DKDE_INSTALL_USE_QT_SYS_PATHS=ON ../ +make +sudo make package +sudo make install +kquitapp5 plasmashell +kstart5 plasmashell diff --git a/packaging/AUR/PKGBUILD b/packaging/AUR/PKGBUILD new file mode 100644 index 0000000..11da530 --- /dev/null +++ b/packaging/AUR/PKGBUILD @@ -0,0 +1,45 @@ +# Maintainer: Bhaskar Divya +pkgname=termoid +pkgver=1.0.0 +pkgrel=1 +pkgdesc="Terminal on a desktop" +arch=('i686' 'x86_64') +url="https://github.com/koldbyte/termoid" +license=('GPL3') +groups=() +depends=('plasma-workspace') +makedepends=('cmake' 'extra-cmake-modules' 'ki18n' 'qt5-base' 'qt5-declarative' 'qt5-tools') +optdepends=() +provides=() +conflicts=() +replaces=() +backup=() +options=() +install='' +changelog='' +source=("termoid::git+https://github.com/koldbyte/termoid.git#branch=packaging-with-qmltermwidget" + "qmltermwidget::git+https://github.com/koldbyte/qmltermwidget.git#branch=08958f7c83a7d05627f623b8904f3e79a0b7366b_cmake_changes") +noextract=() +sha256sums=('SKIP' 'SKIP') + +prepare() { + cp -r qmltermwidget termoid/ + cd termoid + mkdir -p build +} + +build() { + cd termoid/build + export QT_SELECT=5 + cmake ../ \ + -DCMAKE_INSTALL_PREFIX=`kf5-config --prefix` \ + -DKDE_INSTALL_LIBDIR=lib \ + -DKDE_INSTALL_USE_QT_SYS_PATHS=ON \ + -DCMAKE_BUILD_TYPE=Release + make +} + +package() { + cd termoid/build + make DESTDIR="${pkgdir}" install +} diff --git a/packaging/CMakeLists.txt b/packaging/CMakeLists.txt new file mode 100644 index 0000000..27b699b --- /dev/null +++ b/packaging/CMakeLists.txt @@ -0,0 +1,70 @@ + +#------------------------------------------------------------------------------ +# CPACK +include(InstallRequiredSystemLibraries) + +set(CPACK_PACKAGE_VENDOR ${PROJECT_AUTHOR}) +set(CPACK_PACKAGE_NAME ${PROJECT_NAME}) +set(CPACK_PACKAGE_CONTACT ${PROJECT_AUTHOR}) +set(HOMEPAGE ${PROJECT_URL}) +set(CPACK_PACKAGE_DESCRIPTION_SUMMARY ${PROJECT_DESCRIPTION_SUMMARY}) +set(CPACK_PACKAGE_DESCRIPTION_FILE "${PROJECT_SOURCE_DIR}/ReadMe.md") +#set(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/license.md") +set(CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR}) +set(CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR}) +set(CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH}) + +set(CPACK_PACKAGE_INSTALL_DIRECTORY "${CMAKE_PROJECT_NAME}") +set(CPACK_PACKAGE_DIRECTORY "${CMAKE_BINARY_DIR}/build") + + +# set human names to exetuables +#set(CPACK_PACKAGE_EXECUTABLES "exampleApp" "My Example Executable") +#set(CPACK_CREATE_DESKTOP_LINKS "exampleApp") +set(CPACK_STRIP_FILES TRUE) + +# Linux specific +set(CPACK_GENERATOR "DEB;TBZ2;TXZ") +message(STATUS "Package generation - UNIX") +message(STATUS " + DEB YES ") +message(STATUS " + TBZ2 YES ") +message(STATUS " + TXZ YES ") + +find_program(RPMBUILD_PATH rpmbuild) +if(RPMBUILD_PATH) + message(STATUS " + RPM YES ") + set(CPACK_GENERATOR "${CPACK_GENERATOR};RPM") + set(CPACK_RPM_PACKAGE_LICENSE "MIT") + # set(CPACK_RPM_PACKAGE_REQUIRES "gtkmm30") + # exclude folders which clash with default ones + set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST + ${CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST} + /usr + /usr/bin + /usr/share + /usr/share/applications + /usr/share/doc + /usr/share/icons + /usr/share/icons/hicolor + /usr/share/icons/hicolor/256x256 + /usr/share/icons/hicolor/256x256/apps + /usr/share/icons/gnome + /usr/share/icons/gnome/256x256 + /usr/share/icons/gnome/256x256/apps) +else() + message(STATUS " + RPM NO ") +endif() + +# TODO do this better +set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "amd64") +set(CPACK_DEBIAN_PACKAGE_CONTROL_STRICT_PERMISSION TRUE) +set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "${HOMEPAGE}") +# set(CPACK_DEBIAN_COMPRESSION_TYPE "xz") +# set(CPACK_DEBIAN_PACKAGE_DEPENDS "libgtkmm-3.0") + +#------------------------------------------------------------------------------ +# and include CPack, so we get target for packages +include(CPack) + + + diff --git a/plasmoid/CMakeLists.txt b/plasmoid/CMakeLists.txt new file mode 100644 index 0000000..83b5ab2 --- /dev/null +++ b/plasmoid/CMakeLists.txt @@ -0,0 +1,23 @@ +# Set minimum CMake version (required for CMake 3.0 or later) +cmake_minimum_required(VERSION 3.1) + +project(termoid) + +# Use Extra CMake Modules (ECM) for common functionality. +# See http://api.kde.org/ecm/manual/ecm.7.html +# and http://api.kde.org/ecm/manual/ecm-kde-modules.7.html +find_package(ECM REQUIRED NO_MODULE) +# Needed by find_package(KF5Plasma) below. +set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR} ${CMAKE_MODULE_PATH}) + +include(KDEInstallDirs) +include(KDECMakeSettings) +include(KDECompilerSettings) + +# Locate plasma_install_package macro. +find_package(KF5Plasma REQUIRED) +find_package(Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Quick) +find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS Plasma) + +# Add installatation target ("make install"). +plasma_install_package(package com.koldbyte.kde.termoid) diff --git a/Requirements b/plasmoid/Requirements similarity index 100% rename from Requirements rename to plasmoid/Requirements diff --git a/build b/plasmoid/build similarity index 100% rename from build rename to plasmoid/build diff --git a/install b/plasmoid/install similarity index 100% rename from install rename to plasmoid/install diff --git a/package/contents/code/utils.js b/plasmoid/package/contents/code/utils.js similarity index 100% rename from package/contents/code/utils.js rename to plasmoid/package/contents/code/utils.js diff --git a/package/contents/config/config.qml b/plasmoid/package/contents/config/config.qml similarity index 100% rename from package/contents/config/config.qml rename to plasmoid/package/contents/config/config.qml diff --git a/package/contents/config/main.xml b/plasmoid/package/contents/config/main.xml similarity index 100% rename from package/contents/config/main.xml rename to plasmoid/package/contents/config/main.xml diff --git a/package/contents/ui/config/ConfigGeneral.qml b/plasmoid/package/contents/ui/config/ConfigGeneral.qml similarity index 100% rename from package/contents/ui/config/ConfigGeneral.qml rename to plasmoid/package/contents/ui/config/ConfigGeneral.qml diff --git a/package/contents/ui/config/ConfigPage.qml b/plasmoid/package/contents/ui/config/ConfigPage.qml similarity index 100% rename from package/contents/ui/config/ConfigPage.qml rename to plasmoid/package/contents/ui/config/ConfigPage.qml diff --git a/package/contents/ui/main.qml b/plasmoid/package/contents/ui/main.qml similarity index 99% rename from package/contents/ui/main.qml rename to plasmoid/package/contents/ui/main.qml index 1609ac4..6a7f4f3 100644 --- a/package/contents/ui/main.qml +++ b/plasmoid/package/contents/ui/main.qml @@ -25,7 +25,7 @@ import org.kde.plasma.plasmoid 2.0 import org.kde.plasma.core 2.0 as PlasmaCore import org.kde.plasma.components 2.0 as PlasmaComponents -import QMLTermWidget 1.0 +import qmlkonsole 1.0 import "../code/utils.js" as Utils diff --git a/package/metadata.desktop b/plasmoid/package/metadata.desktop similarity index 94% rename from package/metadata.desktop rename to plasmoid/package/metadata.desktop index f6e4b5a..e1f01ef 100644 --- a/package/metadata.desktop +++ b/plasmoid/package/metadata.desktop @@ -8,7 +8,7 @@ Icon=utilities-terminal X-KDE-PluginInfo-Author=Bhaskar Divya X-KDE-PluginInfo-Email= X-KDE-PluginInfo-Name=com.koldbyte.kde.termoid -X-KDE-PluginInfo-Version=0.4 +X-KDE-PluginInfo-Version=1.0 X-KDE-PluginInfo-Website=https://github.com/koldbyte/termoid X-KDE-PluginInfo-Category=Utilities X-KDE-PluginInfo-Depends=qtermwidget diff --git a/reinstall b/plasmoid/reinstall similarity index 100% rename from reinstall rename to plasmoid/reinstall diff --git a/run b/plasmoid/run similarity index 100% rename from run rename to plasmoid/run diff --git a/qmltermwidget b/qmltermwidget new file mode 160000 index 0000000..b93f0b2 --- /dev/null +++ b/qmltermwidget @@ -0,0 +1 @@ +Subproject commit b93f0b256d47b44485abfee4de59363e4476d51e