KTechLab: add recipe

This commit is contained in:
Gerasim Troeglazov
2019-08-15 20:30:22 +10:00
parent 8f8bd28efb
commit 130fbcd48f
4 changed files with 326 additions and 0 deletions

View File

@@ -0,0 +1,53 @@
resource app_flags B_MULTIPLE_LAUNCH;
resource app_version {
major = @MAJOR@,
middle = @MIDDLE@,
minor = @MINOR@,
variety = B_APPV_FINAL,
internal = 0,
short_info = "KTechLab",
long_info = "@LONG_INFO@"
};
resource app_signature "@APP_SIGNATURE@";
resource vector_icon {
$"6E6369660C010100006A030100000533020006023A5D7039F8F5B9F8F53A5D70"
$"48A7854A84E100747474FF3E3D3D020016023C40A33251EBB251EB3C40A34958"
$"0048C23D00B0FF830200160336C46036744AB6919A36A4CC4C164D4863FE005A"
$"38DCFF7E0200160336C46036744AB6919A36A4CC4BB3B7494AFF005A38DCFF7E"
$"0200160336C46036744AB6919A36A4CC4B3AD54A18FF005A38DCFF7E02001603"
$"36C46036744AB6919A36A4CC4AC1F34A8C7F005A38DCFF7E039ABE5203FFAA00"
$"0300AAFF140A07C73644C8B944C97A46CBBE46CC7F44CAFD42CA9C330A07C431"
$"4AC5B44AC6754CC8B94CC97A4AC7F848C797390A07C12C52C2AF52C37054C5B4"
$"54C67552C4F350C492410A07BE2758BFAA58C06B5AC2AF5AC37058C1EE56C18D"
$"470607AA3F422A22433C4E5A32512F512F50304B2F4D30492E492C482D492C0A"
$"0422493C563C4E22430A043C565A385A323C4E0A043C565A385A323C4E0A0422"
$"493C563C4E22430607AA3F422A3931513A5A32512F512F50304B2F4D30492E49"
$"2C482D492C0608FAFAC971BCA3C7F0BE14C8B1BE70C851BE42C911BE9EC971BF"
$"83C971BF1AC971C05DC9D1C150CA92C097CAF3BE13CAF3BEEDCAF3BDAACA32BD"
$"00CA92BD2EC9D2BCD10608FAFAC971BCA3C7F0BE14C8B1BE70C851BE42C911BE"
$"9EC971BF83C971BF1AC971C05DC9D1C150CA92C097CAF3BE13CAF3BEEDCAF3BD"
$"AACA32BD00CA92BD2EC9D2BCD10608FAFAC66FBF844DC0F4C5AEC150C54EC122"
$"C60FC17EC66FC263C66FC1FAC66FC33DC6CEC430C790C377C7F0C0F3C7F0C1CD"
$"C7F0C08AC730BFE0C790C00EC6CFBFB20608FAFAC66FBF844DC0F4C5AEC150C5"
$"4EC122C60FC17EC66FC263C66FC1FAC66FC33DC6CEC430C790C377C7F0C0F3C7"
$"F0C1CDC7F0C08AC730BFE0C790C00EC6CFBFB20608FAFAC36CC264C1EBC3D4C2"
$"ACC430C24BC402C30CC45EC36CC543C36CC4DBC36CC61EC3CCC711C48DC6584D"
$"C3D34DC4AD4DC36AC42DC2C0C48DC2EEC3CDC2920608FAFAC36CC264C1EBC3D4"
$"C2ACC430C24BC402C30CC45EC36CC543C36CC4DBC36CC61EC3CCC711C48DC658"
$"4DC3D34DC4AD4DC36AC42DC2C0C48DC2EEC3CDC2920608FAFAC06AC544BEE8C6"
$"B5BFA9C711BF49C6E3C009C73FC06AC824C06AC7BBC06AC8FEC0C9C9F1C18BC9"
$"38C1EBC6B4C1EBC78EC1EBC64BC12AC5A0C18BC5CEC0CAC5720608FAFAC06AC5"
$"44BEE8C6B5BFA9C711BF49C6E3C009C73FC06AC824C06AC7BBC06AC8FEC0C9C9"
$"F1C18BC938C1EBC6B4C1EBC78EC1EBC64BC12AC5A0C18BC5CEC0CAC5720A0422"
$"432E3A47443C4E0A042E3A3931513A4744120A000100000A000101000A000102"
$"000A000103000A01030405061001178422040A020107000A030108000A0B0109"
$"000A01010A1001178322040A05010B000A01010C1001178322040A06010D000A"
$"01010E1001178322040A07010F000A0101101001178322040A080111000A0901"
$"12000A0A011300"
};

