From 130fbcd48fdf511fa8e15cb43a4d249228bbbeb7 Mon Sep 17 00:00:00 2001 From: Gerasim Troeglazov <3dEyes@gmail.com> Date: Thu, 15 Aug 2019 20:30:22 +1000 Subject: [PATCH] KTechLab: add recipe --- .../additional-files/ktechlab.rdef.in | 53 ++++++ .../additional-files/run_kbuildsycoca.sh | 6 + .../ktechlab/ktechlab-0.50.0~git.recipe | 174 ++++++++++++++++++ .../patches/ktechlab-0.50.0~git.patchset | 93 ++++++++++ 4 files changed, 326 insertions(+) create mode 100644 sci-electronics/ktechlab/additional-files/ktechlab.rdef.in create mode 100755 sci-electronics/ktechlab/additional-files/run_kbuildsycoca.sh create mode 100644 sci-electronics/ktechlab/ktechlab-0.50.0~git.recipe create mode 100644 sci-electronics/ktechlab/patches/ktechlab-0.50.0~git.patchset diff --git a/sci-electronics/ktechlab/additional-files/ktechlab.rdef.in b/sci-electronics/ktechlab/additional-files/ktechlab.rdef.in new file mode 100644 index 000000000..9d1872533 --- /dev/null +++ b/sci-electronics/ktechlab/additional-files/ktechlab.rdef.in @@ -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" +}; diff --git a/sci-electronics/ktechlab/additional-files/run_kbuildsycoca.sh b/sci-electronics/ktechlab/additional-files/run_kbuildsycoca.sh new file mode 100755 index 000000000..665bb7cdc --- /dev/null +++ b/sci-electronics/ktechlab/additional-files/run_kbuildsycoca.sh @@ -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 diff --git a/sci-electronics/ktechlab/ktechlab-0.50.0~git.recipe b/sci-electronics/ktechlab/ktechlab-0.50.0~git.recipe new file mode 100644 index 000000000..67ec1ba97 --- /dev/null +++ b/sci-electronics/ktechlab/ktechlab-0.50.0~git.recipe @@ -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 +} diff --git a/sci-electronics/ktechlab/patches/ktechlab-0.50.0~git.patchset b/sci-electronics/ktechlab/patches/ktechlab-0.50.0~git.patchset new file mode 100644 index 000000000..d62d474a4 --- /dev/null +++ b/sci-electronics/ktechlab/patches/ktechlab-0.50.0~git.patchset @@ -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 + #include + +-#ifndef DARWIN ++#if !defined(DARWIN) && !defined(__HAIKU__) + #include + #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 +