summaryrefslogblamecommitdiffstats
path: root/common/waf.py
blob: 5437ab3d63193de81174095466bf6a105de26514 (plain) (tree)
1
2
3
4
5
6
7
8
9
10

              

 


                                                            
                                                 

                                       












                                                                                                             
                                                                                                                                          
                                             
                                                                                         


                                                                    






































                                                                                                        
import sys, os



def cmd_configure(ctx):
	ctx.find_program("sphinx-build", var="SPHINX_BUILD")

def cmd_build(ctx, conf_dir=".", source_dir="."):
	srcnode = ctx.srcnode.abspath()

	# Copy resources.
	for dir in ["_static", "_templates"]:
		files = ctx.path.parent.find_node("common").ant_glob("%s/*" % dir)
		ctx.path.get_bld().make_node(dir).mkdir() # dirs

		ctx(
			features    = "subst",
			is_copy     = True,
			source      = files,
			target      = [ctx.bldnode.find_node(dir).get_bld().make_node(x.name) for x in files]
		)

	ctx(
		rule   = "${SPHINX_BUILD} -b html -c %s -j %d -d build/doctrees %s build/html" % (conf_dir, ctx.options.jobs, source_dir),
		cwd	= ctx.path.abspath(),
		source =  ctx.path.ant_glob('**/*.rst'),# + ctx.path.ant_glob('conf.py'),
		target = ctx.path.find_or_declare('html/index.html')
	)

def cmd_options_path(ctx):
	ctx.add_option('--rtems-path-py', type='string', help="Path to py/ in RTEMS.")


def cmd_configure_path(ctx):
	if not ctx.options.rtems_path_py:
		ctx.fatal("--rtems-path-py is required")

	ctx.env.RTEMS_PATH = ctx.options.rtems_path_py

	cmd_configure(ctx)


CONF_FRAG = """
sys.path.append(os.path.abspath('../../common/'))
sys.path.append('%s')
templates_path = ['_templates']
html_static_path = ['_static']
"""


# XXX: fix this ugly hack.  No time to waste on it.
def cmd_build_path(ctx):
	def run(task):

		with open("conf.py") as fp:
			conf = "import sys, os\nsys.path.append(os.path.abspath('../../common/'))\n"
			conf += fp.read()

		task.inputs[0].abspath()
		task.outputs[0].write(conf + (CONF_FRAG % ctx.env.RTEMS_PATH))

	ctx(
		rule   = run,
		source = [ctx.path.parent.find_node("common/conf.py"), ctx.path.find_node("./conf.py")],
		target = ctx.path.get_bld().make_node('conf.py')
    )

	cmd_build(ctx, conf_dir="build", source_dir="build")