View File

@@ -0,0 +1,6 @@
#/bin/sh
# Rebuilds the KService desktop file system configuration cache.
# --global ignores any user-set files (in XDG_DATA_HOME).
kbuildsycoca5* --global

View File

@@ -0,0 +1,174 @@
SUMMARY="IDE for microcontrollers and electronics"
DESCRIPTION="KTechLab is an IDE for microcontrollers and electronics.
It supports circuit simulation,
program development for microcontrollers and
simulating the programmed microcontroller together with its application circuit."
HOMEPAGE="https://userbase.kde.org/KTechlab"
COPYRIGHT="2003-2019, The KTechLab developers"
LICENSE="GNU GPL v2"
REVISION="1"
srcGitRev="ae106416f50f6667b80c6eaa7c68b5b6bdacf439"
SOURCE_URI="https://github.com/KDE/ktechlab/archive/$srcGitRev.tar.gz"
CHECKSUM_SHA256="d94573731f6d00a3b837a0fb9099613597918eb010a6f0efb8b9a07fcb77c45b"
SOURCE_DIR="ktechlab-$srcGitRev"
PATCHES="ktechlab-$portVersion.patchset"
ADDITIONAL_FILES="
ktechlab.rdef.in
run_kbuildsycoca.sh
"
POST_INSTALL_SCRIPTS="$relativePostInstallDir/run_kbuildsycoca.sh"
ARCHITECTURES="!x86_gcc2 x86 x86_64"
SECONDARY_ARCHITECTURES="x86"
PROVIDES="
ktechlab$secondaryArchSuffix = $portVersion
app:KTechLab$secondaryArchSuffix = $portVersion
"
REQUIRES="
haiku$secondaryArchSuffix
cmd:kbuildsycoca5$secondaryArchSuffix
lib:libkdeinit5_kded5$secondaryArchSuffix
lib:libkdeinit5_klauncher$secondaryArchSuffix
lib:libKF5Archive$secondaryArchSuffix
lib:libKF5Auth$secondaryArchSuffix
lib:libKF5Bookmarks$secondaryArchSuffix
lib:libKF5Codecs$secondaryArchSuffix
lib:libKF5Completion$secondaryArchSuffix
lib:libKF5ConfigCore$secondaryArchSuffix
lib:libKF5ConfigGui$secondaryArchSuffix
lib:libKF5ConfigWidgets$secondaryArchSuffix
lib:libKF5CoreAddons$secondaryArchSuffix
lib:libKF5Crash$secondaryArchSuffix
lib:libKF5DBusAddons$secondaryArchSuffix
lib:libKF5DocTools$secondaryArchSuffix
lib:libKF5Emoticons$secondaryArchSuffix
lib:libKF5GuiAddons$secondaryArchSuffix
lib:libKF5I18n$secondaryArchSuffix
lib:libKF5IconThemes$secondaryArchSuffix
lib:libKF5ItemModels$secondaryArchSuffix
lib:libKF5ItemViews$secondaryArchSuffix
lib:libKF5JobWidgets$secondaryArchSuffix
lib:libKF5JS$secondaryArchSuffix
lib:libKF5JSApi$secondaryArchSuffix
lib:libKF5KDELibs4Support$secondaryArchSuffix
lib:libKF5KIOCore$secondaryArchSuffix
lib:libKF5KIOFileWidgets$secondaryArchSuffix
lib:libKF5KIOWidgets$secondaryArchSuffix
lib:libKF5KHtml$secondaryArchSuffix
lib:libKF5Notifications$secondaryArchSuffix
lib:libKF5Parts$secondaryArchSuffix
lib:libKF5Sane$secondaryArchSuffix
lib:libKF5Service$secondaryArchSuffix
lib:libKF5Solid$secondaryArchSuffix
lib:libKF5SonnetUi$secondaryArchSuffix
lib:libKF5TextEditor$secondaryArchSuffix
lib:libKF5TextWidgets$secondaryArchSuffix
lib:libKF5UnitConversion$secondaryArchSuffix
lib:libKF5WidgetsAddons$secondaryArchSuffix
lib:libKF5WindowSystem$secondaryArchSuffix
lib:libKF5XmlGui$secondaryArchSuffix
lib:libQt5Core$secondaryArchSuffix
lib:libQt5DBus$secondaryArchSuffix
lib:libQt5Gui$secondaryArchSuffix
lib:libQt5Network$secondaryArchSuffix
lib:libQt5PrintSupport$secondaryArchSuffix
lib:libQt5Widgets$secondaryArchSuffix
lib:libQt5Xml$secondaryArchSuffix
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
extra_cmake_modules$secondaryArchSuffix >= 5.55
devel:libkdeinit5_kded5$secondaryArchSuffix
devel:libkdeinit5_klauncher$secondaryArchSuffix
devel:libKF5Archive$secondaryArchSuffix
devel:libKF5Auth$secondaryArchSuffix
devel:libKF5Bookmarks$secondaryArchSuffix
devel:libKF5Codecs$secondaryArchSuffix
devel:libKF5Completion$secondaryArchSuffix
devel:libKF5ConfigCore$secondaryArchSuffix
devel:libKF5ConfigGui$secondaryArchSuffix
devel:libKF5ConfigWidgets$secondaryArchSuffix
devel:libKF5CoreAddons$secondaryArchSuffix
devel:libKF5Crash$secondaryArchSuffix
devel:libKF5DBusAddons$secondaryArchSuffix
devel:libKF5DesignerPlugin$secondaryArchSuffix
devel:libKF5DocTools$secondaryArchSuffix
devel:libKF5Emoticons$secondaryArchSuffix
devel:libKF5GuiAddons$secondaryArchSuffix
devel:libKF5I18n$secondaryArchSuffix
devel:libKF5IconThemes$secondaryArchSuffix
devel:libKF5ItemModels$secondaryArchSuffix
devel:libKF5ItemViews$secondaryArchSuffix
devel:libKF5JobWidgets$secondaryArchSuffix
devel:libKF5JS$secondaryArchSuffix
devel:libKF5KDELibs4Support$secondaryArchSuffix
devel:libKF5KIOCore$secondaryArchSuffix
devel:libKF5KIOFileWidgets$secondaryArchSuffix
devel:libKF5KIOWidgets$secondaryArchSuffix
devel:libKF5KHtml$secondaryArchSuffix
devel:libKF5Notifications$secondaryArchSuffix
devel:libKF5Parts$secondaryArchSuffix
devel:libKF5Sane$secondaryArchSuffix
devel:libKF5Service$secondaryArchSuffix
devel:libKF5Solid$secondaryArchSuffix
devel:libKF5SonnetUi$secondaryArchSuffix
devel:libKF5TextEditor$secondaryArchSuffix
devel:libKF5TextWidgets$secondaryArchSuffix
devel:libKF5UnitConversion$secondaryArchSuffix
devel:libKF5WidgetsAddons$secondaryArchSuffix
devel:libKF5WindowSystem$secondaryArchSuffix
devel:libKF5XmlGui$secondaryArchSuffix
devel:libQt5Core$secondaryArchSuffix >= 5.13
"
BUILD_PREREQUIRES="
cmd:cmake
cmd:g++$secondaryArchSuffix
cmd:lrelease$secondaryArchSuffix
cmd:make
"
BUILD()
{
mkdir -p build
cd build
cmake .. \
-DCMAKE_INSTALL_PREFIX=$prefix \
-DINCLUDE_INSTALL_DIR=$includeDir \
-DSHARE_INSTALL_PREFIX=$dataDir \
-DECM_MKSPECS_INSTALL_DIR=$dataDir/Qt5/mkspecs \
-DECM_DIR=/system/data/cmake/Modules/ECM/cmake \
-DCMAKE_INSTALL_PREFIX=$appsDir/KTechLab \
-DCMAKE_INSTALL_DATAROOTDIR=$dataDir
make $jobArgs
}
INSTALL()
{
cd build
make install
mv $appsDir/KTechLab/bin/ktechlab $appsDir/KTechLab/KTechLab
mv $appsDir/KTechLab/bin/microbe $appsDir/KTechLab/microbe
rm -rf $appsDir/KTechLab/bin
mkdir -p $postInstallDir
cp $portDir/additional-files/run_kbuildsycoca.sh $postInstallDir
local APP_SIGNATURE="application/x-vnd.kde-ktechlab"
local MAJOR="`echo "$portVersion" | cut -d. -f1`"
local MIDDLE="`echo "$portVersion" | cut -d. -f2`"
local MINOR="`echo "$portVersion" | cut -d. -f3 | cut -d~ -f1`"
local LONG_INFO="$SUMMARY"
sed \
-e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \
-e "s|@MAJOR@|$MAJOR|" \
-e "s|@MIDDLE@|$MIDDLE|" \
-e "s|@MINOR@|$MINOR|" \
-e "s|@LONG_INFO@|$LONG_INFO|" \
$portDir/additional-files/ktechlab.rdef.in > ktechlab.rdef
addResourcesToBinaries ktechlab.rdef $appsDir/KTechLab/KTechLab
addAppDeskbarSymlink $appsDir/KTechLab/KTechLab
}

