project(MainSoftware VERSION ${PROJECT_VERSION})

set(APPLICATION_NAME "Arkos Tracker")

set(TargetName ${PROJECT_NAME})

# Generates the projectinfo.cpp from the template. Also see the target_include_directories at the bottom.
configure_file(ProjectInfo.h_cmake_template ProjectInfo.h)

# Specific icon according to the platform. "Windows" also possible.
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")     # Mac.
    set(APP_ICON "../cpack/at3mac.png")
elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows")
    set(APP_ICON "../cpack/at3nsis.png")
else()
    set(APP_ICON "../cpack/at3.ico")
endif()

# https://github.com/juce-framework/JUCE/blob/master/docs/CMake%20API.md#juce_add_target
juce_add_gui_app(${TargetName}
        # VERSION ...                       # Set this if the app version is different to the project version
        # ICON_BIG ...                      # ICON_* arguments specify a path to an image file to use as an icon
        # ICON_SMALL ...
        # DOCUMENT_EXTENSIONS ...           # Specify file extensions that should be associated with this app
        PRODUCT_NAME "ArkosTracker3"        # The name of the final executable, which can differ from the target name
        BUNDLE_ID "com.julien-nevo.arkostracker"        # Mostly for macOS.
        ICON_BIG "${APP_ICON}"
        COMPANY_NAME "Julien Névo"          # Specify the name of the app's author
)

# Removing the need of signing for MacOsX. This probably doesn't really work.
# https://gitlab.kitware.com/cmake/cmake/-/issues/19879
set_target_properties(
        ${TargetName}
        PROPERTIES
        XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED NO
        XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY ""
        #XCODE_ATTRIBUTE_DEVELOPMENT_TEAM "${DEVELOPMENT_TEAM_ID}"
        #XCODE_ATTRIBUTE_PROVISIONING_PROFILE_SPECIFIER my_profile_name
        #XCODE_ATTRIBUTE_DEPLOYMENT_POSTPROCESSING YES   # this is needed for strip symbols
)

