milkytracker: bump version and enable

build with cmake
This commit is contained in:
Jérôme Duval
2024-12-17 22:08:12 +01:00
parent bf4c0974e1
commit 8be7a61d84
4 changed files with 377 additions and 382 deletions

View File

@@ -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
}

View File

@@ -1,176 +0,0 @@
From 526dba76a0c77ad0ee5a5b749f41345599991097 Mon Sep 17 00:00:00 2001
From: Jerome Duval <jerome.duval@gmail.com>
Date: Wed, 3 Sep 2014 16:22:32 +0000
Subject: Include <strings.h>
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 <stdio.h>
#include <stdlib.h>
#include <string.h>
- #include <string.h>
+ #include <strings.h>
#include "VirtualKeys.h"
#include "PPSystemString_POSIX.h"
#endif
--
2.30.2
From 6f2b4b90b2db90dc08527899d799632d20067b70 Mon Sep 17 00:00:00 2001
From: Jerome Duval <jerome.duval@gmail.com>
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 <jerome.duval@gmail.com>
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

View File

@@ -1,176 +0,0 @@
From 526dba76a0c77ad0ee5a5b749f41345599991097 Mon Sep 17 00:00:00 2001
From: Jerome Duval <jerome.duval@gmail.com>
Date: Wed, 3 Sep 2014 16:22:32 +0000
Subject: Include <strings.h>
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 <stdio.h>
#include <stdlib.h>
#include <string.h>
- #include <string.h>
+ #include <strings.h>
#include "VirtualKeys.h"
#include "PPSystemString_POSIX.h"
#endif
--
2.30.2
From 6f2b4b90b2db90dc08527899d799632d20067b70 Mon Sep 17 00:00:00 2001
From: Jerome Duval <jerome.duval@gmail.com>
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 <jerome.duval@gmail.com>
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

View File

@@ -0,0 +1,350 @@
From 0a57a6529a38de9b419b2da3caac4d9bb9b87824 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= <jerome.duval@gmail.com>
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?= <jerome.duval@gmail.com>
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