View File

@@ -0,0 +1,93 @@
From 91397ed3ae0efebfd2b8006cd3effef57f2c4e92 Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Thu, 15 Aug 2019 20:00:02 +1000
Subject: Fix build for Haiku
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 693c09f..6b5bf0f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -55,7 +55,7 @@ find_package(KF5 REQUIRED COMPONENTS
# include(MacroPushRequiredVars) -> include(CMakePushCheckState)
# macro_push_required_vars() -> cmake_push_check_state()
# macro_pop_required_vars() -> cmake_pop_check_state()
-find_package(GPSim REQUIRED)
+find_package(GPSim)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
@@ -72,7 +72,7 @@ add_definitions(-fPIC)
if (KTECHLAB_DEVELOPER_BUILD)
# for debugging with GCC 5
add_definitions( -fno-omit-frame-pointer )
- set(SANITIZE_FLAGS " -fsanitize=address -fno-omit-frame-pointer -fPIC") # address
+ #set(SANITIZE_FLAGS " -fsanitize=address -fno-omit-frame-pointer -fPIC") # address
#set(SANITIZE_FLAGS " -fsanitize=undefined -fno-omit-frame-pointer ") # undefined
#set(SANITIZE_FLAGS "") # disabled
@@ -147,7 +147,7 @@ add_subdirectory( src )
add_subdirectory( examples )
add_subdirectory( icons )
add_subdirectory( icons-kde3 )
-add_subdirectory( doc )
+#add_subdirectory( doc )
add_subdirectory(tests)
diff --git a/microbe/CMakeLists.txt b/microbe/CMakeLists.txt
index 82dce56..8530915 100644
--- a/microbe/CMakeLists.txt
+++ b/microbe/CMakeLists.txt
@@ -19,7 +19,6 @@ add_executable(microbe ${microbe_SRCS})
target_link_libraries(microbe
KF5::KDELibs4Support
KF5::CoreAddons
- Qt5::Core
- pthread)
+ Qt5::Core)
install(TARGETS microbe ${INSTALL_TARGETS_DEFAULT_ARGS})
diff --git a/src/electronics/port.cpp b/src/electronics/port.cpp
index cc3d3b5..5bd7fa6 100644
--- a/src/electronics/port.cpp
+++ b/src/electronics/port.cpp
@@ -22,7 +22,7 @@
#include <sys/ioctl.h>
#include <unistd.h>
-#ifndef DARWIN
+#if !defined(DARWIN) && !defined(__HAIKU__)
#include <linux/ppdev.h>
#endif
@@ -39,7 +39,7 @@ Port::~Port()
QStringList Port::ports( unsigned probeResult )
{
-#ifndef DARWIN
+#if !defined(DARWIN) && !defined(__HAIKU__)
return SerialPort::ports(probeResult) + ParallelPort::ports(probeResult);
#else
return SerialPort::ports(probeResult);
@@ -120,7 +120,7 @@ bool SerialPort::pinState( Pin pin )
break;
case RD:
- mask = TIOCM_SR;
+ mask = TIOCM_DSR;
break;
case CTS:
@@ -264,7 +264,7 @@ const int INPUT_MODE_BIT = 1 << 21; // Controls if the data pins are input or ou
// No code using these values will be reached on Darwin, this is just to
// keep the preprocessor happy.
-#ifdef DARWIN
+#if defined(DARWIN) || defined(__HAIKU__)
#define PPRDATA 0xFACADE
#define PPRCONTROL 0xC001D00D
#define PPWDATA 0xC0EDBABE
--
2.21.0