aboutsummaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt93
1 files changed, 53 insertions, 40 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0bf7719..21fd643 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -56,27 +56,29 @@ function(set_legacy_standard destTarget)
endfunction()
#===========================================================================================
-option(WITH_MIDIPLAY "Build also demo MIDI player" OFF)
-option(MIDIPLAY_WAVE_ONLY "Build Demo MIDI player without support of real time playing. It will output into WAV only." OFF)
-option(WITH_ADLMIDI2 "Build also classic ADLMIDI player [EXPERIMENTAL]" OFF)
-option(WITH_VLC_PLUGIN "Build also a plugin for VLC Media Player" OFF)
-option(WITH_OLD_UTILS "Build also old utilities" OFF)
-option(WITH_EMBEDDED_BANKS "Use embedded banks" ON)
-option(WITH_GENADLDATA "Build and run full rebuild of embedded banks cache" OFF)
-option(WITH_GENADLDATA_COMMENTS "Enable comments in generated ADLDATA cache file" OFF)
-option(USE_DOSBOX_EMULATOR "Use DosBox 0.74 OPL3 emulator (semi-accurate, suggested for slow or mobile platforms)" ON)
-option(USE_NUKED_EMULATOR "Use Nuked OPL3 emulator (most accurate, powerful)" ON)
+option(libADLMIDI_STATIC "Build static library of libADLMIDI" ON)
+option(libADLMIDI_SHARED "Build shared library of libADLMIDI" OFF)
+
option(WITH_CPP_EXTRAS "Build with support for C++ extras (features are can be found in 'adlmidi.hpp' header)" OFF)
option(WITH_MIDI_SEQUENCER "Build with embedded MIDI sequencer. Disable this if you want use library in real-time MIDI drivers or plugins.)" ON)
+option(WITH_EMBEDDED_BANKS "Use embedded banks" ON)
+option(WITH_HQ_RESAMPLER "Build with support for high quality resampling" OFF)
option(WITH_MUS_SUPPORT "Build with support for DMX MUS files)" ON)
option(WITH_XMI_SUPPORT "Build with support for AIL XMI files)" ON)
-option(WITH_HQ_RESAMPLER "Build with support for high quality resampling" OFF)
+option(USE_DOSBOX_EMULATOR "Use DosBox 0.74 OPL3 emulator (semi-accurate, suggested for slow or mobile platforms)" ON)
+option(USE_NUKED_EMULATOR "Use Nuked OPL3 emulator (most accurate, powerful)" ON)
-option(libADLMIDI_STATIC "Build static library of libADLMIDI" ON)
-option(libADLMIDI_SHARED "Build shared library of libADLMIDI" OFF)
+option(WITH_GENADLDATA "Build and run full rebuild of embedded banks cache" OFF)
+option(WITH_GENADLDATA_COMMENTS "Enable comments in generated ADLDATA cache file" OFF)
+option(WITH_MIDIPLAY "Build also demo MIDI player" OFF)
+option(MIDIPLAY_WAVE_ONLY "Build Demo MIDI player without support of real time playing. It will output into WAV only." OFF)
+option(WITH_ADLMIDI2 "Build also classic ADLMIDI player [EXPERIMENTAL]" OFF)
+option(WITH_VLC_PLUGIN "Build also a plugin for VLC Media Player" OFF)
+option(WITH_OLD_UTILS "Build also old utilities" OFF)
option(EXAMPLE_SDL2_AUDIO "Build also a simple SDL2 demo MIDI player" OFF)
+
if(CMAKE_VERSION VERSION_EQUAL "3.1" OR CMAKE_VERSION VERSION_GREATER "3.1")
set(CMAKE_CXX_STANDARD 11)
endif()
@@ -277,9 +279,9 @@ endif()
add_library(ADLMIDI INTERFACE)
if(libADLMIDI_SHARED)
- target_link_libraries(ADLMIDI INTERFACE ADLMIDI_shared)
+ target_link_libraries(ADLMIDI INTERFACE ADLMIDI_shared)
else()
- target_link_libraries(ADLMIDI INTERFACE ADLMIDI_static)
+ target_link_libraries(ADLMIDI INTERFACE ADLMIDI_static)
endif()
if(WITH_MIDIPLAY)
@@ -339,6 +341,8 @@ if(WITH_MIDIPLAY)
endif()
if(WITH_ADLMIDI2)
+ find_package(OpenMP)
+
if(NOT WIN32 AND NOT DJGPP AND NOT MSDOS)
find_library(SDL2_LIBRARY SDL2 REQUIRED)
include_directories(${SDL2_INCLUDE_DIR})
@@ -350,6 +354,7 @@ if(WITH_ADLMIDI2)
set(ADLMIDI2_VIDEO_OUT_SUPPORT "TRUE")
endif()
+
set(adlmidi2_src)
list(APPEND adlmidi2_src
${libADLMIDI_SOURCE_DIR}/utils/adlmidi-2/midiplay.cc
@@ -362,11 +367,11 @@ if(WITH_ADLMIDI2)
add_executable(adlmidi2 ${adlmidi2_src})
if(ADLMIDI2_HAS_PUZZLE_GAME)
- target_compile_options(adlmidi2 PUBLIC "-DSUPPORT_PUZZLE_GAME")
+ target_compile_definitions(adlmidi2 PUBLIC "-DSUPPORT_PUZZLE_GAME")
endif()
if(ADLMIDI2_VIDEO_OUT_SUPPORT)
- target_compile_options(adlmidi2 PUBLIC "-DSUPPORT_VIDEO_OUTPUT")
+ target_compile_definitions(adlmidi2 PUBLIC "-DSUPPORT_VIDEO_OUTPUT")
endif()
if(WIN32)
@@ -392,6 +397,10 @@ if(WITH_ADLMIDI2)
CXX_STANDARD 11
CXX_STANDARD_REQUIRED YES)
endif()
+ if(OPENMP_FOUND)
+ target_compile_options(adlmidi2 PUBLIC "-fopenmp")
+ target_link_libraries(adlmidi2 "-fopenmp")
+ endif()
else(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
message("Turned on C++11 on MSVC")
target_compile_options(adlmidi2 PUBLIC "/std:c++latest")
@@ -400,7 +409,7 @@ if(WITH_ADLMIDI2)
if(libADLMIDI_SHARED)
add_dependencies(adlmidi2 ADLMIDI_shared)
# ========= WIP =========
- # set_target_properties(adlmidiplay PROPERTIES COMPILE_FLAGS "-Wl,-rpath='$$ORIGIN/../lib'")
+ set_target_properties(adlmidi2 PROPERTIES COMPILE_FLAGS "-Wl,-rpath='$$ORIGIN/../lib'")
else()
if(NOT libADLMIDI_STATIC)
message(FATAL_ERROR "libADLMIDI is required to be built!")
@@ -482,14 +491,14 @@ if(WITH_VLC_PLUGIN)
endif()
if(WITH_HQ_RESAMPLER)
- find_library(ZITA_RESAMPLER_LIBRARY "zita-resampler" REQUIRED)
- add_definitions(-DADLMIDI_ENABLE_HQ_RESAMPLER)
- if(libADLMIDI_SHARED)
- target_link_libraries(ADLMIDI_shared PUBLIC "${ZITA_RESAMPLER_LIBRARY}")
- endif()
- if(libADLMIDI_STATIC)
- target_link_libraries(ADLMIDI_static PUBLIC "${ZITA_RESAMPLER_LIBRARY}")
- endif()
+ find_library(ZITA_RESAMPLER_LIBRARY "zita-resampler" REQUIRED)
+ add_definitions(-DADLMIDI_ENABLE_HQ_RESAMPLER)
+ if(libADLMIDI_SHARED)
+ target_link_libraries(ADLMIDI_shared PUBLIC "${ZITA_RESAMPLER_LIBRARY}")
+ endif()
+ if(libADLMIDI_STATIC)
+ target_link_libraries(ADLMIDI_static PUBLIC "${ZITA_RESAMPLER_LIBRARY}")
+ endif()
endif()
install(TARGETS ${libADLMIDI_INSTALLS}
@@ -510,22 +519,26 @@ if(WITH_UNIT_TESTS)
endif()
message("==== libADLMIDI options ====")
+message("libADLMIDI_STATIC = ${libADLMIDI_STATIC}")
+message("libADLMIDI_SHARED = ${libADLMIDI_SHARED}")
+message("WITH_UNIT_TESTS = ${WITH_UNIT_TESTS}")
+
+message("WITH_CPP_EXTRAS = ${WITH_CPP_EXTRAS}")
+message("WITH_MIDI_SEQUENCER = ${WITH_MIDI_SEQUENCER}")
+message("WITH_EMBEDDED_BANKS = ${WITH_EMBEDDED_BANKS}")
+message("WITH_HQ_RESAMPLER = ${WITH_HQ_RESAMPLER}")
+message("WITH_MUS_SUPPORT = ${WITH_MUS_SUPPORT}")
+message("WITH_XMI_SUPPORT = ${WITH_XMI_SUPPORT}")
+message("USE_DOSBOX_EMULATOR = ${USE_DOSBOX_EMULATOR}")
+message("USE_NUKED_EMULATOR = ${USE_NUKED_EMULATOR}")
+
+message("===== Utils and extras =====")
+message("WITH_GENADLDATA = ${WITH_GENADLDATA}")
+message("WITH_GENADLDATA_COMMENTS = ${WITH_GENADLDATA_COMMENTS}")
+
message("WITH_MIDIPLAY = ${WITH_MIDIPLAY}")
-message("WITH_VLC_PLUGIN = ${WITH_VLC_PLUGIN}")
message("MIDIPLAY_WAVE_ONLY = ${MIDIPLAY_WAVE_ONLY}")
message("WITH_ADLMIDI2 = ${WITH_ADLMIDI2}")
+message("WITH_VLC_PLUGIN = ${WITH_VLC_PLUGIN}")
message("WITH_OLD_UTILS = ${WITH_OLD_UTILS}")
-message("WITH_EMBEDDED_BANKS = ${WITH_EMBEDDED_BANKS}")
-message("WITH_GENADLDATA = ${WITH_GENADLDATA}")
-message("WITH_GENADLDATA_COMMENTS = ${WITH_GENADLDATA_COMMENTS}")
-message("USE_DOSBOX_EMULATOR = ${USE_DOSBOX_EMULATOR}")
-message("USE_NUKED_EMULATOR = ${USE_NUKED_EMULATOR}")
-message("WITH_MIDI_SEQUENCER = ${WITH_MIDI_SEQUENCER}")
-message("WITH_CPP_EXTRAS = ${WITH_CPP_EXTRAS}")
-message("WITH_MUS_SUPPORT = ${WITH_MUS_SUPPORT}")
-message("WITH_XMI_SUPPORT = ${WITH_XMI_SUPPORT}")
-message("WITH_HQ_RESAMPLER = ${WITH_HQ_RESAMPLER}")
-message("libADLMIDI_STATIC = ${libADLMIDI_STATIC}")
-message("libADLMIDI_SHARED = ${libADLMIDI_SHARED}")
message("EXAMPLE_SDL2_AUDIO = ${EXAMPLE_SDL2_AUDIO}")
-message("WITH_UNIT_TESTS = ${WITH_UNIT_TESTS}")