Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
barracuda156 opened this issue Dec 12, 2023 · 49 comments

Comments

@barracuda156
Copy link
Contributor

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
Copy link
Owner

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
Copy link
Contributor Author

@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
Copy link
Contributor Author

@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
Copy link
Contributor Author

@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
Copy link
Contributor Author

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
Copy link
Contributor Author

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
Copy link
Owner

wow, that is quite a lot of progress.

  • if you have pulseaudio, great. I recommend using it (I rarely test the portaudio backend)
  • x86: that's good. There might be a decent chance of running on x86. Especially when compiling with gcc (or clang)
  • OpenGL: interesting, that cmake seems to find header files (I heard, MacOS abandoned it). It is absolutely not needed. My "build system" treats it as an optional dependency, but there seems to be a bug
  • optional libraries: you are right, I should expose more choices to the user. gkt3/4 can actually be selected, if both are present. I will soon add more options to actively disable other libraries etc
    since I don't know how quickly I'll get that done, I recommend the temporary workaround: in the CMakeLists.txt lines 675: 685 is a block detecting OpenGL. You can comment out the whole block, except line 684 add_compile_definitions(HAS_LIB_GL=0)

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

@momentarylapse
Copy link
Owner

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

That looks like the build succeeded?

@barracuda156
Copy link
Contributor Author

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
Copy link
Contributor Author

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
Copy link
Contributor Author

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
Copy link
Owner

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
Copy link
Contributor Author

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
Copy link
Contributor Author

barracuda156 commented Dec 13, 2023

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
Copy link
Contributor Author

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
Copy link
Owner

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

There are 3 problems in your log:

  • Asm: unknown instruction set - that is the plugin compiler complaining about the M1 architecture. I thought it should recognize it as an ARM64 (-> ignore for now)
  • pa_context_connect - pulseaudio seems to fail to connect to the audio server. Not sure why. Is the server running? Maybe we need special access rights? Audio is useful to have, but we can do that after getting the window open
  • No provider of glGenSamples - that is serious. Google suggests, that gtk might have problems with older/incomplete OpenGL drivers. Some claim that GDK_DEBUG=gl-glx on the shell fixed the problem (?)

@momentarylapse
Copy link
Owner

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
Copy link
Contributor Author

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

@barracuda156
Copy link
Contributor Author

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

@momentarylapse
Copy link
Owner

Seeing a window is definitely progress!

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

  • the mmap() parameters are now (hopefully) correct
  • cmake now includes switches to explicitly disable libraries (like GL and unwind)

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
Copy link
Contributor Author

barracuda156 commented Dec 14, 2023

@momentarylapse Now it actually fails from 5e0e8be 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
Copy link
Owner

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
Copy link
Contributor Author

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

@barracuda156
Copy link
Contributor Author

@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
Copy link
Owner

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
Copy link
Contributor Author

@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
Copy link
Contributor Author

From ef06eb7 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
Copy link
Owner

To be honest, I am not sure. Configuring the pulseaudio server is somewhat dark magic to me. In a post here Homebrew/homebrew-core#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
Copy link
Contributor Author

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
Copy link
Owner

my apologies. Should be fixed now

@momentarylapse
Copy link
Owner

(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
Copy link
Contributor Author

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
Copy link
Owner

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
Copy link
Owner

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

@barracuda156
Copy link
Contributor Author

barracuda156 commented Dec 18, 2023

@momentarylapse Indeed, built from 601ecbe 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
Copy link
Contributor Author

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
Copy link
Owner

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

@barracuda156
Copy link
Contributor Author

ddc6753

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
Copy link
Contributor Author

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
Copy link
Owner

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
Copy link
Contributor Author

@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
Copy link
Owner

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:

  • MacOs 14.5 Sonoma (!)
  • homebrew + gtk4 + portaudio (seems to work fine for me...)

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
Copy link
Contributor Author

@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
Copy link
Contributor Author

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.
  1. 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
Copy link
Contributor Author

barracuda156 commented Jun 17, 2024

Without CoreAudio, trying to build from 0afd47d 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: lovell/sharp#3438

@barracuda156
Copy link
Contributor Author

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
Copy link
Owner

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
Copy link
Owner

momentarylapse commented Jul 14, 2024

Sorry for the long silence. At least, I now got most of the internal JIT compiler ported to aarch64 (momentarylapse/kaba#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: #15

@barracuda156
Copy link
Contributor Author

Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants