blob: e2eb3c0289ede97ed74e622515794e95c278d673 [file] [log] [blame]
{namespace buck}
/**
* @param title
* @param content
* @param? prettify true if https://code.google.com/p/google-code-prettify/
* should be used.
*/
{template .page}
{call .header}
{param title: $title /}
{param prettify: $prettify /}
{/call}
<div class="{css overview}">
{$content|noAutoescape}
</div>
{call .footer}
{param prettify: $prettify /}
{/call}
{/template}
/**
* @param title
* @param? prettify true if https://code.google.com/p/google-code-prettify/
* should be used.
*/
{template .header}
{let $fullTitle}
Buck: {$title}
{/let}
<!doctype html>
<html>
<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns#">
<title>{$fullTitle}</title>
<link type="image/png" rel="icon" href="{ROOT}static/favicon.png" />
<meta http-equiv="content-type" content="text/html;charset=utf-8">
{if $prettify}
<link type="text/css"
rel="stylesheet"
href="{ROOT}google-code-prettify/prettify.css"
>
{/if}
// List buck.css second to override prettify.
<link type="text/css" rel="stylesheet" href="{ROOT}static/buck.css">
// Google Analytics.
<script>
(function(i,s,o,g,r,a,m){lb}i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){lb}
(i[r].q=i[r].q||[]).push(arguments){rb},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
{rb})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-40185670-1', 'github.io');
ga('send', 'pageview');
</script>
// TODO(mbolin): Pass $og_type in as a parameter.
{let $og_type}
{if $title == 'An Android build tool'}
website
{else}
article
{/if}
{/let}
<meta property="og:locale" content="en_US">
<meta property="og:title" content="{$title}">
<meta property="og:site_name" content="Buck: an Android build tool">
<meta property="og:image" content="http://newsroom.fb.com/display-media/265/4">
<meta property="og:image:type" content="image/png">
<meta property="og:image:width" content="690">
<meta property="og:image:height" content="690">
<meta property="og:type" content="{$og_type}">
<meta property="fb:admins" content="{FB_APP_ID}">
</head>
<body>
// Image copied from https://github.com/blog/273-github-ribbons
<a href="https://github.com/facebook/buck">
<img id="fork" src="{ROOT}static/fork_me.png" alt="Fork me on GitHub">
</a>
<div id="fb-root"></div>
<script>(function(d, s, id) {lb}
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId={FB_APP_ID}";
fjs.parentNode.insertBefore(js, fjs);
{rb}(document, 'script', 'facebook-jssdk'));</script>
<h1>
<div class="{css titlebar}">
<div class="fb-like {css buck_like}"
data-send="false"
data-layout="standard"
data-width="350"
data-show-faces="false"
data-colorscheme="light"
data-action="like">
</div>
<div>{$fullTitle}</div>
</div>
</h1>
<div class="{css content_frame}">
{call buck.tableOfContents data="all" /}
<div class="{css content}">
{/template}
/**
* Consider passing in the path to the URL of the page that the user
* is currently on and not hyperlinking that item in the table of contents.
*/
{template .tableOfContents}
<div class="{css toc}">
<ul class="{css toc_root}">
<li><span class="{css toc_header}">Getting Started</span>
<ul>
<li><a href="{ROOT}">Overview</a>
<li><a href="{ROOT}setup/quick_start.html">Quick Start</a>
<li><a href="{ROOT}setup/install.html">Downloading and Installing Buck</a>
</ul>
<li><span class="{css toc_header}">About</span>
<ul>
<li><a href="{ROOT}concept/what_makes_buck_so_fast.html">What Makes Buck so Fast?</a>
<li><a href="{ROOT}concept/troubleshooting.html">Troubleshooting</a>
<li><a href="{ROOT}about/performance_tuning.html">Performance Tuning</a>
<li><a href="{ROOT}concept/faq.html">FAQ</a>
</ul>
<li><span class="{css toc_header}">Concepts</span>
<ul>
<li><a href="{ROOT}concept/build_rule.html">Build Rule</a>
<li><a href="{ROOT}concept/build_target.html">Build Target</a>
<li><a href="{ROOT}concept/build_file.html">Build File</a>
<li><a href="{ROOT}concept/buckversion.html">.buckversion</a>
<li><a href="{ROOT}concept/nobuckcheck.html">.nobuckcheck</a>
<li><a href="{ROOT}concept/buckconfig.html">.buckconfig</a>
<li><a href="{ROOT}concept/build_target_pattern.html">Build Target Pattern</a>
<li><a href="{ROOT}concept/visibility.html">Visibility</a>
</ul>
<li><span class="{css toc_header}">Build Rules</span>
<ul>
// TODO(mbolin): document android_instrumentation_apk
// TODO(mbolin): document robolectric_test
{foreach $rule in [
'android_binary',
'android_library',
'android_resource',
'apk_genrule',
'gen_aidl',
'genrule',
'java_binary',
'java_library',
'java_test',
'keystore',
'ndk_library',
'prebuilt_jar',
'prebuilt_native_library',
'project_config',
]}
<li><a href="{ROOT}rule/{$rule}.html">{$rule}()</a>
{/foreach}
</ul>
<li><span class="{css toc_header}">Functions</span>
<ul>
{foreach $function in [
'genfile',
'glob',
'include_defs',
]}
<li><a href="{ROOT}function/{$function}.html">{$function}()</a>
{/foreach}
</ul>
<li><span class="{css toc_header}">Commands</span>
<ul>
{foreach $command in [
'audit',
'build',
'clean',
'install',
'project',
'query',
'quickstart',
'targets',
'test',
'uninstall',
]}
<li><a href="{ROOT}command/{$command}.html">buck {$command}</a>
{/foreach}
<li><a href="{ROOT}command/buckd.html">buckd</a>
</ul>
<li><span class="{css toc_header}">Extending Buck</span>
<ul>
<li><a href="{ROOT}extending/macros.html">Custom Macros</a>
<li><a href="{ROOT}extending/rules.html">Custom Rules</a>
</ul>
<li><span class="{css toc_header}">Contributing to Buck</span>
<ul>
<li><a href="https://groups.google.com/group/buck-build">Discussion Group</a>
<li><a href="https://github.com/facebook/buck/issues/new">Report a Bug</a>
<li><a href="{ROOT}contributing/development.html">Development Workflow</a>
<li><a href="{ROOT}contributing/codestyle.html">Code Style</a>
<li><a href="{ROOT}javadoc">API</a>
<li><a href="https://github.com/facebook/buck">Browse the Source Code</a>
</ul>
</ul>
</div>
{/template}
/**
* @param? prettify true if https://code.google.com/p/google-code-prettify/
* should be used.
*/
{template .footer}
</div> // closes .content
</div> // closes .contentFrame
{if hasData() and $prettify}
<script src="{ROOT}google-code-prettify/prettify.js"></script>
<script>prettyPrint()</script>
{/if}
</body>
</html>
{/template}
/**
* Used to format an argument to a build rule.
*
* @param name Name of the argument.
* @param? default What the default value should be. If null, the argument is
* required.
* @param desc Prose description of the argument.
*/
{template .arg}
<li class="{css arg}"><code>{$name}</code>
{sp}
{if isNonnull($default)}
(defaults to <code>{$default}</code>)
{else}
(required)
{/if}
{sp}
{$desc|noAutoescape}
{/template}
/**
* @param overview HTML description of the rule.
* @param args HTML documentation for each arg for the rule.
* Should be created using multiple applications of the {buck.arg}
* template.
* @param? examples HTML documentation that shows examples of the build
* rule in action.
* @param? furtherexp Further explanation; HTML shown after arguments and
examples.
*/
{template .rule}
{$overview|noAutoescape}
<h2>Arguments</h2>
<ul class="{css arglist}">
{$args|noAutoescape}
</ul>
{if $examples}
<h2>Examples</h2>
{$examples|noAutoescape}
{/if}
{if $furtherexp}
{$furtherexp|noAutoescape}
{/if}
{/template}
/**
* Used to format an argument to a build rule.
*
* @param? name Name of the argument.
* @param? default What the default value should be. If null, the argument is
* required.
* @param desc Prose description of the argument.
*/
{template .functionArg}
<li class="{css arg}">
{if $name}
<code>{$name}</code>{sp}
{/if}
{if isNonnull($default)}
(defaults to <code>{$default}</code>)
{sp}
{/if}
{$desc|noAutoescape}
{/template}
/**
* Used to format a parameter of a command.
*
* @param name Name of the parameter.
* @param? alias The alias for this parameter.
* @param desc Prose description of the parameter.
*/
{template .param}
<li class="{css arg}"><code>--{$name}</code>
{sp}
{if $alias}
<code>(-{$alias})</code>
{/if}
{sp}
{$desc|noAutoescape}
{/template}
/**
* @param overview HTML description of the command.
* @param params HTML documentation for each param of the command.
* Should be created using multiple applications of the {buck.param}
* template.
* @param? examples HTML documentation that shows examples of the build
* rule in action.
*/
{template .command}
{$overview|noAutoescape}
<h2>Parameters</h2>
<ul class="{css arglist}">
{$params|noAutoescape}
</ul>
{if $examples}
<h2>Examples</h2>
{$examples|noAutoescape}
{/if}
{/template}
/**
* @param overview HTML description of the function.
* @param args HTML documentation for each arg for the function.
* Should be created using multiple applications of the {buck.functionArg}
* template.
* @param? examples HTML documentation that shows examples of the function
* in action.
*/
{template .function}
// For now, functions and build rules should be documented the same way.
{call .rule data="all" /}
{/template}
/** @param name */
{template .ruleLink}
<a href="{ROOT}rule/{$name}.html"><code>{$name}</code></a>
{/template}
/***/
{template .android_binary}
{call .ruleLink}{param name : 'android_binary' /}{/call}
{/template}
/***/
{template .android_library}
{call .ruleLink}{param name : 'android_library' /}{/call}
{/template}
/***/
{template .android_resource}
{call .ruleLink}{param name : 'android_resource' /}{/call}
{/template}
/***/
{template .keystore}
{call .ruleLink}{param name : 'keystore' /}{/call}
{/template}
/***/
{template .genrule}
{call .ruleLink}{param name : 'genrule' /}{/call}
{/template}
/***/
{template .java_library}
{call .ruleLink}{param name : 'java_library' /}{/call}
{/template}
/***/
{template .ndk_library}
{call .ruleLink}{param name : 'ndk_library' /}{/call}
{/template}
/***/
{template .prebuilt_jar}
{call .ruleLink}{param name : 'prebuilt_jar' /}{/call}
{/template}
/***/
{template .project_config}
{call .ruleLink}{param name : 'project_config' /}{/call}
{/template}
/**
* @param name
*/
{template .cmd_link}
<a href="{ROOT}command/{$name}.html"><code>buck {$name}</code></a>
{/template}
/***/
{template .cmd_clean}
{call .cmd_link}{param name : 'clean' /}{/call}
{/template}
/***/
{template .cmd_project}
{call .cmd_link}{param name : 'project' /}{/call}
{/template}
/***/
{template .cmd_quickstart}
{call .cmd_link}{param name : 'quickstart' /}{/call}
{/template}
/***/
{template .concept_buckconfig}
<a href="{ROOT}concept/buckconfig.html"><code>.buckconfig</code></a>
{/template}
/***/
{template .visibility_arg}
{call buck.arg}
{param name : 'visibility' /}
{param default : '[]' /}
{param desc}
List of <a href="{ROOT}concept/build_target_pattern.html">build
target patterns</a> that identify the build rules that can include
this rule in its <code>deps</code>.
{/param}
{/call}
{/template}
/**
*
*/
{template .platformWarning}
<strong>
Note: Buck works only on Mac OS X and Linux. Windows is not supported.
</strong>
<p>
{/template}
/**
* @param? withAlias
*/
{template .installationInstructions}
{literal}<pre>
git clone git@github.com:facebook/buck.git
cd buck
ant{/literal}{\n}
{if $withAlias}
sudo ln -s ${lb}PWD{rb}/bin/buck /usr/bin/buck
{else}
./bin/buck --help
{/if}
</pre>
{/template}