target_sources(${TargetName}
        PRIVATE
        Main.cpp
        ProjectInfo.h                       # Generated by CMake from a template (see configure_file above).

        commandLineTools/utils/CommandLineArgumentDescriptor.cpp
        commandLineTools/utils/CommandLineArgumentDescriptor.h
        commandLineTools/utils/CommandLineConstants.cpp
        commandLineTools/utils/CommandLineConstants.h
        commandLineTools/utils/CommandLineParser.cpp
        commandLineTools/utils/CommandLineParser.h
        commandLineTools/utils/Option.cpp
        commandLineTools/utils/Option.h
        commandLineTools/utils/Parameter.cpp
        commandLineTools/utils/Parameter.h
        commandLineTools/utils/CommandLineToolHelper.cpp
        commandLineTools/utils/CommandLineToolHelper.h

        app/preferences/FolderContext.h
        app/preferences/LastFolderTempStorage.cpp
        app/preferences/LastFolderTempStorage.h
        app/preferences/PreferencesManager.cpp
        app/preferences/PreferencesManager.h
        audio/effect/BaseEffect.cpp
        audio/effect/BaseEffect.h
        audio/effect/SpeakerEffect.cpp
        audio/effect/SpeakerEffect.h
        audio/effect/StereoSeparationEffect.cpp
        audio/effect/StereoSeparationEffect.h
        audio/effect/VolumeEffect.cpp
        audio/effect/VolumeEffect.h
        audio/sources/EffectsProcessor.cpp
        audio/sources/EffectsProcessor.h
        audio/sources/PsgsProcessor.cpp
        audio/sources/PsgsProcessor.h
        audio/sources/PsgStreamGenerator.cpp
        audio/sources/PsgStreamGenerator.h
        audio/sources/HardwareTables.cpp
        audio/sources/HardwareTables.h
        app/preferences/model/StoredOutputMix.cpp
        app/preferences/model/StoredOutputMix.h
        controllers/serial/model/SerialProfile.h
        audio/Volumes.cpp
        audio/Volumes.h
        business/CompoundAction.cpp
        business/CompoundAction.h
        business/actions/lists/AddItems.h
        business/actions/lists/DeleteItems.h
        business/actions/lists/MoveItems.h
        business/actions/instruments/psg/SetPsgInstrumentCell.cpp
        business/actions/instruments/psg/SetPsgInstrumentCell.h
        business/actions/instruments/psg/SetPsgInstrumentMetadata.cpp
        business/actions/instruments/psg/SetPsgInstrumentMetadata.h
        business/actions/instruments/psg/DuplicatePsgInstrumentCell.cpp
        business/actions/instruments/psg/DuplicatePsgInstrumentCell.h
        business/actions/instruments/psg/DeletePsgInstrumentCell.cpp
        business/actions/instruments/psg/DeletePsgInstrumentCell.h
        business/actions/instruments/psg/ModifyPsgInstrumentCells.cpp
        business/actions/instruments/psg/ModifyPsgInstrumentCells.h
        business/actions/instruments/psg/action/ToggleRetrigAction.cpp
        business/actions/instruments/psg/action/ToggleRetrigAction.h
        business/actions/instruments/psg/action/GenerateVolumeCellsAction.cpp
        business/actions/instruments/psg/action/GenerateVolumeCellsAction.h
        business/actions/instruments/sample/ModifySampleInstrumentMetadata.cpp
        business/actions/instruments/sample/ModifySampleInstrumentMetadata.h
        business/actions/instruments/sample/ChangeSample.cpp
        business/actions/instruments/sample/ChangeSample.h
        business/actions/instruments/AddInstruments.cpp
        business/actions/instruments/AddInstruments.h
        business/actions/instruments/DeleteInstruments.cpp
        business/actions/instruments/DeleteInstruments.h
        business/actions/instruments/InstrumentAction.cpp
        business/actions/instruments/InstrumentAction.h
        business/actions/instruments/MoveInstruments.cpp
        business/actions/instruments/MoveInstruments.h
        business/actions/instruments/RenameInstrument.cpp
        business/actions/instruments/RenameInstrument.h
        business/actions/instruments/SetInstrumentColor.cpp
        business/actions/instruments/SetInstrumentColor.h
        business/actions/instruments/SwapInstruments.cpp
        business/actions/instruments/SwapInstruments.h
        business/actions/instruments/RemapInstruments.cpp
        business/actions/instruments/RemapInstruments.h
        business/actions/expressions/AddExpressions.cpp
        business/actions/expressions/AddExpressions.h
        business/actions/expressions/DeleteExpressions.cpp
        business/actions/expressions/DeleteExpressions.h
        business/actions/expressions/ExpressionAction.cpp
        business/actions/expressions/ExpressionAction.h
        business/actions/expressions/MoveExpressions.cpp
        business/actions/expressions/MoveExpressions.h
        business/actions/expressions/ModifyExpressionCells.cpp
        business/actions/expressions/ModifyExpressionCells.h
        business/actions/expressions/SetExpressionCell.cpp
        business/actions/expressions/SetExpressionCell.h
        business/actions/expressions/SetExpressionCellMetadata.cpp
        business/actions/expressions/SetExpressionCellMetadata.h
        business/actions/expressions/RenameExpression.cpp
        business/actions/expressions/RenameExpression.h
        business/actions/expressions/DuplicateExpressionCell.cpp
        business/actions/expressions/DuplicateExpressionCell.h
        business/actions/expressions/DeleteExpressionCell.cpp
        business/actions/expressions/DeleteExpressionCell.h
        business/actions/linker/DeletePositions.cpp
        business/actions/linker/DeletePositions.h
        business/actions/linker/DuplicatePositions.cpp
        business/actions/linker/DuplicatePositions.h
        business/actions/linker/ClearPatterns.cpp
        business/actions/linker/ClearPatterns.h
        business/actions/linker/ClonePositions.cpp
        business/actions/linker/ClonePositions.h
        business/actions/linker/CreatePattern.cpp
        business/actions/linker/CreatePattern.h
        business/actions/linker/IncreasePatternInPosition.cpp
        business/actions/linker/IncreasePatternInPosition.h
        business/actions/linker/InsertPositions.cpp
        business/actions/linker/InsertPositions.h
        business/actions/linker/ModifyPosition.cpp
        business/actions/linker/ModifyPosition.h
        business/actions/linker/ModifyPositionMarker.cpp
        business/actions/linker/ModifyPositionMarker.h
        business/actions/linker/ModifyPositionsData.cpp
        business/actions/linker/ModifyPositionsData.h
        business/actions/linker/MovePositionMarker.cpp
        business/actions/linker/MovePositionMarker.h
        business/actions/linker/MovePositions.cpp
        business/actions/linker/MovePositions.h
        business/actions/linker/SetLoopStartAndEnd.cpp
        business/actions/linker/SetLoopStartAndEnd.h
        business/actions/linker/ModifyPattern.cpp
        business/actions/linker/ModifyPattern.h
        business/actions/linker/RearrangePatterns.cpp
        business/actions/linker/RearrangePatterns.h
        business/actions/patternViewer/SetCellData.cpp
        business/actions/patternViewer/SetCellData.h
        business/actions/patternViewer/SetPositionHeight.cpp
        business/actions/patternViewer/SetPositionHeight.h
        business/actions/patternViewer/SetSpecialCellData.cpp
        business/actions/patternViewer/SetSpecialCellData.h
        business/actions/patternViewer/SetTrackName.cpp
        business/actions/patternViewer/SetTrackName.h
        business/actions/patternViewer/SetSpecialTrackName.cpp
        business/actions/patternViewer/SetSpecialTrackName.h
        business/actions/patternViewer/PasteCells.cpp
        business/actions/patternViewer/PasteCells.h
        business/actions/patternViewer/LinkTrack.cpp
        business/actions/patternViewer/LinkTrack.h
        business/actions/patternViewer/LinkSpecialTrack.cpp
        business/actions/patternViewer/LinkSpecialTrack.h
        business/actions/patternViewer/CellsModifier.cpp
        business/actions/patternViewer/CellsModifier.h
        business/actions/patternViewer/DeleteNote.cpp
        business/actions/patternViewer/DeleteNote.h
        business/actions/patternViewer/ToggleReadOnly.cpp
        business/actions/patternViewer/ToggleReadOnly.h
        business/actions/patternViewer/Transpose.cpp
        business/actions/patternViewer/Transpose.h
        business/actions/patternViewer/TransposeNote.cpp
        business/actions/patternViewer/TransposeNote.h
        business/actions/patternViewer/TransposeRate.h
        business/actions/patternViewer/UnlinkSpecialTrack.cpp
        business/actions/patternViewer/UnlinkSpecialTrack.h
        business/actions/patternViewer/UnlinkTrack.cpp
        business/actions/patternViewer/UnlinkTrack.h
        business/actions/patternViewer/SwapCells.cpp
        business/actions/patternViewer/SwapCells.h
        business/actions/patternViewer/insertOrRemoveCellAt/InsertCellAt.cpp
        business/actions/patternViewer/insertOrRemoveCellAt/InsertCellAt.h
        business/actions/patternViewer/insertOrRemoveCellAt/RemoveCellAt.cpp
        business/actions/patternViewer/insertOrRemoveCellAt/RemoveCellAt.h
        business/actions/patternViewer/insertOrRemoveCellAt/InsertOrRemoveCellAt.cpp
        business/actions/patternViewer/insertOrRemoveCellAt/InsertOrRemoveCellAt.h
        business/actions/patternViewer/ClearCells.cpp
        business/actions/patternViewer/ClearCells.h
        business/actions/patternViewer/SelectedData.cpp
        business/actions/patternViewer/SelectedData.h
        business/actions/song/SetSongMetadata.cpp
        business/actions/song/SetSongMetadata.h
        business/actions/subsong/CreateSubsong.cpp
        business/actions/subsong/CreateSubsong.h
        business/actions/subsong/DeleteSubsong.cpp
        business/actions/subsong/DeleteSubsong.h
        business/actions/subsong/SetSubsongPsgs.h
        business/actions/subsong/SetSubsongPsgs.cpp
        business/actions/subsong/SetSubsongMetadata.cpp
        business/actions/subsong/SetSubsongMetadata.h
        business/actions/subsong/SubsongActionHelper.cpp
        business/actions/subsong/SubsongActionHelper.h
        business/actions/sfx/SetExportedSoundEffects.cpp
        business/actions/sfx/SetExportedSoundEffects.h
        business/channels/ChannelsMute.cpp
        business/channels/ChannelsMute.h
        business/link/LinkedSpecialTrackHelper.cpp
        business/link/LinkedSpecialTrackHelper.h
        business/link/LinkedTrackHelper.cpp
        business/link/LinkedTrackHelper.h
        business/model/Loop.cpp
        business/model/Loop.h
        business/model/StartEnd.cpp
        business/model/StartEnd.h
        business/patternViewer/DisplayedEffects.cpp
        business/patternViewer/DisplayedEffects.h
        business/period/GeneratePeriods.cpp
        business/period/GeneratePeriods.h
        business/serialization/patternViewer/EffectToCharSerializer.cpp
        business/serialization/patternViewer/EffectToCharSerializer.h
        business/serialization/patternViewer/TrackSerializer.cpp
        business/serialization/patternViewer/TrackSerializer.h
        business/serialization/song/ExpressionSerializer.cpp
        business/serialization/song/ExpressionSerializer.h
        business/serialization/instrument/InstrumentSerializer.cpp
        business/serialization/instrument/InstrumentSerializer.h
        business/serialization/instrument/InstrumentNodes.cpp
        business/serialization/instrument/InstrumentNodes.h
        business/serialization/song/PositionSerializer.cpp
        business/serialization/song/PositionSerializer.h
        business/serialization/song/PatternSerializer.cpp
        business/serialization/song/PatternSerializer.h
        business/serialization/song/CellSerializer.cpp
        business/serialization/song/CellSerializer.h
        business/serialization/song/SpecialCellSerializer.cpp
        business/serialization/song/SpecialCellSerializer.h
        business/serialization/instrument/InstrumentDeserializerAt2.cpp
        business/serialization/instrument/InstrumentDeserializerAt2.h
        business/serialization/sourceProfile/SourceProfileSerializer.cpp
        business/serialization/sourceProfile/SourceProfileSerializer.h
        business/serialization/sourceProfile/SourceProfileXmlNodes.cpp
        business/serialization/sourceProfile/SourceProfileXmlNodes.h
        business/song/tool/WaitCounter.cpp
        business/song/tool/WaitCounter.h
        business/song/tool/InstrumentSimpleCounter.cpp
        business/song/tool/InstrumentSimpleCounter.h
        business/song/tool/InstrumentCounter.cpp
        business/song/tool/InstrumentCounter.h
        business/song/tool/browser/CellAndLocation.cpp
        business/song/tool/browser/CellAndLocation.h
        business/song/tool/browser/CellBrowser.cpp
        business/song/tool/browser/CellBrowser.h
        business/song/tool/browser/SpecialCellBrowser.cpp
        business/song/tool/browser/SpecialCellBrowser.h
        business/song/tool/browser/SpecialCellAndLocation.cpp
        business/song/tool/browser/SpecialCellAndLocation.h
        business/song/tool/browser/TrackBrowser.cpp
        business/song/tool/browser/TrackBrowser.h
        business/song/tool/browser/SpecialTrackBrowser.cpp
        business/song/tool/browser/SpecialTrackBrowser.h
        business/song/tool/ChangeExpressionsOrdering.cpp
        business/song/tool/ChangeExpressionsOrdering.h
        business/song/tool/ChangeInstrumentsOrdering.cpp
        business/song/tool/ChangeInstrumentsOrdering.h
        business/song/tool/builder/SongBuilder.cpp
        business/song/tool/builder/SongBuilder.h
        business/song/tool/builder/SubsongBuilder.cpp
        business/song/tool/builder/SubsongBuilder.h
        business/song/tool/builder/PatternUnoptimizer.cpp
        business/song/tool/builder/PatternUnoptimizer.h
        business/song/tool/builder/TrailingEffectContext.cpp
        business/song/tool/builder/TrailingEffectContext.h
        business/song/tool/frameCounter/FrameCounter.cpp
        business/song/tool/frameCounter/FrameCounter.h
        business/song/tool/context/EffectContextImpl.cpp
        business/song/tool/context/EffectContextImpl.h
        business/song/tool/context/EffectContext.h
        business/song/tool/context/model/TrackContext.cpp
        business/song/tool/context/model/TrackContext.h
        business/song/tool/context/model/LineContext.cpp
        business/song/tool/context/model/LineContext.h
        business/song/tool/speed/DetermineSpeed.cpp
        business/song/tool/speed/DetermineSpeed.h
        business/song/tool/speed/BpmCalculator.cpp
        business/song/tool/speed/BpmCalculator.h
        business/song/tool/songStripper/SongStripper.cpp
        business/song/tool/songStripper/SongStripper.h
        business/song/tool/songStripper/SubsongsAndPsgs.cpp
        business/song/tool/songStripper/SubsongsAndPsgs.h
        business/song/tool/BaseNoteFinder.cpp
        business/song/tool/BaseNoteFinder.h
        business/song/tool/CellOperations.cpp
        business/song/tool/CellOperations.h
        business/song/tool/ChangeExpressionsOrdering.cpp
        business/song/tool/ChangeExpressionsOrdering.h
        business/song/tool/ChangeInstrumentsOrdering.cpp
        business/song/tool/ChangeInstrumentsOrdering.h
        business/song/tool/InlineArpeggioConverter.cpp
        business/song/tool/InlineArpeggioConverter.h
        business/song/tool/RetrigInInstrumentHeaderNormalizer.cpp
        business/song/tool/RetrigInInstrumentHeaderNormalizer.h
        business/song/tool/optimizers/BaseItemOptimizer.h
        business/song/tool/optimizers/ExpressionOptimizer.cpp
        business/song/tool/optimizers/ExpressionOptimizer.h
        business/song/tool/optimizers/ExpressionsOptimizer.cpp
        business/song/tool/optimizers/ExpressionsOptimizer.h
        business/song/tool/optimizers/InstrumentOptimizer.cpp
        business/song/tool/optimizers/InstrumentOptimizer.h
        business/song/tool/optimizers/InstrumentsOptimizer.cpp
        business/song/tool/optimizers/InstrumentsOptimizer.h
        business/song/tool/optimizers/PatternOptimizer.cpp
        business/song/tool/optimizers/PatternOptimizer.h
        business/song/tool/optimizers/SongOptimizer.cpp
        business/song/tool/optimizers/SongOptimizer.h
        business/song/tool/sfx/FirstNotePerInstrumentFinder.cpp
        business/song/tool/sfx/FirstNotePerInstrumentFinder.h
        business/song/cells/CellEffectsChecker.cpp
        business/song/cells/CellEffectsChecker.h
        business/instrument/GenerateInstrument.cpp
        business/instrument/GenerateInstrument.h
        business/instrument/GenericInstrumentGenerator.cpp
        business/instrument/GenericInstrumentGenerator.h
        business/instrument/SampleLoader.cpp
        business/instrument/SampleLoader.h
        business/instrument/SampleResampler.cpp
        business/instrument/SampleResampler.h
        business/song/validation/CheckLoopStartEnd.cpp
        business/song/validation/CheckLoopStartEnd.h
        business/song/validation/CheckTrackHeight.cpp
        business/song/validation/CheckTrackHeight.h
        business/song/validation/CorrectExpression.cpp
        business/song/validation/CorrectExpression.h
        business/song/validation/CorrectInstrument.cpp
        business/song/validation/CorrectInstrument.h
        business/song/validation/LoopChange.cpp
        business/sourceProfile/SourceProfile.cpp
        business/sourceProfile/SourceProfile.h
        business/sourceProfile/SourceProfiles.cpp
        business/sourceProfile/SourceProfiles.h
        business/sourceProfile/SourceProfileValidator.cpp
        business/sourceProfile/SourceProfileValidator.h
        controllers/serial/PsgData.cpp
        controllers/serial/PsgData.h
        controllers/serial/SerialConverter.cpp
        controllers/serial/SerialConverter.h
        controllers/serial/model/SerialData.cpp
        controllers/serial/model/SerialData.h
        controllers/serial/SerialAccess.cpp
        controllers/serial/SerialAccess.h
        controllers/serial/SerialManager.cpp
        controllers/serial/SerialManager.h
        controllers/serial/SerialController.cpp
        controllers/serial/SerialController.h
        controllers/observers/ChannelMuteObserver.h
        controllers/observers/CursorObserver.h
        controllers/observers/ExpressionChangeObserver.h
        controllers/observers/InstrumentChangeObserver.h
        controllers/observers/LinkerObserver.h
        controllers/observers/PatternViewerMetadataObserver.h
        controllers/observers/SelectedExpressionIndexObserver.h
        controllers/observers/SelectedInstrumentIndexObserver.h
        controllers/observers/SelectedInstrumentIndexesObserver.h
        controllers/observers/SongMetadataObserver.h
        controllers/observers/SubsongMetadataObserver.h
        controllers/observers/GeneralDataObserver.h
        controllers/observers/TrackChangeObserver.h
        controllers/observers/SelectedBlockObserver.h
        controllers/AudioController.h
        controllers/AudioControllerImpl.cpp
        controllers/AudioControllerImpl.h
        controllers/MainController.h
        controllers/MainControllerImpl.cpp
        controllers/MainControllerImpl.h
        controllers/MainControllerObservers.cpp
        controllers/MainControllerObservers.h
        controllers/PlayerController.h
        controllers/PlayerControllerImpl.cpp
        controllers/PlayerControllerImpl.h
        controllers/SongController.h
        controllers/SongControllerImpl.cpp
        controllers/SongControllerImpl.h
        controllers/SongControllerNoOp.cpp
        controllers/SongControllerNoOp.h
        controllers/MidiController.h
        controllers/MidiControllerImpl.cpp
        controllers/MidiControllerImpl.h
        controllers/messages/MessageMidiNote.h
        controllers/messages/MessageMidiProgramChange.h
        controllers/model/OutputMix.cpp
        controllers/model/OutputMix.h
        controllers/model/Follow.h
        import/soundtrakker/Stk128Importer.cpp
        import/soundtrakker/Stk128Importer.h
        import/soundtrakker/SubsongImporter.cpp
        import/soundtrakker/SubsongImporter.h
        import/soundtrakker/Stk128Constants.h
        import/starkos/StarkosImporter.cpp
        import/starkos/StarkosImporter.h
        import/starkos/InstrumentReader.cpp
        import/starkos/InstrumentReader.h
        import/starkos/TrackReader.cpp
        import/starkos/TrackReader.h
        import/at1/At1SongImporter.cpp
        import/at1/At1SongImporter.h
        import/at2/At2SongImporter.cpp
        import/at2/At2SongImporter.h
        import/at2/SubsongReader.cpp
        import/at2/SubsongReader.h
        import/at3/At3SongImporter.cpp
        import/at3/At3SongImporter.h
        import/chp/ChpSongImporter.cpp
        import/chp/ChpSongImporter.h
        import/vt2/Vt2SongImporter.cpp
        import/vt2/Vt2SongImporter.h
        import/vt2/Vt2InstrumentBuilder.cpp
        import/vt2/Vt2InstrumentBuilder.h
        import/wyz/WyzSongImporter.cpp
        import/wyz/WyzSongImporter.h
        import/SongImporter.h
        import/ImportedFormat.h
        import/loader/SongLoader.cpp
        import/loader/SongLoader.h
        import/loader/configuration/ImportConfiguration.cpp
        import/loader/configuration/ImportConfiguration.h
        import/loader/configuration/ImportFirstPassReturnData.h
        import/mod/ModConfiguration.cpp
        import/mod/ModConfiguration.h
        import/mod/ModTrackCell.cpp
        import/mod/ModTrackCell.h
        import/mod/ModSongImporter.cpp
        import/mod/ModSongImporter.h
        import/midi/MidiConfiguration.cpp
        import/midi/MidiConfiguration.h
        import/midi/MidiImporter.cpp
        import/midi/MidiImporter.h
        import/midi/MidiTrackReader.cpp
        import/midi/MidiTrackReader.h
        import/common/ChannelMixerKeeper.cpp
        import/common/ChannelMixerKeeper.h
        import/ConfigurationType.h
        reader/StreamedMusicReader.cpp
        reader/StreamedMusicReader.h
        reader/ym/YmReader.cpp
        reader/ym/YmReader.h
        reader/ym/decoder/YmDecoder.cpp
        reader/ym/decoder/YmDecoder.h
        reader/ym/decoder/YmDecoder123.cpp
        reader/ym/decoder/YmDecoder123.h
        reader/ym/decoder/YmDecoder3b.cpp
        reader/ym/decoder/YmDecoder3b.h
        reader/ym/decoder/YmDecoder456.cpp
        reader/ym/decoder/YmDecoder456.h
        reader/vgm/VgmReader.cpp
        reader/vgm/VgmReader.h
        ui/export/Export.cpp
        ui/export/Export.h
        ui/export/aky/ExportAkyDialog.cpp
        ui/export/aky/ExportAkyDialog.h
        ui/export/akg/ExportAkgDialog.cpp
        ui/export/akg/ExportAkgDialog.h
        ui/export/akm/ExportAkmDialog.cpp
        ui/export/akm/ExportAkmDialog.h
        ui/export/fap/ExportFapDialog.cpp
        ui/export/fap/ExportFapDialog.h
        ui/export/common/SubsongChooser.cpp
        ui/export/common/SubsongChooser.h
        ui/export/common/SubsongsChooser.cpp
        ui/export/common/SubsongsChooser.h
        ui/export/common/ExportAs.cpp
        ui/export/common/ExportAs.h
        ui/export/common/SampleExport.cpp
        ui/export/common/SampleExport.h
        ui/export/common/task/CompileSource.cpp
        ui/export/common/task/CompileSource.h
        ui/export/common/task/SaveSourceOrBinary.cpp
        ui/export/common/task/SaveSourceOrBinary.h
        ui/export/common/task/SaveSourceOrBinaryDialog.cpp
        ui/export/common/task/SaveSourceOrBinaryDialog.h
        ui/export/common/task/SaveStreamToFile.cpp
        ui/export/common/task/SaveStreamToFile.h
        ui/export/events/ExportEventsDialog.cpp
        ui/export/events/ExportEventsDialog.h
        ui/export/events/EventsExportType.h
        ui/export/raw/ExportRawDialog.cpp
        ui/export/raw/ExportRawDialog.h
        ui/export/sample/ExportSamplesDialog.cpp
        ui/export/sample/ExportSamplesDialog.h
        ui/export/sfx/ExportSfxsDialog.cpp
        ui/export/sfx/ExportSfxsDialog.h
        ui/export/ym/ExportYmDialog.cpp
        ui/export/ym/ExportYmDialog.h
        ui/export/vgm/ExportVgmDialog.cpp
        ui/export/vgm/ExportVgmDialog.h
        ui/export/wav/ExportWavDialog.cpp
        ui/export/wav/ExportWavDialog.h
        disark/base/AreaTag.cpp         # Disark is not stand-alone, but these files are still used. Much simpler to include them instead of creating a library to get from Git...
        disark/base/AreaTag.h
        utils/ErrorReport.cpp
        utils/ErrorReport.h
        utils/StreamUtil.cpp
        utils/StreamUtil.h
        utils/SpeedUtil.cpp
        utils/SpeedUtil.h
        utils/Base64Util.cpp
        utils/Base64Util.h
        player/channel/ChannelOutputRegisters.cpp
        player/channel/ChannelOutputRegisters.h
        player/channel/ChannelPlayer.cpp
        player/channel/ChannelPlayer.h
        player/channel/ChannelPlayerResults.cpp
        player/channel/ChannelPlayerResults.h
        player/NoteAndShift.cpp
        player/NoteAndShift.h
        player/InstrumentPlayedInfo.cpp
        player/InstrumentPlayedInfo.h
        player/CellToPlay.cpp
        player/CellToPlay.h
        player/PsgPeriod.cpp
        player/PsgPeriod.h
        player/PsgRegisters.cpp
        player/PsgRegisters.h
        player/PsgRegistersConverter.cpp
        player/PsgRegistersConverter.h
        player/PsgRegistersProvider.h
        player/SampleData.cpp
        player/SampleData.h
        player/SamplePlayInfo.cpp
        player/SamplePlayInfo.h
        player/SongPlayer.cpp
        player/SongPlayer.h
        player/TemperedScaleUtil.cpp
        player/TemperedScaleUtil.h
        controllers/observers/SongPlayerObserver.h
        song/cells/Cell.cpp
        song/cells/Cell.h
        song/cells/CellConstants.h
        song/cells/CellEffect.cpp
        song/cells/CellEffect.h
        song/cells/CellEffects.cpp
        song/cells/CellEffects.h
        song/cells/Effect.cpp
        song/cells/Effect.h
        song/cells/Note.cpp
        song/cells/Note.h
        song/cells/SpecialCell.cpp
        song/cells/SpecialCell.h
        song/cells/SpecialCellConstants.h
        song/cells/EffectError.h
        song/instrument/sample/SamplePart.cpp
        song/instrument/sample/SamplePart.h
        song/instrument/sample/Sample.cpp
        song/instrument/sample/Sample.h
        song/instrument/psg/LowLevelPsgInstrumentCell.cpp
        song/instrument/psg/LowLevelPsgInstrumentCell.h
        song/instrument/psg/PsgInstrumentCell.cpp
        song/instrument/psg/PsgInstrumentCell.h
        song/instrument/psg/PsgInstrumentCellLink.h
        song/instrument/psg/SpreadPsgInstrumentCell.cpp
        song/instrument/psg/SpreadPsgInstrumentCell.h
        song/instrument/psg/PsgPart.cpp
        song/instrument/psg/PsgPart.h
        song/instrument/psg/PsgPartConstants.h
        song/instrument/psg/PsgSection.cpp
        song/instrument/psg/PsgSection.h
        song/instrument/Instrument.cpp
        song/instrument/Instrument.h
        song/instrument/InstrumentType.h
        song/psg/Psg.cpp
        song/psg/Psg.h
        song/psg/PsgFrequency.cpp
        song/psg/PsgFrequency.h
        song/psg/PsgMixingOutput.cpp
        song/psg/PsgMixingOutput.h
        song/psg/PsgType.cpp
        song/psg/PsgType.h
        song/subsong/Pattern.cpp
        song/subsong/Pattern.h
        song/subsong/LinkState.h
        song/subsong/LinkType.h
        song/subsong/Position.cpp
        song/subsong/Position.h
        song/subsong/Subsong.cpp
        song/subsong/Subsong.h
        song/subsong/SubsongConstants.cpp
        song/subsong/SubsongConstants.h
        song/tracks/AbstractTrack.h
        song/tracks/SpecialTrack.h
        song/tracks/Track.h
        song/tracks/TrackConstants.cpp
        song/tracks/TrackConstants.h
        song/CellLocationInTrack.cpp
        song/CellLocationInTrack.h
        song/CellLocationInPosition.cpp
        song/CellLocationInPosition.h
        song/TrackLocation.cpp
        song/TrackLocation.h
        song/SpecialTrackLocation.cpp
        song/SpecialTrackLocation.h
        song/SpecialCellLocationInPosition.cpp
        song/SpecialCellLocationInPosition.h
        song/SpecialCellLocationInTrack.cpp
        song/SpecialCellLocationInTrack.h
        song/Expression.cpp
        song/Expression.h
        song/ExpressionBuilder.cpp
        song/ExpressionBuilder.h
        song/ExpressionConstants.h
        song/ExpressionHandler.cpp
        song/ExpressionHandler.h
        song/Location.cpp
        song/Location.h
        song/Song.cpp
        song/Song.h

        ui/about/AboutDialog.cpp
        ui/about/AboutDialog.h
        ui/arpeggioTableEditor/ArpeggioTableEditorPanel.cpp
        ui/arpeggioTableEditor/ArpeggioTableEditorPanel.h
        ui/arpeggioTableEditor/view/ArpeggioTableEditorViewImpl.cpp
        ui/arpeggioTableEditor/view/ArpeggioTableEditorViewImpl.h
        ui/editorWithBars/view/EditorWithBarsViewNoOp.cpp
        ui/editorWithBars/view/EditorWithBarsViewNoOp.h
        ui/editorWithBars/controller/BarAreaController.h
        ui/editorWithBars/controller/helper/VisibilityHandler.cpp
        ui/editorWithBars/controller/helper/VisibilityHandler.h
        ui/editorWithBars/controller/EditorWithBarsControllerSpecific.h
        ui/editorWithBars/controller/EditorWithBarsControllerImpl.cpp
        ui/editorWithBars/controller/EditorWithBarsControllerImpl.h
        ui/editorWithBars/controller/EditorWithBarsControllerNoOp.cpp
        ui/editorWithBars/controller/EditorWithBarsControllerNoOp.h
        ui/editorWithBars/controller/HeaderController.h
        ui/editorWithBars/controller/EditorWithBarsController.cpp
        ui/editorWithBars/controller/EditorWithBarsController.h
        ui/editorWithBars/controller/QuickEditController.cpp
        ui/editorWithBars/controller/QuickEditController.h
        ui/editorWithBars/controller/BarEditorCursorLocation.cpp
        ui/editorWithBars/controller/BarEditorCursorLocation.h
        ui/arpeggioTableEditor/controller/ArpeggioTableEditorControllerSpecificImpl.cpp
        ui/arpeggioTableEditor/controller/ArpeggioTableEditorControllerSpecificImpl.h
        ui/arpeggioTableEditor/controller/ArpeggioTableEditorControllerImpl.cpp
        ui/arpeggioTableEditor/controller/ArpeggioTableEditorControllerImpl.h
        ui/arpeggioTableEditor/controller/ArpeggioBarCreator.cpp
        ui/arpeggioTableEditor/controller/ArpeggioBarCreator.h
        ui/editorWithBars/view/component/Header.cpp
        ui/editorWithBars/view/component/Header.h
        ui/editorWithBars/view/component/AllBarsAreaConstants.h
        ui/editorWithBars/view/component/AllBarsArea.cpp
        ui/editorWithBars/view/component/AllBarsArea.h
        ui/editorWithBars/view/component/AllBarsAreaDataProvider.h
        ui/editorWithBars/view/EditorWithBarsView.h
        ui/editorWithBars/view/EditorWithBarsViewImpl.cpp
        ui/editorWithBars/view/EditorWithBarsViewImpl.h
        ui/expressionTableEditor/view/ExpressionTableEditorViewNone.cpp
        ui/expressionTableEditor/view/ExpressionTableEditorViewNone.h
        ui/expressionTableEditor/controller/ExpressionTableEditorControllerSpecific.cpp
        ui/expressionTableEditor/controller/ExpressionTableEditorControllerSpecific.h
        ui/expressionTableEditor/view/ExpressionEditorContextualMenu.cpp
        ui/expressionTableEditor/view/ExpressionEditorContextualMenu.h
        ui/expressionTableEditor/controller/ExpressionQuickEditController.cpp
        ui/expressionTableEditor/controller/ExpressionQuickEditController.h
        ui/arpeggioTableList/controller/ArpeggioTableListController.cpp
        ui/arpeggioTableList/controller/ArpeggioTableListController.h
        ui/arpeggioTableList/ArpeggioTableListPanel.cpp
        ui/arpeggioTableList/ArpeggioTableListPanel.h
        ui/components/colors/ColorChooser.cpp
        ui/components/colors/ColorChooser.h
        ui/components/colors/ColorConstants.cpp
        ui/components/colors/ColorConstants.h
        ui/components/colors/ColorView.cpp
        ui/components/colors/ColorView.h
        ui/components/dialogs/SuccessOrErrorDialog.cpp
        ui/components/dialogs/SuccessOrErrorDialog.h
        ui/components/dialogs/SimpleTextDialog.cpp
        ui/components/dialogs/SimpleTextDialog.h
        ui/components/dialogs/SongNotSavedDialog.cpp
        ui/components/dialogs/SongNotSavedDialog.h
        ui/components/dialogs/TextFieldDialog.cpp
        ui/components/dialogs/TextFieldDialog.h
        ui/components/dialogs/LoadingDialog.cpp
        ui/components/dialogs/LoadingDialog.h
        ui/components/lists/AbstractListItem.cpp
        ui/components/lists/AbstractListItem.h
        ui/components/lists/AbstractListModel.h
        ui/components/lists/DraggedItem.cpp
        ui/components/lists/DraggedItem.h
        ui/components/AutoSizeLabel.cpp
        ui/components/AutoSizeLabel.h
        ui/components/BlankComponent.cpp
        ui/components/BlankComponent.h
        ui/components/ButtonTwoStates.cpp
        ui/components/ButtonTwoStates.h
        ui/components/ButtonWithImage.cpp
        ui/components/ButtonWithImage.h
        ui/components/ClickableLabel.cpp
        ui/components/ClickableLabel.h
        ui/components/ColoredImage.cpp
        ui/components/ColoredImage.h
        ui/components/ComboBoxNoFocus.cpp
        ui/components/ComboBoxNoFocus.h
        ui/components/CustomDocumentWindow.cpp
        ui/components/CustomDocumentWindow.h
        ui/components/CustomListBox.cpp
        ui/components/CustomListBox.h
        ui/components/DraggableImage.cpp
        ui/components/DraggableImage.h
        ui/components/EditText.cpp
        ui/components/EditText.h
        ui/components/FileChooserCustom.cpp
        ui/components/FileChooserCustom.h
        ui/components/LookAndFeelChanger.h
        ui/components/LoopBar.cpp
        ui/components/LoopBar.h
        ui/components/ThemedColoredImage.cpp
        ui/components/ThemedColoredImage.h
        ui/components/dialogs/ModalDialog.cpp
        ui/components/dialogs/ModalDialog.h
        ui/components/dialogs/ErrorReportDialog.cpp
        ui/components/dialogs/ErrorReportDialog.h
        ui/components/dialogs/CustomResizableWindow.cpp
        ui/components/dialogs/CustomResizableWindow.h
        ui/components/dialogs/ProgressDialog.cpp
        ui/components/dialogs/ProgressDialog.h
        ui/components/dialogs/ResultDialog.cpp
        ui/components/dialogs/ResultDialog.h
        ui/components/PeriodAndNoiseMeter.cpp
        ui/components/PeriodAndNoiseMeter.h
        ui/components/PeriodAndNoiseMeterInput.h
        ui/components/ProfileUser.cpp
        ui/components/ProfileUser.h
        ui/components/ProgressBarView.h
        ui/components/ProgressBarView.cpp
        ui/components/SliderIncDec.cpp
        ui/components/SliderIncDec.h
        ui/components/StoredProfile.h
        ui/components/GroupWithViewport.cpp
        ui/components/GroupWithViewport.h
        ui/components/InformationView.cpp
        ui/components/InformationView.h
        ui/components/GroupWithToggles.cpp
        ui/components/GroupWithToggles.h
        ui/components/UiUtil.cpp
        ui/components/UiUtil.h
        ui/instrumentEditor/controller/InstrumentEditorControllerImpl.cpp
        ui/instrumentEditor/controller/InstrumentEditorControllerImpl.h
        ui/instrumentEditor/controller/InstrumentEditorControllerNoOp.cpp
        ui/instrumentEditor/controller/InstrumentEditorControllerNoOp.h
        ui/instrumentEditor/controller/ItemEditorController.h
        ui/instrumentEditor/controller/sample/SampleInstrumentEditorController.h
        ui/instrumentEditor/controller/sample/SampleInstrumentEditorControllerImpl.cpp
        ui/instrumentEditor/controller/sample/SampleInstrumentEditorControllerImpl.h
        ui/instrumentEditor/view/sample/SampleInstrumentEditorView.h
        ui/instrumentEditor/view/sample/SampleInstrumentEditorViewImpl.cpp
        ui/instrumentEditor/view/sample/SampleInstrumentEditorViewImpl.h
        ui/instrumentEditor/view/sample/SampleInstrumentEditorViewNoOp.cpp
        ui/instrumentEditor/view/sample/SampleInstrumentEditorViewNoOp.h
        ui/instrumentEditor/view/sample/WaveViewer.cpp
        ui/instrumentEditor/view/sample/WaveViewer.h
        ui/instrumentEditor/view/sample/SampleViewer.cpp
        ui/instrumentEditor/view/sample/SampleViewer.h
        ui/instrumentEditor/view/sample/WaveViewerDisplayedData.cpp
        ui/instrumentEditor/view/sample/WaveViewerDisplayedData.h
        ui/instrumentEditor/controller/none/NoInstrumentEditorControllerImpl.cpp
        ui/instrumentEditor/controller/none/NoInstrumentEditorControllerImpl.h
        ui/instrumentEditor/view/none/NoInstrumentEditorView.h
        ui/instrumentEditor/view/none/NoInstrumentEditorViewImpl.cpp
        ui/instrumentEditor/view/none/NoInstrumentEditorViewImpl.h
        ui/instrumentEditor/view/none/NoInstrumentEditorViewNoOp.cpp
        ui/instrumentEditor/view/none/NoInstrumentEditorViewNoOp.h
        ui/containerArranger/factory/ArrangementFactory.cpp
        ui/containerArranger/factory/ArrangementFactory.h
        ui/containerArranger/storage/ContainerArrangement.cpp
        ui/containerArranger/storage/ContainerArrangement.h
        ui/containerArranger/storage/DocumentArrangement.cpp
        ui/containerArranger/storage/DocumentArrangement.h
        ui/containerArranger/storage/LineContainerArrangement.cpp
        ui/containerArranger/storage/LineContainerArrangement.h
        ui/containerArranger/tab/Tab.cpp
        ui/containerArranger/tab/Tab.h
        ui/containerArranger/tab/TabWithIcon.cpp
        ui/containerArranger/tab/TabWithIcon.h
        ui/containerArranger/ArrangerController.cpp
        ui/containerArranger/ArrangerController.h
        ui/containerArranger/ArrangerControllerImpl.cpp
        ui/containerArranger/ArrangerControllerImpl.h
        ui/containerArranger/ArrangerView.cpp
        ui/containerArranger/ArrangerView.h
        ui/containerArranger/Container.cpp
        ui/containerArranger/Container.h
        ui/containerArranger/BoundedComponent.h
        ui/containerArranger/Dimension.cpp
        ui/containerArranger/Dimension.h
        ui/containerArranger/DummyPanel.cpp
        ui/containerArranger/DummyPanel.h
        ui/containerArranger/GlobalArrangementController.cpp
        ui/containerArranger/GlobalArrangementController.h
        ui/containerArranger/Handle.cpp
        ui/containerArranger/Handle.h
        ui/containerArranger/HandlesAndViews.cpp
        ui/containerArranger/HandlesAndViews.h
        ui/containerArranger/LineContainer.cpp
        ui/containerArranger/LineContainer.h
        ui/containerArranger/Panel.cpp
        ui/containerArranger/Panel.h
        ui/containerArranger/PanelSizes.h
        ui/containerArranger/PanelType.cpp
        ui/containerArranger/PanelType.h
        ui/containerArranger/SearchableView.h
        ui/containerArranger/StorageListener.h
        ui/containerArranger/PanelSearcher.h
        ui/containerArranger/ViewArranger.cpp
        ui/containerArranger/ViewArranger.h
        ui/expressionTableList/view/item/ExpressionListItem.cpp
        ui/expressionTableList/view/item/ExpressionListItem.h
        ui/expressionTableList/view/item/ExpressionListModel.cpp
        ui/expressionTableList/view/item/ExpressionListModel.h
        ui/expressionTableList/view/CreateNewExpressionView.cpp
        ui/expressionTableList/view/CreateNewExpressionView.h
        ui/expressionTableList/view/ExpressionTableListViewImpl.cpp
        ui/expressionTableList/view/ExpressionTableListViewImpl.h
        ui/expressionTableList/controller/ExpressionTableListControllerImpl.cpp
        ui/expressionTableList/controller/ExpressionTableListControllerImpl.h
        ui/expressionTableList/controller/ExpressionTemplate.cpp
        ui/expressionTableList/controller/ExpressionTemplate.h
        ui/expressionTableList/controller/SaveExpression.cpp
        ui/expressionTableList/controller/SaveExpression.h
        ui/expressionTableList/controller/LoadExpression.cpp
        ui/expressionTableList/controller/LoadExpression.h
        ui/expressionTableList/ExpressionTableListPanel.cpp
        ui/expressionTableList/ExpressionTableListPanel.h
        ui/instrumentEditor/controller/psg/BarDataCreator.cpp
        ui/instrumentEditor/controller/psg/BarDataCreator.h
        ui/instrumentEditor/controller/InstrumentEditorController.h
        ui/instrumentEditor/controller/psg/PsgInstrumentEditorControllerImpl.cpp
        ui/instrumentEditor/controller/psg/PsgInstrumentEditorControllerImpl.h
        ui/instrumentEditor/controller/psg/PsgInstrumentEditorControllerSpecificImpl.cpp
        ui/instrumentEditor/controller/psg/PsgInstrumentEditorControllerSpecificImpl.h
        ui/instrumentEditor/controller/psg/ValueInterpreter.cpp
        ui/instrumentEditor/controller/psg/ValueInterpreter.h
        ui/instrumentEditor/controller/psg/ViewedValueLimits.h
        ui/instrumentEditor/controller/psg/PsgInstrumentEditorControllerLogic.cpp
        ui/instrumentEditor/controller/psg/PsgInstrumentEditorControllerLogic.h
        ui/instrumentEditor/controller/psg/PsgInstrumentEditorContextualMenu.cpp
        ui/instrumentEditor/controller/psg/PsgInstrumentEditorContextualMenu.h
        ui/instrumentEditor/controller/psg/PsgQuickEditController.cpp
        ui/instrumentEditor/controller/psg/PsgQuickEditController.h
        ui/editorWithBars/view/component/Bar.cpp
        ui/editorWithBars/view/component/Bar.h
        ui/editorWithBars/view/component/BarArea.cpp
        ui/editorWithBars/view/component/BarArea.h
        ui/editorWithBars/view/component/BarAreaSize.h
        ui/editorWithBars/view/component/BarCaption.cpp
        ui/editorWithBars/view/component/BarCaption.h
        ui/editorWithBars/view/component/BarCaptionDisplayedData.h
        ui/editorWithBars/view/component/BarAndCaptionData.h
        ui/editorWithBars/view/component/BarData.cpp
        ui/editorWithBars/view/component/BarData.h
        ui/editorWithBars/view/component/CaptionedBar.cpp
        ui/editorWithBars/view/component/CaptionedBar.h
        ui/editorWithBars/view/component/LeftHeader.cpp
        ui/editorWithBars/view/component/LeftHeader.h
        ui/editorWithBars/view/component/LeftHeaderDisplayData.cpp
        ui/editorWithBars/view/component/LeftHeaderDisplayData.h
        ui/editorWithBars/view/component/Section.cpp
        ui/editorWithBars/view/component/Section.h
        ui/components/ViewPortInterceptKeys.cpp
        ui/components/ViewPortInterceptKeys.h
        ui/components/ViewPortWithHorizontalMouseWheel.cpp
        ui/components/ViewPortWithHorizontalMouseWheel.h
        ui/editorWithBars/view/AreaType.h
        ui/editorWithBars/view/BarEditorCommands.cpp
        ui/editorWithBars/view/BarEditorCommands.h
        ui/editorWithBars/view/manualEdit/BaseManualEditDialog.cpp
        ui/editorWithBars/view/manualEdit/BaseManualEditDialog.h
        ui/editorWithBars/view/manualEdit/EnvelopeManualEditDialog.cpp
        ui/editorWithBars/view/manualEdit/EnvelopeManualEditDialog.h
        ui/editorWithBars/view/manualEdit/PositiveManualEditDialog.cpp
        ui/editorWithBars/view/manualEdit/PositiveManualEditDialog.h
        ui/editorWithBars/view/manualEdit/RelativeManualEditDialog.cpp
        ui/editorWithBars/view/manualEdit/RelativeManualEditDialog.h
        ui/editorWithBars/view/manualEdit/SoundTypeManualEditDialog.cpp
        ui/editorWithBars/view/manualEdit/SoundTypeManualEditDialog.h
        ui/instrumentEditor/view/psg/PsgInstrumentEditorViewImpl.cpp
        ui/instrumentEditor/view/psg/PsgInstrumentEditorViewImpl.h
        ui/instrumentEditor/InstrumentEditorPanel.cpp
        ui/instrumentEditor/InstrumentEditorPanel.h
        ui/instrumentList/controller/operation/CreateNewInstrumentController.cpp
        ui/instrumentList/controller/operation/CreateNewInstrumentController.h
        ui/instrumentList/controller/operation/LoadInstrument.cpp
        ui/instrumentList/controller/operation/LoadInstrument.h
        ui/instrumentList/controller/operation/SaveInstrument.cpp
        ui/instrumentList/controller/operation/SaveInstrument.h
        ui/instrumentList/controller/InstrumentDataController.h
        ui/instrumentList/controller/InstrumentTableListControllerImpl.cpp
        ui/instrumentList/controller/InstrumentTableListControllerImpl.h
        ui/instrumentList/view/item/InstrumentListItem.cpp
        ui/instrumentList/view/item/InstrumentListItem.h
        ui/instrumentList/view/item/InstrumentListModel.cpp
        ui/instrumentList/view/item/InstrumentListModel.h
        ui/instrumentList/view/CreateNewInstrumentView.cpp
        ui/instrumentList/view/CreateNewInstrumentView.h
        ui/instrumentList/view/InstrumentTableListViewImpl.cpp
        ui/instrumentList/view/InstrumentTableListViewImpl.h
        ui/instrumentList/InstrumentListPanel.cpp
        ui/instrumentList/InstrumentListPanel.h
        ui/keyboard/Category.h
        ui/keyboard/CommandIds.h
        ui/keyboard/CommandManagerCreator.cpp
        ui/keyboard/CommandManagerCreator.h
        ui/keyboard/MainApplicationCommands.cpp
        ui/keyboard/MainApplicationCommands.h
        ui/keyboard/MainApplicationCommandTarget.cpp
        ui/keyboard/MainApplicationCommandTarget.h
        ui/keyboard/VirtualKeyboardCommands.cpp
        ui/keyboard/VirtualKeyboardCommands.h
        ui/keyboard/VirtualKeyboardLayout.cpp
        ui/keyboard/VirtualKeyboardLayout.h
        ui/keyboard/KeyCodes.h
        ui/linker/controller/LinkerController.cpp
        ui/linker/controller/LinkerController.h
        ui/linker/controller/LinkerControllerDelegate.cpp
        ui/linker/controller/LinkerControllerDelegate.h
        ui/linker/controller/LinkerControllerImpl.cpp
        ui/linker/controller/LinkerControllerImpl.h
        ui/linker/controller/LinkerControllerNoOp.cpp
        ui/linker/controller/LinkerControllerNoOp.h
        ui/linker/dialogs/EditMarkerDialog.cpp
        ui/linker/dialogs/EditMarkerDialog.h
        ui/linker/dialogs/EditPositionDialog.cpp
        ui/linker/dialogs/EditPositionDialog.h
        ui/linker/dialogs/EditPositionsDialog.cpp
        ui/linker/dialogs/EditPositionsDialog.h
        ui/linker/views/ItemsHolder.cpp
        ui/linker/views/ItemsHolder.h
        ui/linker/views/LinkerView.cpp
        ui/linker/views/LinkerView.h
        ui/linker/views/LinkerViewImpl.cpp
        ui/linker/views/LinkerViewImpl.h
        ui/linker/views/LinkerViewNoOp.cpp
        ui/linker/views/LinkerViewNoOp.h
        ui/linker/views/PatternItemView.cpp
        ui/linker/views/PatternItemView.h
        ui/linker/views/PlayLineView.cpp
        ui/linker/views/PlayLineView.h
        ui/linker/views/MarkerView.cpp
        ui/linker/views/MarkerView.h
        ui/linker/LinkerPanel.cpp
        ui/linker/LinkerPanel.h
        ui/linker/LinkerPanelAreaCommands.cpp
        ui/linker/LinkerPanelAreaCommands.h
        ui/lists/view/item/ListItem.cpp
        ui/lists/view/item/ListItem.h
        ui/lists/view/item/ListModel.h
        ui/lists/view/ListView.h
        ui/lists/view/ListViewImpl.cpp
        ui/lists/view/ListViewImpl.h
        ui/lists/view/ListViewListener.h
        ui/lists/view/ListViewNoOp.cpp
        ui/lists/view/ListViewNoOp.h
        ui/lists/controller/DataProvider.h
        ui/lists/controller/ListController.h
        ui/lists/controller/ListControllerImpl.cpp
        ui/lists/controller/ListControllerImpl.h
        ui/lists/ListCommands.cpp
        ui/lists/ListCommands.h
        ui/lists/OperationValidityProvider.h
        ui/lookAndFeel/serialization/StoredLookAndFeel.cpp
        ui/lookAndFeel/serialization/StoredLookAndFeel.h
        ui/lookAndFeel/serialization/XmlSerializer.cpp
        ui/lookAndFeel/serialization/XmlSerializer.h
        ui/lookAndFeel/CustomLookAndFeel.cpp
        ui/lookAndFeel/CustomLookAndFeel.h
        ui/lookAndFeel/LookAndFeelConstants.cpp
        ui/lookAndFeel/LookAndFeelConstants.h
        ui/lookAndFeel/LookAndFeelFactory.cpp
        ui/lookAndFeel/LookAndFeelFactory.h
        ui/lookAndFeel/ThemeColors.cpp
        ui/lookAndFeel/ThemeColors.h
        ui/lookAndFeel/theme/ThemeDefaultBuilder.cpp
        ui/lookAndFeel/theme/ThemeDefaultBuilder.h
        ui/lookAndFeel/theme/ThemeWhiteBuilder.cpp
        ui/lookAndFeel/theme/ThemeWhiteBuilder.h
        ui/lookAndFeel/theme/ThemeBlackAndWhiteBuilder.cpp
        ui/lookAndFeel/theme/ThemeBlackAndWhiteBuilder.h
        ui/lookAndFeel/theme/ThemeCrimsonBuilder.cpp
        ui/lookAndFeel/theme/ThemeCrimsonBuilder.h
        ui/lookAndFeel/theme/ThemeGreenBuilder.cpp
        ui/lookAndFeel/theme/ThemeGreenBuilder.h
        ui/lookAndFeel/theme/ThemeGrayBuilder.cpp
        ui/lookAndFeel/theme/ThemeGrayBuilder.h
        ui/mainView/CommandPerformer.h
        ui/mainView/MainComponent.cpp
        ui/mainView/MainComponent.h
        ui/mainView/MainDocumentWindow.cpp
        ui/mainView/MainDocumentWindow.h
        ui/mainView/operation/loadSong/LoadSong.cpp
        ui/mainView/operation/loadSong/LoadSong.h
        ui/mainView/operation/loadSong/SongInfoDialog.cpp
        ui/mainView/operation/loadSong/SongInfoDialog.h
        ui/mainView/operation/SaveSong.cpp
        ui/mainView/operation/SaveSong.h
        ui/mainView/operation/CheckIfSongSavedAndSave.cpp
        ui/mainView/operation/CheckIfSongSavedAndSave.h
        ui/meters/controller/MetersController.h
        ui/meters/controller/MetersControllerImpl.cpp
        ui/meters/controller/MetersControllerImpl.h
        ui/meters/ChannelView.cpp
        ui/meters/ChannelView.h
        ui/meters/MetersArranger.cpp
        ui/meters/MetersArranger.h
        ui/meters/MetersPanel.cpp
        ui/meters/MetersPanel.h
        ui/panelFactory/PanelFactory.cpp
        ui/panelFactory/PanelFactory.h
        ui/newSong/NewSongDialog.cpp
        ui/newSong/NewSongDialog.h
        ui/newSong/NewSong.cpp
        ui/newSong/NewSong.h
        ui/patternViewer/controller/PatternViewerController.h
        ui/patternViewer/controller/PatternViewerControllerImpl.cpp
        ui/patternViewer/controller/PatternViewerControllerImpl.h
        ui/patternViewer/controller/PatternViewerControllerNoOp.cpp
        ui/patternViewer/controller/PatternViewerControllerNoOp.h
        ui/patternViewer/controller/Selection.cpp
        ui/patternViewer/controller/Selection.h
        ui/patternViewer/controller/dataItem/EffectDigit.cpp
        ui/patternViewer/controller/dataItem/EffectDigit.h
        ui/patternViewer/controller/dataItem/EffectNumber.cpp
        ui/patternViewer/controller/dataItem/EffectNumber.h
        ui/patternViewer/controller/dataItem/Digit.cpp
        ui/patternViewer/controller/dataItem/Digit.h
        ui/patternViewer/controller/CursorManager.cpp
        ui/patternViewer/controller/CursorManager.h
        ui/patternViewer/controller/ActionManager.cpp
        ui/patternViewer/controller/ActionManager.h
        ui/patternViewer/controller/CaptureFlags.cpp
        ui/patternViewer/controller/CaptureFlags.h
        ui/patternViewer/controller/PasteData.cpp
        ui/patternViewer/controller/PasteData.h
        ui/patternViewer/controller/toolbox/ToolboxController.h
        ui/patternViewer/controller/toolbox/ToolboxControllerImpl.cpp
        ui/patternViewer/controller/toolbox/ToolboxControllerImpl.h
        ui/patternViewer/controller/toolbox/ToolboxControllerNoOp.cpp
        ui/patternViewer/controller/toolbox/ToolboxControllerNoOp.h
        ui/components/dialogs/SetValueDialog.cpp
        ui/components/dialogs/SetValueDialog.h
        ui/patternViewer/view/cells/cell/CellCursorRank.h
        ui/patternViewer/view/cells/cell/CellView.cpp
        ui/patternViewer/view/cells/cell/CellView.h
        ui/patternViewer/view/cells/simpleCell/SimpleCellView.cpp
        ui/patternViewer/view/cells/simpleCell/SimpleCellView.h
        ui/patternViewer/view/cells/simpleCell/SpecialCellCursorRank.h
        ui/patternViewer/view/cells/AbstractCellView.cpp
        ui/patternViewer/view/cells/AbstractCellView.h
        ui/patternViewer/view/cells/CellColors.cpp
        ui/patternViewer/view/cells/CellColors.h
        ui/patternViewer/view/tracks/lineTrack/LineHeader.cpp
        ui/patternViewer/view/tracks/lineTrack/LineHeader.h
        ui/patternViewer/view/tracks/lineTrack/LineTrackView.h
        ui/patternViewer/view/tracks/lineTrack/LineTrackViewImpl.cpp
        ui/patternViewer/view/tracks/lineTrack/LineTrackViewImpl.h
        ui/patternViewer/view/tracks/specialTrack/eventTrack/EventTrackHeader.cpp
        ui/patternViewer/view/tracks/specialTrack/eventTrack/EventTrackHeader.h
        ui/patternViewer/view/tracks/specialTrack/eventTrack/EventTrackView.cpp
        ui/patternViewer/view/tracks/specialTrack/eventTrack/EventTrackView.h
        ui/patternViewer/view/tracks/specialTrack/speedTrack/SpeedTrackHeader.cpp
        ui/patternViewer/view/tracks/specialTrack/speedTrack/SpeedTrackHeader.h
        ui/patternViewer/view/tracks/specialTrack/speedTrack/SpeedTrackView.cpp
        ui/patternViewer/view/tracks/specialTrack/speedTrack/SpeedTrackView.h
        ui/patternViewer/view/tracks/specialTrack/SpecialTrackHeader.cpp
        ui/patternViewer/view/tracks/specialTrack/SpecialTrackHeader.h
        ui/patternViewer/view/tracks/specialTrack/SpecialTrackView.cpp
        ui/patternViewer/view/tracks/specialTrack/SpecialTrackView.h
        ui/patternViewer/view/tracks/track/TrackColors.cpp
        ui/patternViewer/view/tracks/track/TrackColors.h
        ui/patternViewer/view/tracks/track/TrackHeader.cpp
        ui/patternViewer/view/tracks/track/TrackHeader.h
        ui/patternViewer/view/tracks/track/TrackView.h
        ui/patternViewer/view/tracks/track/TrackViewImpl.cpp
        ui/patternViewer/view/tracks/track/TrackViewImpl.h
        ui/patternViewer/view/tracks/AbstractTrackView.cpp
        ui/patternViewer/view/tracks/AbstractTrackView.h
        ui/patternViewer/view/tracks/BaseHeaderView.cpp
        ui/patternViewer/view/tracks/BaseHeaderView.h
        ui/patternViewer/view/tracks/TrackType.h
        ui/patternViewer/view/tracks/TrackViewMetadata.cpp
        ui/patternViewer/view/tracks/TrackViewMetadata.h
        ui/patternViewer/view/PatternViewerView.h
        ui/patternViewer/view/PatternViewerViewImpl.cpp
        ui/patternViewer/view/PatternViewerViewImpl.h
        ui/patternViewer/view/PatternViewerViewNoOp.cpp
        ui/patternViewer/view/PatternViewerViewNoOp.h
        ui/patternViewer/CursorLocation.cpp
        ui/patternViewer/CursorLocation.h
        ui/patternViewer/view/PatternViewerCommands.cpp
        ui/patternViewer/view/PatternViewerCommands.h
        ui/patternViewer/view/dialog/GenerateArpeggioDialog.cpp
        ui/patternViewer/view/dialog/GenerateArpeggioDialog.h
        ui/patternViewer/view/dialog/GenerateInstrumentDialog.cpp
        ui/patternViewer/view/dialog/GenerateInstrumentDialog.h
        ui/patternViewer/view/dialog/LinkDialog.cpp
        ui/patternViewer/view/dialog/LinkDialog.h
        ui/patternViewer/view/dialog/SpecialLinkDialog.cpp
        ui/patternViewer/view/dialog/SpecialLinkDialog.h
        ui/patternViewer/view/dialog/item/GotoItem.cpp
        ui/patternViewer/view/dialog/item/GotoItem.h
        ui/patternViewer/view/dialog/item/SpecialGotoItem.cpp
        ui/patternViewer/view/dialog/item/SpecialGotoItem.h
        ui/patternViewer/view/dialog/item/LinkHeaderItem.cpp
        ui/patternViewer/view/dialog/item/LinkHeaderItem.h
        ui/patternViewer/view/toolbox/Toolbox.cpp
        ui/patternViewer/view/toolbox/Toolbox.h
        ui/patternViewer/PatternViewerPanel.cpp
        ui/patternViewer/PatternViewerPanel.h
        ui/pitchTableEditor/PitchTableEditorPanel.cpp
        ui/pitchTableEditor/PitchTableEditorPanel.h
        ui/pitchTableEditor/controller/PitchTableEditorControllerSpecificImpl.cpp
        ui/pitchTableEditor/controller/PitchTableEditorControllerSpecificImpl.h
        ui/pitchTableEditor/controller/PitchTableEditorControllerImpl.cpp
        ui/pitchTableEditor/controller/PitchTableEditorControllerImpl.h
        ui/pitchTableEditor/controller/PitchBarCreator.cpp
        ui/pitchTableEditor/controller/PitchBarCreator.h
        ui/pitchTableEditor/view/PitchTableEditorViewImpl.cpp
        ui/pitchTableEditor/view/PitchTableEditorViewImpl.h
        ui/pitchTableList/controller/PitchTableListController.cpp
        ui/pitchTableList/controller/PitchTableListController.h
        ui/pitchTableList/PitchTableListPanel.cpp
        ui/pitchTableList/PitchTableListPanel.h
        ui/setup/audioInterfaceSetup/AudioInterfaceSetup.cpp
        ui/setup/audioInterfaceSetup/AudioInterfaceSetup.h
        ui/setup/patternViewer/PatternViewerSetupDialog.cpp
        ui/setup/patternViewer/PatternViewerSetupDialog.h
        ui/setup/serial/SerialSetupDialog.cpp
        ui/setup/serial/SerialSetupDialog.h
        ui/setup/serial/TestTask.cpp
        ui/setup/serial/TestTask.h
        ui/setup/general/GeneralSetupDialog.cpp
        ui/setup/general/GeneralSetupDialog.h
        ui/setup/themeEditor/ColorItem.cpp
        ui/setup/themeEditor/ColorItem.h
        ui/setup/themeEditor/ColorSwatch.cpp
        ui/setup/themeEditor/ColorSwatch.h
        ui/setup/themeEditor/HeaderItem.cpp
        ui/setup/themeEditor/HeaderItem.h
        ui/setup/themeEditor/ThemeEditor.cpp
        ui/setup/themeEditor/ThemeEditor.h
        ui/setup/sourceProfile/SourceProfileDialog.h
        ui/setup/sourceProfile/SourceProfileDialog.cpp
        ui/setup/sourceProfile/StoredSourceProfile.cpp
        ui/setup/sourceProfile/StoredSourceProfile.h
        ui/setup/Setup.cpp
        ui/setup/Setup.h
        ui/setup/keyboardMapping/SetupKeyboardMappingDialog.cpp
        ui/setup/keyboardMapping/SetupKeyboardMappingDialog.h
        ui/setup/keyboardMapping/KeyboardMappingSetter.cpp
        ui/setup/keyboardMapping/KeyboardMappingSetter.h
        ui/setup/output/OutputDialog.cpp
        ui/setup/output/OutputDialog.h
        ui/setup/output/OutputMixGroup.cpp
        ui/setup/output/OutputMixGroup.h
        ui/testArea/view/TestAreaCommands.cpp
        ui/testArea/view/TestAreaCommands.h
        ui/testArea/TestAreaPanel.cpp
        ui/testArea/TestAreaPanel.h
        ui/testArea/controller/TestAreaController.h
        ui/testArea/controller/TestAreaControllerImpl.cpp
        ui/testArea/controller/TestAreaControllerImpl.h
        ui/testArea/view/TestAreaView.h
        ui/testArea/view/TestAreaViewImpl.cpp
        ui/testArea/view/TestAreaViewImpl.h
        ui/testArea/view/TestAreaViewNoOp.cpp
        ui/testArea/view/TestAreaViewNoOp.h
        ui/testArea/view/keyboard/KeyView.cpp
        ui/testArea/view/keyboard/KeyView.h
        ui/testArea/view/keyboard/KeyboardView.cpp
        ui/testArea/view/keyboard/KeyboardView.h
        ui/testArea/view/EditChannelsDialog.cpp
        ui/testArea/view/EditChannelsDialog.h
        ui/toolbar/app/AppMenuBarModel.cpp
        ui/toolbar/app/AppMenuBarModel.h
        ui/toolbar/main/controller/MainToolbarController.h
        ui/toolbar/main/controller/MainToolbarControllerImpl.cpp
        ui/toolbar/main/controller/MainToolbarControllerImpl.h
        ui/toolbar/main/view/MainToolbarView.h
        ui/toolbar/main/view/MainToolbarViewImpl.cpp
        ui/toolbar/main/view/MainToolbarViewImpl.h
        ui/toolbar/main/view/MainToolbarViewNoOp.cpp
        ui/toolbar/main/view/MainToolbarViewNoOp.h
        ui/utils/zippedImages/ZippedImages.cpp
        ui/utils/zippedImages/ZippedImages.h
        ui/utils/dragnDrop/DragAndDropHelper.cpp
        ui/utils/dragnDrop/DragAndDropHelper.h
        ui/utils/Clipboard.cpp
        ui/utils/Clipboard.h
        ui/utils/ComboBoxItem.cpp
        ui/utils/ComboBoxItem.h
        ui/utils/KeyboardFocusTraverserCustom.cpp
        ui/utils/KeyboardFocusTraverserCustom.h
        ui/utils/KeysUtil.cpp
        ui/utils/KeysUtil.h
        ui/utils/LinearSelection.cpp
        ui/utils/LinearSelection.h
        ui/utils/ListItemListener.h
        ui/utils/MouseChanger.h
        ui/utils/Orientation.h
        ui/utils/ParentViewLifeCycleAware.h
        ui/utils/SelectionInList.cpp
        ui/utils/SelectionInList.h
        ui/utils/TargetCommands.cpp
        ui/utils/TargetCommands.h
        ui/utils/TextEditorUtil.cpp
        ui/utils/TextEditorUtil.h
        ui/utils/TextUtil.cpp
        ui/utils/TextUtil.h
        ui/utils/ViewportUtil.cpp
        ui/utils/ViewportUtil.h
        ui/utils/backgroundOperation/BackgroundOperation.h
        ui/utils/backgroundOperation/BackgroundOperationWithDialog.h
        ui/utils/backgroundTask/BackgroundTask.h
        ui/utils/backgroundTask/BackgroundTaskWithProgress.h
        utils/task/Task.h
        ui/import/midi/MidiImportPanel.h
        ui/import/midi/MidiImportPanel.cpp
        ui/import/mod/ModImportPanel.cpp
        ui/import/mod/ModImportPanel.h
        ui/import/sample/LoadSampleTask.cpp
        ui/import/sample/LoadSampleTask.h
        ui/import/ImportPanel.h
        ui/import/common/MixChannelsPanel.h
        ui/import/common/MixChannelsPanel.cpp
        ui/import/common/MixChannelsOverview.h
        ui/import/common/MixChannelsOverview.cpp
        ui/songProperties/SongProperties.cpp
        ui/songProperties/SongProperties.h
        ui/songProperties/SongPropertiesDialog.cpp
        ui/songProperties/SongPropertiesDialog.h
        ui/subsongProperties/EditPsgDialog.cpp
        ui/subsongProperties/EditPsgDialog.h
        ui/subsongProperties/SubsongProperties.cpp
        ui/subsongProperties/SubsongProperties.h
        ui/subsongProperties/SubsongPropertiesDialog.cpp
        ui/subsongProperties/SubsongPropertiesDialog.h
        ui/subsongProperties/PsgView.cpp
        ui/subsongProperties/PsgView.h
        business/model/Properties.cpp
        business/model/Properties.h
        ui/splash/Splash.cpp
        ui/splash/Splash.h
        ui/splash/SplashKeyboard.cpp
        ui/splash/SplashKeyboard.h
        ui/splash/SplashTips.cpp
        ui/splash/SplashTips.h
        ui/splash/SplashDialog.cpp
        ui/splash/SplashDialog.h
        ui/splash/tips/Tip.cpp
        ui/splash/tips/Tip.h
        ui/splash/tips/TipsController.cpp
        ui/splash/tips/TipsController.h
        ui/splash/tips/Tips.cpp
        ui/splash/tips/Tips.h
        ui/tools/streamedMusicAnalyzer/StreamedMusicAnalyzer.cpp
        ui/tools/streamedMusicAnalyzer/StreamedMusicAnalyzer.h
        ui/tools/streamedMusicAnalyzer/InstrumentStreamExporter.cpp
        ui/tools/streamedMusicAnalyzer/InstrumentStreamExporter.h
        ui/tools/instrumentOptimizer/InstrumentOptimizerDialog.cpp
        ui/tools/instrumentOptimizer/InstrumentOptimizerDialog.h
        export/at3/SongExporter.cpp
        export/at3/SongExporter.h
        export/at3/SongNodes.cpp
        export/at3/SongNodes.h
        export/akg/AkgExporter.cpp
        export/akg/AkgExporter.h
        export/akg/process/AkgPattern.cpp
        export/akg/process/AkgPattern.h
        export/akg/process/AkgPatternItem.cpp
        export/akg/process/AkgPatternItem.h
        export/akg/process/AkgSubsongExporter.cpp
        export/akg/process/AkgSubsongExporter.h
        export/akg/process/EncodedEffect.h
        export/akg/process/EncodedEffectBlock.cpp
        export/akg/process/EncodedEffectBlock.h
        export/akg/process/LinkerBlock.cpp
        export/akg/process/LinkerBlock.h
        export/akg/process/LinkerBlockContainer.cpp
        export/akg/process/LinkerBlockContainer.h
        export/akg/process/PsgInstrumentCellEncoder.cpp
        export/akg/process/PsgInstrumentCellEncoder.h
        export/aky/AkyExporter.cpp
        export/aky/AkyExporter.h
        export/aky/process/RegisterBlockLabelProvider.h
        export/aky/process/AkyConstants.h
        export/aky/process/AkyPattern.cpp
        export/aky/process/AkyPattern.h
        export/aky/process/AkyPatterns.cpp
        export/aky/process/AkyPatterns.h
        export/aky/process/AkyTrack.cpp
        export/aky/process/AkyTrack.h
        export/aky/process/ChannelData.cpp
        export/aky/process/ChannelData.h
        export/aky/process/EncodedLine.cpp
        export/aky/process/EncodedLine.h
        export/aky/process/EncodedLine.cpp
        export/aky/process/EncodedLine.h
        export/aky/process/EncodedSequence.cpp
        export/aky/process/EncodedSequence.h
        export/aky/process/RegisterBlock.cpp
        export/aky/process/RegisterBlock.h
        export/aky/process/RegisterBlockEncoder.cpp
        export/aky/process/RegisterBlockEncoder.h
        export/aky/process/RegisterBlockLabelProvider.h
        export/aky/process/RegisterBlockOptimizer.cpp
        export/aky/process/RegisterBlockOptimizer.h
        export/aky/process/RegisterBlockPool.cpp
        export/aky/process/RegisterBlockPool.h
        export/akm/AkmExporter.cpp
        export/akm/AkmExporter.h
        export/akm/process/AkmSequenceEncoder.cpp
        export/akm/process/AkmSequenceEncoder.h
        export/akm/process/LinkerEncoder.cpp
        export/akm/process/LinkerEncoder.h
        export/akm/process/AkmSubsongEncoder.cpp
        export/akm/process/AkmSubsongEncoder.h
        export/akm/process/AkmInstrumentEncoder.cpp
        export/akm/process/AkmInstrumentEncoder.h
        export/akm/process/AkmSongEncoder.cpp
        export/akm/process/AkmSongEncoder.h
        export/fap/FapExporter.cpp
        export/fap/FapExporter.h
        export/events/EventsExporter.cpp
        export/events/EventsExporter.h
        export/model/EncodedDataFlag.cpp
        export/model/EncodedDataFlag.h
        export/raw/RawExporter.cpp
        export/raw/RawExporter.h
        export/rawLinear/RawLinearExport.cpp
        export/rawLinear/RawLinearExport.h
        export/sfx/SfxExporter.cpp
        export/sfx/SfxExporter.h
        export/txt/SongTxtExporter.cpp
        export/txt/SongTxtExporter.h
        export/ym/YmExporter.cpp
        export/ym/YmExporter.h
        export/ym/YmStreamEncoder.cpp
        export/ym/YmStreamEncoder.h
        export/ym/YmStreamEncoderInterleaved.cpp
        export/ym/YmStreamEncoderInterleaved.h
        export/ym/YmStreamEncoderNonInterleaved.cpp
        export/ym/YmStreamEncoderNonInterleaved.h
        export/vgm/VgmExporter.cpp
        export/vgm/VgmExporter.h
        export/wav/DcOffsetCalculator.cpp
        export/wav/DcOffsetCalculator.h
        export/wav/SongWavExporter.cpp
        export/wav/SongWavExporter.h
        export/samples/SampleCodeGenerator.h
        export/samples/SampleCodeGenerator.cpp
        export/samples/SampleCodeGenerator.h
        export/samples/SampleEncoder.cpp
        export/samples/SampleEncoder.h
        export/samples/SampleEncoderFlags.cpp
        export/samples/SampleEncoderFlags.h
        export/samples/SampleExporter.cpp
        export/samples/SampleExporter.h
        export/ExportConfiguration.cpp
        export/ExportConfiguration.h
        export/SongExportResult.cpp
        export/SongExportResult.h
        utils/message/MessageWithOneParameter.h
        utils/CircularBuffer.h
        utils/CollectionUtil.h
        utils/Counter.cpp
        utils/Counter.h
        utils/CustomUndoManager.cpp
        utils/CustomUndoManager.h
        utils/EnumHasher.h
        utils/FileExtensions.cpp
        utils/FileExtensions.h
        utils/FileUtil.cpp
        utils/FileUtil.h
        utils/FpFloat.cpp
        utils/FpFloat.h
        utils/MainControllerNoOp.cpp
        utils/MainControllerNoOp.h
        utils/NoteUtil.cpp
        utils/NoteUtil.h
        utils/NumberUtil.cpp
        utils/NumberUtil.h
        utils/BitNumber.cpp
        utils/BitNumber.h
        utils/Observers.h
        utils/OptionalValue.h
        utils/PsgValues.cpp
        utils/PsgValues.h
        utils/Remapper.h
        utils/SetUtil.h
        utils/SimpleId.cpp
        utils/SimpleId.h
        utils/Id.h
        utils/StringUtil.cpp
        utils/StringUtil.h
        utils/TotalAndWeight.cpp
        utils/TotalAndWeight.h
        utils/MapUtil.h
        utils/MemoryBlockUtil.cpp
        utils/MemoryBlockUtil.h
        utils/WithParent.h
        utils/XmlHelper.cpp
        utils/XmlHelper.h
        utils/ZipHelper.cpp
        utils/ZipHelper.h
        export/sourceGenerator/SourceGenerator.h
        export/sourceGenerator/SourceGenerator.cpp
        export/sourceGenerator/SourceGeneratorConfiguration.h
        export/sourceGenerator/SourceGeneratorConfiguration.cpp
        export/sourceGenerator/DisarkSourceGenerator.h
        export/sourceGenerator/DisarkSourceGenerator.cpp
        export/sourceGenerator/SourceGeneratorException.h
        export/playerConfiguration/PlayerConfigurationExporter.cpp
        export/playerConfiguration/PlayerConfigurationExporter.h
        export/playerConfiguration/PlayerConfiguration.cpp
        export/playerConfiguration/PlayerConfiguration.h
        export/playerConfiguration/PlayerConfigurationFlag.h
)

