4 # Copyright (c) 2017 Vojtech Horky
7 # Redistribution and use in source and binary forms, with or without
8 # modification, are permitted provided that the following conditions
11 # - Redistributions of source code must retain the above copyright
12 # notice, this list of conditions and the following disclaimer.
13 # - Redistributions in binary form must reproduce the above copyright
14 # notice, this list of conditions and the following disclaimer in the
15 # documentation and/or other materials provided with the distribution.
16 # - The name of the author may not be used to endorse or promote products
17 # derived from this software without specific prior written permission.
19 # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
20 # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
21 # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
22 # IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
23 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
24 # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
28 # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 from hbuild
.scheduler
import Task
34 class BrowsableSourcesViaGnuGlobalTask(Task
):
36 Task
.__init
__(self
, 'browsable-sources-global')
39 root_dir
= self
.ctl
.get_dependency_data('dir')
40 my_dir
= self
.ctl
.make_temp_dir('build/browsable')
41 self
.ctl
.recursive_copy(root_dir
, my_dir
)
43 # For debugging, it is much better to generate the
44 # documentation in a sub-directory to speed things-up
45 # Following line is a possible way how to do that:
46 # my_dir = os.path.join(my_dir, 'abi')
48 res
= self
.ctl
.run_command([ 'gtags' ], cwd
=my_dir
)
52 res
= self
.ctl
.run_command([
62 '<a href="http://www.helenos.org">HelenOS homepage</a>',
63 '<a href="https://github.com/HelenOS/helenos">sources at GitHub</a>',
66 res
= self
.ctl
.run_command([
68 os
.path
.join(my_dir
, 'HTML/'),
72 '-e', '/<head>/a <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />',
73 '-e', '/<body>/a <h1>HelenOS sources</h1>',
74 '-e', '/<\/body>/i <address>{}</address>'.format(', '.join(footer_links
)),
81 self
.ctl
.move_dir_to_downloadable('Browsable sources', 'sources', os
.path
.join(my_dir
, 'HTML'))
89 class DoxygenTask(Task
):
91 Task
.__init
__(self
, 'doxygen')
94 root_dir
= self
.ctl
.get_dependency_data('dir')
95 my_dir
= self
.ctl
.make_temp_dir('build/doxygen')
96 self
.ctl
.recursive_copy(root_dir
, my_dir
)
98 res
= self
.ctl
.run_command([
106 self
.ctl
.move_dir_to_downloadable(
107 'Doxygen documentation',
109 os
.path
.join(my_dir
, 'doxygen', 'html')