momentarylapse / tsunami

A simple but powerful audio editor
GNU General Public License v3.0
73 stars 4 forks source link

[macOS] Build error: `common.h: error: expected identifier before '(' token` #12

Open barracuda156 opened 7 months ago

barracuda156 commented 7 months ago

Something does not work here, at least with gcc and gtk4:

In file included from /opt/local/lib/gcc13/gcc/powerpc-apple-darwin10/13.2.0/include-fixed/math.h:35,
                 from /opt/local/include/gcc13/c++/cmath:47,
                 from /opt/local/include/gcc13/c++/math.h:36,
                 from /opt/local/include/graphene-1.0/graphene-simd4f.h:34,
                 from /opt/local/include/graphene-1.0/graphene.h:37,
                 from /opt/local/include/gtk-4.0/gsk/gsktypes.h:24,
                 from /opt/local/include/gtk-4.0/gsk/gskrenderer.h:25,
                 from /opt/local/include/gtk-4.0/gsk/gsk.h:23,
                 from /opt/local/include/gtk-4.0/gtk/gtk.h:31,
                 from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-0.7.114/src/command/../storage/../lib/hui/common.h:42,
                 from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-0.7.114/src/command/../storage/../lib/hui/hui.h:15,
                 from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-0.7.114/src/command/../storage/Storage.h:12,
                 from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-0.7.114/src/command/Unsorted.cpp:13:
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-0.7.114/src/command/../storage/../lib/hui/common.h:113:9: error: expected identifier before '(' token
  113 |         HUGE,
      |         ^~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-0.7.114/src/command/../storage/../lib/hui/common.h:113:9: error: expected '}' before '(' token
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-0.7.114/src/command/../storage/../lib/hui/common.h:109:15: note: to match this '{'
  109 | enum IconSize {
      |               ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-0.7.114/src/command/../storage/../lib/hui/common.h:113:9: error: expected unqualified-id before 'float'
  113 |         HUGE,
      |         ^~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-0.7.114/src/command/../storage/../lib/hui/common.h:113:9: error: expected ')' before 'float'
  113 |         HUGE,
      |         ^~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-0.7.114/src/command/../storage/../lib/hui/common.h:113:9: error: expected ')' before 'float'
  113 |         HUGE,
      |         ^~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-0.7.114/src/command/../storage/../lib/hui/common.h:118:1: error: expected declaration before '}' token
  118 | }
      | ^
In file included from /opt/local/lib/gcc13/gcc/powerpc-apple-darwin10/13.2.0/include-fixed/math.h:35,
                 from /opt/local/include/gcc13/c++/cmath:47,
                 from /opt/local/include/gcc13/c++/math.h:36,
                 from /opt/local/include/graphene-1.0/graphene-simd4f.h:34,
                 from /opt/local/include/graphene-1.0/graphene.h:37,
                 from /opt/local/include/gtk-4.0/gsk/gsktypes.h:24,
                 from /opt/local/include/gtk-4.0/gsk/gskrenderer.h:25,
                 from /opt/local/include/gtk-4.0/gsk/gsk.h:23,
                 from /opt/local/include/gtk-4.0/gtk/gtk.h:31,
                 from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-0.7.114/src/command/song/../../storage/../lib/hui/common.h:42,
                 from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-0.7.114/src/command/song/../../storage/../lib/hui/hui.h:15,
                 from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-0.7.114/src/command/song/../../storage/Storage.h:12,
                 from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-0.7.114/src/command/song/Export.cpp:12:
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-0.7.114/src/command/song/../../storage/../lib/hui/common.h:113:9: error: expected identifier before '(' token
  113 |         HUGE,
      |         ^~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-0.7.114/src/command/song/../../storage/../lib/hui/common.h:113:9: error: expected '}' before '(' token
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-0.7.114/src/command/song/../../storage/../lib/hui/common.h:109:15: note: to match this '{'
  109 | enum IconSize {
      |               ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-0.7.114/src/command/song/../../storage/../lib/hui/common.h:113:9: error: expected unqualified-id before 'float'
  113 |         HUGE,
      |         ^~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-0.7.114/src/command/song/../../storage/../lib/hui/common.h:113:9: error: expected ')' before 'float'
  113 |         HUGE,
      |         ^~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-0.7.114/src/command/song/../../storage/../lib/hui/common.h:113:9: error: expected ')' before 'float'
  113 |         HUGE,
      |         ^~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-0.7.114/src/command/song/../../storage/../lib/hui/common.h:118:1: error: expected declaration before '}' token
  118 | }
      | ^
make[2]: *** [CMakeFiles/tsunami.dir/src/command/Unsorted.cpp.o] Error 1
momentarylapse commented 7 months ago

MacOS? ...I'm afraid I have no experience with the system and no access to such a machine. You are bravely wandering into the unknown here :D

I just pushed a tiny commit that should fix this one specific name clash. You can try again, but there might be more problems ahead. I guess pulseaudio is not available, so at least you will need the portaudio library.

Also the internal plugin compiler is currently only designed for x86 CPUs. If you have a M1/2 CPU, using an audio effect or synthesizer will definitely lead to a crash. But even on x86 there might be incompatibilities.

Good luck!

barracuda156 commented 7 months ago

@momentarylapse Thank you for responding. I was in fact building this on a PowerPC, but I have M1 and x86 hardware too. Usually ppc is the harder case to fix, though Sonoma has issues at the moment too. Everything in between is usually more trivial.

We do have pulseaudio, but not too up-to-date one. I actually planned on updating it to current version, but postponed it due to a mess with switching to Meson. But it should work.

I will try the build again today.

barracuda156 commented 7 months ago

@momentarylapse Your fix worked, I got to here now:

/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-7a10c93d070abc6b0f5329f893162e29a82ade71/src/lib/kaba/compiler/Compiler.cpp: In function 'void* kaba::get_nice_memory(int64, bool, Module*)':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-7a10c93d070abc6b0f5329f893162e29a82ade71/src/lib/kaba/compiler/Compiler.cpp:142:35: error: 'MAP_ANONYMOUS' was not declared in this scope; did you mean 'MAP_ANON'?
  142 |         int flags = MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED_NOREPLACE;
      |                                   ^~~~~~~~~~~~~
      |                                   MAP_ANON
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-7a10c93d070abc6b0f5329f893162e29a82ade71/src/lib/kaba/compiler/Compiler.cpp:142:51: error: 'MAP_FIXED_NOREPLACE' was not declared in this scope
  142 |         int flags = MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED_NOREPLACE;
      |                                                   ^~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-7a10c93d070abc6b0f5329f893162e29a82ade71/src/lib/kaba/compiler/Compiler.cpp:145:26: error: 'MAP_EXECUTABLE' was not declared in this scope
  145 |                 flags |= MAP_EXECUTABLE;
      |                          ^~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-7a10c93d070abc6b0f5329f893162e29a82ade71/src/lib/kaba/compiler/Compiler.cpp:174:34: error: 'MAP_EXECUTABLE' was not declared in this scope
  174 |                         flags |= MAP_EXECUTABLE | MAP_FIXED;
      |                                  ^~~~~~~~~~~~~~