# `target_compile_definitions` adds some preprocessor definitions to the target.
# See https://github.com/juce-framework/JUCE/blob/master/docs/Linux%20Dependencies.md
target_compile_definitions(${TargetName}
        PRIVATE
        # JUCE_WEB_BROWSER and JUCE_USE_CURL would be on by default, but you might not need them.
        JUCE_WEB_BROWSER=0  # If you remove this, add `NEEDS_WEB_BROWSER TRUE` to the `juce_add_gui_app` call
        JUCE_USE_CURL=0     # If you remove this, add `NEEDS_CURL TRUE` to the `juce_add_gui_app` call
        JUCE_MODULE_AVAILABLE_juce_opengl=1
        JUCE_PLUGINHOST_LADSPA=0
        JUCE_USE_XCURSOR=0
        DONT_SET_USING_JUCE_NAMESPACE=1
        JUCE_DONT_DECLARE_PROJECTINFO=1
        JUCE_MODAL_LOOPS_PERMITTED=1        # We don't use Android, so no need to change the already existing working code.
        JUCE_APPLICATION_NAME_STRING="$<TARGET_PROPERTY:MainSoftware,JUCE_PRODUCT_NAME>"
        JUCE_APPLICATION_VERSION_STRING="$<TARGET_PROPERTY:MainSoftware,JUCE_VERSION>"
        JUCE_SILENCE_XCODE_15_LINKER_WARNING=1
)

