comparison plugins/CMakeLists.txt @ 257:60b94daf4d24

CMake: update irccd_define_plugin, closes #534 Also add a native debugging plugin.
author David Demelier <markand@malikania.fr>
date Tue, 13 Sep 2016 12:57:17 +0200
parents f04acabfbbe5
children c6fbb6e0e06d
comparison
equal deleted inserted replaced
256:f04acabfbbe5 257:60b94daf4d24
16 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17 # 17 #
18 18
19 project(plugins) 19 project(plugins)
20 20
21 add_custom_target( 21 set(
22 all-plugins ALL 22 IRCCD_PLUGINS
23 COMMENT "Irccd plugins" 23 ask
24 ) 24 auth
25 25 hangman
26 set_target_properties( 26 history
27 all-plugins 27 logger
28 PROPERTIES 28 plugin
29 FOLDER meta 29 roulette
30 CACHE INTERNAL ""
30 ) 31 )
31 32
32 foreach (plugin ${IRCCD_PLUGINS}) 33 foreach (plugin ${IRCCD_PLUGINS})
33 string(TOUPPER ${plugin} optname) 34 irccd_define_plugin(
35 NAME ${plugin}
36 TYPE JS
37 SCRIPT ${plugins_SOURCE_DIR}/${plugin}/${plugin}.js
38 DOCS ${plugins_SOURCE_DIR}/${plugin}/${plugin}.md
39 )
40 endforeach ()
34 41
35 if (WITH_PLUGIN_${optname}) 42 # Debug plugins.
36 # 1. Configure the plugin and install it. 43 irccd_define_plugin(
37 irccd_define_plugin(${plugin}/${plugin}.js) 44 NAME debugnative
38 45 TYPE NATIVE
39 # 2. Build documentation. 46 SOURCES ${plugins_SOURCE_DIR}/debugnative/main.cpp
40 if (WITH_HTML) 47 )
41 set(basedocdir ${IRCCD_FAKEROOTDIR}/${WITH_DOCDIR})
42 file(RELATIVE_PATH baseurl ${basedocdir}/plugin ${basedocdir})
43
44 pandoc(
45 OUTPUT ${basedocdir}/plugin/${plugin}.html
46 SOURCES ${plugin}/${plugin}.md
47 TEMPLATE ${resources_SOURCE_DIR}/template.html
48 DEPENDS
49 ${resources_SOURCE_DIR}/template.html
50 docs-resources
51 ARGS -Vguide
52 VARIABLE baseurl:${baseurl}
53 FROM markdown TO html5
54 STANTALONE MAKE_DIRECTORY TOC
55 )
56
57 list(APPEND outputs ${basedocdir}/plugin/${plugin}.html)
58 install(
59 FILES ${basedocdir}/plugin/${plugin}.html
60 COMPONENT ${plugin}
61 DESTINATION ${WITH_DOCDIR}/plugin
62 )
63 string(TOUPPER ${plugin} CMP)
64 setg(CPACK_COMPONENT_${CMP}_DESCRIPTION "Install ${plugin}.")
65 setg(CPACK_COMPONENT_${CMP}_GROUP "Plugins")
66 endif ()
67
68 add_custom_target(
69 plugin-${plugin}
70 SOURCES
71 ${outputs}
72 ${plugin}/${plugin}.js
73 ${plugin}/${plugin}.md
74 )
75
76 set_target_properties(
77 plugin-${plugin}
78 PROPERTIES
79 PROJECT_LABEL ${plugin}
80 FOLDER plugins
81 )
82
83 add_dependencies(all-plugins plugin-${plugin})
84 endif ()
85 endforeach ()