aboutsummaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorWohlstand <admin@wohlnet.ru>2023-05-17 03:53:41 +0300
committerWohlstand <admin@wohlnet.ru>2023-05-17 03:53:41 +0300
commit360a1100fa0725fa4c1d5515e19cbabf1b099f6f (patch)
tree97c25db6d641a22607e43d4ce4d09c28fa473835 /CMakeLists.txt
parent5a361b4378ea5770c84a5c2baaba19d0135d4b36 (diff)
downloadlibADLMIDI-360a1100fa0725fa4c1d5515e19cbabf1b099f6f.tar.gz
libADLMIDI-360a1100fa0725fa4c1d5515e19cbabf1b099f6f.tar.bz2
libADLMIDI-360a1100fa0725fa4c1d5515e19cbabf1b099f6f.zip
gen_adldata: Support for custom banks.ini files
Add an ability to specify a custom list of banks during the build process Instead of using a pre-built cache, the new banks list will be generated on the fly. @mmontag, I didn't forgot about you, and I hope, you could make your own "banks.ini" somewhere outside, and build the the thing with it.
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt26
1 files changed, 22 insertions, 4 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index fe7db37..af6359e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -192,6 +192,7 @@ option(USE_JAVA_EMULATOR "Use JavaOPL emulator" ${DEFAULT_HEAVY_EMULATORS})
option(WITH_GENADLDATA "Build and run full rebuild of embedded banks cache" OFF)
option(WITH_GENADLDATA_COMMENTS "Enable comments in a generated embedded instruments cache file" OFF)
+set(GENADLDATA_CUSTOM_BANKLIST "" CACHE PATH "Use the custom INI file to build the database")
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)
@@ -220,6 +221,17 @@ else()
set(ENABLE_FPIC OFF)
endif()
+if(WITH_EMBEDDED_BANKS)
+ if(NOT WITH_GENADLDATA OR "${GENADLDATA_CUSTOM_BANKLIST}" STREQUAL "")
+ set(ADLDATA_DATABASE "${libADLMIDI_SOURCE_DIR}/src/inst_db.cpp")
+ else()
+ make_directory("${CMAKE_BINARY_DIR}/instdb")
+ set(ADLDATA_DATABASE "${CMAKE_BINARY_DIR}/instdb/inst_db.cpp")
+ endif()
+else()
+ target_compile_definitions(${targetLib} PUBLIC DISABLE_EMBEDDED_BANKS)
+endif()
+
function(handle_options targetLib)
if(WITH_MIDI_SEQUENCER)
target_sources(${targetLib} PRIVATE ${libADLMIDI_SOURCE_DIR}/src/adlmidi_sequencer.cpp)
@@ -281,9 +293,13 @@ function(handle_options targetLib)
endif()
if(WITH_EMBEDDED_BANKS)
- target_sources(${targetLib} PRIVATE
- ${libADLMIDI_SOURCE_DIR}/src/inst_db.cpp
- )
+ target_sources(${targetLib} PRIVATE ${ADLDATA_DATABASE})
+ if(WITH_GENADLDATA)
+ set_property(SOURCE "${ADLDATA_DATABASE}" PROPERTY INCLUDE_DIRECTORIES "${libADLMIDI_SOURCE_DIR}/src")
+ if(NOT "${GENADLDATA_CUSTOM_BANKLIST}" STREQUAL "")
+ set_property(SOURCE "${ADLDATA_DATABASE}" PROPERTY GENERATED TRUE)
+ endif()
+ endif()
else()
target_compile_definitions(${targetLib} PUBLIC DISABLE_EMBEDDED_BANKS)
endif()
@@ -293,7 +309,9 @@ function(handle_options targetLib)
endif()
if(WITH_EMBEDDED_BANKS AND WITH_GENADLDATA AND NOT ADLMIDI_DOS)
- add_dependencies(${targetLib} gen-adldata-run)
+ if("${GENADLDATA_CUSTOM_BANKLIST}" STREQUAL "")
+ add_dependencies(${targetLib} gen-adldata-run)
+ endif()
endif()
if(WITH_HQ_RESAMPLER AND NOT ADLMIDI_DOS)