# This allows the generated file by CMake (such as projectinfo.h) to be seen by the sources.
target_include_directories(${TargetName}
        PRIVATE
        ${PROJECT_BINARY_BIN}
)

target_link_libraries(${TargetName}
        PRIVATE
        BinaryResourcesMain
        ThirdPartyFap
        ThirdPartyLzh
        ThirdPartyRasm
        ThirdPartySerial
        juce::juce_gui_basics
        juce::juce_gui_extra
        juce::juce_opengl
        juce::juce_audio_basics
        juce::juce_audio_devices
        juce::juce_audio_formats
        juce::juce_audio_processors
        juce::juce_audio_utils
        juce::juce_data_structures
        juce::juce_events
        PUBLIC
        juce::juce_recommended_config_flags
        juce::juce_recommended_lto_flags
        juce::juce_recommended_warning_flags
)

if(CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
    target_link_options(${TargetName}
            PRIVATE
            -Wl,-ld_classic     # To avoid Linker warnings. See https://forum.juce.com/t/vst-au-builds-fail-after-upgrading-to-xcode-15/57936/64?u=jnv
    )
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
    target_link_options(${TargetName}
            PRIVATE
            -no-pie             # To have mime type application/x-executable instead of application/x-sharedlib, and thus allowing direct launch.
    )
endif()