aboutsummaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt28
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}")