|
@@ -118,35 +118,56 @@ macro(ctkMacroSetupPlugins )
|
|
|
get_filename_component(QT_INSTALLED_LIBRARY_DIR ${QT_QMAKE_EXECUTABLE} PATH)
|
|
|
endif()
|
|
|
|
|
|
+ set(plugin_symbolic_names )
|
|
|
+ set(plugin_targets )
|
|
|
+ foreach(plugin ${plugin_list})
|
|
|
+ ctkFunctionExtractOptionNameAndValue(${plugin} plugin_dir plugin_value)
|
|
|
+ string(REPLACE "/" ";" _tokens ${plugin_dir})
|
|
|
+ list(GET _tokens -1 plugin_symbolic_name)
|
|
|
+ list(APPEND plugin_symbolic_names ${plugin_symbolic_name})
|
|
|
+
|
|
|
+ string(REPLACE "." "_" plugin_target ${plugin_symbolic_name})
|
|
|
+ list(APPEND plugin_targets ${plugin_target})
|
|
|
+
|
|
|
+ set(${plugin_symbolic_name}_plugin_dir ${plugin_dir})
|
|
|
+ set(${plugin_symbolic_name}_plugin_value ${plugin_value})
|
|
|
+ endforeach()
|
|
|
+
|
|
|
+ # Check if the plugin symbolic names are valid for the current project
|
|
|
+ ctkMacroGetAllNonProjectTargetLibraries("${plugin_targets}" invalid_targets)
|
|
|
+ if(invalid_targets)
|
|
|
+ set(invalid_plugins )
|
|
|
+ foreach(plugin_target ${invalid_targets})
|
|
|
+ string(REPLACE "_" "." plugin_symbolic_name ${plugin_target})
|
|
|
+ list(APPEND invalid_plugins ${plugin_symbolic_name})
|
|
|
+ endforeach()
|
|
|
+ message(FATAL_ERROR "The following plug-ins are using invalid symbolic names: ${invalid_plugins}")
|
|
|
+ endif()
|
|
|
+
|
|
|
set(plugin_dirswithoption )
|
|
|
set(plugin_subdirs )
|
|
|
- foreach(plugin ${plugin_list})
|
|
|
- ctkFunctionExtractOptionNameAndValue(${plugin} plugin_name plugin_value)
|
|
|
+ foreach(plugin_symbolic_name ${plugin_symbolic_names})
|
|
|
if(MY_COMPACT_OPTIONS)
|
|
|
- string(REPLACE "/" ";" _tokens ${plugin_name})
|
|
|
- list(GET _tokens -1 option_name)
|
|
|
- set(option_name ${MY_BUILD_OPTION_PREFIX}${option_name})
|
|
|
+ set(option_name ${MY_BUILD_OPTION_PREFIX}${plugin_symbolic_name})
|
|
|
else()
|
|
|
- set(option_name ${MY_BUILD_OPTION_PREFIX}${plugin_name})
|
|
|
+ set(option_name ${MY_BUILD_OPTION_PREFIX}${${plugin_symbolic_name}_plugin_dir})
|
|
|
endif()
|
|
|
# This variable may have the form "Plugins/org.commontk.bla_option_name"
|
|
|
- set(${plugin_name}_option_name ${option_name})
|
|
|
+ set(${${plugin_symbolic_name}_plugin_dir}_option_name ${option_name})
|
|
|
# Additionally create a variable of the form "org_commontk_bla_option_name"
|
|
|
- string(REPLACE "/" ";" _tokens ${plugin_name})
|
|
|
- list(GET _tokens -1 plugin_symbolic_name)
|
|
|
string(REPLACE "." "_" plugin_target ${plugin_symbolic_name})
|
|
|
set(${plugin_target}_option_name ${option_name})
|
|
|
|
|
|
- option(${option_name} "Build ${plugin_name} Plugin." ${plugin_value})
|
|
|
+ option(${option_name} "Build the ${plugin_symbolic_name} Plugin." ${${plugin_symbolic_name}_plugin_value})
|
|
|
if(MY_BUILD_ALL)
|
|
|
set(${option_name} 1)
|
|
|
endif()
|
|
|
|
|
|
- list(APPEND plugin_subdirs "${plugin_name}")
|
|
|
- if(IS_ABSOLUTE ${plugin_name})
|
|
|
- list(APPEND plugin_dirswithoption "${plugin_name}^^${option_name}")
|
|
|
+ list(APPEND plugin_subdirs "${${plugin_symbolic_name}_plugin_dir}")
|
|
|
+ if(IS_ABSOLUTE ${${plugin_symbolic_name}_plugin_dir})
|
|
|
+ list(APPEND plugin_dirswithoption "${${plugin_symbolic_name}_plugin_dir}^^${option_name}")
|
|
|
else()
|
|
|
- list(APPEND plugin_dirswithoption "${CMAKE_CURRENT_SOURCE_DIR}/${plugin_name}^^${option_name}")
|
|
|
+ list(APPEND plugin_dirswithoption "${CMAKE_CURRENT_SOURCE_DIR}/${${plugin_symbolic_name}_plugin_dir}^^${option_name}")
|
|
|
endif()
|
|
|
endforeach()
|
|
|
|