diff options
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 5283a18..91baffb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -65,6 +65,18 @@ function(set_legacy_standard destTarget) endif() endif() endfunction() + +function(set_visibility_hidden destTarget) + if(CMAKE_C_COMPILER_ID MATCHES "^(GNU|Clang)$" AND NOT DJGPP) + if(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} VERSION_GREATER 3.2) + target_compile_options(${destTarget} PRIVATE + $<$<COMPILE_LANGUAGE:CXX>:-fvisibility-inlines-hidden> -fvisibility=hidden) + else() + target_compile_options(${destTarget} PRIVATE -fvisibility=hidden) + endif() + target_compile_definitions(${destTarget} PRIVATE -DLIBADLMIDI_VISIBILITY) + endif() +endfunction() #=========================================================================================== option(libADLMIDI_STATIC "Build static library of libADLMIDI" ON) @@ -87,6 +99,7 @@ option(MIDIPLAY_WAVE_ONLY "Build Demo MIDI player without support of real time 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_XMI2MID "Build a XMI to MIDI converter" OFF) option(EXAMPLE_SDL2_AUDIO "Build also a simple SDL2 demo MIDI player" OFF) @@ -272,6 +285,7 @@ if(libADLMIDI_STATIC) set_target_properties(ADLMIDI_static PROPERTIES OUTPUT_NAME ADLMIDI) target_include_directories(ADLMIDI_static PUBLIC ${libADLMIDI_SOURCE_DIR}/include) set_legacy_standard(ADLMIDI_static) + set_visibility_hidden(ADLMIDI_static) list(APPEND libADLMIDI_INSTALLS ADLMIDI_static) if(WITH_EMBEDDED_BANKS AND WITH_GENADLDATA) add_dependencies(ADLMIDI_static gen-adldata-run) @@ -283,7 +297,11 @@ if(libADLMIDI_SHARED) set_target_properties(ADLMIDI_shared PROPERTIES OUTPUT_NAME ADLMIDI) target_include_directories(ADLMIDI_shared PUBLIC ${libADLMIDI_SOURCE_DIR}/include) set_legacy_standard(ADLMIDI_shared) + set_visibility_hidden(ADLMIDI_shared) list(APPEND libADLMIDI_INSTALLS ADLMIDI_shared) + if(WIN32) + target_compile_definitions(ADLMIDI_shared PRIVATE "-DADLMIDI_BUILD_DLL") + endif() if(WITH_EMBEDDED_BANKS AND WITH_GENADLDATA) add_dependencies(ADLMIDI_shared gen-adldata-run) endif() @@ -426,7 +444,9 @@ if(WITH_ADLMIDI2) if(libADLMIDI_SHARED) add_dependencies(adlmidi2 ADLMIDI_shared) - set_target_properties(adlmidi2 PROPERTIES COMPILE_FLAGS "-Wl,-rpath='$$ORIGIN/../lib'") + if(NOT MSVC) + set_target_properties(adlmidi2 PROPERTIES COMPILE_FLAGS "-Wl,-rpath='$$ORIGIN/../lib'") + endif() else() if(NOT libADLMIDI_STATIC) message(FATAL_ERROR "libADLMIDI is required to be built!") @@ -437,6 +457,11 @@ if(WITH_ADLMIDI2) list(APPEND libADLMIDI_INSTALLS adlmidi2) endif() +if(WITH_XMI2MID) + add_executable(xmi2mid + ${libADLMIDI_SOURCE_DIR}/utils/xmi2mid/xmi2mid.cpp) +endif() + if(EXAMPLE_SDL2_AUDIO AND NOT MSDOS AND NOT DJGPP) find_library(SDL2_LIBRARY SDL2 REQUIRED) include_directories(${SDL2_INCLUDE_DIR}) @@ -557,4 +582,5 @@ 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_XMI2MID = ${WITH_XMI2MID}") message("EXAMPLE_SDL2_AUDIO = ${EXAMPLE_SDL2_AUDIO}") |