11project (sp_midi)
22cmake_minimum_required (VERSION 3.0)
33
4+ option (USE_SYSTEM_RTMIDI "Use system RtMidi library instead of built-in library (Linux only)" OFF )
5+
46set (CMAKE_VERBOSE_MAKEFILE ON )
57
68if (NOT MSVC )
@@ -25,11 +27,14 @@ endif(APPLE)
2527set (CMAKE_POSITION_INDEPENDENT_CODE ON )
2628
2729if (WIN32 )
28- include_directories ( ${PROJECT_SOURCE_DIR} /external_libs/spdlog-1.8.2/include ${PROJECT_SOURCE_DIR} /external_libs/concurrentqueue ${PROJECT_SOURCE_DIR} /external_libs)
30+ include_directories (${PROJECT_SOURCE_DIR} /external_libs/spdlog-1.8.2/include ${PROJECT_SOURCE_DIR} /external_libs/concurrentqueue ${PROJECT_SOURCE_DIR} /external_libs)
2931elseif (APPLE )
30- include_directories ( ${PROJECT_SOURCE_DIR} /external_libs/spdlog-1.8.2/include ${PROJECT_SOURCE_DIR} /external_libs/concurrentqueue ${PROJECT_SOURCE_DIR} /external_libs)
32+ include_directories (${PROJECT_SOURCE_DIR} /external_libs/spdlog-1.8.2/include ${PROJECT_SOURCE_DIR} /external_libs/concurrentqueue ${PROJECT_SOURCE_DIR} /external_libs)
3133else ()
32- include_directories (${PROJECT_SOURCE_DIR} /external_libs/spdlog-1.8.2/include ${PROJECT_SOURCE_DIR} /external_libs/concurrentqueue)
34+ include_directories (${PROJECT_SOURCE_DIR} /external_libs/spdlog-1.8.2/include ${PROJECT_SOURCE_DIR} /external_libs/concurrentqueue)
35+ if (NOT USE_SYSTEM_RTMIDI)
36+ include_directories (${PROJECT_SOURCE_DIR} /external_libs)
37+ endif (NOT USE_SYSTEM_RTMIDI)
3338endif ()
3439
3540set (sp_midi_sources
@@ -44,12 +49,15 @@ set(sp_midi_sources
4449if (MSVC )
4550 list (APPEND sp_midi_sources ${PROJECT_SOURCE_DIR} /external_libs/rtmidi/RtMidi.cpp)
4651 add_definitions (-D__WINDOWS_MM__)
47- endif (MSVC )
48-
49- if (APPLE )
52+ elseif (APPLE )
5053 list (APPEND sp_midi_sources ${PROJECT_SOURCE_DIR} /external_libs/rtmidi/RtMidi.cpp)
5154 add_definitions (-D__MACOSX_CORE__)
52- endif (APPLE )
55+ elseif (UNIX )
56+ if (NOT USE_SYSTEM_RTMIDI)
57+ list (APPEND sp_midi_sources ${PROJECT_SOURCE_DIR} /external_libs/rtmidi/RtMidi.cpp)
58+ add_definitions (-D__LINUX_ALSA__)
59+ endif (NOT USE_SYSTEM_RTMIDI)
60+ endif (MSVC )
5361
5462# sp_midi_sources
5563add_library (libsp_midi SHARED ${sp_midi_sources} )
@@ -78,6 +86,9 @@ elseif(APPLE)
7886elseif (UNIX )
7987 add_definitions (-DLINUX=1 -DNDEBUG=1)
8088 include_directories (${ERLANG_INCLUDE_PATH} )
81- target_link_libraries (libsp_midi pthread ${ALSA_LIBRARY} dl rtmidi)
89+ target_link_libraries (libsp_midi pthread ${ALSA_LIBRARY} dl)
90+ if (USE_SYSTEM_RTMIDI)
91+ target_link_libraries (libsp_midi rtmidi)
92+ endif (USE_SYSTEM_RTMIDI)
8293endif (MSVC )
8394
0 commit comments