From 8be7a61d844d9d0b4e406c4c0ec7505047fa4cfb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= Date: Tue, 17 Dec 2024 22:08:12 +0100 Subject: [PATCH] milkytracker: bump version and enable build with cmake --- ....00.recipe => milkytracker-1.05.01.recipe} | 57 ++- .../milkytracker-1.03.00-gcc2.patchset | 176 --------- .../patches/milkytracker-1.03.00.patchset | 176 --------- .../patches/milkytracker-1.05.01.patchset | 350 ++++++++++++++++++ 4 files changed, 377 insertions(+), 382 deletions(-) rename media-sound/milkytracker/{milkytracker-1.03.00.recipe => milkytracker-1.05.01.recipe} (52%) delete mode 100644 media-sound/milkytracker/patches/milkytracker-1.03.00-gcc2.patchset delete mode 100644 media-sound/milkytracker/patches/milkytracker-1.03.00.patchset create mode 100644 media-sound/milkytracker/patches/milkytracker-1.05.01.patchset diff --git a/media-sound/milkytracker/milkytracker-1.03.00.recipe b/media-sound/milkytracker/milkytracker-1.05.01.recipe similarity index 52% rename from media-sound/milkytracker/milkytracker-1.03.00.recipe rename to media-sound/milkytracker/milkytracker-1.05.01.recipe index 890de1f19..26827b7b7 100644 --- a/media-sound/milkytracker/milkytracker-1.03.00.recipe +++ b/media-sound/milkytracker/milkytracker-1.05.01.recipe @@ -19,17 +19,14 @@ COPYRIGHT=" " LICENSE="GNU GPL v3 New-BSD" -REVISION="2" +REVISION="1" SOURCE_URI="https://github.com/milkytracker/MilkyTracker/archive/v$portVersion.tar.gz" -CHECKSUM_SHA256="72d5357e303380b52383b66b51f944a77cd77e2b3bfeb227d87cc0e72ab292f7" +CHECKSUM_SHA256="c487fccf6c97c483f5a624c3a408377393fa45a27cca27323425ad71ee689e16" SOURCE_DIR="MilkyTracker-$portVersion" -PATCHES="milkytracker-$portVersion-gcc2.patchset" -if [ $effectiveTargetArchitecture != "x86_gcc2" ]; then - PATCHES="milkytracker-$portVersion.patchset" -fi +PATCHES="milkytracker-$portVersion.patchset" -ARCHITECTURES="!all" -SECONDARY_ARCHITECTURES="!x86" #crashes +ARCHITECTURES="all !x86_gcc2" +SECONDARY_ARCHITECTURES="x86" PROVIDES=" milkytracker$secondaryArchSuffix = $portVersion @@ -38,7 +35,7 @@ PROVIDES=" " REQUIRES=" haiku$secondaryArchSuffix - lib:libz$secondaryArchSuffix >= 1.2.3 + lib:libz$secondaryArchSuffix lib:libzzip_0$secondaryArchSuffix " @@ -48,35 +45,35 @@ BUILD_REQUIRES=" devel:libzzip_0$secondaryArchSuffix " BUILD_PREREQUIRES=" + cmd:cmake cmd:gcc$secondaryArchSuffix - cmd:jam cmd:ld$secondaryArchSuffix + cmd:make " BUILD() { - VER_X=1; VER_YY=03; VER_ZZ=00; - echo "const int MILKYTRACKER_VERSION = 0x${VER_X}${VER_YY}${VER_ZZ};" \ - > src/tracker/version.h - echo "const char MILKYTRACKER_VERSION_STRING[] = \"MilkyTracker ${VER_X}.${VER_YY}.${VER_ZZ}\";" \ - >> src/tracker/version.h - - pushd $sourceDir/platforms/haiku - bash ./Add_Jamfiles.sh - popd - jam -q $jobArgs + cmake -S. -Bbuild $cmakeDirArgs \ + -DCMAKE_BUILD_TYPE=Release + make -C build $jobArgs } INSTALL() { - TARGET_DIR=$appsDir/MilkyTracker - mkdir -p $TARGET_DIR - cp -af src/tracker/MilkyTracker $TARGET_DIR/ - cp -af src/tracker/haiku/MilkySettings/MilkySettings $TARGET_DIR/ - cp -af docs/ChangeLog.html $TARGET_DIR/ - cp -af docs/FAQ.html $TARGET_DIR/ - cp -af docs/MilkyTracker.html $TARGET_DIR/ - cp -af docs/TiTAN.nfo $TARGET_DIR/ - cp -af COPYING $TARGET_DIR/ - addAppDeskbarSymlink $TARGET_DIR/MilkyTracker MilkyTracker + make -C build install + + mkdir $appsDir + mv $binDir/milkytracker $appsDir/MilkyTracker + + local MAJOR="`echo "$portVersion" | cut -d. -f1`" + local MIDDLE="`echo "$portVersion" | cut -d. -f2`" + local MINOR="`echo "$portVersion" | cut -d. -f3`" + sed \ + -e "s|@MAJOR@|$MAJOR|" \ + -e "s|@MIDDLE@|$MIDDLE|" \ + -e "s|@MINOR@|$MINOR|" \ + src/tracker/haiku/MilkyTracker.rdef > MilkyTracker.rdef + + addResourcesToBinaries MilkyTracker.rdef $appsDir/MilkyTracker + addAppDeskbarSymlink $appsDir/MilkyTracker MilkyTracker } diff --git a/media-sound/milkytracker/patches/milkytracker-1.03.00-gcc2.patchset b/media-sound/milkytracker/patches/milkytracker-1.03.00-gcc2.patchset deleted file mode 100644 index e811872f4..000000000 --- a/media-sound/milkytracker/patches/milkytracker-1.03.00-gcc2.patchset +++ /dev/null @@ -1,176 +0,0 @@ -From 526dba76a0c77ad0ee5a5b749f41345599991097 Mon Sep 17 00:00:00 2001 -From: Jerome Duval -Date: Wed, 3 Sep 2014 16:22:32 +0000 -Subject: Include - - -diff --git a/src/ppui/BasicTypes.h b/src/ppui/BasicTypes.h -index 20eba8b..63e0c1c 100644 ---- a/src/ppui/BasicTypes.h -+++ b/src/ppui/BasicTypes.h -@@ -43,7 +43,7 @@ typedef signed int pp_int32; - #include - #include - #include -- #include -+ #include - #include "VirtualKeys.h" - #include "PPSystemString_POSIX.h" - #endif --- -2.30.2 - - -From 6f2b4b90b2db90dc08527899d799632d20067b70 Mon Sep 17 00:00:00 2001 -From: Jerome Duval -Date: Tue, 23 May 2017 23:34:15 +0200 -Subject: Build update for 1.0.3.00 - - -diff --git a/platforms/haiku/Add_Jamfiles.sh b/platforms/haiku/Add_Jamfiles.sh -index c4601e8..1bcd1b3 100644 ---- a/platforms/haiku/Add_Jamfiles.sh -+++ b/platforms/haiku/Add_Jamfiles.sh -@@ -7,7 +7,6 @@ echo "Copying Jamfiles..." - cp Jamfiles/Jamfile $MILKY_ROOT - cp Jamfiles/Jamrules $MILKY_ROOT - cp Jamfiles/src-compression-Jamfile $MILKY_ROOT/src/compression/Jamfile --cp Jamfiles/src-compression-zzlib-generic-Jamfile $MILKY_ROOT/src/compression/zziplib/generic/Jamfile - cp Jamfiles/src-fx-Jamfile $MILKY_ROOT/src/fx/Jamfile - cp Jamfiles/src-midi-Jamfile $MILKY_ROOT/src/midi/Jamfile - cp Jamfiles/src-milkyplay-Jamfile $MILKY_ROOT/src/milkyplay/Jamfile -diff --git a/platforms/haiku/Jamfiles/Jamfile b/platforms/haiku/Jamfiles/Jamfile -index a549511..8c3f7e5 100644 ---- a/platforms/haiku/Jamfiles/Jamfile -+++ b/platforms/haiku/Jamfiles/Jamfile -@@ -1,7 +1,6 @@ - SubDir TOP ; - - SubInclude TOP src compression ; --SubInclude TOP src compression zziplib generic ; - SubInclude TOP src fx ; - SubInclude TOP src midi ; - SubInclude TOP src milkyplay ; -diff --git a/platforms/haiku/Jamfiles/Jamrules b/platforms/haiku/Jamfiles/Jamrules -index 7236a0f..dfce893 100644 ---- a/platforms/haiku/Jamfiles/Jamrules -+++ b/platforms/haiku/Jamfiles/Jamrules -@@ -1,6 +1,6 @@ - C++ = g++ ; - C++FLAGS = -O2 -DMILKYTRACKER -D__HAIKU__ ; --LINKFLAGS = -Xlinker -soname=_APP_ ; -+LINKFLAGS = -Xlinker -soname=_APP_ -Xlinker --whole-archive ; - - # Paths to sources, used as include paths - PathCompression = $(TOP)/src/compression ; -diff --git a/platforms/haiku/Jamfiles/src-compression-Jamfile b/platforms/haiku/Jamfiles/src-compression-Jamfile -index e2323fa..4329ffa 100644 ---- a/platforms/haiku/Jamfiles/src-compression-Jamfile -+++ b/platforms/haiku/Jamfiles/src-compression-Jamfile -@@ -1,17 +1,14 @@ - SubDir TOP src compression ; - --SubDirHdrs $(PathCompression) lha ; - SubDirHdrs $(PathMilkyPlay) ; - SubDirHdrs $(PathOSInterface) posix ; - SubDirHdrs $(PathPPUI) ; - SubDirHdrs $(PathZZIP) ; --SubDirHdrs - ; --SubDirHdrs $(PathZZIP) generic ; - - Library libcompression : - Decompressor.cpp - DecompressorGZIP.cpp -- DecompressorLHA.cpp -+ #DecompressorLHA.cpp - DecompressorLZX.cpp - DecompressorPP20.cpp - DecompressorUMX.cpp -@@ -19,6 +16,6 @@ Library libcompression : - PP20.cpp - unlzx.cpp - ZipExtractor.cpp -- lha/unlha.cpp -+ #lha/unlha.cpp - zziplib/MyIO.cpp - ; -diff --git a/platforms/haiku/Jamfiles/src-tracker-Jamfile b/platforms/haiku/Jamfiles/src-tracker-Jamfile -index 39e0412..68d2519 100644 ---- a/platforms/haiku/Jamfiles/src-tracker-Jamfile -+++ b/platforms/haiku/Jamfiles/src-tracker-Jamfile -@@ -11,11 +11,10 @@ SubDirHdrs $(PathPPUI) haiku ; - SubDirHdrs $(PathTracker) haiku ; - SubDirHdrs - ; - --LINKLIBS on MilkyTracker = -lbe -lgame -lmedia -lmidi2 -ltextencoding -ltracker ; -+LINKLIBS on MilkyTracker = -Xlinker --no-whole-archive -lbe -lgame -lmedia -lmidi2 -ltextencoding -ltracker -lz -lzzip ; - - LinkLibraries MilkyTracker : - libcompression -- libzzip - libfx - libmilkyplay - libppui -@@ -37,11 +36,11 @@ Main MilkyTracker : - DialogResample.cpp - DialogWithValues.cpp - DialogZap.cpp -+ EQConstants.cpp - EditorBase.cpp - EnvelopeContainer.cpp - EnvelopeEditor.cpp - EnvelopeEditorControl.cpp -- EQConstants.cpp - Equalizer.cpp - FileExtProvider.cpp - FileIdentificator.cpp -diff --git a/platforms/haiku/Jamfiles/src-tracker-haiku-MilkySettings-Jamfile b/platforms/haiku/Jamfiles/src-tracker-haiku-MilkySettings-Jamfile -index 662ee18..3042b44 100644 ---- a/platforms/haiku/Jamfiles/src-tracker-haiku-MilkySettings-Jamfile -+++ b/platforms/haiku/Jamfiles/src-tracker-haiku-MilkySettings-Jamfile -@@ -1,6 +1,6 @@ - SubDir TOP src tracker haiku MilkySettings ; - --LINKLIBS on MilkySettings = -lbe -lmidi2 ; -+LINKLIBS on MilkySettings = -Xlinker --no-whole-archive -lbe -lmidi2 ; - - Main MilkySettings : - MilkySettingsApplication.cpp --- -2.30.2 - - -From 4c7a239af8a42f463d4cbb04d47b881a49869d09 Mon Sep 17 00:00:00 2001 -From: Jerome Duval -Date: Wed, 3 Sep 2014 16:47:15 +0000 -Subject: link against libstdc++ - - -diff --git a/platforms/haiku/Jamfiles/src-tracker-Jamfile b/platforms/haiku/Jamfiles/src-tracker-Jamfile -index 68d2519..8cb0073 100644 ---- a/platforms/haiku/Jamfiles/src-tracker-Jamfile -+++ b/platforms/haiku/Jamfiles/src-tracker-Jamfile -@@ -11,7 +11,7 @@ SubDirHdrs $(PathPPUI) haiku ; - SubDirHdrs $(PathTracker) haiku ; - SubDirHdrs - ; - --LINKLIBS on MilkyTracker = -Xlinker --no-whole-archive -lbe -lgame -lmedia -lmidi2 -ltextencoding -ltracker -lz -lzzip ; -+LINKLIBS on MilkyTracker = -Xlinker --no-whole-archive -lbe -lgame -lmedia -lmidi2 -ltextencoding -lstdc++.r4 -ltracker -lz -lzzip ; - - LinkLibraries MilkyTracker : - libcompression -diff --git a/platforms/haiku/Jamfiles/src-tracker-haiku-MilkySettings-Jamfile b/platforms/haiku/Jamfiles/src-tracker-haiku-MilkySettings-Jamfile -index 3042b44..4ece810 100644 ---- a/platforms/haiku/Jamfiles/src-tracker-haiku-MilkySettings-Jamfile -+++ b/platforms/haiku/Jamfiles/src-tracker-haiku-MilkySettings-Jamfile -@@ -1,6 +1,6 @@ - SubDir TOP src tracker haiku MilkySettings ; - --LINKLIBS on MilkySettings = -Xlinker --no-whole-archive -lbe -lmidi2 ; -+LINKLIBS on MilkySettings = -Xlinker --no-whole-archive -lbe -lmidi2 -lstdc++.r4 ; - - Main MilkySettings : - MilkySettingsApplication.cpp --- -2.30.2 - diff --git a/media-sound/milkytracker/patches/milkytracker-1.03.00.patchset b/media-sound/milkytracker/patches/milkytracker-1.03.00.patchset deleted file mode 100644 index 02feafb55..000000000 --- a/media-sound/milkytracker/patches/milkytracker-1.03.00.patchset +++ /dev/null @@ -1,176 +0,0 @@ -From 526dba76a0c77ad0ee5a5b749f41345599991097 Mon Sep 17 00:00:00 2001 -From: Jerome Duval -Date: Wed, 3 Sep 2014 16:22:32 +0000 -Subject: Include - - -diff --git a/src/ppui/BasicTypes.h b/src/ppui/BasicTypes.h -index 20eba8b..63e0c1c 100644 ---- a/src/ppui/BasicTypes.h -+++ b/src/ppui/BasicTypes.h -@@ -43,7 +43,7 @@ typedef signed int pp_int32; - #include - #include - #include -- #include -+ #include - #include "VirtualKeys.h" - #include "PPSystemString_POSIX.h" - #endif --- -2.30.2 - - -From 6f2b4b90b2db90dc08527899d799632d20067b70 Mon Sep 17 00:00:00 2001 -From: Jerome Duval -Date: Tue, 23 May 2017 23:34:15 +0200 -Subject: Build update for 1.0.3.00 - - -diff --git a/platforms/haiku/Add_Jamfiles.sh b/platforms/haiku/Add_Jamfiles.sh -index c4601e8..1bcd1b3 100644 ---- a/platforms/haiku/Add_Jamfiles.sh -+++ b/platforms/haiku/Add_Jamfiles.sh -@@ -7,7 +7,6 @@ echo "Copying Jamfiles..." - cp Jamfiles/Jamfile $MILKY_ROOT - cp Jamfiles/Jamrules $MILKY_ROOT - cp Jamfiles/src-compression-Jamfile $MILKY_ROOT/src/compression/Jamfile --cp Jamfiles/src-compression-zzlib-generic-Jamfile $MILKY_ROOT/src/compression/zziplib/generic/Jamfile - cp Jamfiles/src-fx-Jamfile $MILKY_ROOT/src/fx/Jamfile - cp Jamfiles/src-midi-Jamfile $MILKY_ROOT/src/midi/Jamfile - cp Jamfiles/src-milkyplay-Jamfile $MILKY_ROOT/src/milkyplay/Jamfile -diff --git a/platforms/haiku/Jamfiles/Jamfile b/platforms/haiku/Jamfiles/Jamfile -index a549511..8c3f7e5 100644 ---- a/platforms/haiku/Jamfiles/Jamfile -+++ b/platforms/haiku/Jamfiles/Jamfile -@@ -1,7 +1,6 @@ - SubDir TOP ; - - SubInclude TOP src compression ; --SubInclude TOP src compression zziplib generic ; - SubInclude TOP src fx ; - SubInclude TOP src midi ; - SubInclude TOP src milkyplay ; -diff --git a/platforms/haiku/Jamfiles/Jamrules b/platforms/haiku/Jamfiles/Jamrules -index 7236a0f..dfce893 100644 ---- a/platforms/haiku/Jamfiles/Jamrules -+++ b/platforms/haiku/Jamfiles/Jamrules -@@ -1,6 +1,6 @@ - C++ = g++ ; - C++FLAGS = -O2 -DMILKYTRACKER -D__HAIKU__ ; --LINKFLAGS = -Xlinker -soname=_APP_ ; -+LINKFLAGS = -Xlinker -soname=_APP_ -Xlinker --whole-archive ; - - # Paths to sources, used as include paths - PathCompression = $(TOP)/src/compression ; -diff --git a/platforms/haiku/Jamfiles/src-compression-Jamfile b/platforms/haiku/Jamfiles/src-compression-Jamfile -index e2323fa..4329ffa 100644 ---- a/platforms/haiku/Jamfiles/src-compression-Jamfile -+++ b/platforms/haiku/Jamfiles/src-compression-Jamfile -@@ -1,17 +1,14 @@ - SubDir TOP src compression ; - --SubDirHdrs $(PathCompression) lha ; - SubDirHdrs $(PathMilkyPlay) ; - SubDirHdrs $(PathOSInterface) posix ; - SubDirHdrs $(PathPPUI) ; - SubDirHdrs $(PathZZIP) ; --SubDirHdrs - ; --SubDirHdrs $(PathZZIP) generic ; - - Library libcompression : - Decompressor.cpp - DecompressorGZIP.cpp -- DecompressorLHA.cpp -+ #DecompressorLHA.cpp - DecompressorLZX.cpp - DecompressorPP20.cpp - DecompressorUMX.cpp -@@ -19,6 +16,6 @@ Library libcompression : - PP20.cpp - unlzx.cpp - ZipExtractor.cpp -- lha/unlha.cpp -+ #lha/unlha.cpp - zziplib/MyIO.cpp - ; -diff --git a/platforms/haiku/Jamfiles/src-tracker-Jamfile b/platforms/haiku/Jamfiles/src-tracker-Jamfile -index 39e0412..68d2519 100644 ---- a/platforms/haiku/Jamfiles/src-tracker-Jamfile -+++ b/platforms/haiku/Jamfiles/src-tracker-Jamfile -@@ -11,11 +11,10 @@ SubDirHdrs $(PathPPUI) haiku ; - SubDirHdrs $(PathTracker) haiku ; - SubDirHdrs - ; - --LINKLIBS on MilkyTracker = -lbe -lgame -lmedia -lmidi2 -ltextencoding -ltracker ; -+LINKLIBS on MilkyTracker = -Xlinker --no-whole-archive -lbe -lgame -lmedia -lmidi2 -ltextencoding -ltracker -lz -lzzip ; - - LinkLibraries MilkyTracker : - libcompression -- libzzip - libfx - libmilkyplay - libppui -@@ -37,11 +36,11 @@ Main MilkyTracker : - DialogResample.cpp - DialogWithValues.cpp - DialogZap.cpp -+ EQConstants.cpp - EditorBase.cpp - EnvelopeContainer.cpp - EnvelopeEditor.cpp - EnvelopeEditorControl.cpp -- EQConstants.cpp - Equalizer.cpp - FileExtProvider.cpp - FileIdentificator.cpp -diff --git a/platforms/haiku/Jamfiles/src-tracker-haiku-MilkySettings-Jamfile b/platforms/haiku/Jamfiles/src-tracker-haiku-MilkySettings-Jamfile -index 662ee18..3042b44 100644 ---- a/platforms/haiku/Jamfiles/src-tracker-haiku-MilkySettings-Jamfile -+++ b/platforms/haiku/Jamfiles/src-tracker-haiku-MilkySettings-Jamfile -@@ -1,6 +1,6 @@ - SubDir TOP src tracker haiku MilkySettings ; - --LINKLIBS on MilkySettings = -lbe -lmidi2 ; -+LINKLIBS on MilkySettings = -Xlinker --no-whole-archive -lbe -lmidi2 ; - - Main MilkySettings : - MilkySettingsApplication.cpp --- -2.30.2 - - -From 4c7a239af8a42f463d4cbb04d47b881a49869d09 Mon Sep 17 00:00:00 2001 -From: Jerome Duval -Date: Wed, 3 Sep 2014 16:47:15 +0000 -Subject: link against libstdc++ - - -diff --git a/platforms/haiku/Jamfiles/src-tracker-Jamfile b/platforms/haiku/Jamfiles/src-tracker-Jamfile -index 68d2519..8cb0073 100644 ---- a/platforms/haiku/Jamfiles/src-tracker-Jamfile -+++ b/platforms/haiku/Jamfiles/src-tracker-Jamfile -@@ -11,7 +11,7 @@ SubDirHdrs $(PathPPUI) haiku ; - SubDirHdrs $(PathTracker) haiku ; - SubDirHdrs - ; - --LINKLIBS on MilkyTracker = -Xlinker --no-whole-archive -lbe -lgame -lmedia -lmidi2 -ltextencoding -ltracker -lz -lzzip ; -+LINKLIBS on MilkyTracker = -Xlinker --no-whole-archive -lbe -lgame -lmedia -lmidi2 -ltextencoding -lstdc++ -ltracker -lz -lzzip ; - - LinkLibraries MilkyTracker : - libcompression -diff --git a/platforms/haiku/Jamfiles/src-tracker-haiku-MilkySettings-Jamfile b/platforms/haiku/Jamfiles/src-tracker-haiku-MilkySettings-Jamfile -index 3042b44..4ece810 100644 ---- a/platforms/haiku/Jamfiles/src-tracker-haiku-MilkySettings-Jamfile -+++ b/platforms/haiku/Jamfiles/src-tracker-haiku-MilkySettings-Jamfile -@@ -1,6 +1,6 @@ - SubDir TOP src tracker haiku MilkySettings ; - --LINKLIBS on MilkySettings = -Xlinker --no-whole-archive -lbe -lmidi2 ; -+LINKLIBS on MilkySettings = -Xlinker --no-whole-archive -lbe -lmidi2 -lstdc++ ; - - Main MilkySettings : - MilkySettingsApplication.cpp --- -2.30.2 - diff --git a/media-sound/milkytracker/patches/milkytracker-1.05.01.patchset b/media-sound/milkytracker/patches/milkytracker-1.05.01.patchset new file mode 100644 index 000000000..961190262 --- /dev/null +++ b/media-sound/milkytracker/patches/milkytracker-1.05.01.patchset @@ -0,0 +1,350 @@ +From 0a57a6529a38de9b419b2da3caac4d9bb9b87824 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= +Date: Tue, 17 Dec 2024 21:27:39 +0100 +Subject: Support Haiku in the CMake build + + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index b05e3da..76e0546 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -155,6 +155,10 @@ elseif(WIN32) + # Windows MIDI support requires no external libraries + message(STATUS "Enabled MIDI support (WinMM)") + add_subdirectory(src/midi) ++elseif(HAIKU) ++ # Haiku MIDI support requires no external libraries ++ message(STATUS "Enabled MIDI support (Haiku)") ++ add_subdirectory(src/midi) + else() + # Workaround for SDL bug #3295, which occurs in SDL2 <2.0.5 + # https://bugzilla.libsdl.org/show_bug.cgi?id=3295 +diff --git a/src/midi/CMakeLists.txt b/src/midi/CMakeLists.txt +index 8481d15..ceb850e 100644 +--- a/src/midi/CMakeLists.txt ++++ b/src/midi/CMakeLists.txt +@@ -80,6 +80,25 @@ elseif(WIN32) + ) + + target_link_libraries(midi PUBLIC winmm) ++elseif(HAIKU) ++ target_sources(midi PRIVATE ++ # Sources ++ haiku/MidiSetup.cpp ++ haiku/MilkyMidiConsumer.cpp ++ ++ # Headers ++ haiku/MidiSetup.h ++ haiku/MilkyMidiConsumer.h ++ ) ++ ++ target_include_directories(midi ++ PUBLIC ++ ${CMAKE_CURRENT_SOURCE_DIR}/haiku ++ PRIVATE ++ ${CMAKE_CURRENT_SOURCE_DIR}/../ppui/osinterface/posix ++ ) ++ ++ target_link_libraries(midi PUBLIC midi2) + else() + target_sources(midi PRIVATE + # Sources +diff --git a/src/milkyplay/CMakeLists.txt b/src/milkyplay/CMakeLists.txt +index 81f70c4..9c3f886 100644 +--- a/src/milkyplay/CMakeLists.txt ++++ b/src/milkyplay/CMakeLists.txt +@@ -198,6 +198,24 @@ elseif(WIN32) + message("RtAudio support disabled (RtAudio unavailable)") + endif() + target_link_libraries(milkyplay PRIVATE winmm dsound) ++elseif(HAIKU) ++ target_sources(milkyplay ++ PRIVATE ++ # Sources ++ drivers/haiku/AudioDriver_Haiku.cpp ++ ++ # Headers ++ drivers/haiku/AudioDriver_Haiku.h ++ ) ++ target_include_directories(milkyplay ++ PRIVATE ++ drivers/haiku ++ ) ++ target_link_libraries(milkyplay ++ PRIVATE ++ media ++ ) ++ message(STATUS "Enabled Haiku Audio support") + else() + target_compile_definitions(milkyplay PRIVATE -DDRIVER_UNIX) + +diff --git a/src/ppui/CMakeLists.txt b/src/ppui/CMakeLists.txt +index df80970..899b545 100644 +--- a/src/ppui/CMakeLists.txt ++++ b/src/ppui/CMakeLists.txt +@@ -102,12 +102,19 @@ add_library(ppui STATIC + VirtualKeys.h + ) + +-target_include_directories(ppui +- PUBLIC +- . +- PRIVATE +- osinterface +-) ++if (HAIKU) ++ target_include_directories(ppui ++ PRIVATE ++ osinterface ++ ) ++else() ++ target_include_directories(ppui ++ PUBLIC ++ . ++ PRIVATE ++ osinterface ++ ) ++endif() + + target_link_libraries(ppui PRIVATE osinterface) + +@@ -136,6 +143,32 @@ elseif(WIN32) + PUBLIC + win32 + ) ++elseif(HAIKU) ++ target_sources(ppui ++ PRIVATE ++ haiku/DisplayDevice_Haiku.cpp ++ haiku/DisplayDevice_Haiku.h ++ haiku/MilkyView.cpp ++ haiku/MilkyView.h ++ haiku/MilkyWindow.cpp ++ haiku/MilkyWindow.h ++ haiku/KeyCodeMap.cpp ++ haiku/KeyCodeMap.h ++ ) ++ target_include_directories(ppui ++ PRIVATE ++ ${PROJECT_SOURCE_DIR}/src/milkyplay ++ ${PROJECT_SOURCE_DIR}/src/ppui/osinterface ++ ${PROJECT_SOURCE_DIR}/src/ppui/osinterface/haiku ++ ${PROJECT_SOURCE_DIR}/src/ppui/osinterface/posix ++ ${PROJECT_SOURCE_DIR}/src/ppui/haiku ++ ${PROJECT_SOURCE_DIR}/src/tracker ++ ${PROJECT_SOURCE_DIR}/src/tracker/haiku ++ PUBLIC ++ haiku ++ osinterface/posix ++ ) ++ target_compile_options(ppui PRIVATE -iquote ${PROJECT_SOURCE_DIR}/src/ppui) + else() + target_sources(ppui + PRIVATE +diff --git a/src/ppui/haiku/MilkyWindow.h b/src/ppui/haiku/MilkyWindow.h +index fd1891b..78e9156 100644 +--- a/src/ppui/haiku/MilkyWindow.h ++++ b/src/ppui/haiku/MilkyWindow.h +@@ -58,7 +58,7 @@ public: + BHandler* target); + + void ForwardEvents(); +- status_t RaiseEvent(PPEvent* event); ++ void RaiseEvent(PPEvent* event); + private: + static status_t _EventThread(void* data); + +@@ -79,7 +79,7 @@ private: + }; + + +-inline status_t ++inline void + MilkyWindow::RaiseEvent(PPEvent* event) + { + status_t status = write_port_etc(fEventPort, 0, event, sizeof(PPEvent), +diff --git a/src/ppui/osinterface/CMakeLists.txt b/src/ppui/osinterface/CMakeLists.txt +index 6452f51..de18ac6 100644 +--- a/src/ppui/osinterface/CMakeLists.txt ++++ b/src/ppui/osinterface/CMakeLists.txt +@@ -33,12 +33,19 @@ add_library(osinterface STATIC + PPSystem.h + ) + +-target_include_directories(osinterface +- PUBLIC +- ${CMAKE_CURRENT_SOURCE_DIR} +- PRIVATE +- ${CMAKE_CURRENT_SOURCE_DIR}/.. +-) ++if (HAIKU) ++ target_include_directories(osinterface ++ PUBLIC ++ ${CMAKE_CURRENT_SOURCE_DIR} ++ ) ++else() ++ target_include_directories(osinterface ++ PUBLIC ++ ${CMAKE_CURRENT_SOURCE_DIR} ++ PRIVATE ++ ${CMAKE_CURRENT_SOURCE_DIR}/.. ++ ) ++endif() + + # Add platform-specific sources and include paths + if(APPLE) +@@ -86,6 +93,35 @@ elseif(WIN32) + PUBLIC + win32 + ) ++elseif(HAIKU) ++ target_sources(osinterface ++ PRIVATE ++ # Sources ++ PPPathFactory.cpp ++ posix/PPMutex.cpp ++ posix/PPPath_POSIX.cpp ++ posix/PPSystem_POSIX.cpp ++ haiku/SynchronousFilePanel.cpp ++ haiku/PPMessageBox_Haiku.cpp ++ haiku/PPOpenPanel_Haiku.cpp ++ haiku/PPQuitSaveAlert_Haiku.cpp ++ haiku/PPSavePanel_Haiku.cpp ++ haiku/WaitView.cpp ++ haiku/WaitWindow.cpp ++ ++ # Headers ++ posix/PPMutex.h ++ posix/PPPath_POSIX.h ++ posix/PPSystemString_POSIX.h ++ posix/PPSystem_POSIX.h ++ ) ++ target_include_directories(osinterface ++ PRIVATE ++ ${PROJECT_SOURCE_DIR}/src/ppui/haiku ++ ${PROJECT_SOURCE_DIR}/src/tracker/haiku ++ posix ++ ) ++ target_compile_options(osinterface PRIVATE -iquote ${PROJECT_SOURCE_DIR}/src/ppui) + else() + target_sources(osinterface + PRIVATE +diff --git a/src/tracker/CMakeLists.txt b/src/tracker/CMakeLists.txt +index 6f3c0ab..621e87a 100644 +--- a/src/tracker/CMakeLists.txt ++++ b/src/tracker/CMakeLists.txt +@@ -291,6 +291,29 @@ elseif(WIN32) + win32/ThreadTimer.h + win32/Win32_resource.h + ) ++elseif(HAIKU) ++ target_sources(tracker PRIVATE ++ haiku/Haiku_main.cpp ++ haiku/Tools.cpp ++ haiku/MilkyApplication.cpp ++ ) ++ ++ target_include_directories(tracker ++ PRIVATE ++ ${PROJECT_SOURCE_DIR}/src/midi/haiku ++ ) ++ target_compile_options(tracker PRIVATE -iquote ${PROJECT_SOURCE_DIR}/src/ppui) ++ ++ ++ add_executable(settings ++ haiku/MilkySettings/main.cpp ++ haiku/MilkySettings/InterfaceSettingsView.cpp ++ haiku/MilkySettings/MidiSettingsView.cpp ++ haiku/MilkySettings/MilkySettingsApplication.cpp ++ haiku/MilkySettings/SettingsWindow.cpp ++ ) ++ ++ set_target_properties(settings PROPERTIES OUTPUT_NAME MilkySettings) + else() + target_sources(tracker PRIVATE + # Sources +@@ -358,6 +381,10 @@ elseif(WIN32) + set_target_properties(tracker PROPERTIES WIN32_EXECUTABLE TRUE) + + target_link_libraries(tracker midi) ++elseif(HAIKU) ++ target_link_libraries(tracker midi be libtracker.so) ++ ++ target_link_libraries(settings midi2 be) + else() + if(ALSA_FOUND AND RTMIDI_FOUND) + target_compile_definitions(tracker PRIVATE -DHAVE_LIBRTMIDI) +diff --git a/src/tracker/Tracker.h b/src/tracker/Tracker.h +index 1155df2..9cd10d4 100644 +--- a/src/tracker/Tracker.h ++++ b/src/tracker/Tracker.h +@@ -98,7 +98,7 @@ private: + PanelTop_Sample, + PanelTop_Instrument + }; +- PanelRotate panelrotate = PanelRotate::PanelTop; ++ PanelRotate panelrotate = PanelTop; + + // I've replaced some constants + #ifndef __LOWRES__ +diff --git a/src/tracker/TrackerKeyboard.cpp b/src/tracker/TrackerKeyboard.cpp +index 82b1bbe..340fa3d 100644 +--- a/src/tracker/TrackerKeyboard.cpp ++++ b/src/tracker/TrackerKeyboard.cpp +@@ -451,18 +451,18 @@ void Tracker::eventKeyDownBinding_RotatePanels() + return; + + switch( panelrotate ){ +- case PanelRotate::PanelTop:{ +- panelrotate = PanelRotate::PanelTop_Sample; ++ case PanelTop:{ ++ panelrotate = PanelTop_Sample; + eventKeyDownBinding_InvokeSectionSamples(); + break; + } +- case PanelRotate::PanelTop_Sample:{ +- panelrotate = PanelRotate::PanelTop_Instrument; ++ case PanelTop_Sample:{ ++ panelrotate = PanelTop_Instrument; + eventKeyDownBinding_InvokeSectionInstruments(); + break; + } +- case PanelRotate::PanelTop_Instrument:{ +- panelrotate = PanelRotate::PanelTop; ++ case PanelTop_Instrument:{ ++ panelrotate = PanelTop; + sectionSwitcher->showBottomSection(SectionSwitcher::ActiveBottomSectionNone); + break; + } +-- +2.45.2 + + +From fca98f4eb977ab87dec1423a939839744e355f1f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= +Date: Tue, 17 Dec 2024 22:03:52 +0100 +Subject: rdef version variable + + +diff --git a/src/tracker/haiku/MilkyTracker.rdef b/src/tracker/haiku/MilkyTracker.rdef +index 7544e36..0f99554 100644 +--- a/src/tracker/haiku/MilkyTracker.rdef ++++ b/src/tracker/haiku/MilkyTracker.rdef +@@ -4,10 +4,10 @@ resource app_flags B_MULTIPLE_LAUNCH; + + resource app_version + { +- major = 0, +- middle = 90, +- minor = 85, +- variety = B_APPV_DEVELOPMENT, ++ major = @MAJOR@, ++ middle = @MIDDLE@, ++ minor = @MINOR@, ++ variety = B_APPV_FINAL, + internal = 0, + short_info = "MilkyTracker", + long_info = "MilkyTracker" +-- +2.45.2 +