diff options
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 93 |
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}") |