cmake: FindLua and maintain an enabled module list.
[vlc.git] / extras / buildsystem / cmake / include / vlc_module_funcs.cmake
1 include( ${CMAKE_SOURCE_DIR}/cmake/vlc_add_compile_flag.cmake )
2
3 MACRO(vlc_add_module module_name)
4     if(ENABLE_VLC_MODULE_${module_name})
5         add_library( ${module_name}_plugin MODULE ${ARGN} )
6         if( NOT ${ENABLE_NO_SYMBOL_CHECK} )
7             vlc_module_add_link_libraries( ${module_name} libvlc )
8         endif( NOT ${ENABLE_NO_SYMBOL_CHECK} )
9         set_target_properties( ${module_name}_plugin PROPERTIES COMPILE_FLAGS
10                 "-D__PLUGIN__ -DMODULE_NAME=${module_name} -DMODULE_NAME_IS_${module_name} -I${CMAKE_CURRENT_SOURCE_DIR} ${VLC_${module_name}_COMPILE_FLAG}" )
11         if (VLC_${module_name}_LINK_LIBRARIES)
12             target_link_libraries( ${module_name}_plugin ${VLC_${module_name}_LINK_LIBRARIES})
13         endif (VLC_${module_name}_LINK_LIBRARIES)
14         install_targets(/modules ${module_name}_plugin)
15     endif(ENABLE_VLC_MODULE_${module_name})
16 ENDMACRO(vlc_add_module)
17
18 MACRO(vlc_register_modules module_state)
19     foreach( module_name ${ARGN} )
20         set( STATE module_state)
21         if(STATE)
22             set(VLC_ENABLED_MODULES_LIST ${VLC_ENABLED_MODULES_LIST} ${module_name}_plugin)
23         else(STATE)
24         endif(STATE)
25         OPTION( ENABLE_VLC_MODULE_${module_name} "Enable the ${module_name} module" ${module_state} )
26     endforeach( module_name )
27 ENDMACRO(vlc_register_modules)
28
29 MACRO(vlc_enable_modules module_names)
30     vlc_register_modules( ON ${ARGV} )
31 ENDMACRO(vlc_enable_modules)
32
33 MACRO(vlc_disable_modules module_names)
34     vlc_register_modules( OFF ${ARGV} )
35 ENDMACRO(vlc_disable_modules)
36
37 MACRO(vlc_set_module_properties module_name)
38     set_target_properties(${module_name}_plugin ${ARGN})
39 ENDMACRO(vlc_set_module_properties)
40
41 MACRO(vlc_set_module_properties module_name)
42     set_target_properties(${module_name}_plugin ${ARGN})
43 ENDMACRO(vlc_set_module_properties)
44
45 MACRO(vlc_module_add_link_libraries module_name)
46     set(VLC_${module_name}_LINK_LIBRARIES ${VLC_${module_name}_LINK_LIBRARIES} ${ARGN})
47 ENDMACRO(vlc_module_add_link_libraries)
48
49 MACRO(vlc_add_module_compile_flag module_name)
50     set(VLC_${module_name}_COMPILE_FLAG ${VLC_${module_name}_COMPILE_FLAG} ${ARGN})
51 ENDMACRO(vlc_add_module_compile_flag)
52