annotate cmake/function/IrccdDefinePlugin.cmake @ 263:48676ca7071c

Docs: use less hierarchy for less indexes
author David Demelier <markand@malikania.fr>
date Thu, 15 Sep 2016 13:16:05 +0200
parents 904ee87bc808
children 750157368a42
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 #
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 # IrccdDefinePlugin.cmake -- CMake build system for irccd
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 #
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 # Copyright (c) 2013-2016 David Demelier <markand@malikania.fr>
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 #
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 # Permission to use, copy, modify, and/or distribute this software for any
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 # purpose with or without fee is hereby granted, provided that the above
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 # copyright notice and this permission notice appear in all copies.
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 #
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 #
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 #
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
20 # irccd_define_plugin
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
21 # -------------------------------------------------------------------
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 #
257
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
23 # irccd_define_plugin(
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
24 # NAME canonical plugin name
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
25 # TYPE JS or NATIVE
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
26 # DOCS documentation files in markdown
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
27 #
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
28 # Options for TYPE JS:
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
29 #
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
30 # SCRIPT absolute path to the Javascript file (ending with .js)
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
31 #
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
32 # Options for TYPE NATIVE:
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
33 #
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
34 # SOURCES c++ source files
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 #
257
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
36 # Create a Javascript or Native plugin.
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
37 #
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
38 # The NAME parameter identifies the plugin. The same name will be used for the
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
39 # plugin filename.
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
40 #
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
41 # Both Javascript and native plugins are supported specified by the TYPE
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
42 # parameter to JS or NATIVE respectively. For Javascript plugin, a unique file
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
43 # must be given as SCRIPT parameter. For native plugins, any source files can
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
44 # be given as SOURCES parameter.
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
45 #
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
46 # Additional documentation can be built in markdown and installed along the
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
47 # plugin using DOCS parameter.
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
48 #
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
49 # A CMake option is also created in the form OPTION_<PLG> where PLG is the
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
50 # uppercase NAME value.
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
51 #
257
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
52
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
53 function(_irccd_define_javascript_plugin)
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
54 if (NOT PLG_SCRIPT)
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
55 message(FATAL_ERROR "Missing SCRIPT parameter")
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
56 endif ()
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
57
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
58 get_filename_component(name ${PLG_SCRIPT} NAME)
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
59
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
60 configure_file(
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
61 ${PLG_SCRIPT}
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
62 ${IRCCD_FAKEROOTDIR}/${WITH_PLUGINDIR}/${name}
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
63 )
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
64
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
65 install(
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
66 FILES ${IRCCD_FAKEROOTDIR}/${WITH_PLUGINDIR}/${name}
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
67 COMPONENT ${PLG_NAME}
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
68 DESTINATION ${WITH_PLUGINDIR}
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
69 )
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
70
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
71 add_custom_target(
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
72 plugin-${PLG_NAME}
259
0fd0290d61b4 CMake: add ALL to add_custom_target for plugins
David Demelier <markand@malikania.fr>
parents: 257
diff changeset
73 ALL
257
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
74 DEPENDS ${PLG_OUTPUT_DOC}
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
75 )
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
76 endfunction()
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
77
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
78 function(_irccd_define_native_plugin)
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
79 if (NOT PLG_SOURCES)
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
80 message(FATAL_ERROR "Missing SOURCES parameter")
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
81 endif ()
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
82
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
83 add_library(plugin-${PLG_NAME} MODULE ${PLG_SOURCES} ${PLG_OUTPUT_DOC})
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
84
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
85 # Move the target into the native plugin directory and rename it.
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
86 set_target_properties(
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
87 plugin-${PLG_NAME}
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
88 PROPERTIES
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
89 PREFIX ""
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
90 OUTPUT_NAME ${PLG_NAME}
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
91 LIBRARY_OUTPUT_DIRECTORY ${IRCCD_FAKEROOTDIR}/${WITH_NPLUGINDIR}
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
92 )
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
93 foreach (c ${CMAKE_CONFIGURATION_TYPES})
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
94 string(TOUPPER CONFIG ${c})
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
95 set_target_properties(
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
96 plugin-${PLG_NAME}
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
97 PROPERTIES
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
98 OUTPUT_NAME_${CONFIG} ${PLG_NAME}
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
99 LIBRARY_OUTPUT_DIRECTORY_${CONFIG} ${IRCCD_FAKEROOTDIR}/${WITH_NPLUGINDIR}
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
100 )
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
101 endforeach()
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
102 target_link_libraries(plugin-${PLG_NAME} libirccd)
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
103 install(
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
104 TARGETS plugin-${PLG_NAME}
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
105 COMPONENT ${PLG_NAME}
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
106 LIBRARY DESTINATION ${WITH_NPLUGINDIR}
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
107 )
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
108 endfunction()
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
109
257
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
110 function(irccd_define_plugin)
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
111 set(options "")
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
112 set(oneValueArgs NAME TYPE SCRIPT)
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
113 set(multiValueArgs DOCS SOURCES)
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
114
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
115 cmake_parse_arguments(PLG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
116
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
117 if (NOT PLG_NAME)
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
118 message(FATAL_ERROR "Missing NAME parameter")
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
119 endif ()
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
120
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
121 string(TOUPPER ${PLG_NAME} PLG_UPPER_NAME)
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
122 option(WITH_PLUGIN_${PLG_UPPER_NAME} "Enable ${PLG_NAME} plugin" On)
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
123
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
124 if (NOT WITH_PLUGIN_${PLG_UPPER_NAME})
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
125 setg(WITH_PLUGIN_${PLG_UPPER_NAME}_MSG "No (disabled by user)")
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
126 else ()
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
127 setg(WITH_PLUGIN_${PLG_UPPER_NAME}_MSG "Yes")
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
128
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
129 # Optional documentation.
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
130 if (PLG_DOCS AND WITH_HTML)
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
131 set(basedocdir ${IRCCD_FAKEROOTDIR}/${WITH_DOCDIR})
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
132 set(PLG_OUTPUT_DOC ${basedocdir}/plugin/${PLG_NAME}.html)
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
133 file(RELATIVE_PATH baseurl ${basedocdir}/plugin ${basedocdir})
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
134
257
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
135 pandoc(
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
136 OUTPUT ${basedocdir}/plugin/${PLG_NAME}.html
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
137 SOURCES ${PLG_DOCS}
263
48676ca7071c Docs: use less hierarchy for less indexes
David Demelier <markand@malikania.fr>
parents: 260
diff changeset
138 TEMPLATE ${html_SOURCE_DIR}/resources/template.html
260
904ee87bc808 CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents: 259
diff changeset
139 DEPENDS ${html_SOURCE_DIR}/resources/template.html
257
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
140 ARGS -Vguide
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
141 VARIABLE baseurl:${baseurl}
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
142 FROM markdown TO html5
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
143 STANTALONE MAKE_DIRECTORY TOC
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
144 )
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
145 install(
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
146 FILES ${basedocdir}/plugin/${PLG_NAME}.html
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
147 COMPONENT ${PLG_NAME}
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
148 DESTINATION ${WITH_DOCDIR}/plugin
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
149 )
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
150 endif ()
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
151
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
152 if (PLG_TYPE MATCHES "JS")
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
153 _irccd_define_javascript_plugin()
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
154 elseif (PLG_TYPE MATCHES "NATIVE")
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
155 _irccd_define_native_plugin()
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
156 else ()
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
157 message(FATAL_ERROR "Invalid TYPE given, must be JS or NATIVE")
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
158 endif ()
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
159
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
160 # Component grouping in installer.
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
161 setg(CPACK_COMPONENT_${PLG_UPPER_NAME}_GROUP "Plugins")
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
162 setg(CPACK_COMPONENT_${PLG_UPPER_NAME}_DESCRIPTION "Install ${PLG_NAME} plugin.")
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
163 endif ()
60b94daf4d24 CMake: update irccd_define_plugin, closes #534
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
164 endfunction()