make[2]: *** [CMakeFiles/tsunami.dir/src/lib/kaba/compiler/Compiler.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....

Will keep you posted on the progress.

barracuda156 commented 7 months ago

@momentarylapse So I just removed unsupported flags as a dirty hack for now (and defined MAP_ANONYMOUS to MAP_ANON, this is a credible fix), and got here:

/opt/local/bin/g++-mp-13 -pipe -Os -DNDEBUG -I/opt/local/include -D_GLIBCXX_USE_CXX11_ABI=0 -g -arch ppc -mmacosx-version-min=10.6 -Wl,-search_paths_first -Wl,-headerpad_max_install_names -L/opt/local/lib -Wl,-headerpad_max_install_names CMakeFiles/tsunami.dir/src/action/bar/Action__ScaleData.cpp.o CMakeFiles/tsunami.dir/src/action/bar/Action__ShiftData.cpp.o CMakeFiles/tsunami.dir/src/action/bar/ActionBar__Add.cpp.o CMakeFiles/tsunami.dir/src/action/bar/ActionBar__Delete.cpp.o CMakeFiles/tsunami.dir/src/action/bar/ActionBar__Edit.cpp.o CMakeFiles/tsunami.dir/src/action/bar/ActionBarAdd.cpp.o CMakeFiles/tsunami.dir/src/action/bar/ActionBarDelete.cpp.o CMakeFiles/tsunami.dir/src/action/bar/ActionBarEdit.cpp.o CMakeFiles/tsunami.dir/src/action/sample/ActionSampleAdd.cpp.o CMakeFiles/tsunami.dir/src/action/sample/ActionSampleDelete.cpp.o CMakeFiles/tsunami.dir/src/action/sample/ActionSampleEditName.cpp.o CMakeFiles/tsunami.dir/src/action/sample/ActionSampleReplaceBuffer.cpp.o CMakeFiles/tsunami.dir/src/action/song/data/ActionSongChangeAllTrackVolumes.cpp.o CMakeFiles/tsunami.dir/src/action/song/data/ActionSongSetDefaultFormat.cpp.o CMakeFiles/tsunami.dir/src/action/song/data/ActionSongSetSampleRate.cpp.o CMakeFiles/tsunami.dir/src/action/song/ActionSongDeleteSelection.cpp.o CMakeFiles/tsunami.dir/src/action/song/ActionSongMoveSelection.cpp.o CMakeFiles/tsunami.dir/src/action/tag/ActionTagAdd.cpp.o CMakeFiles/tsunami.dir/src/action/tag/ActionTagDelete.cpp.o CMakeFiles/tsunami.dir/src/action/tag/ActionTagEdit.cpp.o CMakeFiles/tsunami.dir/src/action/track/buffer/ActionTrack__AbsorbBuffer.cpp.o CMakeFiles/tsunami.dir/src/action/track/buffer/ActionTrack__AddBuffer.cpp.o CMakeFiles/tsunami.dir/src/action/track/buffer/ActionTrack__BufferSetChannels.cpp.o CMakeFiles/tsunami.dir/src/action/track/buffer/ActionTrack__DeleteBuffer.cpp.o CMakeFiles/tsunami.dir/src/action/track/buffer/ActionTrack__GrowBuffer.cpp.o CMakeFiles/tsunami.dir/src/action/track/buffer/ActionTrack__ShrinkBuffer.cpp.o CMakeFiles/tsunami.dir/src/action/track/buffer/ActionTrack__SplitBuffer.cpp.o CMakeFiles/tsunami.dir/src/action/track/buffer/ActionTrackCreateBuffers.cpp.o CMakeFiles/tsunami.dir/src/action/track/buffer/ActionTrackEditBuffer.cpp.o CMakeFiles/tsunami.dir/src/action/track/buffer/ActionTrackMoveBuffer.cpp.o CMakeFiles/tsunami.dir/src/action/track/buffer/ActionTrackSetChannels.cpp.o CMakeFiles/tsunami.dir/src/action/track/curve/ActionTrackAddCurve.cpp.o CMakeFiles/tsunami.dir/src/action/track/curve/ActionTrackCurveAddPoint.cpp.o CMakeFiles/tsunami.dir/src/action/track/curve/ActionTrackCurveDeletePoint.cpp.o CMakeFiles/tsunami.dir/src/action/track/curve/ActionTrackCurveEditPoint.cpp.o CMakeFiles/tsunami.dir/src/action/track/curve/ActionTrackDeleteCurve.cpp.o CMakeFiles/tsunami.dir/src/action/track/curve/ActionTrackEditCurve.cpp.o CMakeFiles/tsunami.dir/src/action/track/data/ActionTrackEditMuted.cpp.o CMakeFiles/tsunami.dir/src/action/track/data/ActionTrackEditName.cpp.o CMakeFiles/tsunami.dir/src/action/track/data/ActionTrackEditPanning.cpp.o CMakeFiles/tsunami.dir/src/action/track/data/ActionTrackEditVolume.cpp.o CMakeFiles/tsunami.dir/src/action/track/data/ActionTrackSetInstrument.cpp.o CMakeFiles/tsunami.dir/src/action/track/data/ActionTrackSetTarget.cpp.o CMakeFiles/tsunami.dir/src/action/track/effect/ActionTrackAddAudioEffect.cpp.o CMakeFiles/tsunami.dir/src/action/track/effect/ActionTrackDeleteAudioEffect.cpp.o CMakeFiles/tsunami.dir/src/action/track/effect/ActionTrackEditAudioEffect.cpp.o CMakeFiles/tsunami.dir/src/action/track/effect/ActionTrackMoveAudioEffect.cpp.o CMakeFiles/tsunami.dir/src/action/track/effect/ActionTrackSetAudioEffectEnabledWetness.cpp.o CMakeFiles/tsunami.dir/src/action/track/layer/ActionTrackFadeAdd.cpp.o CMakeFiles/tsunami.dir/src/action/track/layer/ActionTrackFadeDelete.cpp.o CMakeFiles/tsunami.dir/src/action/track/layer/ActionTrackLayer__Delete.cpp.o CMakeFiles/tsunami.dir/src/action/track/layer/ActionTrackLayerAdd.cpp.o CMakeFiles/tsunami.dir/src/action/track/layer/ActionTrackLayerDelete.cpp.o CMakeFiles/tsunami.dir/src/action/track/layer/ActionTrackLayerMakeTrack.cpp.o CMakeFiles/tsunami.dir/src/action/track/layer/ActionTrackLayerMarkDominant.cpp.o CMakeFiles/tsunami.dir/src/action/track/layer/ActionTrackLayerMerge.cpp.o CMakeFiles/tsunami.dir/src/action/track/layer/ActionTrackLayerMove.cpp.o CMakeFiles/tsunami.dir/src/action/track/marker/ActionTrackAddMarker.cpp.o CMakeFiles/tsunami.dir/src/action/track/marker/ActionTrackDeleteMarker.cpp.o CMakeFiles/tsunami.dir/src/action/track/marker/ActionTrackEditMarker.cpp.o CMakeFiles/tsunami.dir/src/action/track/midi/ActionTrackAddMidiEffect.cpp.o CMakeFiles/tsunami.dir/src/action/track/midi/ActionTrackAddMidiNote.cpp.o CMakeFiles/tsunami.dir/src/action/track/midi/ActionTrackDeleteMidiEffect.cpp.o CMakeFiles/tsunami.dir/src/action/track/midi/ActionTrackDeleteMidiNote.cpp.o CMakeFiles/tsunami.dir/src/action/track/midi/ActionTrackEditMidiEffect.cpp.o CMakeFiles/tsunami.dir/src/action/track/midi/ActionTrackEditMidiNote.cpp.o CMakeFiles/tsunami.dir/src/action/track/midi/ActionTrackInsertMidi.cpp.o CMakeFiles/tsunami.dir/src/action/track/midi/ActionTrackMoveMidiEffect.cpp.o CMakeFiles/tsunami.dir/src/action/track/midi/ActionTrackToggleMidiEffectEnabled.cpp.o CMakeFiles/tsunami.dir/src/action/track/sample/ActionTrackAddSample.cpp.o CMakeFiles/tsunami.dir/src/action/track/sample/ActionTrackDeleteSample.cpp.o CMakeFiles/tsunami.dir/src/action/track/sample/ActionTrackEditSample.cpp.o CMakeFiles/tsunami.dir/src/action/track/sample/ActionTrackInsertSample.cpp.o CMakeFiles/tsunami.dir/src/action/track/sample/ActionTrackPasteAsSample.cpp.o CMakeFiles/tsunami.dir/src/action/track/sample/ActionTrackSampleFromSelection.cpp.o CMakeFiles/tsunami.dir/src/action/track/synthesizer/ActionTrackDetuneSynthesizer.cpp.o CMakeFiles/tsunami.dir/src/action/track/synthesizer/ActionTrackEditSynthesizer.cpp.o CMakeFiles/tsunami.dir/src/action/track/synthesizer/ActionTrackSetSynthesizer.cpp.o CMakeFiles/tsunami.dir/src/action/track/ActionTrack__DeleteEmpty.cpp.o CMakeFiles/tsunami.dir/src/action/track/ActionTrackAdd.cpp.o CMakeFiles/tsunami.dir/src/action/track/ActionTrackDelete.cpp.o CMakeFiles/tsunami.dir/src/action/track/ActionTrackMove.cpp.o CMakeFiles/tsunami.dir/src/action/Action.cpp.o CMakeFiles/tsunami.dir/src/action/ActionGroup.cpp.o CMakeFiles/tsunami.dir/src/action/ActionManager.cpp.o CMakeFiles/tsunami.dir/src/action/ActionMergable.cpp.o CMakeFiles/tsunami.dir/src/command/song/Diff.cpp.o CMakeFiles/tsunami.dir/src/command/song/Export.cpp.o CMakeFiles/tsunami.dir/src/command/song/Show.cpp.o CMakeFiles/tsunami.dir/src/command/Unsorted.cpp.o CMakeFiles/tsunami.dir/src/data/audio/AudioBuffer.cpp.o CMakeFiles/tsunami.dir/src/data/audio/RingBuffer.cpp.o CMakeFiles/tsunami.dir/src/data/midi/Clef.cpp.o CMakeFiles/tsunami.dir/src/data/midi/Instrument.cpp.o CMakeFiles/tsunami.dir/src/data/midi/MidiData.cpp.o CMakeFiles/tsunami.dir/src/data/midi/MidiEvent.cpp.o CMakeFiles/tsunami.dir/src/data/midi/MidiNote.cpp.o CMakeFiles/tsunami.dir/src/data/midi/Scale.cpp.o CMakeFiles/tsunami.dir/src/data/midi/Temperament.cpp.o CMakeFiles/tsunami.dir/src/data/rhythm/Bar.cpp.o CMakeFiles/tsunami.dir/src/data/rhythm/BarCollection.cpp.o CMakeFiles/tsunami.dir/src/data/rhythm/Beat.cpp.o CMakeFiles/tsunami.dir/src/data/base.cpp.o CMakeFiles/tsunami.dir/src/data/CrossFade.cpp.o CMakeFiles/tsunami.dir/src/data/Curve.cpp.o CMakeFiles/tsunami.dir/src/data/Data.cpp.o CMakeFiles/tsunami.dir/src/data/Range.cpp.o CMakeFiles/tsunami.dir/src/data/Sample.cpp.o CMakeFiles/tsunami.dir/src/data/SampleRef.cpp.o CMakeFiles/tsunami.dir/src/data/Song.cpp.o CMakeFiles/tsunami.dir/src/data/SongSelection.cpp.o CMakeFiles/tsunami.dir/src/data/Track.cpp.o CMakeFiles/tsunami.dir/src/data/TrackLayer.cpp.o CMakeFiles/tsunami.dir/src/data/TrackMarker.cpp.o CMakeFiles/tsunami.dir/src/device/stream/AudioInput.cpp.o CMakeFiles/tsunami.dir/src/device/stream/AudioOutput.cpp.o CMakeFiles/tsunami.dir/src/device/stream/MidiInput.cpp.o CMakeFiles/tsunami.dir/src/device/Device.cpp.o CMakeFiles/tsunami.dir/src/device/DeviceManager.cpp.o CMakeFiles/tsunami.dir/src/lib/any/any.cpp.o CMakeFiles/tsunami.dir/src/lib/base/array.cpp.o CMakeFiles/tsunami.dir/src/lib/base/pointer.cpp.o CMakeFiles/tsunami.dir/src/lib/base/strings.cpp.o CMakeFiles/tsunami.dir/src/lib/doc/chunked.cpp.o CMakeFiles/tsunami.dir/src/lib/doc/pdf.cpp.o CMakeFiles/tsunami.dir/src/lib/doc/ttf.cpp.o CMakeFiles/tsunami.dir/src/lib/doc/xml.cpp.o CMakeFiles/tsunami.dir/src/lib/fft/fft.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/Control.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlButtonGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlCheckBoxGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlColorButtonGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlComboBoxGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlDrawingAreaGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlEditGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlExpanderGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlGridGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlGroupGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlHeaderBar.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlLabelGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlListViewGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlMenuButtonGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlMultilineEditGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlPanedGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlProgressBarGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlRadioButtonGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlScrollerGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlSeparatorGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlSliderGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlSpinButtonGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlTabControlGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlToggleButtonGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlTreeViewGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/MenuItemGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/MenuItemSeparatorGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/MenuItemSeparatorWin.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/MenuItemSubmenuGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/MenuItemSubmenuWin.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/MenuItemToggleGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/MenuItemToggleWin.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/MenuItemWin.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ToolItemButtonGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ToolItemButtonWin.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ToolItemMenuButtonGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ToolItemMenuButtonWin.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ToolItemSeparatorGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ToolItemSeparatorWin.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ToolItemToggleButtonGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ToolItemToggleButtonWin.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Application.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Callback.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Clipboard.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/common_dlg.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/common_dlg_gtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/common_dlg_win.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/error.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Event.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/hui.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/language.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/main_gtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/main_win.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Menu.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/MenuGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/MenuWin.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/PainterGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Panel.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Resource.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Toolbar.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/ToolbarGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/ToolbarWin.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/utility.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Window.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/window_control.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/window_control_gtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/window_control_win.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/WindowGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/WindowWin.cpp.o CMakeFiles/tsunami.dir/src/lib/image/color.cpp.o CMakeFiles/tsunami.dir/src/lib/image/image.cpp.o CMakeFiles/tsunami.dir/src/lib/image/image_bmp.cpp.o CMakeFiles/tsunami.dir/src/lib/image/image_jpg.cpp.o CMakeFiles/tsunami.dir/src/lib/image/image_png.cpp.o CMakeFiles/tsunami.dir/src/lib/image/image_tga.cpp.o CMakeFiles/tsunami.dir/src/lib/image/ImagePainter.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/asm/asm.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/asm/asm_arm.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/asm/asm_x86.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/compiler/Backend.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/compiler/BackendAmd64.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/compiler/BackendARM.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/compiler/BackendX86.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/compiler/CommandList.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/compiler/Compiler.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/compiler/mapper.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/compiler/Serializer.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/compiler/SerialNode.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/dynamic/call.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/dynamic/dynamic.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/dynamic/exception.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/dynamic/sorting.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/lib/dict.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/lib/extern.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/lib/lib.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/lib/lib_base.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/lib/lib_doc.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/lib/lib_gl.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/lib/lib_hui.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/lib/lib_image.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/lib/lib_kaba.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/lib/lib_math.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/lib/lib_net.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/lib/lib_os.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/lib/lib_threads.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/lib/lib_time.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/lib/lib_vulkan.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/lib/list.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/parser/abstract.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/parser/Concretifier.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/parser/import.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/parser/lexical.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/parser/macros.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/parser/Parser.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/parser/Transformer.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/parser/type_matching.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/syntax/Block.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/syntax/Class.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/syntax/Constant.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/syntax/Function.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/syntax/Identifier.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/syntax/Node.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/syntax/Operator.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/syntax/preprocessor.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/syntax/Statement.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/syntax/SyntaxTree.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/syntax/Variable.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/template/implicit.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/template/implicit_array.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/template/implicit_callable.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/template/implicit_dict.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/template/implicit_enum.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/template/implicit_future.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/template/implicit_list.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/template/implicit_optional.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/template/implicit_pointer.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/template/implicit_product.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/template/implicit_regular.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/template/template.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/CompilerConfiguration.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/Context.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/Interpreter.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/kaba.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/Module.cpp.o CMakeFiles/tsunami.dir/src/lib/math/complex.cpp.o CMakeFiles/tsunami.dir/src/lib/math/interpolation.cpp.o CMakeFiles/tsunami.dir/src/lib/math/mat3.cpp.o CMakeFiles/tsunami.dir/src/lib/math/mat4.cpp.o CMakeFiles/tsunami.dir/src/lib/math/math.cpp.o CMakeFiles/tsunami.dir/src/lib/math/plane.cpp.o CMakeFiles/tsunami.dir/src/lib/math/quaternion.cpp.o CMakeFiles/tsunami.dir/src/lib/math/random.cpp.o CMakeFiles/tsunami.dir/src/lib/math/ray.cpp.o CMakeFiles/tsunami.dir/src/lib/math/rect.cpp.o CMakeFiles/tsunami.dir/src/lib/math/vec2.cpp.o CMakeFiles/tsunami.dir/src/lib/math/vec3.cpp.o CMakeFiles/tsunami.dir/src/lib/math/vec4.cpp.o CMakeFiles/tsunami.dir/src/lib/net/BinaryBuffer.cpp.o CMakeFiles/tsunami.dir/src/lib/net/net.cpp.o CMakeFiles/tsunami.dir/src/lib/net/Socket.cpp.o CMakeFiles/tsunami.dir/src/lib/nix/nix.cpp.o CMakeFiles/tsunami.dir/src/lib/nix/nix_buffer.cpp.o CMakeFiles/tsunami.dir/src/lib/nix/nix_draw.cpp.o CMakeFiles/tsunami.dir/src/lib/nix/nix_framebuffer.cpp.o CMakeFiles/tsunami.dir/src/lib/nix/nix_light.cpp.o CMakeFiles/tsunami.dir/src/lib/nix/nix_shader.cpp.o CMakeFiles/tsunami.dir/src/lib/nix/nix_textures.cpp.o CMakeFiles/tsunami.dir/src/lib/nix/nix_vertexbuffer.cpp.o CMakeFiles/tsunami.dir/src/lib/nix/nix_view.cpp.o CMakeFiles/tsunami.dir/src/lib/os/CommandLineParser.cpp.o CMakeFiles/tsunami.dir/src/lib/os/config.cpp.o CMakeFiles/tsunami.dir/src/lib/os/date.cpp.o CMakeFiles/tsunami.dir/src/lib/os/file.cpp.o CMakeFiles/tsunami.dir/src/lib/os/filesystem.cpp.o CMakeFiles/tsunami.dir/src/lib/os/formatter.cpp.o CMakeFiles/tsunami.dir/src/lib/os/msg.cpp.o CMakeFiles/tsunami.dir/src/lib/os/path.cpp.o CMakeFiles/tsunami.dir/src/lib/os/stream.cpp.o CMakeFiles/tsunami.dir/src/lib/os/terminal.cpp.o CMakeFiles/tsunami.dir/src/lib/os/time.cpp.o CMakeFiles/tsunami.dir/src/lib/pattern/Observable.cpp.o CMakeFiles/tsunami.dir/src/lib/threads/Mutex.cpp.o CMakeFiles/tsunami.dir/src/lib/threads/Thread.cpp.o CMakeFiles/tsunami.dir/src/lib/threads/ThreadedWork.cpp.o CMakeFiles/tsunami.dir/src/module/audio/AudioAccumulator.cpp.o CMakeFiles/tsunami.dir/src/module/audio/AudioBackup.cpp.o CMakeFiles/tsunami.dir/src/module/audio/AudioChannelSelector.cpp.o CMakeFiles/tsunami.dir/src/module/audio/AudioEffect.cpp.o CMakeFiles/tsunami.dir/src/module/audio/AudioJoiner.cpp.o CMakeFiles/tsunami.dir/src/module/audio/AudioSource.cpp.o CMakeFiles/tsunami.dir/src/module/audio/AudioSucker.cpp.o CMakeFiles/tsunami.dir/src/module/audio/AudioVisualizer.cpp.o CMakeFiles/tsunami.dir/src/module/audio/BufferStreamer.cpp.o CMakeFiles/tsunami.dir/src/module/audio/PeakMeter.cpp.o CMakeFiles/tsunami.dir/src/module/audio/PitchDetector.cpp.o CMakeFiles/tsunami.dir/src/module/audio/SongRenderer.cpp.o CMakeFiles/tsunami.dir/src/module/audio/TrackRenderer.cpp.o CMakeFiles/tsunami.dir/src/module/beats/BarStreamer.cpp.o CMakeFiles/tsunami.dir/src/module/beats/BeatMidifier.cpp.o CMakeFiles/tsunami.dir/src/module/beats/BeatSource.cpp.o CMakeFiles/tsunami.dir/src/module/midi/MidiAccumulator.cpp.o CMakeFiles/tsunami.dir/src/module/midi/MidiEffect.cpp.o CMakeFiles/tsunami.dir/src/module/midi/MidiEventStreamer.cpp.o CMakeFiles/tsunami.dir/src/module/midi/MidiJoiner.cpp.o CMakeFiles/tsunami.dir/src/module/midi/MidiPreviewSource.cpp.o CMakeFiles/tsunami.dir/src/module/midi/MidiSource.cpp.o CMakeFiles/tsunami.dir/src/module/midi/MidiSucker.cpp.o CMakeFiles/tsunami.dir/src/module/port/Port.cpp.o CMakeFiles/tsunami.dir/src/module/synthesizer/DebugSynthesizer.cpp.o CMakeFiles/tsunami.dir/src/module/synthesizer/DummySynthesizer.cpp.o CMakeFiles/tsunami.dir/src/module/synthesizer/EnvelopeADSR.cpp.o CMakeFiles/tsunami.dir/src/module/synthesizer/Synthesizer.cpp.o CMakeFiles/tsunami.dir/src/module/Module.cpp.o CMakeFiles/tsunami.dir/src/module/ModuleConfiguration.cpp.o CMakeFiles/tsunami.dir/src/module/ModuleFactory.cpp.o CMakeFiles/tsunami.dir/src/module/SignalChain.cpp.o CMakeFiles/tsunami.dir/src/plugins/ExtendedAudioBuffer.cpp.o CMakeFiles/tsunami.dir/src/plugins/Plugin.cpp.o CMakeFiles/tsunami.dir/src/plugins/PluginManager.cpp.o CMakeFiles/tsunami.dir/src/plugins/PresetManager.cpp.o CMakeFiles/tsunami.dir/src/plugins/TsunamiPlugin.cpp.o CMakeFiles/tsunami.dir/src/processing/audio/BufferInterpolator.cpp.o CMakeFiles/tsunami.dir/src/processing/audio/BufferPitchShift.cpp.o CMakeFiles/tsunami.dir/src/processing/audio/common.cpp.o CMakeFiles/tsunami.dir/src/processing/audio/Spectrogram.cpp.o CMakeFiles/tsunami.dir/src/storage/dialog/PdfConfigDialog.cpp.o CMakeFiles/tsunami.dir/src/storage/dialog/RawConfigDialog.cpp.o CMakeFiles/tsunami.dir/src/storage/format/Format.cpp.o CMakeFiles/tsunami.dir/src/storage/format/FormatFlac.cpp.o CMakeFiles/tsunami.dir/src/storage/format/FormatGuitarPro.cpp.o CMakeFiles/tsunami.dir/src/storage/format/FormatM4a.cpp.o CMakeFiles/tsunami.dir/src/storage/format/FormatMidi.cpp.o CMakeFiles/tsunami.dir/src/storage/format/FormatMp3.cpp.o CMakeFiles/tsunami.dir/src/storage/format/FormatNami.cpp.o CMakeFiles/tsunami.dir/src/storage/format/FormatOgg.cpp.o CMakeFiles/tsunami.dir/src/storage/format/FormatPdf.cpp.o CMakeFiles/tsunami.dir/src/storage/format/FormatRaw.cpp.o CMakeFiles/tsunami.dir/src/storage/format/FormatSoundFont2.cpp.o CMakeFiles/tsunami.dir/src/storage/format/FormatWave.cpp.o CMakeFiles/tsunami.dir/src/storage/Storage.cpp.o CMakeFiles/tsunami.dir/src/storage/StorageOperationData.cpp.o CMakeFiles/tsunami.dir/src/stuff/BackupManager.cpp.o CMakeFiles/tsunami.dir/src/stuff/Clipboard.cpp.o CMakeFiles/tsunami.dir/src/stuff/ErrorHandler.cpp.o CMakeFiles/tsunami.dir/src/stuff/Log.cpp.o CMakeFiles/tsunami.dir/src/stuff/PerformanceMonitor.cpp.o CMakeFiles/tsunami.dir/src/stuff/SessionManager.cpp.o CMakeFiles/tsunami.dir/src/test/TestAudioBuffer.cpp.o CMakeFiles/tsunami.dir/src/test/TestInterpolator.cpp.o CMakeFiles/tsunami.dir/src/test/TestMidiPreview.cpp.o CMakeFiles/tsunami.dir/src/test/TestMixer.cpp.o CMakeFiles/tsunami.dir/src/test/TestPlugins.cpp.o CMakeFiles/tsunami.dir/src/test/TestPointer.cpp.o CMakeFiles/tsunami.dir/src/test/TestRhythm.cpp.o CMakeFiles/tsunami.dir/src/test/TestRingBuffer.cpp.o CMakeFiles/tsunami.dir/src/test/TestSignalChain.cpp.o CMakeFiles/tsunami.dir/src/test/TestStreams.cpp.o CMakeFiles/tsunami.dir/src/test/TestThreads.cpp.o CMakeFiles/tsunami.dir/src/test/TestTrackVersion.cpp.o CMakeFiles/tsunami.dir/src/test/UnitTest.cpp.o CMakeFiles/tsunami.dir/src/view/audioview/graph/AudioViewLayer.cpp.o CMakeFiles/tsunami.dir/src/view/audioview/graph/AudioViewTrack.cpp.o CMakeFiles/tsunami.dir/src/view/audioview/graph/Background.cpp.o CMakeFiles/tsunami.dir/src/view/audioview/graph/BottomBarExpandButton.cpp.o CMakeFiles/tsunami.dir/src/view/audioview/graph/Cursor.cpp.o CMakeFiles/tsunami.dir/src/view/audioview/graph/LayerHeader.cpp.o CMakeFiles/tsunami.dir/src/view/audioview/graph/LogNotifier.cpp.o CMakeFiles/tsunami.dir/src/view/audioview/graph/TimeScale.cpp.o CMakeFiles/tsunami.dir/src/view/audioview/graph/TrackHeader.cpp.o CMakeFiles/tsunami.dir/src/view/audioview/graph/ViewMarker.cpp.o CMakeFiles/tsunami.dir/src/view/audioview/AudioView.cpp.o CMakeFiles/tsunami.dir/src/view/audioview/TrackHeightManager.cpp.o CMakeFiles/tsunami.dir/src/view/audioview/ViewPort.cpp.o CMakeFiles/tsunami.dir/src/view/bottombar/signaleditor/SignalEditorBackground.cpp.o CMakeFiles/tsunami.dir/src/view/bottombar/signaleditor/SignalEditorCable.cpp.o CMakeFiles/tsunami.dir/src/view/bottombar/signaleditor/SignalEditorModule.cpp.o CMakeFiles/tsunami.dir/src/view/bottombar/signaleditor/SignalEditorPort.cpp.o CMakeFiles/tsunami.dir/src/view/bottombar/signaleditor/SignalEditorTab.cpp.o CMakeFiles/tsunami.dir/src/view/bottombar/BottomBar.cpp.o CMakeFiles/tsunami.dir/src/view/bottombar/DeviceConsole.cpp.o CMakeFiles/tsunami.dir/src/view/bottombar/LogConsole.cpp.o CMakeFiles/tsunami.dir/src/view/bottombar/MixingConsole.cpp.o CMakeFiles/tsunami.dir/src/view/bottombar/PluginConsole.cpp.o CMakeFiles/tsunami.dir/src/view/bottombar/SessionConsole.cpp.o CMakeFiles/tsunami.dir/src/view/bottombar/SignalEditor.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/AudioScaleDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/BarAddDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/BarDeleteDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/BarEditSpeedDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/BarReplaceDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/BufferCompressionDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/ChannelMapperDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/common.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/EditStringsDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/HelpDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/MarkerDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/ModuleSelectorDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/NewSongDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/NewTrackDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/PauseAddDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/PauseEditDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/PresetSelectionDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/QuestionDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/SampleScaleDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/SampleSelectionDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/SelectStringDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/SettingsDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/TemperamentDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/TrackRoutingDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/VolumeDialog.cpp.o CMakeFiles/tsunami.dir/src/view/helper/graph/Node.cpp.o CMakeFiles/tsunami.dir/src/view/helper/graph/SceneGraph.cpp.o CMakeFiles/tsunami.dir/src/view/helper/graph/Scrollable.cpp.o CMakeFiles/tsunami.dir/src/view/helper/graph/ScrollBar.cpp.o CMakeFiles/tsunami.dir/src/view/helper/BreadCrumps.cpp.o CMakeFiles/tsunami.dir/src/view/helper/CpuDisplay.cpp.o CMakeFiles/tsunami.dir/src/view/helper/Dial.cpp.o CMakeFiles/tsunami.dir/src/view/helper/Drawing.cpp.o CMakeFiles/tsunami.dir/src/view/helper/FxListEditor.cpp.o CMakeFiles/tsunami.dir/src/view/helper/MidiPreview.cpp.o CMakeFiles/tsunami.dir/src/view/helper/PeakDatabase.cpp.o CMakeFiles/tsunami.dir/src/view/helper/PeakMeterDisplay.cpp.o CMakeFiles/tsunami.dir/src/view/helper/PeakThread.cpp.o CMakeFiles/tsunami.dir/src/view/helper/Progress.cpp.o CMakeFiles/tsunami.dir/src/view/helper/Slider.cpp.o CMakeFiles/tsunami.dir/src/view/helper/SymbolRenderer.cpp.o CMakeFiles/tsunami.dir/src/view/helper/VolumeControl.cpp.o CMakeFiles/tsunami.dir/src/view/mode/ViewMode.cpp.o CMakeFiles/tsunami.dir/src/view/mode/ViewModeCapture.cpp.o CMakeFiles/tsunami.dir/src/view/mode/ViewModeCurve.cpp.o CMakeFiles/tsunami.dir/src/view/mode/ViewModeDefault.cpp.o CMakeFiles/tsunami.dir/src/view/mode/ViewModeEdit.cpp.o CMakeFiles/tsunami.dir/src/view/mode/ViewModeEditAudio.cpp.o CMakeFiles/tsunami.dir/src/view/mode/ViewModeEditBars.cpp.o CMakeFiles/tsunami.dir/src/view/mode/ViewModeEditDummy.cpp.o CMakeFiles/tsunami.dir/src/view/mode/ViewModeEditMidi.cpp.o CMakeFiles/tsunami.dir/src/view/mode/ViewModeScaleMarker.cpp.o CMakeFiles/tsunami.dir/src/view/module/AutoConfigPanel.cpp.o CMakeFiles/tsunami.dir/src/view/module/ConfigPanel.cpp.o CMakeFiles/tsunami.dir/src/view/module/ConfigurationDialog.cpp.o CMakeFiles/tsunami.dir/src/view/module/ModulePanel.cpp.o CMakeFiles/tsunami.dir/src/view/painter/midi/MidiPainterMode.cpp.o CMakeFiles/tsunami.dir/src/view/painter/midi/MidiPainterModeClassical.cpp.o CMakeFiles/tsunami.dir/src/view/painter/midi/MidiPainterModeLinear.cpp.o CMakeFiles/tsunami.dir/src/view/painter/midi/MidiPainterModeTab.cpp.o CMakeFiles/tsunami.dir/src/view/painter/midi/rhythm.cpp.o CMakeFiles/tsunami.dir/src/view/painter/BasicGridPainter.cpp.o CMakeFiles/tsunami.dir/src/view/painter/BufferPainter.cpp.o CMakeFiles/tsunami.dir/src/view/painter/GridPainter.cpp.o CMakeFiles/tsunami.dir/src/view/painter/MidiPainter.cpp.o CMakeFiles/tsunami.dir/src/view/painter/MultiLinePainter.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/captureconsolemodes/CaptureConsoleMode.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/captureconsolemodes/CaptureConsoleModeAudio.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/captureconsolemodes/CaptureConsoleModeMidi.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/captureconsolemodes/CaptureConsoleModeMulti.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/captureconsolemodes/CaptureTrackData.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/AudioEditorConsole.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/BarsEditorConsole.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/CaptureConsole.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/CurveConsole.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/DummyEditorConsole.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/EffectsConsole.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/MidiEditorConsole.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/SampleManagerConsole.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/SampleRefConsole.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/SideBar.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/SongConsole.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/TrackConsole.cpp.o CMakeFiles/tsunami.dir/src/view/ColorScheme.cpp.o CMakeFiles/tsunami.dir/src/view/HeaderBar.cpp.o CMakeFiles/tsunami.dir/src/view/HoverData.cpp.o CMakeFiles/tsunami.dir/src/view/MouseDelayPlanner.cpp.o CMakeFiles/tsunami.dir/src/view/TsunamiWindow.cpp.o CMakeFiles/tsunami.dir/src/Playback.cpp.o CMakeFiles/tsunami.dir/src/Session.cpp.o CMakeFiles/tsunami.dir/src/Tsunami.cpp.o -o tsunami  -Wl,-rpath,/opt/local/lib -lgtk-4 -lpangocairo-1.0 -lpango-1.0 -lharfbuzz -lgdk_pixbuf-2.0 -lcairo-gobject -lcairo -lgraphene-1.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lintl -lz -lfftw3f -logg -lvorbis -lvorbisfile -lvorbisenc -lFLAC -lpulse -lportaudio -framework CoreAudio -framework AudioToolbox -framework AudioUnit -framework CoreFoundation -framework CoreServices -lGL 
Undefined symbols:
  "_glClipControl", referenced from:
      __ZN3nix4initERK5ArrayI6stringE in nix.cpp.o
  "_glVertexArrayVertexBuffer", referenced from:
      __ZN3nix26_post_config_vertex_bufferEPNS_12VertexBufferE in nix_vertexbuffer.cpp.o
  "_glTextureStorage2D", referenced from:
      __ZN3nix7Texture10_create_2dEiij in nix_textures.cpp.o
      __ZN3nix11DepthBufferC4EiiRK6string in nix_textures.cpp.o
      __ZN3nix7CubeMapC4EiRK6string in nix_textures.cpp.o
      __ZN3nix12ImageTextureC4EiiRK6string in nix_textures.cpp.o
  "_glTextureStorage3D", referenced from:
      __ZN3nix13VolumeTextureC4EiiiRK6string in nix_textures.cpp.o
  "_glGenerateTextureMipmap", referenced from:
      __ZN3nix7Texture5writeERK5Image in nix_textures.cpp.o
  "_glUnmapNamedBuffer", referenced from:
      __ZN3nix6Buffer4readEPvi in nix_buffer.cpp.o
  "_glQueryCounter", referenced from:
      __ZN3nix15query_timestampEi in nix.cpp.o
  "_glTextureSubImage2D", referenced from:
      __ZN3nix7Texture5writeERK5Image in nix_textures.cpp.o
      __ZN3nix7Texture11write_floatERK12DynamicArray in nix_textures.cpp.o
  "_glTextureSubImage3D", referenced from:
      __ZN3nix7CubeMap10write_sideEiRK5Image in nix_textures.cpp.o
      __ZN3nix7Texture11write_floatERK12DynamicArray in nix_textures.cpp.o
  "_glVertexArrayElementBuffer", referenced from:
      __ZN3nix26_post_config_vertex_bufferEPNS_12VertexBufferE in nix_vertexbuffer.cpp.o
  "_glVertexArrayAttribFormat", referenced from:
      __ZN3nix26_post_config_vertex_bufferEPNS_12VertexBufferE in nix_vertexbuffer.cpp.o
  "_glCreateFramebuffers", referenced from:
      __ZN3nix11FrameBufferC4ERK5ArrayI6sharedINS_7TextureEEE in nix_framebuffer.cpp.o
  "_glTextureStorage2DMultisample", referenced from:
      __ZN3nix18TextureMultiSampleC4EiiiRK6string in nix_textures.cpp.o
  "_glBindTextureUnit", referenced from:
      __ZN3nix12bind_textureEiPNS_7TextureE in nix_textures.cpp.o
      __ZN3nix12set_texturesERK5ArrayIPNS_7TextureEE in nix_textures.cpp.o
  "_glNamedFramebufferReadBuffer", referenced from:
      __ZNK3nix11FrameBuffer4readER5Image in nix_framebuffer.cpp.o
  "_glTextureParameteri", referenced from:
      __ZN3nix7Texture10_create_2dEiij in nix_textures.cpp.o
      __ZN3nix7Texture10_create_2dEiij in nix_textures.cpp.o
      __ZN3nix7Texture10_create_2dEiij in nix_textures.cpp.o
      __ZN3nix7Texture10_create_2dEiij in nix_textures.cpp.o
      __ZN3nix7Texture10_create_2dEiij in nix_textures.cpp.o
      __ZNK3nix7Texture11set_optionsERK6string in nix_textures.cpp.o
      __ZNK3nix7Texture11set_optionsERK6string in nix_textures.cpp.o
      __ZNK3nix7Texture11set_optionsERK6string in nix_textures.cpp.o
      __ZN3nix11DepthBufferC4EiiRK6string in nix_textures.cpp.o
      __ZN3nix11DepthBufferC4EiiRK6string in nix_textures.cpp.o
      __ZN3nix11DepthBufferC4EiiRK6string in nix_textures.cpp.o
      __ZN3nix11DepthBufferC4EiiRK6string in nix_textures.cpp.o
      __ZN3nix7CubeMapC4EiRK6string in nix_textures.cpp.o
      __ZN3nix7CubeMapC4EiRK6string in nix_textures.cpp.o
      __ZN3nix7CubeMapC4EiRK6string in nix_textures.cpp.o
      __ZN3nix7CubeMapC4EiRK6string in nix_textures.cpp.o
      __ZN3nix7CubeMapC4EiRK6string in nix_textures.cpp.o
      __ZN3nix13VolumeTextureC4EiiiRK6string in nix_textures.cpp.o
      __ZN3nix13VolumeTextureC4EiiiRK6string in nix_textures.cpp.o
      __ZN3nix13VolumeTextureC4EiiiRK6string in nix_textures.cpp.o
      __ZN3nix13VolumeTextureC4EiiiRK6string in nix_textures.cpp.o
      __ZN3nix13VolumeTextureC4EiiiRK6string in nix_textures.cpp.o
      __ZN3nix12ImageTextureC4EiiRK6string in nix_textures.cpp.o
      __ZN3nix12ImageTextureC4EiiRK6string in nix_textures.cpp.o
      __ZN3nix12ImageTextureC4EiiRK6string in nix_textures.cpp.o
      __ZN3nix12ImageTextureC4EiiRK6string in nix_textures.cpp.o
  "_glCreateVertexArrays", referenced from:
      __ZN3nix12VertexBufferC4ERK6string in nix_vertexbuffer.cpp.o
      __ZN3nix19init_vertex_buffersEPNS_7ContextE in nix_vertexbuffer.cpp.o
  "_glEnableVertexArrayAttrib", referenced from:
      __ZN3nix26_post_config_vertex_bufferEPNS_12VertexBufferE in nix_vertexbuffer.cpp.o
  "_glGetNamedFramebufferAttachmentParameteriv", referenced from:
      __ZNK3nix11FrameBuffer7is_srgbEv in nix_framebuffer.cpp.o
  "_glGetQueryObjecti64v", referenced from:
      __ZN3nix14get_timestampsEii in nix.cpp.o
  "_glCreateTextures", referenced from:
      __ZN3nix7Texture10_create_2dEiij in nix_textures.cpp.o
      __ZN3nix11DepthBufferC4EiiRK6string in nix_textures.cpp.o
      __ZN3nix7CubeMapC4EiRK6string in nix_textures.cpp.o
      __ZN3nix13VolumeTextureC4EiiiRK6string in nix_textures.cpp.o
      __ZN3nix18TextureMultiSampleC4EiiiRK6string in nix_textures.cpp.o
      __ZN3nix12ImageTextureC4EiiRK6string in nix_textures.cpp.o
  "_glMapNamedBuffer", referenced from:
      __ZN3nix6Buffer4readEPvi in nix_buffer.cpp.o
  "_glVertexArrayAttribBinding", referenced from:
      __ZN3nix26_post_config_vertex_bufferEPNS_12VertexBufferE in nix_vertexbuffer.cpp.o
  "_glTextureParameterfv", referenced from:
      __ZN3nix11DepthBufferC4EiiRK6string in nix_textures.cpp.o
  "_glCreateBuffers", referenced from:
      __ZN3nix6BufferC4Ev in nix_buffer.cpp.o
      __ZN3nix12VertexBufferC4ERK6string in nix_vertexbuffer.cpp.o
      __ZN3nix12VertexBufferC4ERK6string in nix_vertexbuffer.cpp.o
  "_glBlitNamedFramebuffer", referenced from:
      __ZN3nix21resolve_multisamplingEPNS_11FrameBufferES1_ in nix_framebuffer.cpp.o
  "_glVertexArrayAttribIFormat", referenced from:
      __ZN3nix26_post_config_vertex_bufferEPNS_12VertexBufferE in nix_vertexbuffer.cpp.o
  "_glClearNamedFramebufferfv", referenced from:
      __ZN3nix11FrameBuffer11clear_colorEiRK5color in nix_framebuffer.cpp.o
      __ZN3nix11FrameBuffer11clear_depthEf in nix_framebuffer.cpp.o
  "_glGetTextureSubImage", referenced from:
      __ZNK3nix7Texture4readER5Image in nix_textures.cpp.o
      __ZNK3nix7Texture10read_floatER12DynamicArray in nix_textures.cpp.o
  "_glNamedBufferData", referenced from:
      __ZN3nix6Buffer6updateEPvi in nix_buffer.cpp.o
      __ZN3nix12VertexBuffer6updateERK12DynamicArray in nix_vertexbuffer.cpp.o
      __ZN3nix12VertexBuffer12update_indexERK12DynamicArray in nix_vertexbuffer.cpp.o
ld: symbol(s) not found

Perhaps either OpenGL has to be disabled for old macOS (AFAIK no proper support for it before 10.7) or mesa used as a substitute (may or may not work).

barracuda156 commented 7 months ago

In fact it would be nice to have CMake options to turn on linkage to specific libraries, not let the build decide to link to whatever it randomly happens to find. For example, one may wish to link to gtk3 even if gtk4 is installed, or avoid libunwind (which is still needed for some software), or disable some other component.

barracuda156 commented 7 months ago

And it actually built through completion without OpenGL:

[100%] Linking CXX executable tsunami
/opt/local/bin/cmake -E cmake_link_script CMakeFiles/tsunami.dir/link.txt --verbose=ON
/opt/local/bin/g++-mp-13 -pipe -Os -DNDEBUG -I/opt/local/include -D_GLIBCXX_USE_CXX11_ABI=0 -g -arch ppc -mmacosx-version-min=10.6 -Wl,-search_paths_first -Wl,-headerpad_max_install_names -L/opt/local/lib -Wl,-headerpad_max_install_names CMakeFiles/tsunami.dir/src/action/bar/Action__ScaleData.cpp.o CMakeFiles/tsunami.dir/src/action/bar/Action__ShiftData.cpp.o CMakeFiles/tsunami.dir/src/action/bar/ActionBar__Add.cpp.o CMakeFiles/tsunami.dir/src/action/bar/ActionBar__Delete.cpp.o CMakeFiles/tsunami.dir/src/action/bar/ActionBar__Edit.cpp.o CMakeFiles/tsunami.dir/src/action/bar/ActionBarAdd.cpp.o CMakeFiles/tsunami.dir/src/action/bar/ActionBarDelete.cpp.o CMakeFiles/tsunami.dir/src/action/bar/ActionBarEdit.cpp.o CMakeFiles/tsunami.dir/src/action/sample/ActionSampleAdd.cpp.o CMakeFiles/tsunami.dir/src/action/sample/ActionSampleDelete.cpp.o CMakeFiles/tsunami.dir/src/action/sample/ActionSampleEditName.cpp.o CMakeFiles/tsunami.dir/src/action/sample/ActionSampleReplaceBuffer.cpp.o CMakeFiles/tsunami.dir/src/action/song/data/ActionSongChangeAllTrackVolumes.cpp.o CMakeFiles/tsunami.dir/src/action/song/data/ActionSongSetDefaultFormat.cpp.o CMakeFiles/tsunami.dir/src/action/song/data/ActionSongSetSampleRate.cpp.o CMakeFiles/tsunami.dir/src/action/song/ActionSongDeleteSelection.cpp.o CMakeFiles/tsunami.dir/src/action/song/ActionSongMoveSelection.cpp.o CMakeFiles/tsunami.dir/src/action/tag/ActionTagAdd.cpp.o CMakeFiles/tsunami.dir/src/action/tag/ActionTagDelete.cpp.o CMakeFiles/tsunami.dir/src/action/tag/ActionTagEdit.cpp.o CMakeFiles/tsunami.dir/src/action/track/buffer/ActionTrack__AbsorbBuffer.cpp.o CMakeFiles/tsunami.dir/src/action/track/buffer/ActionTrack__AddBuffer.cpp.o CMakeFiles/tsunami.dir/src/action/track/buffer/ActionTrack__BufferSetChannels.cpp.o CMakeFiles/tsunami.dir/src/action/track/buffer/ActionTrack__DeleteBuffer.cpp.o CMakeFiles/tsunami.dir/src/action/track/buffer/ActionTrack__GrowBuffer.cpp.o CMakeFiles/tsunami.dir/src/action/track/buffer/ActionTrack__ShrinkBuffer.cpp.o CMakeFiles/tsunami.dir/src/action/track/buffer/ActionTrack__SplitBuffer.cpp.o CMakeFiles/tsunami.dir/src/action/track/buffer/ActionTrackCreateBuffers.cpp.o CMakeFiles/tsunami.dir/src/action/track/buffer/ActionTrackEditBuffer.cpp.o CMakeFiles/tsunami.dir/src/action/track/buffer/ActionTrackMoveBuffer.cpp.o CMakeFiles/tsunami.dir/src/action/track/buffer/ActionTrackSetChannels.cpp.o CMakeFiles/tsunami.dir/src/action/track/curve/ActionTrackAddCurve.cpp.o CMakeFiles/tsunami.dir/src/action/track/curve/ActionTrackCurveAddPoint.cpp.o CMakeFiles/tsunami.dir/src/action/track/curve/ActionTrackCurveDeletePoint.cpp.o CMakeFiles/tsunami.dir/src/action/track/curve/ActionTrackCurveEditPoint.cpp.o CMakeFiles/tsunami.dir/src/action/track/curve/ActionTrackDeleteCurve.cpp.o CMakeFiles/tsunami.dir/src/action/track/curve/ActionTrackEditCurve.cpp.o CMakeFiles/tsunami.dir/src/action/track/data/ActionTrackEditMuted.cpp.o CMakeFiles/tsunami.dir/src/action/track/data/ActionTrackEditName.cpp.o CMakeFiles/tsunami.dir/src/action/track/data/ActionTrackEditPanning.cpp.o CMakeFiles/tsunami.dir/src/action/track/data/ActionTrackEditVolume.cpp.o CMakeFiles/tsunami.dir/src/action/track/data/ActionTrackSetInstrument.cpp.o CMakeFiles/tsunami.dir/src/action/track/data/ActionTrackSetTarget.cpp.o CMakeFiles/tsunami.dir/src/action/track/effect/ActionTrackAddAudioEffect.cpp.o CMakeFiles/tsunami.dir/src/action/track/effect/ActionTrackDeleteAudioEffect.cpp.o CMakeFiles/tsunami.dir/src/action/track/effect/ActionTrackEditAudioEffect.cpp.o CMakeFiles/tsunami.dir/src/action/track/effect/ActionTrackMoveAudioEffect.cpp.o CMakeFiles/tsunami.dir/src/action/track/effect/ActionTrackSetAudioEffectEnabledWetness.cpp.o CMakeFiles/tsunami.dir/src/action/track/layer/ActionTrackFadeAdd.cpp.o CMakeFiles/tsunami.dir/src/action/track/layer/ActionTrackFadeDelete.cpp.o CMakeFiles/tsunami.dir/src/action/track/layer/ActionTrackLayer__Delete.cpp.o CMakeFiles/tsunami.dir/src/action/track/layer/ActionTrackLayerAdd.cpp.o CMakeFiles/tsunami.dir/src/action/track/layer/ActionTrackLayerDelete.cpp.o CMakeFiles/tsunami.dir/src/action/track/layer/ActionTrackLayerMakeTrack.cpp.o CMakeFiles/tsunami.dir/src/action/track/layer/ActionTrackLayerMarkDominant.cpp.o CMakeFiles/tsunami.dir/src/action/track/layer/ActionTrackLayerMerge.cpp.o CMakeFiles/tsunami.dir/src/action/track/layer/ActionTrackLayerMove.cpp.o CMakeFiles/tsunami.dir/src/action/track/marker/ActionTrackAddMarker.cpp.o CMakeFiles/tsunami.dir/src/action/track/marker/ActionTrackDeleteMarker.cpp.o CMakeFiles/tsunami.dir/src/action/track/marker/ActionTrackEditMarker.cpp.o CMakeFiles/tsunami.dir/src/action/track/midi/ActionTrackAddMidiEffect.cpp.o CMakeFiles/tsunami.dir/src/action/track/midi/ActionTrackAddMidiNote.cpp.o CMakeFiles/tsunami.dir/src/action/track/midi/ActionTrackDeleteMidiEffect.cpp.o CMakeFiles/tsunami.dir/src/action/track/midi/ActionTrackDeleteMidiNote.cpp.o CMakeFiles/tsunami.dir/src/action/track/midi/ActionTrackEditMidiEffect.cpp.o CMakeFiles/tsunami.dir/src/action/track/midi/ActionTrackEditMidiNote.cpp.o CMakeFiles/tsunami.dir/src/action/track/midi/ActionTrackInsertMidi.cpp.o CMakeFiles/tsunami.dir/src/action/track/midi/ActionTrackMoveMidiEffect.cpp.o CMakeFiles/tsunami.dir/src/action/track/midi/ActionTrackToggleMidiEffectEnabled.cpp.o CMakeFiles/tsunami.dir/src/action/track/sample/ActionTrackAddSample.cpp.o CMakeFiles/tsunami.dir/src/action/track/sample/ActionTrackDeleteSample.cpp.o CMakeFiles/tsunami.dir/src/action/track/sample/ActionTrackEditSample.cpp.o CMakeFiles/tsunami.dir/src/action/track/sample/ActionTrackInsertSample.cpp.o CMakeFiles/tsunami.dir/src/action/track/sample/ActionTrackPasteAsSample.cpp.o CMakeFiles/tsunami.dir/src/action/track/sample/ActionTrackSampleFromSelection.cpp.o CMakeFiles/tsunami.dir/src/action/track/synthesizer/ActionTrackDetuneSynthesizer.cpp.o CMakeFiles/tsunami.dir/src/action/track/synthesizer/ActionTrackEditSynthesizer.cpp.o CMakeFiles/tsunami.dir/src/action/track/synthesizer/ActionTrackSetSynthesizer.cpp.o CMakeFiles/tsunami.dir/src/action/track/ActionTrack__DeleteEmpty.cpp.o CMakeFiles/tsunami.dir/src/action/track/ActionTrackAdd.cpp.o CMakeFiles/tsunami.dir/src/action/track/ActionTrackDelete.cpp.o CMakeFiles/tsunami.dir/src/action/track/ActionTrackMove.cpp.o CMakeFiles/tsunami.dir/src/action/Action.cpp.o CMakeFiles/tsunami.dir/src/action/ActionGroup.cpp.o CMakeFiles/tsunami.dir/src/action/ActionManager.cpp.o CMakeFiles/tsunami.dir/src/action/ActionMergable.cpp.o CMakeFiles/tsunami.dir/src/command/song/Diff.cpp.o CMakeFiles/tsunami.dir/src/command/song/Export.cpp.o CMakeFiles/tsunami.dir/src/command/song/Show.cpp.o CMakeFiles/tsunami.dir/src/command/Unsorted.cpp.o CMakeFiles/tsunami.dir/src/data/audio/AudioBuffer.cpp.o CMakeFiles/tsunami.dir/src/data/audio/RingBuffer.cpp.o CMakeFiles/tsunami.dir/src/data/midi/Clef.cpp.o CMakeFiles/tsunami.dir/src/data/midi/Instrument.cpp.o CMakeFiles/tsunami.dir/src/data/midi/MidiData.cpp.o CMakeFiles/tsunami.dir/src/data/midi/MidiEvent.cpp.o CMakeFiles/tsunami.dir/src/data/midi/MidiNote.cpp.o CMakeFiles/tsunami.dir/src/data/midi/Scale.cpp.o CMakeFiles/tsunami.dir/src/data/midi/Temperament.cpp.o CMakeFiles/tsunami.dir/src/data/rhythm/Bar.cpp.o CMakeFiles/tsunami.dir/src/data/rhythm/BarCollection.cpp.o CMakeFiles/tsunami.dir/src/data/rhythm/Beat.cpp.o CMakeFiles/tsunami.dir/src/data/base.cpp.o CMakeFiles/tsunami.dir/src/data/CrossFade.cpp.o CMakeFiles/tsunami.dir/src/data/Curve.cpp.o CMakeFiles/tsunami.dir/src/data/Data.cpp.o CMakeFiles/tsunami.dir/src/data/Range.cpp.o CMakeFiles/tsunami.dir/src/data/Sample.cpp.o CMakeFiles/tsunami.dir/src/data/SampleRef.cpp.o CMakeFiles/tsunami.dir/src/data/Song.cpp.o CMakeFiles/tsunami.dir/src/data/SongSelection.cpp.o CMakeFiles/tsunami.dir/src/data/Track.cpp.o CMakeFiles/tsunami.dir/src/data/TrackLayer.cpp.o CMakeFiles/tsunami.dir/src/data/TrackMarker.cpp.o CMakeFiles/tsunami.dir/src/device/stream/AudioInput.cpp.o CMakeFiles/tsunami.dir/src/device/stream/AudioOutput.cpp.o CMakeFiles/tsunami.dir/src/device/stream/MidiInput.cpp.o CMakeFiles/tsunami.dir/src/device/Device.cpp.o CMakeFiles/tsunami.dir/src/device/DeviceManager.cpp.o CMakeFiles/tsunami.dir/src/lib/any/any.cpp.o CMakeFiles/tsunami.dir/src/lib/base/array.cpp.o CMakeFiles/tsunami.dir/src/lib/base/pointer.cpp.o CMakeFiles/tsunami.dir/src/lib/base/strings.cpp.o CMakeFiles/tsunami.dir/src/lib/doc/chunked.cpp.o CMakeFiles/tsunami.dir/src/lib/doc/pdf.cpp.o CMakeFiles/tsunami.dir/src/lib/doc/ttf.cpp.o CMakeFiles/tsunami.dir/src/lib/doc/xml.cpp.o CMakeFiles/tsunami.dir/src/lib/fft/fft.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/Control.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlButtonGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlCheckBoxGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlColorButtonGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlComboBoxGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlDrawingAreaGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlEditGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlExpanderGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlGridGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlGroupGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlHeaderBar.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlLabelGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlListViewGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlMenuButtonGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlMultilineEditGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlPanedGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlProgressBarGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlRadioButtonGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlScrollerGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlSeparatorGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlSliderGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlSpinButtonGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlTabControlGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlToggleButtonGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlTreeViewGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/MenuItemGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/MenuItemSeparatorGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/MenuItemSeparatorWin.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/MenuItemSubmenuGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/MenuItemSubmenuWin.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/MenuItemToggleGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/MenuItemToggleWin.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/MenuItemWin.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ToolItemButtonGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ToolItemButtonWin.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ToolItemMenuButtonGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ToolItemMenuButtonWin.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ToolItemSeparatorGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ToolItemSeparatorWin.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ToolItemToggleButtonGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ToolItemToggleButtonWin.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Application.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Callback.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Clipboard.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/common_dlg.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/common_dlg_gtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/common_dlg_win.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/error.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Event.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/hui.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/language.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/main_gtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/main_win.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Menu.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/MenuGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/MenuWin.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/PainterGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Panel.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Resource.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Toolbar.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/ToolbarGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/ToolbarWin.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/utility.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Window.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/window_control.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/window_control_gtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/window_control_win.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/WindowGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/WindowWin.cpp.o CMakeFiles/tsunami.dir/src/lib/image/color.cpp.o CMakeFiles/tsunami.dir/src/lib/image/image.cpp.o CMakeFiles/tsunami.dir/src/lib/image/image_bmp.cpp.o CMakeFiles/tsunami.dir/src/lib/image/image_jpg.cpp.o CMakeFiles/tsunami.dir/src/lib/image/image_png.cpp.o CMakeFiles/tsunami.dir/src/lib/image/image_tga.cpp.o CMakeFiles/tsunami.dir/src/lib/image/ImagePainter.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/asm/asm.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/asm/asm_arm.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/asm/asm_x86.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/compiler/Backend.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/compiler/BackendAmd64.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/compiler/BackendARM.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/compiler/BackendX86.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/compiler/CommandList.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/compiler/Compiler.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/compiler/mapper.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/compiler/Serializer.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/compiler/SerialNode.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/dynamic/call.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/dynamic/dynamic.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/dynamic/exception.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/dynamic/sorting.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/lib/dict.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/lib/extern.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/lib/lib.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/lib/lib_base.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/lib/lib_doc.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/lib/lib_gl.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/lib/lib_hui.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/lib/lib_image.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/lib/lib_kaba.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/lib/lib_math.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/lib/lib_net.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/lib/lib_os.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/lib/lib_threads.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/lib/lib_time.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/lib/lib_vulkan.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/lib/list.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/parser/abstract.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/parser/Concretifier.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/parser/import.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/parser/lexical.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/parser/macros.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/parser/Parser.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/parser/Transformer.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/parser/type_matching.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/syntax/Block.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/syntax/Class.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/syntax/Constant.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/syntax/Function.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/syntax/Identifier.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/syntax/Node.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/syntax/Operator.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/syntax/preprocessor.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/syntax/Statement.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/syntax/SyntaxTree.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/syntax/Variable.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/template/implicit.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/template/implicit_array.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/template/implicit_callable.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/template/implicit_dict.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/template/implicit_enum.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/template/implicit_future.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/template/implicit_list.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/template/implicit_optional.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/template/implicit_pointer.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/template/implicit_product.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/template/implicit_regular.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/template/template.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/CompilerConfiguration.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/Context.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/Interpreter.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/kaba.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/Module.cpp.o CMakeFiles/tsunami.dir/src/lib/math/complex.cpp.o CMakeFiles/tsunami.dir/src/lib/math/interpolation.cpp.o CMakeFiles/tsunami.dir/src/lib/math/mat3.cpp.o CMakeFiles/tsunami.dir/src/lib/math/mat4.cpp.o CMakeFiles/tsunami.dir/src/lib/math/math.cpp.o CMakeFiles/tsunami.dir/src/lib/math/plane.cpp.o CMakeFiles/tsunami.dir/src/lib/math/quaternion.cpp.o CMakeFiles/tsunami.dir/src/lib/math/random.cpp.o CMakeFiles/tsunami.dir/src/lib/math/ray.cpp.o CMakeFiles/tsunami.dir/src/lib/math/rect.cpp.o CMakeFiles/tsunami.dir/src/lib/math/vec2.cpp.o CMakeFiles/tsunami.dir/src/lib/math/vec3.cpp.o CMakeFiles/tsunami.dir/src/lib/math/vec4.cpp.o CMakeFiles/tsunami.dir/src/lib/net/BinaryBuffer.cpp.o CMakeFiles/tsunami.dir/src/lib/net/net.cpp.o CMakeFiles/tsunami.dir/src/lib/net/Socket.cpp.o CMakeFiles/tsunami.dir/src/lib/nix/nix.cpp.o CMakeFiles/tsunami.dir/src/lib/nix/nix_buffer.cpp.o CMakeFiles/tsunami.dir/src/lib/nix/nix_draw.cpp.o CMakeFiles/tsunami.dir/src/lib/nix/nix_framebuffer.cpp.o CMakeFiles/tsunami.dir/src/lib/nix/nix_light.cpp.o CMakeFiles/tsunami.dir/src/lib/nix/nix_shader.cpp.o CMakeFiles/tsunami.dir/src/lib/nix/nix_textures.cpp.o CMakeFiles/tsunami.dir/src/lib/nix/nix_vertexbuffer.cpp.o CMakeFiles/tsunami.dir/src/lib/nix/nix_view.cpp.o CMakeFiles/tsunami.dir/src/lib/os/CommandLineParser.cpp.o CMakeFiles/tsunami.dir/src/lib/os/config.cpp.o CMakeFiles/tsunami.dir/src/lib/os/date.cpp.o CMakeFiles/tsunami.dir/src/lib/os/file.cpp.o CMakeFiles/tsunami.dir/src/lib/os/filesystem.cpp.o CMakeFiles/tsunami.dir/src/lib/os/formatter.cpp.o CMakeFiles/tsunami.dir/src/lib/os/msg.cpp.o CMakeFiles/tsunami.dir/src/lib/os/path.cpp.o CMakeFiles/tsunami.dir/src/lib/os/stream.cpp.o CMakeFiles/tsunami.dir/src/lib/os/terminal.cpp.o CMakeFiles/tsunami.dir/src/lib/os/time.cpp.o CMakeFiles/tsunami.dir/src/lib/pattern/Observable.cpp.o CMakeFiles/tsunami.dir/src/lib/threads/Mutex.cpp.o CMakeFiles/tsunami.dir/src/lib/threads/Thread.cpp.o CMakeFiles/tsunami.dir/src/lib/threads/ThreadedWork.cpp.o CMakeFiles/tsunami.dir/src/module/audio/AudioAccumulator.cpp.o CMakeFiles/tsunami.dir/src/module/audio/AudioBackup.cpp.o CMakeFiles/tsunami.dir/src/module/audio/AudioChannelSelector.cpp.o CMakeFiles/tsunami.dir/src/module/audio/AudioEffect.cpp.o CMakeFiles/tsunami.dir/src/module/audio/AudioJoiner.cpp.o CMakeFiles/tsunami.dir/src/module/audio/AudioSource.cpp.o CMakeFiles/tsunami.dir/src/module/audio/AudioSucker.cpp.o CMakeFiles/tsunami.dir/src/module/audio/AudioVisualizer.cpp.o CMakeFiles/tsunami.dir/src/module/audio/BufferStreamer.cpp.o CMakeFiles/tsunami.dir/src/module/audio/PeakMeter.cpp.o CMakeFiles/tsunami.dir/src/module/audio/PitchDetector.cpp.o CMakeFiles/tsunami.dir/src/module/audio/SongRenderer.cpp.o CMakeFiles/tsunami.dir/src/module/audio/TrackRenderer.cpp.o CMakeFiles/tsunami.dir/src/module/beats/BarStreamer.cpp.o CMakeFiles/tsunami.dir/src/module/beats/BeatMidifier.cpp.o CMakeFiles/tsunami.dir/src/module/beats/BeatSource.cpp.o CMakeFiles/tsunami.dir/src/module/midi/MidiAccumulator.cpp.o CMakeFiles/tsunami.dir/src/module/midi/MidiEffect.cpp.o CMakeFiles/tsunami.dir/src/module/midi/MidiEventStreamer.cpp.o CMakeFiles/tsunami.dir/src/module/midi/MidiJoiner.cpp.o CMakeFiles/tsunami.dir/src/module/midi/MidiPreviewSource.cpp.o CMakeFiles/tsunami.dir/src/module/midi/MidiSource.cpp.o CMakeFiles/tsunami.dir/src/module/midi/MidiSucker.cpp.o CMakeFiles/tsunami.dir/src/module/port/Port.cpp.o CMakeFiles/tsunami.dir/src/module/synthesizer/DebugSynthesizer.cpp.o CMakeFiles/tsunami.dir/src/module/synthesizer/DummySynthesizer.cpp.o CMakeFiles/tsunami.dir/src/module/synthesizer/EnvelopeADSR.cpp.o CMakeFiles/tsunami.dir/src/module/synthesizer/Synthesizer.cpp.o CMakeFiles/tsunami.dir/src/module/Module.cpp.o CMakeFiles/tsunami.dir/src/module/ModuleConfiguration.cpp.o CMakeFiles/tsunami.dir/src/module/ModuleFactory.cpp.o CMakeFiles/tsunami.dir/src/module/SignalChain.cpp.o CMakeFiles/tsunami.dir/src/plugins/ExtendedAudioBuffer.cpp.o CMakeFiles/tsunami.dir/src/plugins/Plugin.cpp.o CMakeFiles/tsunami.dir/src/plugins/PluginManager.cpp.o CMakeFiles/tsunami.dir/src/plugins/PresetManager.cpp.o CMakeFiles/tsunami.dir/src/plugins/TsunamiPlugin.cpp.o CMakeFiles/tsunami.dir/src/processing/audio/BufferInterpolator.cpp.o CMakeFiles/tsunami.dir/src/processing/audio/BufferPitchShift.cpp.o CMakeFiles/tsunami.dir/src/processing/audio/common.cpp.o CMakeFiles/tsunami.dir/src/processing/audio/Spectrogram.cpp.o CMakeFiles/tsunami.dir/src/storage/dialog/PdfConfigDialog.cpp.o CMakeFiles/tsunami.dir/src/storage/dialog/RawConfigDialog.cpp.o CMakeFiles/tsunami.dir/src/storage/format/Format.cpp.o CMakeFiles/tsunami.dir/src/storage/format/FormatFlac.cpp.o CMakeFiles/tsunami.dir/src/storage/format/FormatGuitarPro.cpp.o CMakeFiles/tsunami.dir/src/storage/format/FormatM4a.cpp.o CMakeFiles/tsunami.dir/src/storage/format/FormatMidi.cpp.o CMakeFiles/tsunami.dir/src/storage/format/FormatMp3.cpp.o CMakeFiles/tsunami.dir/src/storage/format/FormatNami.cpp.o CMakeFiles/tsunami.dir/src/storage/format/FormatOgg.cpp.o CMakeFiles/tsunami.dir/src/storage/format/FormatPdf.cpp.o CMakeFiles/tsunami.dir/src/storage/format/FormatRaw.cpp.o CMakeFiles/tsunami.dir/src/storage/format/FormatSoundFont2.cpp.o CMakeFiles/tsunami.dir/src/storage/format/FormatWave.cpp.o CMakeFiles/tsunami.dir/src/storage/Storage.cpp.o CMakeFiles/tsunami.dir/src/storage/StorageOperationData.cpp.o CMakeFiles/tsunami.dir/src/stuff/BackupManager.cpp.o CMakeFiles/tsunami.dir/src/stuff/Clipboard.cpp.o CMakeFiles/tsunami.dir/src/stuff/ErrorHandler.cpp.o CMakeFiles/tsunami.dir/src/stuff/Log.cpp.o CMakeFiles/tsunami.dir/src/stuff/PerformanceMonitor.cpp.o CMakeFiles/tsunami.dir/src/stuff/SessionManager.cpp.o CMakeFiles/tsunami.dir/src/test/TestAudioBuffer.cpp.o CMakeFiles/tsunami.dir/src/test/TestInterpolator.cpp.o CMakeFiles/tsunami.dir/src/test/TestMidiPreview.cpp.o CMakeFiles/tsunami.dir/src/test/TestMixer.cpp.o CMakeFiles/tsunami.dir/src/test/TestPlugins.cpp.o CMakeFiles/tsunami.dir/src/test/TestPointer.cpp.o CMakeFiles/tsunami.dir/src/test/TestRhythm.cpp.o CMakeFiles/tsunami.dir/src/test/TestRingBuffer.cpp.o CMakeFiles/tsunami.dir/src/test/TestSignalChain.cpp.o CMakeFiles/tsunami.dir/src/test/TestStreams.cpp.o CMakeFiles/tsunami.dir/src/test/TestThreads.cpp.o CMakeFiles/tsunami.dir/src/test/TestTrackVersion.cpp.o CMakeFiles/tsunami.dir/src/test/UnitTest.cpp.o CMakeFiles/tsunami.dir/src/view/audioview/graph/AudioViewLayer.cpp.o CMakeFiles/tsunami.dir/src/view/audioview/graph/AudioViewTrack.cpp.o CMakeFiles/tsunami.dir/src/view/audioview/graph/Background.cpp.o CMakeFiles/tsunami.dir/src/view/audioview/graph/BottomBarExpandButton.cpp.o CMakeFiles/tsunami.dir/src/view/audioview/graph/Cursor.cpp.o CMakeFiles/tsunami.dir/src/view/audioview/graph/LayerHeader.cpp.o CMakeFiles/tsunami.dir/src/view/audioview/graph/LogNotifier.cpp.o CMakeFiles/tsunami.dir/src/view/audioview/graph/TimeScale.cpp.o CMakeFiles/tsunami.dir/src/view/audioview/graph/TrackHeader.cpp.o CMakeFiles/tsunami.dir/src/view/audioview/graph/ViewMarker.cpp.o CMakeFiles/tsunami.dir/src/view/audioview/AudioView.cpp.o CMakeFiles/tsunami.dir/src/view/audioview/TrackHeightManager.cpp.o CMakeFiles/tsunami.dir/src/view/audioview/ViewPort.cpp.o CMakeFiles/tsunami.dir/src/view/bottombar/signaleditor/SignalEditorBackground.cpp.o CMakeFiles/tsunami.dir/src/view/bottombar/signaleditor/SignalEditorCable.cpp.o CMakeFiles/tsunami.dir/src/view/bottombar/signaleditor/SignalEditorModule.cpp.o CMakeFiles/tsunami.dir/src/view/bottombar/signaleditor/SignalEditorPort.cpp.o CMakeFiles/tsunami.dir/src/view/bottombar/signaleditor/SignalEditorTab.cpp.o CMakeFiles/tsunami.dir/src/view/bottombar/BottomBar.cpp.o CMakeFiles/tsunami.dir/src/view/bottombar/DeviceConsole.cpp.o CMakeFiles/tsunami.dir/src/view/bottombar/LogConsole.cpp.o CMakeFiles/tsunami.dir/src/view/bottombar/MixingConsole.cpp.o CMakeFiles/tsunami.dir/src/view/bottombar/PluginConsole.cpp.o CMakeFiles/tsunami.dir/src/view/bottombar/SessionConsole.cpp.o CMakeFiles/tsunami.dir/src/view/bottombar/SignalEditor.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/AudioScaleDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/BarAddDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/BarDeleteDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/BarEditSpeedDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/BarReplaceDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/BufferCompressionDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/ChannelMapperDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/common.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/EditStringsDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/HelpDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/MarkerDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/ModuleSelectorDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/NewSongDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/NewTrackDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/PauseAddDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/PauseEditDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/PresetSelectionDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/QuestionDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/SampleScaleDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/SampleSelectionDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/SelectStringDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/SettingsDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/TemperamentDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/TrackRoutingDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/VolumeDialog.cpp.o CMakeFiles/tsunami.dir/src/view/helper/graph/Node.cpp.o CMakeFiles/tsunami.dir/src/view/helper/graph/SceneGraph.cpp.o CMakeFiles/tsunami.dir/src/view/helper/graph/Scrollable.cpp.o CMakeFiles/tsunami.dir/src/view/helper/graph/ScrollBar.cpp.o CMakeFiles/tsunami.dir/src/view/helper/BreadCrumps.cpp.o CMakeFiles/tsunami.dir/src/view/helper/CpuDisplay.cpp.o CMakeFiles/tsunami.dir/src/view/helper/Dial.cpp.o CMakeFiles/tsunami.dir/src/view/helper/Drawing.cpp.o CMakeFiles/tsunami.dir/src/view/helper/FxListEditor.cpp.o CMakeFiles/tsunami.dir/src/view/helper/MidiPreview.cpp.o CMakeFiles/tsunami.dir/src/view/helper/PeakDatabase.cpp.o CMakeFiles/tsunami.dir/src/view/helper/PeakMeterDisplay.cpp.o CMakeFiles/tsunami.dir/src/view/helper/PeakThread.cpp.o CMakeFiles/tsunami.dir/src/view/helper/Progress.cpp.o CMakeFiles/tsunami.dir/src/view/helper/Slider.cpp.o CMakeFiles/tsunami.dir/src/view/helper/SymbolRenderer.cpp.o CMakeFiles/tsunami.dir/src/view/helper/VolumeControl.cpp.o CMakeFiles/tsunami.dir/src/view/mode/ViewMode.cpp.o CMakeFiles/tsunami.dir/src/view/mode/ViewModeCapture.cpp.o CMakeFiles/tsunami.dir/src/view/mode/ViewModeCurve.cpp.o CMakeFiles/tsunami.dir/src/view/mode/ViewModeDefault.cpp.o CMakeFiles/tsunami.dir/src/view/mode/ViewModeEdit.cpp.o CMakeFiles/tsunami.dir/src/view/mode/ViewModeEditAudio.cpp.o CMakeFiles/tsunami.dir/src/view/mode/ViewModeEditBars.cpp.o CMakeFiles/tsunami.dir/src/view/mode/ViewModeEditDummy.cpp.o CMakeFiles/tsunami.dir/src/view/mode/ViewModeEditMidi.cpp.o CMakeFiles/tsunami.dir/src/view/mode/ViewModeScaleMarker.cpp.o CMakeFiles/tsunami.dir/src/view/module/AutoConfigPanel.cpp.o CMakeFiles/tsunami.dir/src/view/module/ConfigPanel.cpp.o CMakeFiles/tsunami.dir/src/view/module/ConfigurationDialog.cpp.o CMakeFiles/tsunami.dir/src/view/module/ModulePanel.cpp.o CMakeFiles/tsunami.dir/src/view/painter/midi/MidiPainterMode.cpp.o CMakeFiles/tsunami.dir/src/view/painter/midi/MidiPainterModeClassical.cpp.o CMakeFiles/tsunami.dir/src/view/painter/midi/MidiPainterModeLinear.cpp.o CMakeFiles/tsunami.dir/src/view/painter/midi/MidiPainterModeTab.cpp.o CMakeFiles/tsunami.dir/src/view/painter/midi/rhythm.cpp.o CMakeFiles/tsunami.dir/src/view/painter/BasicGridPainter.cpp.o CMakeFiles/tsunami.dir/src/view/painter/BufferPainter.cpp.o CMakeFiles/tsunami.dir/src/view/painter/GridPainter.cpp.o CMakeFiles/tsunami.dir/src/view/painter/MidiPainter.cpp.o CMakeFiles/tsunami.dir/src/view/painter/MultiLinePainter.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/captureconsolemodes/CaptureConsoleMode.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/captureconsolemodes/CaptureConsoleModeAudio.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/captureconsolemodes/CaptureConsoleModeMidi.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/captureconsolemodes/CaptureConsoleModeMulti.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/captureconsolemodes/CaptureTrackData.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/AudioEditorConsole.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/BarsEditorConsole.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/CaptureConsole.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/CurveConsole.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/DummyEditorConsole.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/EffectsConsole.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/MidiEditorConsole.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/SampleManagerConsole.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/SampleRefConsole.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/SideBar.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/SongConsole.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/TrackConsole.cpp.o CMakeFiles/tsunami.dir/src/view/ColorScheme.cpp.o CMakeFiles/tsunami.dir/src/view/HeaderBar.cpp.o CMakeFiles/tsunami.dir/src/view/HoverData.cpp.o CMakeFiles/tsunami.dir/src/view/MouseDelayPlanner.cpp.o CMakeFiles/tsunami.dir/src/view/TsunamiWindow.cpp.o CMakeFiles/tsunami.dir/src/Playback.cpp.o CMakeFiles/tsunami.dir/src/Session.cpp.o CMakeFiles/tsunami.dir/src/Tsunami.cpp.o -o tsunami  -Wl,-rpath,/opt/local/lib -lgtk-4 -lpangocairo-1.0 -lpango-1.0 -lharfbuzz -lgdk_pixbuf-2.0 -lcairo-gobject -lcairo -lgraphene-1.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lintl -lz -lfftw3f -logg -lvorbis -lvorbisfile -lvorbisenc -lFLAC -lpulse -lportaudio -framework CoreAudio -framework AudioToolbox -framework AudioUnit -framework CoreFoundation -framework CoreServices 
make[2]: Leaving directory `/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/build'
[100%] Built target tsunami
make[1]: Leaving directory `/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/build'
/opt/local/bin/cmake -E cmake_progress_start /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/build/CMakeFiles 0
make: Leaving directory `/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/build'
momentarylapse commented 7 months ago

wow, that is quite a lot of progress.

Thanks for the effort! Please keep me updated. I'm very curious if it can run on your system

momentarylapse commented 7 months ago

seems you were faster fixing the linker problem than me replying :D

That looks like the build succeeded?

barracuda156 commented 7 months ago

And the binary crashes on launch:

(tsunami:46988): Gdk-ERROR **: 22:04:37.994: XInput2 support not found on display

Program received signal EXC_SOFTWARE, Software generated exception.
0x0143af88 in _g_log_abort ()
(gdb) where
#0  0x0143af88 in _g_log_abort ()
warning: .o file "/opt/local/lib/gcc13/gcc/powerpc-apple-darwin10/13.2.0/libgcc.a(ibm-ldouble.o)" more recent than executable timestamp in "/opt/local/lib/libglib-2.0.0.dylib"
warning: Couldn't open object file '/opt/local/lib/gcc13/gcc/powerpc-apple-darwin10/13.2.0/libgcc.a(ibm-ldouble.o)'
#1  0x0147e814 in g_log_writer_default ()
#2  0x0143b48c in g_log_structured_array ()
#3  0x0147d49c in g_log_structured_standard ()
#4  0x00a31448 in _gdk_x11_device_manager_new ()
#5  0x00a3558c in gdk_x11_display_init_leader_surface ()
#6  0x00a36250 in gdk_x11_display_open ()
#7  0x00a6565c in gdk_display_manager_open_display ()
#8  0x007cfc38 in gtk_init_check ()
#9  0x007cfc7c in gtk_init ()
#10 0x00070234 in hui::_MakeUsable_ ()
#11 0x00068860 in hui::Application::try_execute ()
#12 0x0026aabc in hui_main ()
#13 0x002a6b84 in main ()

However, this may have nothing to do with tsunami, but rather relate to a broken GTK. I think I have seen similar issues, and had no time so far to try fixing GTK on PowerPC.

I can try the build on Sonoma aarch64 now.

barracuda156 commented 7 months ago

OpenGL: interesting, that cmake seems to find header files (I heard, MacOS abandoned it).

10.6 has some sort of initial OpenGL, as far as I recall, but it may not be functional. PowerPC also got an early development build of 10.6, which may not support something which 10.6.8 does. I have X11 installed and mesa, so perhaps those may be found instead, but I have no idea what specifically it tried to link to.

For mmap flags, just removing those is fine? It appears they are not supported on macOS at all.

barracuda156 commented 7 months ago

On a side note, this is rather weird:

Couldn't open object file '/opt/local/lib/gcc13/gcc/powerpc-apple-darwin10/13.2.0/libgcc.a(ibm-ldouble.o)'

Unrelated to the topic, but I will look into what is going on there.

momentarylapse commented 7 months ago

Yes, removing mmap flags is fine for now. It might lead to plugins not working, but that's a later-down-the-road problem.

Hmm, the stacktrace first looked like it is a pure gtk issue. But yes, that line is weird indeed. Maybe I am missing some default linking targets that are required on Mac. Or the linking process is completely different. This is hard to debug without direct access, but I'll do some online research after work today.

barracuda156 commented 7 months ago

OpenGL issue seems to be general: I get the same error on Sonoma:

[ 99%] Building CXX object CMakeFiles/tsunami.dir/src/Playback.cpp.o
/usr/bin/clang++ -DHAS_LIB_ADWAITA=0 -DHAS_LIB_ALSA=0 -DHAS_LIB_DL=1 -DHAS_LIB_FFTW3=1 -DHAS_LIB_FLAC=1 -DHAS_LIB_GL=1 -DHAS_LIB_GTK4=1 -DHAS_LIB_OGG=1 -DHAS_LIB_PORTAUDIO=1 -DHAS_LIB_PULSEAUDIO=1 -DHAS_LIB_UNWIND=0 -DHAS_LIB_ZLIB=1 -DINSTALL_PREFIX=\"/opt/local\" -D_REENTRANT -I/opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_audio_tsunami/tsunami/work/tsunami-7a10c93d070abc6b0f5329f893162e29a82ade71/src/lib -I/opt/local/include/gtk-4.0 -I/opt/local/include/pango-1.0 -I/opt/local/include/harfbuzz -I/opt/local/include/fribidi -I/opt/local/include/gdk-pixbuf-2.0 -I/opt/local/include/cairo -I/opt/local/include/pixman-1 -I/opt/local/include/freetype2 -I/opt/local/include/libpng16 -I/opt/local/include/graphene-1.0 -I/opt/local/lib/graphene-1.0/include -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -pipe -Os -DNDEBUG -I/opt/local/include -stdlib=libc++ -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -g -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -mmacosx-version-min=14.0 -std=gnu++17 -MD -MT CMakeFiles/tsunami.dir/src/Playback.cpp.o -MF CMakeFiles/tsunami.dir/src/Playback.cpp.o.d -o CMakeFiles/tsunami.dir/src/Playback.cpp.o -c /opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_audio_tsunami/tsunami/work/tsunami-7a10c93d070abc6b0f5329f893162e29a82ade71/src/Playback.cpp
[ 99%] Building CXX object CMakeFiles/tsunami.dir/src/Session.cpp.o
/usr/bin/clang++ -DHAS_LIB_ADWAITA=0 -DHAS_LIB_ALSA=0 -DHAS_LIB_DL=1 -DHAS_LIB_FFTW3=1 -DHAS_LIB_FLAC=1 -DHAS_LIB_GL=1 -DHAS_LIB_GTK4=1 -DHAS_LIB_OGG=1 -DHAS_LIB_PORTAUDIO=1 -DHAS_LIB_PULSEAUDIO=1 -DHAS_LIB_UNWIND=0 -DHAS_LIB_ZLIB=1 -DINSTALL_PREFIX=\"/opt/local\" -D_REENTRANT -I/opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_audio_tsunami/tsunami/work/tsunami-7a10c93d070abc6b0f5329f893162e29a82ade71/src/lib -I/opt/local/include/gtk-4.0 -I/opt/local/include/pango-1.0 -I/opt/local/include/harfbuzz -I/opt/local/include/fribidi -I/opt/local/include/gdk-pixbuf-2.0 -I/opt/local/include/cairo -I/opt/local/include/pixman-1 -I/opt/local/include/freetype2 -I/opt/local/include/libpng16 -I/opt/local/include/graphene-1.0 -I/opt/local/lib/graphene-1.0/include -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -pipe -Os -DNDEBUG -I/opt/local/include -stdlib=libc++ -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -g -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -mmacosx-version-min=14.0 -std=gnu++17 -MD -MT CMakeFiles/tsunami.dir/src/Session.cpp.o -MF CMakeFiles/tsunami.dir/src/Session.cpp.o.d -o CMakeFiles/tsunami.dir/src/Session.cpp.o -c /opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_audio_tsunami/tsunami/work/tsunami-7a10c93d070abc6b0f5329f893162e29a82ade71/src/Session.cpp
[ 99%] Building CXX object CMakeFiles/tsunami.dir/src/Tsunami.cpp.o
/usr/bin/clang++ -DHAS_LIB_ADWAITA=0 -DHAS_LIB_ALSA=0 -DHAS_LIB_DL=1 -DHAS_LIB_FFTW3=1 -DHAS_LIB_FLAC=1 -DHAS_LIB_GL=1 -DHAS_LIB_GTK4=1 -DHAS_LIB_OGG=1 -DHAS_LIB_PORTAUDIO=1 -DHAS_LIB_PULSEAUDIO=1 -DHAS_LIB_UNWIND=0 -DHAS_LIB_ZLIB=1 -DINSTALL_PREFIX=\"/opt/local\" -D_REENTRANT -I/opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_audio_tsunami/tsunami/work/tsunami-7a10c93d070abc6b0f5329f893162e29a82ade71/src/lib -I/opt/local/include/gtk-4.0 -I/opt/local/include/pango-1.0 -I/opt/local/include/harfbuzz -I/opt/local/include/fribidi -I/opt/local/include/gdk-pixbuf-2.0 -I/opt/local/include/cairo -I/opt/local/include/pixman-1 -I/opt/local/include/freetype2 -I/opt/local/include/libpng16 -I/opt/local/include/graphene-1.0 -I/opt/local/lib/graphene-1.0/include -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -pipe -Os -DNDEBUG -I/opt/local/include -stdlib=libc++ -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -g -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -mmacosx-version-min=14.0 -std=gnu++17 -MD -MT CMakeFiles/tsunami.dir/src/Tsunami.cpp.o -MF CMakeFiles/tsunami.dir/src/Tsunami.cpp.o.d -o CMakeFiles/tsunami.dir/src/Tsunami.cpp.o -c /opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_audio_tsunami/tsunami/work/tsunami-7a10c93d070abc6b0f5329f893162e29a82ade71/src/Tsunami.cpp
[100%] Linking CXX executable tsunami
/opt/local/bin/cmake -E cmake_link_script CMakeFiles/tsunami.dir/link.txt --verbose=ON
/usr/bin/clang++ -pipe -Os -DNDEBUG -I/opt/local/include -stdlib=libc++ -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -g -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -mmacosx-version-min=14.0 -Wl,-search_paths_first -Wl,-headerpad_max_install_names -L/opt/local/lib -Wl,-headerpad_max_install_names -Wl,-syslibroot,/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk CMakeFiles/tsunami.dir/src/action/bar/Action__ScaleData.cpp.o CMakeFiles/tsunami.dir/src/action/bar/Action__ShiftData.cpp.o CMakeFiles/tsunami.dir/src/action/bar/ActionBar__Add.cpp.o CMakeFiles/tsunami.dir/src/action/bar/ActionBar__Delete.cpp.o CMakeFiles/tsunami.dir/src/action/bar/ActionBar__Edit.cpp.o CMakeFiles/tsunami.dir/src/action/bar/ActionBarAdd.cpp.o CMakeFiles/tsunami.dir/src/action/bar/ActionBarDelete.cpp.o CMakeFiles/tsunami.dir/src/action/bar/ActionBarEdit.cpp.o CMakeFiles/tsunami.dir/src/action/sample/ActionSampleAdd.cpp.o CMakeFiles/tsunami.dir/src/action/sample/ActionSampleDelete.cpp.o CMakeFiles/tsunami.dir/src/action/sample/ActionSampleEditName.cpp.o CMakeFiles/tsunami.dir/src/action/sample/ActionSampleReplaceBuffer.cpp.o CMakeFiles/tsunami.dir/src/action/song/data/ActionSongChangeAllTrackVolumes.cpp.o CMakeFiles/tsunami.dir/src/action/song/data/ActionSongSetDefaultFormat.cpp.o CMakeFiles/tsunami.dir/src/action/song/data/ActionSongSetSampleRate.cpp.o CMakeFiles/tsunami.dir/src/action/song/ActionSongDeleteSelection.cpp.o CMakeFiles/tsunami.dir/src/action/song/ActionSongMoveSelection.cpp.o CMakeFiles/tsunami.dir/src/action/tag/ActionTagAdd.cpp.o CMakeFiles/tsunami.dir/src/action/tag/ActionTagDelete.cpp.o CMakeFiles/tsunami.dir/src/action/tag/ActionTagEdit.cpp.o CMakeFiles/tsunami.dir/src/action/track/buffer/ActionTrack__AbsorbBuffer.cpp.o CMakeFiles/tsunami.dir/src/action/track/buffer/ActionTrack__AddBuffer.cpp.o CMakeFiles/tsunami.dir/src/action/track/buffer/ActionTrack__BufferSetChannels.cpp.o CMakeFiles/tsunami.dir/src/action/track/buffer/ActionTrack__DeleteBuffer.cpp.o CMakeFiles/tsunami.dir/src/action/track/buffer/ActionTrack__GrowBuffer.cpp.o CMakeFiles/tsunami.dir/src/action/track/buffer/ActionTrack__ShrinkBuffer.cpp.o CMakeFiles/tsunami.dir/src/action/track/buffer/ActionTrack__SplitBuffer.cpp.o CMakeFiles/tsunami.dir/src/action/track/buffer/ActionTrackCreateBuffers.cpp.o CMakeFiles/tsunami.dir/src/action/track/buffer/ActionTrackEditBuffer.cpp.o CMakeFiles/tsunami.dir/src/action/track/buffer/ActionTrackMoveBuffer.cpp.o CMakeFiles/tsunami.dir/src/action/track/buffer/ActionTrackSetChannels.cpp.o CMakeFiles/tsunami.dir/src/action/track/curve/ActionTrackAddCurve.cpp.o CMakeFiles/tsunami.dir/src/action/track/curve/ActionTrackCurveAddPoint.cpp.o CMakeFiles/tsunami.dir/src/action/track/curve/ActionTrackCurveDeletePoint.cpp.o CMakeFiles/tsunami.dir/src/action/track/curve/ActionTrackCurveEditPoint.cpp.o CMakeFiles/tsunami.dir/src/action/track/curve/ActionTrackDeleteCurve.cpp.o CMakeFiles/tsunami.dir/src/action/track/curve/ActionTrackEditCurve.cpp.o CMakeFiles/tsunami.dir/src/action/track/data/ActionTrackEditMuted.cpp.o CMakeFiles/tsunami.dir/src/action/track/data/ActionTrackEditName.cpp.o CMakeFiles/tsunami.dir/src/action/track/data/ActionTrackEditPanning.cpp.o CMakeFiles/tsunami.dir/src/action/track/data/ActionTrackEditVolume.cpp.o CMakeFiles/tsunami.dir/src/action/track/data/ActionTrackSetInstrument.cpp.o CMakeFiles/tsunami.dir/src/action/track/data/ActionTrackSetTarget.cpp.o CMakeFiles/tsunami.dir/src/action/track/effect/ActionTrackAddAudioEffect.cpp.o CMakeFiles/tsunami.dir/src/action/track/effect/ActionTrackDeleteAudioEffect.cpp.o CMakeFiles/tsunami.dir/src/action/track/effect/ActionTrackEditAudioEffect.cpp.o CMakeFiles/tsunami.dir/src/action/track/effect/ActionTrackMoveAudioEffect.cpp.o CMakeFiles/tsunami.dir/src/action/track/effect/ActionTrackSetAudioEffectEnabledWetness.cpp.o CMakeFiles/tsunami.dir/src/action/track/layer/ActionTrackFadeAdd.cpp.o CMakeFiles/tsunami.dir/src/action/track/layer/ActionTrackFadeDelete.cpp.o CMakeFiles/tsunami.dir/src/action/track/layer/ActionTrackLayer__Delete.cpp.o CMakeFiles/tsunami.dir/src/action/track/layer/ActionTrackLayerAdd.cpp.o CMakeFiles/tsunami.dir/src/action/track/layer/ActionTrackLayerDelete.cpp.o CMakeFiles/tsunami.dir/src/action/track/layer/ActionTrackLayerMakeTrack.cpp.o CMakeFiles/tsunami.dir/src/action/track/layer/ActionTrackLayerMarkDominant.cpp.o CMakeFiles/tsunami.dir/src/action/track/layer/ActionTrackLayerMerge.cpp.o CMakeFiles/tsunami.dir/src/action/track/layer/ActionTrackLayerMove.cpp.o CMakeFiles/tsunami.dir/src/action/track/marker/ActionTrackAddMarker.cpp.o CMakeFiles/tsunami.dir/src/action/track/marker/ActionTrackDeleteMarker.cpp.o CMakeFiles/tsunami.dir/src/action/track/marker/ActionTrackEditMarker.cpp.o CMakeFiles/tsunami.dir/src/action/track/midi/ActionTrackAddMidiEffect.cpp.o CMakeFiles/tsunami.dir/src/action/track/midi/ActionTrackAddMidiNote.cpp.o CMakeFiles/tsunami.dir/src/action/track/midi/ActionTrackDeleteMidiEffect.cpp.o CMakeFiles/tsunami.dir/src/action/track/midi/ActionTrackDeleteMidiNote.cpp.o CMakeFiles/tsunami.dir/src/action/track/midi/ActionTrackEditMidiEffect.cpp.o CMakeFiles/tsunami.dir/src/action/track/midi/ActionTrackEditMidiNote.cpp.o CMakeFiles/tsunami.dir/src/action/track/midi/ActionTrackInsertMidi.cpp.o CMakeFiles/tsunami.dir/src/action/track/midi/ActionTrackMoveMidiEffect.cpp.o CMakeFiles/tsunami.dir/src/action/track/midi/ActionTrackToggleMidiEffectEnabled.cpp.o CMakeFiles/tsunami.dir/src/action/track/sample/ActionTrackAddSample.cpp.o CMakeFiles/tsunami.dir/src/action/track/sample/ActionTrackDeleteSample.cpp.o CMakeFiles/tsunami.dir/src/action/track/sample/ActionTrackEditSample.cpp.o CMakeFiles/tsunami.dir/src/action/track/sample/ActionTrackInsertSample.cpp.o CMakeFiles/tsunami.dir/src/action/track/sample/ActionTrackPasteAsSample.cpp.o CMakeFiles/tsunami.dir/src/action/track/sample/ActionTrackSampleFromSelection.cpp.o CMakeFiles/tsunami.dir/src/action/track/synthesizer/ActionTrackDetuneSynthesizer.cpp.o CMakeFiles/tsunami.dir/src/action/track/synthesizer/ActionTrackEditSynthesizer.cpp.o CMakeFiles/tsunami.dir/src/action/track/synthesizer/ActionTrackSetSynthesizer.cpp.o CMakeFiles/tsunami.dir/src/action/track/ActionTrack__DeleteEmpty.cpp.o CMakeFiles/tsunami.dir/src/action/track/ActionTrackAdd.cpp.o CMakeFiles/tsunami.dir/src/action/track/ActionTrackDelete.cpp.o CMakeFiles/tsunami.dir/src/action/track/ActionTrackMove.cpp.o CMakeFiles/tsunami.dir/src/action/Action.cpp.o CMakeFiles/tsunami.dir/src/action/ActionGroup.cpp.o CMakeFiles/tsunami.dir/src/action/ActionManager.cpp.o CMakeFiles/tsunami.dir/src/action/ActionMergable.cpp.o CMakeFiles/tsunami.dir/src/command/song/Diff.cpp.o CMakeFiles/tsunami.dir/src/command/song/Export.cpp.o CMakeFiles/tsunami.dir/src/command/song/Show.cpp.o CMakeFiles/tsunami.dir/src/command/Unsorted.cpp.o CMakeFiles/tsunami.dir/src/data/audio/AudioBuffer.cpp.o CMakeFiles/tsunami.dir/src/data/audio/RingBuffer.cpp.o CMakeFiles/tsunami.dir/src/data/midi/Clef.cpp.o CMakeFiles/tsunami.dir/src/data/midi/Instrument.cpp.o CMakeFiles/tsunami.dir/src/data/midi/MidiData.cpp.o CMakeFiles/tsunami.dir/src/data/midi/MidiEvent.cpp.o CMakeFiles/tsunami.dir/src/data/midi/MidiNote.cpp.o CMakeFiles/tsunami.dir/src/data/midi/Scale.cpp.o CMakeFiles/tsunami.dir/src/data/midi/Temperament.cpp.o CMakeFiles/tsunami.dir/src/data/rhythm/Bar.cpp.o CMakeFiles/tsunami.dir/src/data/rhythm/BarCollection.cpp.o CMakeFiles/tsunami.dir/src/data/rhythm/Beat.cpp.o CMakeFiles/tsunami.dir/src/data/base.cpp.o CMakeFiles/tsunami.dir/src/data/CrossFade.cpp.o CMakeFiles/tsunami.dir/src/data/Curve.cpp.o CMakeFiles/tsunami.dir/src/data/Data.cpp.o CMakeFiles/tsunami.dir/src/data/Range.cpp.o CMakeFiles/tsunami.dir/src/data/Sample.cpp.o CMakeFiles/tsunami.dir/src/data/SampleRef.cpp.o CMakeFiles/tsunami.dir/src/data/Song.cpp.o CMakeFiles/tsunami.dir/src/data/SongSelection.cpp.o CMakeFiles/tsunami.dir/src/data/Track.cpp.o CMakeFiles/tsunami.dir/src/data/TrackLayer.cpp.o CMakeFiles/tsunami.dir/src/data/TrackMarker.cpp.o CMakeFiles/tsunami.dir/src/device/stream/AudioInput.cpp.o CMakeFiles/tsunami.dir/src/device/stream/AudioOutput.cpp.o CMakeFiles/tsunami.dir/src/device/stream/MidiInput.cpp.o CMakeFiles/tsunami.dir/src/device/Device.cpp.o CMakeFiles/tsunami.dir/src/device/DeviceManager.cpp.o CMakeFiles/tsunami.dir/src/lib/any/any.cpp.o CMakeFiles/tsunami.dir/src/lib/base/array.cpp.o CMakeFiles/tsunami.dir/src/lib/base/pointer.cpp.o CMakeFiles/tsunami.dir/src/lib/base/strings.cpp.o CMakeFiles/tsunami.dir/src/lib/doc/chunked.cpp.o CMakeFiles/tsunami.dir/src/lib/doc/pdf.cpp.o CMakeFiles/tsunami.dir/src/lib/doc/ttf.cpp.o CMakeFiles/tsunami.dir/src/lib/doc/xml.cpp.o CMakeFiles/tsunami.dir/src/lib/fft/fft.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/Control.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlButtonGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlCheckBoxGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlColorButtonGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlComboBoxGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlDrawingAreaGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlEditGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlExpanderGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlGridGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlGroupGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlHeaderBar.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlLabelGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlListViewGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlMenuButtonGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlMultilineEditGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlPanedGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlProgressBarGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlRadioButtonGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlScrollerGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlSeparatorGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlSliderGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlSpinButtonGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlTabControlGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlToggleButtonGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlTreeViewGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/MenuItemGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/MenuItemSeparatorGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/MenuItemSeparatorWin.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/MenuItemSubmenuGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/MenuItemSubmenuWin.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/MenuItemToggleGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/MenuItemToggleWin.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/MenuItemWin.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ToolItemButtonGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ToolItemButtonWin.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ToolItemMenuButtonGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ToolItemMenuButtonWin.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ToolItemSeparatorGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ToolItemSeparatorWin.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ToolItemToggleButtonGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Controls/ToolItemToggleButtonWin.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Application.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Callback.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Clipboard.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/common_dlg.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/common_dlg_gtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/common_dlg_win.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/error.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Event.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/hui.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/language.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/main_gtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/main_win.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Menu.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/MenuGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/MenuWin.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/PainterGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Panel.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Resource.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Toolbar.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/ToolbarGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/ToolbarWin.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/utility.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/Window.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/window_control.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/window_control_gtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/window_control_win.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/WindowGtk.cpp.o CMakeFiles/tsunami.dir/src/lib/hui/WindowWin.cpp.o CMakeFiles/tsunami.dir/src/lib/image/color.cpp.o CMakeFiles/tsunami.dir/src/lib/image/image.cpp.o CMakeFiles/tsunami.dir/src/lib/image/image_bmp.cpp.o CMakeFiles/tsunami.dir/src/lib/image/image_jpg.cpp.o CMakeFiles/tsunami.dir/src/lib/image/image_png.cpp.o CMakeFiles/tsunami.dir/src/lib/image/image_tga.cpp.o CMakeFiles/tsunami.dir/src/lib/image/ImagePainter.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/asm/asm.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/asm/asm_arm.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/asm/asm_x86.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/compiler/Backend.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/compiler/BackendAmd64.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/compiler/BackendARM.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/compiler/BackendX86.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/compiler/CommandList.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/compiler/Compiler.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/compiler/mapper.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/compiler/Serializer.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/compiler/SerialNode.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/dynamic/call.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/dynamic/dynamic.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/dynamic/exception.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/dynamic/sorting.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/lib/dict.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/lib/extern.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/lib/lib.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/lib/lib_base.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/lib/lib_doc.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/lib/lib_gl.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/lib/lib_hui.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/lib/lib_image.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/lib/lib_kaba.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/lib/lib_math.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/lib/lib_net.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/lib/lib_os.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/lib/lib_threads.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/lib/lib_time.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/lib/lib_vulkan.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/lib/list.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/parser/abstract.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/parser/Concretifier.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/parser/import.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/parser/lexical.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/parser/macros.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/parser/Parser.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/parser/Transformer.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/parser/type_matching.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/syntax/Block.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/syntax/Class.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/syntax/Constant.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/syntax/Function.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/syntax/Identifier.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/syntax/Node.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/syntax/Operator.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/syntax/preprocessor.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/syntax/Statement.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/syntax/SyntaxTree.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/syntax/Variable.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/template/implicit.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/template/implicit_array.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/template/implicit_callable.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/template/implicit_dict.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/template/implicit_enum.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/template/implicit_future.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/template/implicit_list.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/template/implicit_optional.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/template/implicit_pointer.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/template/implicit_product.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/template/implicit_regular.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/template/template.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/CompilerConfiguration.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/Context.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/Interpreter.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/kaba.cpp.o CMakeFiles/tsunami.dir/src/lib/kaba/Module.cpp.o CMakeFiles/tsunami.dir/src/lib/math/complex.cpp.o CMakeFiles/tsunami.dir/src/lib/math/interpolation.cpp.o CMakeFiles/tsunami.dir/src/lib/math/mat3.cpp.o CMakeFiles/tsunami.dir/src/lib/math/mat4.cpp.o CMakeFiles/tsunami.dir/src/lib/math/math.cpp.o CMakeFiles/tsunami.dir/src/lib/math/plane.cpp.o CMakeFiles/tsunami.dir/src/lib/math/quaternion.cpp.o CMakeFiles/tsunami.dir/src/lib/math/random.cpp.o CMakeFiles/tsunami.dir/src/lib/math/ray.cpp.o CMakeFiles/tsunami.dir/src/lib/math/rect.cpp.o CMakeFiles/tsunami.dir/src/lib/math/vec2.cpp.o CMakeFiles/tsunami.dir/src/lib/math/vec3.cpp.o CMakeFiles/tsunami.dir/src/lib/math/vec4.cpp.o CMakeFiles/tsunami.dir/src/lib/net/BinaryBuffer.cpp.o CMakeFiles/tsunami.dir/src/lib/net/net.cpp.o CMakeFiles/tsunami.dir/src/lib/net/Socket.cpp.o CMakeFiles/tsunami.dir/src/lib/nix/nix.cpp.o CMakeFiles/tsunami.dir/src/lib/nix/nix_buffer.cpp.o CMakeFiles/tsunami.dir/src/lib/nix/nix_draw.cpp.o CMakeFiles/tsunami.dir/src/lib/nix/nix_framebuffer.cpp.o CMakeFiles/tsunami.dir/src/lib/nix/nix_light.cpp.o CMakeFiles/tsunami.dir/src/lib/nix/nix_shader.cpp.o CMakeFiles/tsunami.dir/src/lib/nix/nix_textures.cpp.o CMakeFiles/tsunami.dir/src/lib/nix/nix_vertexbuffer.cpp.o CMakeFiles/tsunami.dir/src/lib/nix/nix_view.cpp.o CMakeFiles/tsunami.dir/src/lib/os/CommandLineParser.cpp.o CMakeFiles/tsunami.dir/src/lib/os/config.cpp.o CMakeFiles/tsunami.dir/src/lib/os/date.cpp.o CMakeFiles/tsunami.dir/src/lib/os/file.cpp.o CMakeFiles/tsunami.dir/src/lib/os/filesystem.cpp.o CMakeFiles/tsunami.dir/src/lib/os/formatter.cpp.o CMakeFiles/tsunami.dir/src/lib/os/msg.cpp.o CMakeFiles/tsunami.dir/src/lib/os/path.cpp.o CMakeFiles/tsunami.dir/src/lib/os/stream.cpp.o CMakeFiles/tsunami.dir/src/lib/os/terminal.cpp.o CMakeFiles/tsunami.dir/src/lib/os/time.cpp.o CMakeFiles/tsunami.dir/src/lib/pattern/Observable.cpp.o CMakeFiles/tsunami.dir/src/lib/threads/Mutex.cpp.o CMakeFiles/tsunami.dir/src/lib/threads/Thread.cpp.o CMakeFiles/tsunami.dir/src/lib/threads/ThreadedWork.cpp.o CMakeFiles/tsunami.dir/src/module/audio/AudioAccumulator.cpp.o CMakeFiles/tsunami.dir/src/module/audio/AudioBackup.cpp.o CMakeFiles/tsunami.dir/src/module/audio/AudioChannelSelector.cpp.o CMakeFiles/tsunami.dir/src/module/audio/AudioEffect.cpp.o CMakeFiles/tsunami.dir/src/module/audio/AudioJoiner.cpp.o CMakeFiles/tsunami.dir/src/module/audio/AudioSource.cpp.o CMakeFiles/tsunami.dir/src/module/audio/AudioSucker.cpp.o CMakeFiles/tsunami.dir/src/module/audio/AudioVisualizer.cpp.o CMakeFiles/tsunami.dir/src/module/audio/BufferStreamer.cpp.o CMakeFiles/tsunami.dir/src/module/audio/PeakMeter.cpp.o CMakeFiles/tsunami.dir/src/module/audio/PitchDetector.cpp.o CMakeFiles/tsunami.dir/src/module/audio/SongRenderer.cpp.o CMakeFiles/tsunami.dir/src/module/audio/TrackRenderer.cpp.o CMakeFiles/tsunami.dir/src/module/beats/BarStreamer.cpp.o CMakeFiles/tsunami.dir/src/module/beats/BeatMidifier.cpp.o CMakeFiles/tsunami.dir/src/module/beats/BeatSource.cpp.o CMakeFiles/tsunami.dir/src/module/midi/MidiAccumulator.cpp.o CMakeFiles/tsunami.dir/src/module/midi/MidiEffect.cpp.o CMakeFiles/tsunami.dir/src/module/midi/MidiEventStreamer.cpp.o CMakeFiles/tsunami.dir/src/module/midi/MidiJoiner.cpp.o CMakeFiles/tsunami.dir/src/module/midi/MidiPreviewSource.cpp.o CMakeFiles/tsunami.dir/src/module/midi/MidiSource.cpp.o CMakeFiles/tsunami.dir/src/module/midi/MidiSucker.cpp.o CMakeFiles/tsunami.dir/src/module/port/Port.cpp.o CMakeFiles/tsunami.dir/src/module/synthesizer/DebugSynthesizer.cpp.o CMakeFiles/tsunami.dir/src/module/synthesizer/DummySynthesizer.cpp.o CMakeFiles/tsunami.dir/src/module/synthesizer/EnvelopeADSR.cpp.o CMakeFiles/tsunami.dir/src/module/synthesizer/Synthesizer.cpp.o CMakeFiles/tsunami.dir/src/module/Module.cpp.o CMakeFiles/tsunami.dir/src/module/ModuleConfiguration.cpp.o CMakeFiles/tsunami.dir/src/module/ModuleFactory.cpp.o CMakeFiles/tsunami.dir/src/module/SignalChain.cpp.o CMakeFiles/tsunami.dir/src/plugins/ExtendedAudioBuffer.cpp.o CMakeFiles/tsunami.dir/src/plugins/Plugin.cpp.o CMakeFiles/tsunami.dir/src/plugins/PluginManager.cpp.o CMakeFiles/tsunami.dir/src/plugins/PresetManager.cpp.o CMakeFiles/tsunami.dir/src/plugins/TsunamiPlugin.cpp.o CMakeFiles/tsunami.dir/src/processing/audio/BufferInterpolator.cpp.o CMakeFiles/tsunami.dir/src/processing/audio/BufferPitchShift.cpp.o CMakeFiles/tsunami.dir/src/processing/audio/common.cpp.o CMakeFiles/tsunami.dir/src/processing/audio/Spectrogram.cpp.o CMakeFiles/tsunami.dir/src/storage/dialog/PdfConfigDialog.cpp.o CMakeFiles/tsunami.dir/src/storage/dialog/RawConfigDialog.cpp.o CMakeFiles/tsunami.dir/src/storage/format/Format.cpp.o CMakeFiles/tsunami.dir/src/storage/format/FormatFlac.cpp.o CMakeFiles/tsunami.dir/src/storage/format/FormatGuitarPro.cpp.o CMakeFiles/tsunami.dir/src/storage/format/FormatM4a.cpp.o CMakeFiles/tsunami.dir/src/storage/format/FormatMidi.cpp.o CMakeFiles/tsunami.dir/src/storage/format/FormatMp3.cpp.o CMakeFiles/tsunami.dir/src/storage/format/FormatNami.cpp.o CMakeFiles/tsunami.dir/src/storage/format/FormatOgg.cpp.o CMakeFiles/tsunami.dir/src/storage/format/FormatPdf.cpp.o CMakeFiles/tsunami.dir/src/storage/format/FormatRaw.cpp.o CMakeFiles/tsunami.dir/src/storage/format/FormatSoundFont2.cpp.o CMakeFiles/tsunami.dir/src/storage/format/FormatWave.cpp.o CMakeFiles/tsunami.dir/src/storage/Storage.cpp.o CMakeFiles/tsunami.dir/src/storage/StorageOperationData.cpp.o CMakeFiles/tsunami.dir/src/stuff/BackupManager.cpp.o CMakeFiles/tsunami.dir/src/stuff/Clipboard.cpp.o CMakeFiles/tsunami.dir/src/stuff/ErrorHandler.cpp.o CMakeFiles/tsunami.dir/src/stuff/Log.cpp.o CMakeFiles/tsunami.dir/src/stuff/PerformanceMonitor.cpp.o CMakeFiles/tsunami.dir/src/stuff/SessionManager.cpp.o CMakeFiles/tsunami.dir/src/test/TestAudioBuffer.cpp.o CMakeFiles/tsunami.dir/src/test/TestInterpolator.cpp.o CMakeFiles/tsunami.dir/src/test/TestMidiPreview.cpp.o CMakeFiles/tsunami.dir/src/test/TestMixer.cpp.o CMakeFiles/tsunami.dir/src/test/TestPlugins.cpp.o CMakeFiles/tsunami.dir/src/test/TestPointer.cpp.o CMakeFiles/tsunami.dir/src/test/TestRhythm.cpp.o CMakeFiles/tsunami.dir/src/test/TestRingBuffer.cpp.o CMakeFiles/tsunami.dir/src/test/TestSignalChain.cpp.o CMakeFiles/tsunami.dir/src/test/TestStreams.cpp.o CMakeFiles/tsunami.dir/src/test/TestThreads.cpp.o CMakeFiles/tsunami.dir/src/test/TestTrackVersion.cpp.o CMakeFiles/tsunami.dir/src/test/UnitTest.cpp.o CMakeFiles/tsunami.dir/src/view/audioview/graph/AudioViewLayer.cpp.o CMakeFiles/tsunami.dir/src/view/audioview/graph/AudioViewTrack.cpp.o CMakeFiles/tsunami.dir/src/view/audioview/graph/Background.cpp.o CMakeFiles/tsunami.dir/src/view/audioview/graph/BottomBarExpandButton.cpp.o CMakeFiles/tsunami.dir/src/view/audioview/graph/Cursor.cpp.o CMakeFiles/tsunami.dir/src/view/audioview/graph/LayerHeader.cpp.o CMakeFiles/tsunami.dir/src/view/audioview/graph/LogNotifier.cpp.o CMakeFiles/tsunami.dir/src/view/audioview/graph/TimeScale.cpp.o CMakeFiles/tsunami.dir/src/view/audioview/graph/TrackHeader.cpp.o CMakeFiles/tsunami.dir/src/view/audioview/graph/ViewMarker.cpp.o CMakeFiles/tsunami.dir/src/view/audioview/AudioView.cpp.o CMakeFiles/tsunami.dir/src/view/audioview/TrackHeightManager.cpp.o CMakeFiles/tsunami.dir/src/view/audioview/ViewPort.cpp.o CMakeFiles/tsunami.dir/src/view/bottombar/signaleditor/SignalEditorBackground.cpp.o CMakeFiles/tsunami.dir/src/view/bottombar/signaleditor/SignalEditorCable.cpp.o CMakeFiles/tsunami.dir/src/view/bottombar/signaleditor/SignalEditorModule.cpp.o CMakeFiles/tsunami.dir/src/view/bottombar/signaleditor/SignalEditorPort.cpp.o CMakeFiles/tsunami.dir/src/view/bottombar/signaleditor/SignalEditorTab.cpp.o CMakeFiles/tsunami.dir/src/view/bottombar/BottomBar.cpp.o CMakeFiles/tsunami.dir/src/view/bottombar/DeviceConsole.cpp.o CMakeFiles/tsunami.dir/src/view/bottombar/LogConsole.cpp.o CMakeFiles/tsunami.dir/src/view/bottombar/MixingConsole.cpp.o CMakeFiles/tsunami.dir/src/view/bottombar/PluginConsole.cpp.o CMakeFiles/tsunami.dir/src/view/bottombar/SessionConsole.cpp.o CMakeFiles/tsunami.dir/src/view/bottombar/SignalEditor.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/AudioScaleDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/BarAddDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/BarDeleteDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/BarEditSpeedDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/BarReplaceDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/BufferCompressionDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/ChannelMapperDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/common.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/EditStringsDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/HelpDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/MarkerDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/ModuleSelectorDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/NewSongDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/NewTrackDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/PauseAddDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/PauseEditDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/PresetSelectionDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/QuestionDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/SampleScaleDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/SampleSelectionDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/SelectStringDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/SettingsDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/TemperamentDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/TrackRoutingDialog.cpp.o CMakeFiles/tsunami.dir/src/view/dialog/VolumeDialog.cpp.o CMakeFiles/tsunami.dir/src/view/helper/graph/Node.cpp.o CMakeFiles/tsunami.dir/src/view/helper/graph/SceneGraph.cpp.o CMakeFiles/tsunami.dir/src/view/helper/graph/Scrollable.cpp.o CMakeFiles/tsunami.dir/src/view/helper/graph/ScrollBar.cpp.o CMakeFiles/tsunami.dir/src/view/helper/BreadCrumps.cpp.o CMakeFiles/tsunami.dir/src/view/helper/CpuDisplay.cpp.o CMakeFiles/tsunami.dir/src/view/helper/Dial.cpp.o CMakeFiles/tsunami.dir/src/view/helper/Drawing.cpp.o CMakeFiles/tsunami.dir/src/view/helper/FxListEditor.cpp.o CMakeFiles/tsunami.dir/src/view/helper/MidiPreview.cpp.o CMakeFiles/tsunami.dir/src/view/helper/PeakDatabase.cpp.o CMakeFiles/tsunami.dir/src/view/helper/PeakMeterDisplay.cpp.o CMakeFiles/tsunami.dir/src/view/helper/PeakThread.cpp.o CMakeFiles/tsunami.dir/src/view/helper/Progress.cpp.o CMakeFiles/tsunami.dir/src/view/helper/Slider.cpp.o CMakeFiles/tsunami.dir/src/view/helper/SymbolRenderer.cpp.o CMakeFiles/tsunami.dir/src/view/helper/VolumeControl.cpp.o CMakeFiles/tsunami.dir/src/view/mode/ViewMode.cpp.o CMakeFiles/tsunami.dir/src/view/mode/ViewModeCapture.cpp.o CMakeFiles/tsunami.dir/src/view/mode/ViewModeCurve.cpp.o CMakeFiles/tsunami.dir/src/view/mode/ViewModeDefault.cpp.o CMakeFiles/tsunami.dir/src/view/mode/ViewModeEdit.cpp.o CMakeFiles/tsunami.dir/src/view/mode/ViewModeEditAudio.cpp.o CMakeFiles/tsunami.dir/src/view/mode/ViewModeEditBars.cpp.o CMakeFiles/tsunami.dir/src/view/mode/ViewModeEditDummy.cpp.o CMakeFiles/tsunami.dir/src/view/mode/ViewModeEditMidi.cpp.o CMakeFiles/tsunami.dir/src/view/mode/ViewModeScaleMarker.cpp.o CMakeFiles/tsunami.dir/src/view/module/AutoConfigPanel.cpp.o CMakeFiles/tsunami.dir/src/view/module/ConfigPanel.cpp.o CMakeFiles/tsunami.dir/src/view/module/ConfigurationDialog.cpp.o CMakeFiles/tsunami.dir/src/view/module/ModulePanel.cpp.o CMakeFiles/tsunami.dir/src/view/painter/midi/MidiPainterMode.cpp.o CMakeFiles/tsunami.dir/src/view/painter/midi/MidiPainterModeClassical.cpp.o CMakeFiles/tsunami.dir/src/view/painter/midi/MidiPainterModeLinear.cpp.o CMakeFiles/tsunami.dir/src/view/painter/midi/MidiPainterModeTab.cpp.o CMakeFiles/tsunami.dir/src/view/painter/midi/rhythm.cpp.o CMakeFiles/tsunami.dir/src/view/painter/BasicGridPainter.cpp.o CMakeFiles/tsunami.dir/src/view/painter/BufferPainter.cpp.o CMakeFiles/tsunami.dir/src/view/painter/GridPainter.cpp.o CMakeFiles/tsunami.dir/src/view/painter/MidiPainter.cpp.o CMakeFiles/tsunami.dir/src/view/painter/MultiLinePainter.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/captureconsolemodes/CaptureConsoleMode.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/captureconsolemodes/CaptureConsoleModeAudio.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/captureconsolemodes/CaptureConsoleModeMidi.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/captureconsolemodes/CaptureConsoleModeMulti.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/captureconsolemodes/CaptureTrackData.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/AudioEditorConsole.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/BarsEditorConsole.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/CaptureConsole.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/CurveConsole.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/DummyEditorConsole.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/EffectsConsole.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/MidiEditorConsole.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/SampleManagerConsole.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/SampleRefConsole.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/SideBar.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/SongConsole.cpp.o CMakeFiles/tsunami.dir/src/view/sidebar/TrackConsole.cpp.o CMakeFiles/tsunami.dir/src/view/ColorScheme.cpp.o CMakeFiles/tsunami.dir/src/view/HeaderBar.cpp.o CMakeFiles/tsunami.dir/src/view/HoverData.cpp.o CMakeFiles/tsunami.dir/src/view/MouseDelayPlanner.cpp.o CMakeFiles/tsunami.dir/src/view/TsunamiWindow.cpp.o CMakeFiles/tsunami.dir/src/Playback.cpp.o CMakeFiles/tsunami.dir/src/Session.cpp.o CMakeFiles/tsunami.dir/src/Tsunami.cpp.o -o tsunami  -Wl,-rpath,/opt/local/lib -lgtk-4 -lpangocairo-1.0 -lpango-1.0 -lharfbuzz -lgdk_pixbuf-2.0 -lcairo-gobject -lcairo -lgraphene-1.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lintl -lz -lfftw3f -logg -lvorbis -lvorbisfile -lvorbisenc -lFLAC -lpulse -lportaudio -framework CoreAudio -framework AudioToolbox -framework AudioUnit -framework CoreFoundation -framework CoreServices -lGL 
ld: Undefined symbols:
  _glBindTextureUnit, referenced from:
      nix::bind_texture(int, nix::Texture*) in nix_textures.cpp.o
      nix::set_texture(nix::Texture*) in nix_textures.cpp.o
      nix::set_textures(Array<nix::Texture*> const&) in nix_textures.cpp.o
  _glBlitNamedFramebuffer, referenced from:
      nix::resolve_multisampling(nix::FrameBuffer*, nix::FrameBuffer*) in nix_framebuffer.cpp.o
  _glClearNamedFramebufferfv, referenced from:
      nix::FrameBuffer::clear_color(int, color const&) in nix_framebuffer.cpp.o
      nix::FrameBuffer::clear_depth(float) in nix_framebuffer.cpp.o
  _glClipControl, referenced from:
      nix::init(Array<string> const&) in nix.cpp.o
  _glCreateBuffers, referenced from:
      nix::Buffer::Buffer() in nix_buffer.cpp.o
      nix::Buffer::Buffer() in nix_buffer.cpp.o
      nix::UniformBuffer::UniformBuffer() in nix_buffer.cpp.o
      nix::UniformBuffer::UniformBuffer() in nix_buffer.cpp.o
      nix::UniformBuffer::__init__() in nix_buffer.cpp.o
      nix::ShaderStorageBuffer::ShaderStorageBuffer() in nix_buffer.cpp.o
      nix::ShaderStorageBuffer::ShaderStorageBuffer() in nix_buffer.cpp.o
      ...
  _glCreateFramebuffers, referenced from:
      nix::FrameBuffer::FrameBuffer(Array<shared<nix::Texture>> const&) in nix_framebuffer.cpp.o
      nix::FrameBuffer::FrameBuffer(Array<shared<nix::Texture>> const&) in nix_framebuffer.cpp.o
  _glCreateTextures, referenced from:
      nix::Texture::_create_2d(int, int, unsigned int) in nix_textures.cpp.o
      nix::VolumeTexture::VolumeTexture(int, int, int, string const&) in nix_textures.cpp.o
      nix::TextureMultiSample::TextureMultiSample(int, int, int, string const&) in nix_textures.cpp.o
      nix::ImageTexture::ImageTexture(int, int, string const&) in nix_textures.cpp.o
      nix::DepthBuffer::DepthBuffer(int, int, string const&) in nix_textures.cpp.o
      nix::CubeMap::CubeMap(int, string const&) in nix_textures.cpp.o
  _glCreateVertexArrays, referenced from:
      nix::VertexBuffer::VertexBuffer(string const&) in nix_vertexbuffer.cpp.o
      nix::init_vertex_buffers(nix::Context*) in nix_vertexbuffer.cpp.o
  _glEnableVertexArrayAttrib, referenced from:
      nix::_post_config_vertex_buffer(nix::VertexBuffer*) in nix_vertexbuffer.cpp.o
  _glGenerateTextureMipmap, referenced from:
      nix::Texture::write(Image const&) in nix_textures.cpp.o
  _glGetNamedFramebufferAttachmentParameteriv, referenced from:
      nix::FrameBuffer::is_srgb() const in nix_framebuffer.cpp.o
  _glGetQueryObjecti64v, referenced from:
      nix::get_timestamps(int, int) in nix.cpp.o
  _glGetTextureSubImage, referenced from:
      nix::Texture::read(Image&) const in nix_textures.cpp.o
      nix::Texture::read_float(DynamicArray&) const in nix_textures.cpp.o
  _glMapNamedBuffer, referenced from:
      nix::Buffer::read(void*, int) in nix_buffer.cpp.o
      nix::Buffer::read_array(DynamicArray&) in nix_buffer.cpp.o
  _glNamedBufferData, referenced from:
      nix::Buffer::update(void*, int) in nix_buffer.cpp.o
      nix::Buffer::update_array(DynamicArray const&) in nix_buffer.cpp.o
      nix::VertexBuffer::update(DynamicArray const&) in nix_vertexbuffer.cpp.o
      nix::VertexBuffer::update_index(DynamicArray const&) in nix_vertexbuffer.cpp.o
      nix::VertexBuffer::create_quad(rect const&, rect const&) in nix_vertexbuffer.cpp.o
      nix::VertexBuffer::create_quad(rect const&, rect const&) in nix_vertexbuffer.cpp.o
      nix::VertexBuffer::create_quad(rect const&, rect const&) in nix_vertexbuffer.cpp.o
      ...
  _glNamedFramebufferReadBuffer, referenced from:
      nix::FrameBuffer::read(Image&) const in nix_framebuffer.cpp.o
  _glQueryCounter, referenced from:
      nix::query_timestamp(int) in nix.cpp.o
  _glTextureParameterfv, referenced from:
      nix::DepthBuffer::DepthBuffer(int, int, string const&) in nix_textures.cpp.o
  _glTextureParameteri, referenced from:
      nix::Texture::_create_2d(int, int, unsigned int) in nix_textures.cpp.o
      nix::Texture::_create_2d(int, int, unsigned int) in nix_textures.cpp.o
      nix::Texture::_create_2d(int, int, unsigned int) in nix_textures.cpp.o
      nix::Texture::_create_2d(int, int, unsigned int) in nix_textures.cpp.o
      nix::Texture::_create_2d(int, int, unsigned int) in nix_textures.cpp.o
      nix::VolumeTexture::VolumeTexture(int, int, int, string const&) in nix_textures.cpp.o
      nix::VolumeTexture::VolumeTexture(int, int, int, string const&) in nix_textures.cpp.o
      nix::VolumeTexture::VolumeTexture(int, int, int, string const&) in nix_textures.cpp.o
      nix::VolumeTexture::VolumeTexture(int, int, int, string const&) in nix_textures.cpp.o
      nix::VolumeTexture::VolumeTexture(int, int, int, string const&) in nix_textures.cpp.o
      ...
  _glTextureStorage2D, referenced from:
      nix::Texture::_create_2d(int, int, unsigned int) in nix_textures.cpp.o
      nix::ImageTexture::ImageTexture(int, int, string const&) in nix_textures.cpp.o
      nix::DepthBuffer::DepthBuffer(int, int, string const&) in nix_textures.cpp.o
      nix::CubeMap::CubeMap(int, string const&) in nix_textures.cpp.o
  _glTextureStorage2DMultisample, referenced from:
      nix::TextureMultiSample::TextureMultiSample(int, int, int, string const&) in nix_textures.cpp.o
  _glTextureStorage3D, referenced from:
      nix::VolumeTexture::VolumeTexture(int, int, int, string const&) in nix_textures.cpp.o
  _glTextureSubImage2D, referenced from:
      nix::Texture::write(Image const&) in nix_textures.cpp.o
      nix::Texture::write_float(DynamicArray const&) in nix_textures.cpp.o
  _glTextureSubImage3D, referenced from:
      nix::Texture::write_float(DynamicArray const&) in nix_textures.cpp.o
      nix::CubeMap::write_side(int, Image const&) in nix_textures.cpp.o
  _glUnmapNamedBuffer, referenced from:
      nix::Buffer::read(void*, int) in nix_buffer.cpp.o
      nix::Buffer::read_array(DynamicArray&) in nix_buffer.cpp.o
  _glVertexArrayAttribBinding, referenced from:
      nix::_post_config_vertex_buffer(nix::VertexBuffer*) in nix_vertexbuffer.cpp.o
  _glVertexArrayAttribFormat, referenced from:
      nix::_post_config_vertex_buffer(nix::VertexBuffer*) in nix_vertexbuffer.cpp.o
  _glVertexArrayAttribIFormat, referenced from:
      nix::_post_config_vertex_buffer(nix::VertexBuffer*) in nix_vertexbuffer.cpp.o
  _glVertexArrayElementBuffer, referenced from:
      nix::_post_config_vertex_buffer(nix::VertexBuffer*) in nix_vertexbuffer.cpp.o
  _glVertexArrayVertexBuffer, referenced from:
      nix::_post_config_vertex_buffer(nix::VertexBuffer*) in nix_vertexbuffer.cpp.o
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [tsunami] Error 1
barracuda156 commented 7 months ago

Unfortunately, while with OpenGL disabled it builds fine, it again fails at launch, though differently:

svacchanda@43-9 ~ % /opt/local/bin/tsunami

----------------------------- Error! -----------------------------
Asm: unknown instruction set
------------------------------------------------------------------

Tsunami 0.7.114.1 "absolute 2er0"
  ...don't worry. Everything will be fine!
audio library selected: pulseaudio
midi library selected: -none-

----------------------------- Error! -----------------------------
pa_context_connect: Connection refused
------------------------------------------------------------------

----------------------------- Error! -----------------------------
pa_context_get_sink_info_list: Bad state
------------------------------------------------------------------

----------------------------- Error! -----------------------------
pa_context_get_source_info_list: Bad state
------------------------------------------------------------------

(tsunami:51881): Gtk-WARNING **: 22:30:58.186: Unable to acquire session bus: Session D-Bus not running. Try running `launchctl load -w /Library/LaunchAgents/org.freedesktop.dbus-session.plist'.
No provider of glGenSamplers found.  Requires one of:
    Desktop OpenGL 3.3
    GL_ARB_sampler_objects
    OpenGL ES 3.0
zsh: abort      /opt/local/bin/tsunami

svacchanda@43-9 ~ % launchctl load -w /Library/LaunchAgents/org.freedesktop.dbus-session.plist
svacchanda@43-9 ~ % /opt/local/bin/tsunami

----------------------------- Error! -----------------------------
Asm: unknown instruction set
------------------------------------------------------------------

Tsunami 0.7.114.1 "absolute 2er0"
  ...don't worry. Everything will be fine!
audio library selected: pulseaudio
midi library selected: -none-

----------------------------- Error! -----------------------------
pa_context_connect: Connection refused
------------------------------------------------------------------

----------------------------- Error! -----------------------------
pa_context_get_sink_info_list: Bad state
------------------------------------------------------------------

----------------------------- Error! -----------------------------
pa_context_get_source_info_list: Bad state
------------------------------------------------------------------

No provider of glGenSamplers found.  Requires one of:
    Desktop OpenGL 3.3
    GL_ARB_sampler_objects
    OpenGL ES 3.0
zsh: abort      /opt/local/bin/tsunami

(This is on macOS 14.2 on M1.)

barracuda156 commented 7 months ago

P. S. Just to confirm, those two flags are not recognized on Sonoma too:

/opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_audio_tsunami/tsunami/work/tsunami-7a10c93d070abc6b0f5329f893162e29a82ade71/src/lib/kaba/compiler/Compiler.cpp:142:44: error: use of undeclared identifier 'MAP_FIXED_NOREPLACE'
        int flags = MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED_NOREPLACE;
                                                  ^
/opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_audio_tsunami/tsunami/work/tsunami-7a10c93d070abc6b0f5329f893162e29a82ade71/src/lib/kaba/compiler/Compiler.cpp:145:12: error: use of undeclared identifier 'MAP_EXECUTABLE'
                flags |= MAP_EXECUTABLE;
                         ^
/opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_audio_tsunami/tsunami/work/tsunami-7a10c93d070abc6b0f5329f893162e29a82ade71/src/lib/kaba/compiler/Compiler.cpp:174:13: error: use of undeclared identifier 'MAP_EXECUTABLE'
                        flags |= MAP_EXECUTABLE | MAP_FIXED;
                                 ^
momentarylapse commented 7 months ago

MAP_EXECUTABLE might be important later on, but we can ignore it for the basic program.

There are 3 problems in your log:

momentarylapse commented 7 months ago

Btw. can you get other gtk applications to run (like the gtk4-demo)? Since tsunami does some evil things, it might be better to check simpler/more standard-conforming programs first.

barracuda156 commented 7 months ago

@momentarylapse On Sonoma yes, at least GTK3 worked. (On PowerPC I think it is broken.)

barracuda156 commented 7 months ago

UPD. With GTK3 (and no other changes besides already made) on Sonoma it launches the window, but then crashes still: tsunami tsunami2

momentarylapse commented 7 months ago

Seeing a window is definitely progress!

I've pushed some commits to the devel branch. 2 of your workarounds should now be unnecessary:

I also included a fix for the case if pulseaudio fails to initialize. With some luck, that should prevent the program from freezing/crashing on startup. Of course it won't fix the actual issue of correctly connecting to pulse...

From your screenshots I suspect, that the automatic color scheme detection might have failed too. If the program starts, you can try explicitly selecting a scheme (the "hamburger" button on the right side of the header bar opens a menu with a "settings" entry). Then the grid should become visible.

barracuda156 commented 7 months ago

@momentarylapse Now it actually fails from 5e0e8bed2449598d460ddf573e984a854a033a97 commit on Sonoma:

/opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_audio_tsunami/tsunami/work/tsunami-5e0e8bed2449598d460ddf573e984a854a033a97/src/lib/hui/Application.cpp:174:10: error: use of undeclared identifier '_get_pgmptr'
        int r = _get_pgmptr(&ttt);
                ^
/opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_audio_tsunami/tsunami/work/tsunami-5e0e8bed2449598d460ddf573e984a854a033a97/src/lib/hui/Application.cpp:176:2: error: use of undeclared identifier 'hui_win_instance'
        hui_win_instance = (void*)GetModuleHandle(nullptr);
        ^
/opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_audio_tsunami/tsunami/work/tsunami-5e0e8bed2449598d460ddf573e984a854a033a97/src/lib/hui/Application.cpp:176:28: error: use of undeclared identifier 'GetModuleHandle'
        hui_win_instance = (void*)GetModuleHandle(nullptr);
                                  ^
3 errors generated.
momentarylapse commented 7 months ago

ok, I was very stupid there - making the macros distinguish between linux and mac, but then never handling the mac case... hopefully fixed now.

barracuda156 commented 7 months ago

@momentarylapse Got it. Will update on results tomorrow, thank you!

barracuda156 commented 7 months ago

@momentarylapse This is still there:

:info:build [ 42%] Building CXX object CMakeFiles/tsunami.dir/src/lib/kaba/compiler/SerialNode.cpp.o
:info:build /usr/bin/clang++ -DHAS_LIB_ADWAITA=0 -DHAS_LIB_ALSA=0 -DHAS_LIB_DL=1 -DHAS_LIB_FFTW3=1 -DHAS_LIB_FLAC=1 -DHAS_LIB_GL=0 -DHAS_LIB_GTK3=1 -DHAS_LIB_OGG=1 -DHAS_LIB_PORTAUDIO=1 -DHAS_LIB_PULSEAUDIO=1 -DHAS_LIB_UNWIND=0 -DHAS_LIB_ZLIB=1 -DINSTALL_PREFIX=\"/opt/local\" -D_REENTRANT -I/opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_audio_tsunami/tsunami/work/tsunami-f9ab694a9bdc8a6d7f80700955f5a5ac76096523/src/lib -I/opt/local/include/gtk-3.0 -I/opt/local/include/at-spi2-atk/2.0 -I/opt/local/include/at-spi-2.0 -I/opt/local/include/dbus-1.0 -I/opt/local/lib/dbus-1.0/include -I/opt/local/include/gio-unix-2.0 -I/opt/local/include/cairo -I/opt/local/include/pango-1.0 -I/opt/local/include/harfbuzz -I/opt/local/include/fribidi -I/opt/local/include/atk-1.0 -I/opt/local/include/pixman-1 -I/opt/local/include/freetype2 -I/opt/local/include/gdk-pixbuf-2.0 -I/opt/local/include/libpng16 -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -pipe -Os -DNDEBUG -I/opt/local/include -stdlib=libc++ -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -g -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -mmacosx-version-min=14.0 -std=gnu++17 -MD -MT CMakeFiles/tsunami.dir/src/lib/kaba/compiler/SerialNode.cpp.o -MF CMakeFiles/tsunami.dir/src/lib/kaba/compiler/SerialNode.cpp.o.d -o CMakeFiles/tsunami.dir/src/lib/kaba/compiler/SerialNode.cpp.o -c /opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_audio_tsunami/tsunami/work/tsunami-f9ab694a9bdc8a6d7f80700955f5a5ac76096523/src/lib/kaba/compiler/SerialNode.cpp
:info:build /opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_audio_tsunami/tsunami/work/tsunami-f9ab694a9bdc8a6d7f80700955f5a5ac76096523/src/lib/kaba/compiler/Compiler.cpp:142:39: error: use of undeclared identifier 'MAP_FIXED_NOREPLACE'
:info:build         int flags = MAP_PRIVATE | MAP_ANON | MAP_FIXED_NOREPLACE;
:info:build                                              ^
momentarylapse commented 7 months ago

ok, out of paranoia, I don't set those flags on MacOS for now. (devel branch)

As for pulse audio, do you have other programs that are able to connect to the pulse server?

barracuda156 commented 7 months ago

@momentarylapse

As for pulse audio, do you have other programs that are able to connect to the pulse server?

To be honest I need to look for something that uses it. It is not something I used (besides building the thing).

I would generally expect maintained ports to work on current versions of MacOS, but pulseaudio port is outdated and arguably seldom used by anyone, so who knows.

Do I need to do something proactively for it to connect to whatever it needs? I merely installed it in the default config, as it is: https://github.com/macports/macports-ports/blob/master/audio/pulseaudio/Portfile

barracuda156 commented 7 months ago

From ef06eb7d2e130587123a37a9a315ced50f43d5ed it builds on Sonoma with no patches from my side, I get window on start, but also the crash:

svacchanda@43-117 ~ % /opt/local/bin/tsunami

----------------------------- Error! -----------------------------
kaba/asm: unsupported CPU instruction set
------------------------------------------------------------------

Tsunami 0.7.114.1 "absolute 2er0"
  ...don't worry. Everything will be fine!
audio library selected: pulseaudio
midi library selected: -none-

----------------------------- Error! -----------------------------
pa_context_connect: Connection refused
------------------------------------------------------------------

================================================================================
program has crashed, error handler has been called... maybe SegFault... m(-_-)m
      trace:
momentarylapse commented 7 months ago

To be honest, I am not sure. Configuring the pulseaudio server is somewhat dark magic to me. In a post here https://github.com/Homebrew/homebrew-core/issues/30062 they used parec to test the connection to the server. This tool should either ship with the server or be easy to install (?). And simply running parec on my system directly connects and dumps recorded binary data onto stdout.

Somewhere else ( https://stackoverflow.com/questions/53272935/e-cannot-create-pulseaudio-stream-connection-refused ) their server was simply not running.

In theory, tsunami should be able to connect to pulse on its own. Worst case, there is some internal firewall to block connections between processes, requiring explicit configuration or special privileges.

If pulseaudio keeps not working, you can also try and recompile with the portaudio library instead. That should use more native MacOS audio systems. Audacity also uses that.

barracuda156 commented 7 months ago

If pulseaudio keeps not working, you can also try and recompile with the portaudio library instead. That should use more native MacOS audio systems. Audacity also uses that.

If I disable pulseaudio, build fails on:

/opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_audio_tsunami/tsunami/work/tsunami-ef06eb7d2e130587123a37a9a315ced50f43d5ed/src/device/DeviceManager.cpp:465:3: error: use of undeclared identifier 'pulse_fully_initialized'; did you mean 'portaudio_fully_initialized'?
                pulse_fully_initialized = _init_audio_pulse();
                ^~~~~~~~~~~~~~~~~~~~~~~
                portaudio_fully_initialized
/opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_audio_tsunami/tsunami/work/tsunami-ef06eb7d2e130587123a37a9a315ced50f43d5ed/src/device/DeviceManager.h:110:7: note: 'portaudio_fully_initialized' declared here
        bool portaudio_fully_initialized = false;
             ^
momentarylapse commented 7 months ago

my apologies. Should be fixed now

momentarylapse commented 7 months ago

(in general it was a bad idea, trying to hastily repair things during 5min tea breaks from work. At least this time, I tried rebuilding with different audio libraries disabled)

barracuda156 commented 7 months ago

It built now, but still crashes once I close Help window:

svacchanda@43-117 ~ % /opt/local/bin/tsunami

----------------------------- Error! -----------------------------
kaba/asm: unsupported CPU instruction set
------------------------------------------------------------------

Tsunami 0.7.114.1 "absolute 2er0"
  ...don't worry. Everything will be fine!
audio library selected: portaudio
midi library selected: -none-
please note, that portaudio does not support refreshing the device list after program launch

================================================================================
program has crashed, error handler has been called... maybe SegFault... m(-_-)m
      trace:

P. S. Sorry, I understand this can be annoying when same errors keep repeating. Just in case, build log: main.log

momentarylapse commented 7 months ago

not at all, just embarrassed of my sloppy work :P thanks for the patience

I also just tried the gtk3 version again, and there seems to be a bug, crashing when closing a window. I'll try to fix it tomorrow.

It won't help too much, but as a workaround simply to disable the Help window, you can create a file .tsunami/config.txt in your home folder and add the line FirstStart = false.

momentarylapse commented 7 months ago

I'm carefully optimistic that the gtk3 crash is now solved.

barracuda156 commented 7 months ago

@momentarylapse Indeed, built from 601ecbe572c5dca0cdf5804252cc8de1b4041973 against GTK3, tsunami does not crash anymore!

In the terminal I got this:

svacchanda@43-9 ~ % /opt/local/bin/tsunami

----------------------------- Error! -----------------------------
kaba/asm: unsupported CPU instruction set
------------------------------------------------------------------

Tsunami 0.7.114.1 "absolute 2er0"
  ...don't worry. Everything will be fine!
audio library selected: portaudio
midi library selected: -none-
please note, that portaudio does not support refreshing the device list after program launch

(tsunami:88238): Gtk-WARNING **: 19:58:27.908: ../gtk+-3.24.38/gtk/gtkwidget.c:8652: widget not within a GtkWindow

But the app runs (well, I did not test functionality, but I clicked some menus, everything looked fine and no more crashes).

barracuda156 commented 7 months ago

But on 10.6 with gcc13 (setting of the build are the same as on 14.2) I got the error now:

In file included from /opt/local/lib/gcc13/gcc/powerpc-apple-darwin10/13.2.0/include-fixed/math.h:35,
                 from /opt/local/include/gcc13/c++/cmath:47,
                 from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-601ecbe572c5dca0cdf5804252cc8de1b4041973/src/lib/hui/Controls/../../math/math.h:15,
                 from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-601ecbe572c5dca0cdf5804252cc8de1b4041973/src/lib/hui/Controls/../../math/vec2.h:12,
                 from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-601ecbe572c5dca0cdf5804252cc8de1b4041973/src/lib/hui/Controls/../Event.h:13,
                 from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-601ecbe572c5dca0cdf5804252cc8de1b4041973/src/lib/hui/Controls/Control.h:12,
                 from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-601ecbe572c5dca0cdf5804252cc8de1b4041973/src/lib/hui/Controls/ControlButton.h:11,
                 from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-601ecbe572c5dca0cdf5804252cc8de1b4041973/src/lib/hui/Controls/ControlButtonGtk.cpp:8:
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-601ecbe572c5dca0cdf5804252cc8de1b4041973/src/lib/hui/Controls/ControlButtonGtk.cpp: In member function 'virtual void hui::ControlButton::__set_option(const string&, const string&)':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-601ecbe572c5dca0cdf5804252cc8de1b4041973/src/lib/hui/Controls/ControlButtonGtk.cpp:106:40: error: expected unqualified-id before '(' token
  106 |                 image_size = IconSize::HUGE;
      |                                        ^~~~
make[2]: *** [CMakeFiles/tsunami.dir/src/lib/hui/Controls/ControlButtonGtk.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....

This should have worked (whether the app will work is a different question), since originally I could compile it.

momentarylapse commented 7 months ago

not sure, which header interferes here. So I simply added safety macros wherever HUGE is used. Commit ddc6753e1a should fix this.

barracuda156 commented 7 months ago

ddc6753e1a

Yes, it builds fine now on 10.6. Thank you!

I will see if I can make X11 work there. It was using XQuartz version, apparently, I will try switching to Macports one.

barracuda156 commented 3 months ago

A quick update:

gtk3 build works, portaudio output works, but it is lagging badly (on Sonoma on M1, so it is not a slow machine). gtk4 version builds but fails to start.

pulseaudio seems to be broken for completely unrelated reasons, i.e. just broken on MacOS at the moment. I cannot get it to work anywhere.

momentarylapse commented 3 months ago

My experiences with portaudio are not the best either. On windows it plays back at 10% speed. But portaudio will find each physical device multiple times through different APIs. And some of them will play just fine.

I'm considering to drop portaudio and switch to a native API on windows instead. But doing the same for macos is probably not feasable without an actual mac to develop on.

If pulseaudio is not working, do you know if there is a port of pipewire on mac?

barracuda156 commented 3 months ago

@momentarylapse

do you know if there is a port of pipewire on Mac?

Apparently not, since it requires libudev, even if udev is disabled via meson configure options. And libudev is a linuxism.

momentarylapse commented 1 month ago

Some major news on this topic! I recently managed to get my hands on a used MacBook M1.

There now is a preferred way to build, see the readme:

DISCLAIMER: this will only run the base program (UI, playback, recording, basic editing) - the plugin compiler does not work yet (i.e. audio fx, synthesizers, etc.)! I have plans to also get this working, but that will still take a couple of months. Progress will happen in the repo of the actual JIT compiler.

I've also added a (highly experimental) CoreAudio backend (branch coreaudio-backend). So far, it does not support recording, only playback.

barracuda156 commented 1 month ago

@momentarylapse Oh, this is awesome!

I will try it out.

If we could make coreaudio work on legacy systems too, that will be great.

barracuda156 commented 1 month ago

Ok, with CoreAudio is does not build for me now:

  1. This header exists only in 10.11+:

    In file included from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-f12d0528da29296695f3ed900fc464375c5a9ccc/src/device/backend-coreaudio/AudioOutputStreamCoreAudio.cpp:3:
    /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-f12d0528da29296695f3ed900fc464375c5a9ccc/src/device/backend-coreaudio/AudioOutputStreamCoreAudio.h:10:10: fatal error: AudioUnit/AUAudioUnit.h: No such file or directory
    10 | #include <AudioUnit/AUAudioUnit.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~
    compilation terminated.
  2. Once commented out, something breaks with cmath:

    [  2%] Building CXX object CMakeFiles/tsunami.dir/src/device/interface/AudioOutputStream.cpp.o
    /opt/local/bin/g++-mp-13 -DHAS_LIB_ADWAITA=1 -DHAS_LIB_ALSA=0 -DHAS_LIB_COREAUDIO=1 -DHAS_LIB_DL=1 -DHAS_LIB_FFTW3=1 -DHAS_LIB_FLAC=1 -DHAS_LIB_GL=0 -DHAS_LIB_GTK4=1 -DHAS_LIB_OGG=1 -DHAS_LIB_PORTAUDIO=1 -DHAS_LIB_PULSEAUDIO=0 -DHAS_LIB_UNWIND=0 -DHAS_LIB_ZLIB=1 -DINSTALL_PREFIX=\"/opt/local\" -I/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-f12d0528da29296695f3ed900fc464375c5a9ccc/src/lib -I/opt/local/include/gtk-4.0 -I/opt/local/include/pango-1.0 -I/opt/local/include/harfbuzz -I/opt/local/include/fribidi -I/opt/local/include -I/opt/local/include/gdk-pixbuf-2.0 -I/opt/local/include/cairo -I/opt/local/include/pixman-1 -I/opt/local/include/freetype2 -I/opt/local/include/libpng16 -I/opt/local/include/graphene-1.0 -I/opt/local/lib/graphene-1.0/include -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -I/opt/local/include/libadwaita-1 -I/opt/local/include/appstream -I/opt/local/include/libxmlb-2 -I/opt/local/include/libxml2 -pipe -Os -DNDEBUG -I/opt/local/include -D_GLIBCXX_USE_CXX11_ABI=0 -g -std=gnu++17 -arch ppc -mmacosx-version-min=10.6 -D_REENTRANT -MD -MT CMakeFiles/tsunami.dir/src/device/interface/AudioOutputStream.cpp.o -MF CMakeFiles/tsunami.dir/src/device/interface/AudioOutputStream.cpp.o.d -o CMakeFiles/tsunami.dir/src/device/interface/AudioOutputStream.cpp.o -c /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-f12d0528da29296695f3ed900fc464375c5a9ccc/src/device/interface/AudioOutputStream.cpp
    In file included from /opt/local/include/gcc13/c++/math.h:36,
                 from /System/Library/Frameworks/CoreFoundation.framework/Headers/CoreFoundation.h:19,
                 from /System/Library/Frameworks/AudioUnit.framework/Headers/AudioComponent.h:43,
                 from /System/Library/Frameworks/AudioUnit.framework/Headers/AudioUnit.h:21,
                 from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-f12d0528da29296695f3ed900fc464375c5a9ccc/src/device/backend-coreaudio/AudioOutputStreamCoreAudio.h:11,
                 from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-f12d0528da29296695f3ed900fc464375c5a9ccc/src/device/backend-coreaudio/AudioOutputStreamCoreAudio.cpp:3:
    /opt/local/include/gcc13/c++/cmath:85:11: error: 'acos' has not been declared in '::'
    85 |   using ::acos;
      |           ^~~~
    /opt/local/include/gcc13/c++/cmath:99:37: error: '__is_integer' was not declared in this scope; did you mean 'std::__is_integer'?
    99 |     typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
      |                                     ^~~~~~~~~~~~
      |                                     std::__is_integer
    In file included from /opt/local/include/gcc13/c++/ext/numeric_traits.h:34,
                 from /opt/local/include/gcc13/c++/bits/parse_numbers.h:40,
                 from /opt/local/include/gcc13/c++/bits/chrono.h:41,
                 from /opt/local/include/gcc13/c++/shared_mutex:38,
                 from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-f12d0528da29296695f3ed900fc464375c5a9ccc/src/device/backend-coreaudio/../interface/../../data/audio/AudioBuffer.h:13,
                 from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-f12d0528da29296695f3ed900fc464375c5a9ccc/src/device/backend-coreaudio/../interface/../../data/audio/RingBuffer.h:11,
                 from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-f12d0528da29296695f3ed900fc464375c5a9ccc/src/device/backend-coreaudio/../interface/AudioOutputStream.h:11,
                 from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-f12d0528da29296695f3ed900fc464375c5a9ccc/src/device/backend-coreaudio/AudioOutputStreamCoreAudio.h:6:
    /opt/local/include/gcc13/c++/bits/cpp_type_traits.h:127:12: note: 'std::__is_integer' declared here
    127 |     struct __is_integer
      |            ^~~~~~~~~~~~
    /opt/local/include/gcc13/c++/cmath:99:53: error: wrong number of template arguments (1, should be 2)
    99 |     typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
      |                                                     ^
    In file included from /opt/local/include/gcc13/c++/ext/numeric_traits.h:35:
    /opt/local/include/gcc13/c++/ext/type_traits.h:45:12: note: provided for 'template<bool <anonymous>, class> struct __gnu_cxx::__enable_if'
    45 |     struct __enable_if
      |            ^~~~~~~~~~~
    /opt/local/include/gcc13/c++/cmath:99:54: error: expected identifier before '::' token
    99 |     typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
      |                                                      ^~
    /opt/local/include/gcc13/c++/cmath:99:56: error: declaration of '__value' not in a namespace surrounding '::'
    99 |     typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
      |                                                        ^~~~~~~
    /opt/local/include/gcc13/c++/cmath:99:56: error: '__value' should have been declared inside '::'
    /opt/local/include/gcc13/c++/cmath:99:63: error: expected ';' before ',' token
    99 |     typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
      |                                                               ^
      |                                                               ;
    /opt/local/include/gcc13/c++/cmath:104:11: error: 'asin' has not been declared in '::'
    104 |   using ::asin;
      |           ^~~~
    /opt/local/include/gcc13/c++/cmath:118:37: error: '__is_integer' was not declared in this scope; did you mean 'std::__is_integer'?
    118 |     typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
      |                                     ^~~~~~~~~~~~
      |                                     std::__is_integer
    /opt/local/include/gcc13/c++/bits/cpp_type_traits.h:127:12: note: 'std::__is_integer' declared here
    127 |     struct __is_integer
      |            ^~~~~~~~~~~~
    /opt/local/include/gcc13/c++/cmath:118:53: error: wrong number of template arguments (1, should be 2)
    118 |     typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
      |                                                     ^
    /opt/local/include/gcc13/c++/ext/type_traits.h:45:12: note: provided for 'template<bool <anonymous>, class> struct __gnu_cxx::__enable_if'
    45 |     struct __enable_if
      |            ^~~~~~~~~~~
    /opt/local/include/gcc13/c++/cmath:118:54: error: expected identifier before '::' token
    118 |     typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
      |                                                      ^~
    /opt/local/include/gcc13/c++/cmath:118:56: error: declaration of '__value' not in a namespace surrounding '::'
    118 |     typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
      |                                                        ^~~~~~~
    /opt/local/include/gcc13/c++/cmath:118:56: error: '__value' should have been declared inside '::'
    /opt/local/include/gcc13/c++/cmath:118:56: error: redeclaration of 'template<class _Tp> constexpr const int __value'
    /opt/local/include/gcc13/c++/cmath:99:54: note: previous declaration 'template<class _Tp> constexpr const int __value<_Tp>'
    99 |     typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
      |                                                      ^~
    /opt/local/include/gcc13/c++/cmath:118:63: error: expected ';' before ',' token
    118 |     typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
      |                                                               ^
      |                                                               ;
    /opt/local/include/gcc13/c++/cmath:123:11: error: 'atan' has not been declared in '::'
    123 |   using ::atan;
      |           ^~~~
    /opt/local/include/gcc13/c++/cmath:137:37: error: '__is_integer' was not declared in this scope; did you mean 'std::__is_integer'?
    137 |     typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
      |                                     ^~~~~~~~~~~~
      |                                     std::__is_integer
    /opt/local/include/gcc13/c++/bits/cpp_type_traits.h:127:12: note: 'std::__is_integer' declared here
    127 |     struct __is_integer
      |            ^~~~~~~~~~~~
    /opt/local/include/gcc13/c++/cmath:137:53: error: wrong number of template arguments (1, should be 2)
    137 |     typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
      |                                                     ^
    /opt/local/include/gcc13/c++/ext/type_traits.h:45:12: note: provided for 'template<bool <anonymous>, class> struct __gnu_cxx::__enable_if'
    45 |     struct __enable_if
      |            ^~~~~~~~~~~
    /opt/local/include/gcc13/c++/cmath:137:54: error: expected identifier before '::' token
    137 |     typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
      |                                                      ^~
    /opt/local/include/gcc13/c++/cmath:137:56: error: declaration of '__value' not in a namespace surrounding '::'
    137 |     typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
      |                                                        ^~~~~~~
    /opt/local/include/gcc13/c++/cmath:137:56: error: '__value' should have been declared inside '::'
    /opt/local/include/gcc13/c++/cmath:137:56: error: redeclaration of 'template<class _Tp> constexpr const int __value'
    /opt/local/include/gcc13/c++/cmath:99:54: note: previous declaration 'template<class _Tp> constexpr const int __value<_Tp>'
    99 |     typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
      |                                                      ^~
    /opt/local/include/gcc13/c++/cmath:137:63: error: expected ';' before ',' token
    137 |     typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
      |                                                               ^
      |                                                               ;
    /opt/local/include/gcc13/c++/cmath:142:11: error: 'atan2' has not been declared in '::'
    142 |   using ::atan2;
      |           ^~~~~
    /opt/local/include/gcc13/c++/cmath:154:11: error: 'ceil' has not been declared in '::'
    154 |   using ::ceil;
      |           ^~~~
    /opt/local/include/gcc13/c++/cmath:168:37: error: '__is_integer' was not declared in this scope; did you mean 'std::__is_integer'?
    168 |     typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
      |                                     ^~~~~~~~~~~~
      |                                     std::__is_integer
    /opt/local/include/gcc13/c++/bits/cpp_type_traits.h:127:12: note: 'std::__is_integer' declared here
    127 |     struct __is_integer
      |            ^~~~~~~~~~~~
    /opt/local/include/gcc13/c++/cmath:168:53: error: wrong number of template arguments (1, should be 2)
    168 |     typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
      |                                                     ^
    /opt/local/include/gcc13/c++/ext/type_traits.h:45:12: note: provided for 'template<bool <anonymous>, class> struct __gnu_cxx::__enable_if'
    45 |     struct __enable_if
      |            ^~~~~~~~~~~
    /opt/local/include/gcc13/c++/cmath:168:54: error: expected identifier before '::' token
    168 |     typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
      |                                                      ^~
    /opt/local/include/gcc13/c++/cmath:168:56: error: declaration of '__value' not in a namespace surrounding '::'
    168 |     typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
      |                                                        ^~~~~~~
    /opt/local/include/gcc13/c++/cmath:168:56: error: '__value' should have been declared inside '::'
    /opt/local/include/gcc13/c++/cmath:168:56: error: redeclaration of 'template<class _Tp> constexpr const int __value'
    /opt/local/include/gcc13/c++/cmath:99:54: note: previous declaration 'template<class _Tp> constexpr const int __value<_Tp>'
    99 |     typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
      |                                                      ^~
    /opt/local/include/gcc13/c++/cmath:168:63: error: expected ';' before ',' token
    168 |     typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
      |                                                               ^
      |                                                               ;
    /opt/local/include/gcc13/c++/cmath:173:11: error: 'cos' has not been declared in '::'
    173 |   using ::cos;
      |           ^~~
    /opt/local/include/gcc13/c++/cmath:187:37: error: '__is_integer' was not declared in this scope; did you mean 'std::__is_integer'?
    187 |     typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
      |                                     ^~~~~~~~~~~~
      |                                     std::__is_integer
    /opt/local/include/gcc13/c++/bits/cpp_type_traits.h:127:12: note: 'std::__is_integer' declared here
    127 |     struct __is_integer
      |            ^~~~~~~~~~~~
    /opt/local/include/gcc13/c++/cmath:187:53: error: wrong number of template arguments (1, should be 2)
    187 |     typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
      |                                                     ^
    /opt/local/include/gcc13/c++/ext/type_traits.h:45:12: note: provided for 'template<bool <anonymous>, class> struct __gnu_cxx::__enable_if'
    45 |     struct __enable_if
      |            ^~~~~~~~~~~
    /opt/local/include/gcc13/c++/cmath:187:54: error: expected identifier before '::' token
    187 |     typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
      |                                                      ^~
    /opt/local/include/gcc13/c++/cmath:187:56: error: declaration of '__value' not in a namespace surrounding '::'
    187 |     typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
      |                                                        ^~~~~~~
    /opt/local/include/gcc13/c++/cmath:187:56: error: '__value' should have been declared inside '::'
    /opt/local/include/gcc13/c++/cmath:187:56: error: redeclaration of 'template<class _Tp> constexpr const int __value'
    /opt/local/include/gcc13/c++/cmath:99:54: note: previous declaration 'template<class _Tp> constexpr const int __value<_Tp>'
    99 |     typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
      |                                                      ^~
    /opt/local/include/gcc13/c++/cmath:187:63: error: expected ';' before ',' token
    187 |     typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
      |                                                               ^
      |                                                               ;
    /opt/local/include/gcc13/c++/cmath:192:11: error: 'cosh' has not been declared in '::'
    192 |   using ::cosh;
      |           ^~~~
    /opt/local/include/gcc13/c++/cmath:206:37: error: '__is_integer' was not declared in this scope; did you mean 'std::__is_integer'?
    206 |     typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
      |                                     ^~~~~~~~~~~~
      |                                     std::__is_integer
    /opt/local/include/gcc13/c++/bits/cpp_type_traits.h:127:12: note: 'std::__is_integer' declared here
    127 |     struct __is_integer
      |            ^~~~~~~~~~~~
    /opt/local/include/gcc13/c++/cmath:206:53: error: wrong number of template arguments (1, should be 2)
    206 |     typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
      |                                                     ^
    /opt/local/include/gcc13/c++/ext/type_traits.h:45:12: note: provided for 'template<bool <anonymous>, class> struct __gnu_cxx::__enable_if'
    45 |     struct __enable_if
      |            ^~~~~~~~~~~
    /opt/local/include/gcc13/c++/cmath:206:54: error: expected identifier before '::' token
    206 |     typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
      |                                                      ^~
    /opt/local/include/gcc13/c++/cmath:206:56: error: declaration of '__value' not in a namespace surrounding '::'
    206 |     typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
      |                                                        ^~~~~~~
    /opt/local/include/gcc13/c++/cmath:206:56: error: '__value' should have been declared inside '::'
    /opt/local/include/gcc13/c++/cmath:206:56: error: redeclaration of 'template<class _Tp> constexpr const int __value'
    /opt/local/include/gcc13/c++/cmath:99:54: note: previous declaration 'template<class _Tp> constexpr const int __value<_Tp>'
    99 |     typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
      |                                                      ^~
    /opt/local/include/gcc13/c++/cmath:206:63: error: expected ';' before ',' token
    206 |     typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
      |                                                               ^
      |                                                               ;
    /opt/local/include/gcc13/c++/cmath:211:11: error: 'exp' has not been declared in '::'
    211 |   using ::exp;
      |           ^~~
    /opt/local/include/gcc13/c++/cmath:225:37: error: '__is_integer' was not declared in this scope; did you mean 'std::__is_integer'?
    225 |     typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
      |                                     ^~~~~~~~~~~~
      |                                     std::__is_integer
    /opt/local/include/gcc13/c++/bits/cpp_type_traits.h:127:12: note: 'std::__is_integer' declared here
    127 |     struct __is_integer
      |            ^~~~~~~~~~~~
    /opt/local/include/gcc13/c++/cmath:225:53: error: wrong number of template arguments (1, should be 2)
    225 |     typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
      |                                                     ^
    /opt/local/include/gcc13/c++/ext/type_traits.h:45:12: note: provided for 'template<bool <anonymous>, class> struct __gnu_cxx::__enable_if'
    45 |     struct __enable_if
      |            ^~~~~~~~~~~
    /opt/local/include/gcc13/c++/cmath:225:54: error: expected identifier before '::' token
    225 |     typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
      |                                                      ^~
    /opt/local/include/gcc13/c++/cmath:225:56: error: declaration of '__value' not in a namespace surrounding '::'
    225 |     typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
      |                                                        ^~~~~~~
    /opt/local/include/gcc13/c++/cmath:225:56: error: '__value' should have been declared inside '::'
    /opt/local/include/gcc13/c++/cmath:225:56: error: redeclaration of 'template<class _Tp> constexpr const int __value'
    /opt/local/include/gcc13/c++/cmath:99:54: note: previous declaration 'template<class _Tp> constexpr const int __value<_Tp>'
    99 |     typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
      |                                                      ^~
    /opt/local/include/gcc13/c++/cmath:225:63: error: expected ';' before ',' token
    225 |     typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
      |                                                               ^
      |                                                               ;
    /opt/local/include/gcc13/c++/cmath:230:11: error: 'fabs' has not been declared in '::'
    230 |   using ::fabs;
      |           ^~~~
    . . .
barracuda156 commented 1 month ago

Without CoreAudio, trying to build from 0afd47da571b37a55e054702684acf98c2f0b361 commit, I get this error now:

/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-0afd47da571b37a55e054702684acf98c2f0b361/src/lib/kaba/compiler/Compiler.cpp: In function 'void* kaba::get_nice_memory(int64, bool, Module*)':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-0afd47da571b37a55e054702684acf98c2f0b361/src/lib/kaba/compiler/Compiler.cpp:152:26: error: 'MAP_JIT' was not declared in this scope; did you mean 'MAP_32BIT'?
  152 |                 flags |= MAP_JIT;
      |                          ^~~~~~~
      |                          MAP_32BIT
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-0afd47da571b37a55e054702684acf98c2f0b361/src/lib/kaba/compiler/Compiler.cpp: In member function 'void kaba::Compiler::_compile()':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-0afd47da571b37a55e054702684acf98c2f0b361/src/lib/kaba/compiler/Compiler.cpp:701:9: error: 'pthread_jit_write_protect_np' was not declared in this scope
  701 |         pthread_jit_write_protect_np(0);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~

UPD. That is available in 10.7+: https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_security_cs_allow-jit

And pthread_jit_write_protect_np in macOS 11+, apparently: https://github.com/lovell/sharp/issues/3438

barracuda156 commented 1 month ago

And afterwards this:

In file included from /opt/local/lib/gcc13/gcc/powerpc-apple-darwin10/13.2.0/include-fixed/math.h:35,
                 from /opt/local/include/gcc13/c++/cmath:47,
                 from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-0afd47da571b37a55e054702684acf98c2f0b361/src/view/helper/../audioview/graph/../../helper/graph/../../../lib/math/math.h:15,
                 from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-0afd47da571b37a55e054702684acf98c2f0b361/src/view/helper/../audioview/graph/../../helper/graph/../../../lib/math/rect.h:4,
                 from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-0afd47da571b37a55e054702684acf98c2f0b361/src/view/helper/../audioview/graph/../../helper/graph/Node.h:13,
                 from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-0afd47da571b37a55e054702684acf98c2f0b361/src/view/helper/../audioview/graph/AudioViewTrack.h:11,
                 from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-0afd47da571b37a55e054702684acf98c2f0b361/src/view/helper/PeakDatabase.cpp:10:
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-0afd47da571b37a55e054702684acf98c2f0b361/src/view/helper/PeakDatabase.cpp: In member function 'PeakData::State PeakData::peaks_chunk_state(const AudioBuffer&, int)':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-0afd47da571b37a55e054702684acf98c2f0b361/src/view/helper/PeakDatabase.cpp:90:31: error: expected unqualified-id before numeric constant
   90 |                 return State::OVERFLOW;
      |                               ^~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_tsunami/tsunami/work/tsunami-0afd47da571b37a55e054702684acf98c2f0b361/src/view/helper/PeakDatabase.cpp:90:29: error: expected ';' before numeric constant
   90 |                 return State::OVERFLOW;
      |                             ^
      |                             ;
momentarylapse commented 1 month ago

wow, thank you very much for the experiments and the pull request! That is valuable MacOS development info!

The big mess you report from including CoreAudio, I was expecting that and was very surprised it didn't already show up for me. The problem is, that CoreAudio defines Symbols in the global namespace colliding with tsunami's. My quick hack was to wrap the #include ... into a namespace. Of course that is a bad idea. I'll probably have to move some of tsunami's internals into their own namespace in a few days.

As for the State::OVERFLOW issue, I've started slowly migrating my enums to CamelCase to prevent those collisions with macros. That should now be fixed with the latest devel branch.

momentarylapse commented 1 week ago

Sorry for the long silence. At least, I now got most of the internal JIT compiler ported to aarch64 (https://github.com/momentarylapse/kaba/issues/1) and with that most of the plugins are now also usable.

I'll soon close this ticket here, since the original problem (simply compiling the program) has been fixed for a while. For any specific problems or requests, you can always open new issues.

The development of the CoreAudio backend continue here: https://github.com/momentarylapse/tsunami/issues/15