diff options
author | Wohlstand <admin@wohlnet.ru> | 2023-05-17 03:53:41 +0300 |
---|---|---|
committer | Wohlstand <admin@wohlnet.ru> | 2023-05-17 03:53:41 +0300 |
commit | 360a1100fa0725fa4c1d5515e19cbabf1b099f6f (patch) | |
tree | 97c25db6d641a22607e43d4ce4d09c28fa473835 /CMakeLists.txt | |
parent | 5a361b4378ea5770c84a5c2baaba19d0135d4b36 (diff) | |
download | libADLMIDI-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.txt | 26 |
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) |