Skip to content

Commit

Permalink
Merge pull request #12913 from fwcd/portmidi-flag
Browse files Browse the repository at this point in the history
Build: Add `PORTMIDI` flag for compiling with(out) PortMidi
  • Loading branch information
daschuer committed Mar 4, 2024
2 parents 74d02e4 + 59d6673 commit 52c8c0e
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 6 deletions.
16 changes: 11 additions & 5 deletions CMakeLists.txt
Expand Up @@ -729,8 +729,6 @@ add_library(mixxx-lib STATIC EXCLUDE_FROM_ALL
src/controllers/midi/midimessage.cpp
src/controllers/midi/midioutputhandler.cpp
src/controllers/midi/midiutils.cpp
src/controllers/midi/portmidicontroller.cpp
src/controllers/midi/portmidienumerator.cpp
src/controllers/scripting/colormapper.cpp
src/controllers/scripting/colormapperjsproxy.cpp
src/controllers/scripting/controllerscriptenginebase.cpp
Expand Down Expand Up @@ -2578,9 +2576,17 @@ target_include_directories(mixxx-lib SYSTEM PUBLIC lib/portaudio)
target_link_libraries(mixxx-lib PRIVATE PortAudioRingBuffer)

# PortMidi
find_package(PortMidi REQUIRED)
target_include_directories(mixxx-lib SYSTEM PUBLIC ${PortMidi_INCLUDE_DIRS})
target_link_libraries(mixxx-lib PRIVATE ${PortMidi_LIBRARIES})
option(PORTMIDI "Enable the PortMidi backend for MIDI controllers" ON)
if(PORTMIDI)
target_compile_definitions(mixxx-lib PUBLIC __PORTMIDI__)
find_package(PortMidi REQUIRED)
target_include_directories(mixxx-lib SYSTEM PUBLIC ${PortMidi_INCLUDE_DIRS})
target_link_libraries(mixxx-lib PRIVATE ${PortMidi_LIBRARIES})
target_sources(mixxx-lib PRIVATE
src/controllers/midi/portmidicontroller.cpp
src/controllers/midi/portmidienumerator.cpp
)
endif()

# Protobuf
add_subdirectory(src/proto)
Expand Down
8 changes: 7 additions & 1 deletion src/controllers/controllermanager.cpp
Expand Up @@ -7,12 +7,16 @@
#include "controllers/controllerlearningeventfilter.h"
#include "controllers/controllermappinginfoenumerator.h"
#include "controllers/defs_controllers.h"
#include "controllers/midi/portmidienumerator.h"
#include "moc_controllermanager.cpp"
#include "util/cmdlineargs.h"
#include "util/compatibility/qmutex.h"
#include "util/duration.h"
#include "util/time.h"

#ifdef __PORTMIDI__
#include "controllers/midi/portmidienumerator.h"
#endif

#ifdef __HSS1394__
#include "controllers/midi/hss1394enumerator.h"
#endif
Expand Down Expand Up @@ -148,7 +152,9 @@ void ControllerManager::slotInitialize() {

// Instantiate all enumerators. Enumerators can take a long time to
// construct since they interact with host MIDI APIs.
#ifdef __PORTMIDI__
m_enumerators.append(new PortMidiEnumerator());
#endif
#ifdef __HSS1394__
m_enumerators.append(new Hss1394Enumerator(m_pConfig));
#endif
Expand Down
1 change: 1 addition & 0 deletions src/controllers/controllermanager.h
Expand Up @@ -5,6 +5,7 @@
#include <QTimer>
#include <memory>

#include "controllers/controllerenumerator.h"
#include "preferences/usersettings.h"
#include "util/duration.h"

Expand Down

0 comments on commit 52c8c0e

Please sign in to comment.