summaryrefslogtreecommitdiffstats
path: root/libmariadb/cmake/plugins.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'libmariadb/cmake/plugins.cmake')
-rw-r--r--libmariadb/cmake/plugins.cmake18
1 files changed, 13 insertions, 5 deletions
diff --git a/libmariadb/cmake/plugins.cmake b/libmariadb/cmake/plugins.cmake
index 1f321b14..de5c12c1 100644
--- a/libmariadb/cmake/plugins.cmake
+++ b/libmariadb/cmake/plugins.cmake
@@ -12,7 +12,7 @@ include(${CC_SOURCE_DIR}/cmake/sign.cmake)
FUNCTION(REGISTER_PLUGIN)
- SET(one_value_keywords TARGET DEFAULT TYPE)
+ SET(one_value_keywords TARGET DISABLED TYPE DEFAULT)
SET(multi_value_keywords CONFIGURATIONS SOURCES LIBRARIES INCLUDES COMPILE_OPTIONS)
cmake_parse_arguments(CC_PLUGIN
@@ -43,12 +43,19 @@ FUNCTION(REGISTER_PLUGIN)
message(FATAL_ERROR "Invalid plugin type ${CC_PLUGIN_DEFAULT}. Allowed plugin types are ${CC_PLUGIN_CONFIGURATIONS}")
endif()
+# check if plugin is disabled
+ string(TOUPPER "${CC_PLUGIN_DISABLED}" CC_PLUGIN_DISABLED)
+ if("${CC_PLUGIN_DISABLED}" STREQUAL "YES")
+ set(PLUGINS_DISABLED ${PLUGINS_DISABLED} ${CC_PLUGIN_TARGET} PARENT_SCOPE)
+ endif()
+
if(NOT ${CC_PLUGIN_DEFAULT} STREQUAL "OFF")
set(PLUGIN_${CC_PLUGIN_TARGET}_TYPE ${CC_PLUGIN_TYPE})
- if(${CC_PLUGIN_DEFAULT} STREQUAL "DYNAMIC")
+ if(${CC_PLUGIN_DEFAULT} MATCHES "DYNAMIC")
set(PLUGINS_DYNAMIC ${PLUGINS_DYNAMIC} ${CC_PLUGIN_TARGET} PARENT_SCOPE)
+ add_library(${CC_PLUGIN_TARGET} MODULE ${CC_PLUGIN_SOURCES})
if(WIN32)
set(target ${CC_PLUGIN_TARGET})
set(FILE_TYPE "VFT_DLL")
@@ -58,9 +65,9 @@ FUNCTION(REGISTER_PLUGIN)
configure_file(${CC_SOURCE_DIR}/win/resource.rc.in
${CC_BINARY_DIR}/win/${target}.rc
@ONLY)
- set(CC_PLUGIN_SOURCES ${CC_PLUGIN_SOURCES} ${CC_BINARY_DIR}/win/${target}.rc ${CC_SOURCE_DIR}/plugins/plugin.def)
+ target_sources(${CC_PLUGIN_TARGET} PRIVATE
+ ${CC_BINARY_DIR}/win/${target}.rc ${CC_SOURCE_DIR}/plugins/plugin.def)
endif()
- add_library(${CC_PLUGIN_TARGET} MODULE ${CC_PLUGIN_SOURCES})
target_link_libraries(${CC_PLUGIN_TARGET} ${CC_PLUGIN_LIBRARIES})
set_target_properties(${CC_PLUGIN_TARGET} PROPERTIES PREFIX "")
set_target_properties(${CC_PLUGIN_TARGET}
@@ -81,7 +88,8 @@ FUNCTION(REGISTER_PLUGIN)
SIGN_TARGET(${target})
endif()
INSTALL_PLUGIN(${CC_PLUGIN_TARGET} ${CMAKE_CURRENT_BINARY_DIR})
- elseif(${CC_PLUGIN_DEFAULT} STREQUAL "STATIC")
+ endif()
+ if(${CC_PLUGIN_DEFAULT} MATCHES "STATIC")
set(PLUGINS_STATIC ${PLUGINS_STATIC} ${CC_PLUGIN_TARGET} PARENT_SCOPE)
set(LIBMARIADB_PLUGIN_CFLAGS ${LIBMARIADB_PLUGIN_CFLAGS} ${CC_PLUGIN_COMPILE_OPTIONS} PARENT_SCOPE)
set(LIBMARIADB_PLUGIN_INCLUDES ${LIBMARIADB_PLUGIN_INCLUDES} ${CC_PLUGIN_INCLUDES} PARENT_SCOPE)