aboutsummaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt14
1 files changed, 14 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ab3e7e5..2d4cec2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -65,6 +65,15 @@ function(set_legacy_standard destTarget)
endif()
endif()
endfunction()
+
+function(set_visibility_hidden destTarget)
+ if(CMAKE_C_COMPILER_ID MATCHES "^(GNU|Clang)$")
+ target_compile_options(${destTarget} PRIVATE
+ -fvisibility=hidden -fvisibility-inlines-hidden)
+ target_compile_definitions(${destTarget} PRIVATE
+ "LIBADLMIDI_VISIBILITY")
+ endif()
+endfunction()
#===========================================================================================
option(libADLMIDI_STATIC "Build static library of libADLMIDI" ON)
@@ -273,6 +282,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)
@@ -284,7 +294,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()