aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/fn.compile_library.html113
-rw-r--r--gcc/index.html161
-rw-r--r--gcc/sidebar-items.js1
-rw-r--r--gcc/struct.Config.html160
4 files changed, 435 insertions, 0 deletions
diff --git a/gcc/fn.compile_library.html b/gcc/fn.compile_library.html
new file mode 100644
index 0000000..c5b651e
--- /dev/null
+++ b/gcc/fn.compile_library.html
@@ -0,0 +1,113 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta name="generator" content="rustdoc">
+ <meta name="description" content="API documentation for the Rust `compile_library` fn in crate `gcc`.">
+ <meta name="keywords" content="rust, rustlang, rust-lang, compile_library">
+
+ <title>gcc::compile_library - Rust</title>
+
+ <link rel="stylesheet" type="text/css" href="../main.css">
+
+
+
+</head>
+<body class="rustdoc">
+ <!--[if lte IE 8]>
+ <div class="warning">
+ This old browser is unsupported and will most likely display funky
+ things.
+ </div>
+ <![endif]-->
+
+
+
+ <section class="sidebar">
+
+ <p class='location'><a href='index.html'>gcc</a></p><script>window.sidebarCurrent = {name: 'compile_library', ty: 'fn', relpath: ''};</script><script defer src="sidebar-items.js"></script>
+ </section>
+
+ <nav class="sub">
+ <form class="search-form js-only">
+ <div class="search-container">
+ <input class="search-input" name="search"
+ autocomplete="off"
+ placeholder="Click or press 'S' to search, '?' for more options..."
+ type="search">
+ </div>
+ </form>
+ </nav>
+
+ <section id='main' class="content fn">
+<h1 class='fqn'><span class='in-band'>Function <a href='index.html'>gcc</a>::<wbr><a class='fn' href=''>compile_library</a></span><span class='out-of-band'><span id='render-detail'>
+ <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">
+ [<span class='inner'>&#x2212;</span>]
+ </a>
+ </span><a id='src-181' class='srclink' href='../src/gcc/lib.rs.html#106-112' title='goto source code'>[src]</a></span></h1>
+<pre class='rust fn'>pub fn compile_library(output: &amp;<a href='http://doc.rust-lang.org/nightly/std/primitive.str.html'>str</a>, files: <a href='http://doc.rust-lang.org/nightly/std/primitive.slice.html'>&amp;[</a>&amp;<a href='http://doc.rust-lang.org/nightly/std/primitive.str.html'>str</a><a href='http://doc.rust-lang.org/nightly/std/primitive.slice.html'>]</a>)</pre><div class='docblock'><p>Compile a library from the given set of input C files.</p>
+
+<p>This will simply compile all files into object files and then assemble them
+into the output. This will read the standard environment variables to detect
+cross compilations and such.</p>
+
+<p>This function will also print all metadata on standard output for Cargo.</p>
+
+<h1 id="example" class='section-header'><a
+ href="#example">Example</a></h1><pre class='rust rust-example-rendered'>
+<span class='ident'>gcc</span>::<span class='ident'>compile_library</span>(<span class='string'>&quot;libfoo.a&quot;</span>, <span class='kw-2'>&amp;</span>[<span class='string'>&quot;foo.c&quot;</span>, <span class='string'>&quot;bar.c&quot;</span>]);
+</pre>
+</div></section>
+ <section id='search' class="content hidden"></section>
+
+ <section class="footer"></section>
+
+ <div id="help" class="hidden">
+ <div class="shortcuts">
+ <h1>Keyboard shortcuts</h1>
+ <dl>
+ <dt>?</dt>
+ <dd>Show this help dialog</dd>
+ <dt>S</dt>
+ <dd>Focus the search field</dd>
+ <dt>&larrb;</dt>
+ <dd>Move up in search results</dd>
+ <dt>&rarrb;</dt>
+ <dd>Move down in search results</dd>
+ <dt>&#9166;</dt>
+ <dd>Go to active search result</dd>
+ </dl>
+ </div>
+ <div class="infos">
+ <h1>Search tricks</h1>
+ <p>
+ Prefix searches with a type followed by a colon (e.g.
+ <code>fn:</code>) to restrict the search to a given type.
+ </p>
+ <p>
+ Accepted types are: <code>fn</code>, <code>mod</code>,
+ <code>struct</code>, <code>enum</code>,
+ <code>trait</code>, <code>typedef</code> (or
+ <code>tdef</code>).
+ </p>
+ <p>
+ Search functions by type signature (e.g.
+ <code>vec -> usize</code>)
+ </p>
+ </div>
+ </div>
+
+
+
+ <script>
+ window.rootPath = "../";
+ window.currentCrate = "gcc";
+ window.playgroundUrl = "";
+ </script>
+ <script src="../jquery.js"></script>
+ <script src="../main.js"></script>
+
+ <script async src="../search-index.js"></script>
+</body>
+</html> \ No newline at end of file
diff --git a/gcc/index.html b/gcc/index.html
new file mode 100644
index 0000000..1953b95
--- /dev/null
+++ b/gcc/index.html
@@ -0,0 +1,161 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta name="generator" content="rustdoc">
+ <meta name="description" content="API documentation for the Rust `gcc` crate.">
+ <meta name="keywords" content="rust, rustlang, rust-lang, gcc">
+
+ <title>gcc - Rust</title>
+
+ <link rel="stylesheet" type="text/css" href="../main.css">
+
+
+
+</head>
+<body class="rustdoc">
+ <!--[if lte IE 8]>
+ <div class="warning">
+ This old browser is unsupported and will most likely display funky
+ things.
+ </div>
+ <![endif]-->
+
+
+
+ <section class="sidebar">
+
+ <p class='location'></p><script>window.sidebarCurrent = {name: 'gcc', ty: 'mod', relpath: '../'};</script>
+ </section>
+
+ <nav class="sub">
+ <form class="search-form js-only">
+ <div class="search-container">
+ <input class="search-input" name="search"
+ autocomplete="off"
+ placeholder="Click or press 'S' to search, '?' for more options..."
+ type="search">
+ </div>
+ </form>
+ </nav>
+
+ <section id='main' class="content mod">
+<h1 class='fqn'><span class='in-band'>Crate <a class='mod' href=''>gcc</a></span><span class='out-of-band'><span id='render-detail'>
+ <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">
+ [<span class='inner'>&#x2212;</span>]
+ </a>
+ </span><a id='src-0' class='srclink' href='../src/gcc/lib.rs.html#1-498' title='goto source code'>[src]</a></span></h1>
+<div class='docblock'><p>A library for build scripts to compile custom C code</p>
+
+<p>This library is intended to be used as a <code>build-dependencies</code> entry in
+<code>Cargo.toml</code>:</p>
+
+<pre><code class="language-toml">[build-dependencies]
+gcc = &quot;0.2&quot;
+</code></pre>
+
+<p>The purpose of this crate is to provide the utility functions necessary to
+compile C code into a static archive which is then linked into a Rust crate.
+The top-level <code>compile_library</code> function serves as a convenience and more
+advanced configuration is available through the <code>Config</code> builder.</p>
+
+<p>This crate will automatically detect situations such as cross compilation or
+other environment variables set by Cargo and will build code appropriately.</p>
+
+<h1 id="examples" class='section-header'><a
+ href="#examples">Examples</a></h1>
+<p>Use the default configuration:</p>
+<pre class='rust rust-example-rendered'>
+<span class='kw'>extern</span> <span class='kw'>crate</span> <span class='ident'>gcc</span>;
+
+<span class='kw'>fn</span> <span class='ident'>main</span>() {
+ <span class='ident'>gcc</span>::<span class='ident'>compile_library</span>(<span class='string'>&quot;libfoo.a&quot;</span>, <span class='kw-2'>&amp;</span>[<span class='string'>&quot;src/foo.c&quot;</span>]);
+}
+</pre>
+
+<p>Use more advanced configuration:</p>
+<pre class='rust rust-example-rendered'>
+<span class='kw'>extern</span> <span class='kw'>crate</span> <span class='ident'>gcc</span>;
+
+<span class='kw'>fn</span> <span class='ident'>main</span>() {
+ <span class='ident'>gcc</span>::<span class='ident'>Config</span>::<span class='ident'>new</span>()
+ .<span class='ident'>file</span>(<span class='string'>&quot;src/foo.c&quot;</span>)
+ .<span class='ident'>define</span>(<span class='string'>&quot;FOO&quot;</span>, <span class='prelude-val'>Some</span>(<span class='string'>&quot;bar&quot;</span>))
+ .<span class='ident'>include</span>(<span class='string'>&quot;src&quot;</span>)
+ .<span class='ident'>compile</span>(<span class='string'>&quot;libfoo.a&quot;</span>);
+}
+</pre>
+</div><h2 id='structs' class='section-header'><a href="#structs">Structs</a></h2>
+<table>
+ <tr class=' module-item'>
+ <td><a class='struct' href='struct.Config.html'
+ title='gcc::Config'>Config</a></td>
+ <td class='docblock short'>
+ <p>Extra configuration to pass to gcc.</p>
+
+ </td>
+ </tr>
+ </table><h2 id='functions' class='section-header'><a href="#functions">Functions</a></h2>
+<table>
+ <tr class=' module-item'>
+ <td><a class='fn' href='fn.compile_library.html'
+ title='gcc::compile_library'>compile_library</a></td>
+ <td class='docblock short'>
+ <p>Compile a library from the given set of input C files.</p>
+
+ </td>
+ </tr>
+ </table></section>
+ <section id='search' class="content hidden"></section>
+
+ <section class="footer"></section>
+
+ <div id="help" class="hidden">
+ <div class="shortcuts">
+ <h1>Keyboard shortcuts</h1>
+ <dl>
+ <dt>?</dt>
+ <dd>Show this help dialog</dd>
+ <dt>S</dt>
+ <dd>Focus the search field</dd>
+ <dt>&larrb;</dt>
+ <dd>Move up in search results</dd>
+ <dt>&rarrb;</dt>
+ <dd>Move down in search results</dd>
+ <dt>&#9166;</dt>
+ <dd>Go to active search result</dd>
+ </dl>
+ </div>
+ <div class="infos">
+ <h1>Search tricks</h1>
+ <p>
+ Prefix searches with a type followed by a colon (e.g.
+ <code>fn:</code>) to restrict the search to a given type.
+ </p>
+ <p>
+ Accepted types are: <code>fn</code>, <code>mod</code>,
+ <code>struct</code>, <code>enum</code>,
+ <code>trait</code>, <code>typedef</code> (or
+ <code>tdef</code>).
+ </p>
+ <p>
+ Search functions by type signature (e.g.
+ <code>vec -> usize</code>)
+ </p>
+ </div>
+ </div>
+
+
+
+ <script>
+ window.rootPath = "../";
+ window.currentCrate = "gcc";
+ window.playgroundUrl = "";
+ </script>
+ <script src="../jquery.js"></script>
+ <script src="../main.js"></script>
+
+ <script async src="../search-index.js"></script>
+</body>
+</html> \ No newline at end of file
diff --git a/gcc/sidebar-items.js b/gcc/sidebar-items.js
new file mode 100644
index 0000000..dcb451c
--- /dev/null
+++ b/gcc/sidebar-items.js
@@ -0,0 +1 @@
+initSidebarItems({"fn":[["compile_library","Compile a library from the given set of input C files."]],"struct":[["Config","Extra configuration to pass to gcc."]]}); \ No newline at end of file
diff --git a/gcc/struct.Config.html b/gcc/struct.Config.html
new file mode 100644
index 0000000..3675d21
--- /dev/null
+++ b/gcc/struct.Config.html
@@ -0,0 +1,160 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta name="generator" content="rustdoc">
+ <meta name="description" content="API documentation for the Rust `Config` struct in crate `gcc`.">
+ <meta name="keywords" content="rust, rustlang, rust-lang, Config">
+
+ <title>gcc::Config - Rust</title>
+
+ <link rel="stylesheet" type="text/css" href="../main.css">
+
+
+
+</head>
+<body class="rustdoc">
+ <!--[if lte IE 8]>
+ <div class="warning">
+ This old browser is unsupported and will most likely display funky
+ things.
+ </div>
+ <![endif]-->
+
+
+
+ <section class="sidebar">
+
+ <p class='location'><a href='index.html'>gcc</a></p><script>window.sidebarCurrent = {name: 'Config', ty: 'struct', relpath: ''};</script><script defer src="sidebar-items.js"></script>
+ </section>
+
+ <nav class="sub">
+ <form class="search-form js-only">
+ <div class="search-container">
+ <input class="search-input" name="search"
+ autocomplete="off"
+ placeholder="Click or press 'S' to search, '?' for more options..."
+ type="search">
+ </div>
+ </form>
+ </nav>
+
+ <section id='main' class="content struct">
+<h1 class='fqn'><span class='in-band'>Struct <a href='index.html'>gcc</a>::<wbr><a class='struct' href=''>Config</a></span><span class='out-of-band'><span id='render-detail'>
+ <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">
+ [<span class='inner'>&#x2212;</span>]
+ </a>
+ </span><a id='src-14' class='srclink' href='../src/gcc/lib.rs.html#56-65' title='goto source code'>[src]</a></span></h1>
+<pre class='rust struct'>pub struct Config {
+ // some fields omitted
+}</pre><div class='docblock'><p>Extra configuration to pass to gcc.</p>
+</div><h2 id='methods'>Methods</h2><h3 class='impl'><code>impl <a class='struct' href='../gcc/struct.Config.html' title='gcc::Config'>Config</a></code></h3><div class='impl-items'><h4 id='method.new' class='method'><code>fn <a href='#method.new' class='fnname'>new</a>() -&gt; <a class='struct' href='../gcc/struct.Config.html' title='gcc::Config'>Config</a></code></h4>
+<div class='docblock'><p>Construct a new instance of a blank set of configuration.</p>
+
+<p>This builder is finished with the <code>compile</code> function.</p>
+</div><h4 id='method.include' class='method'><code>fn <a href='#method.include' class='fnname'>include</a>&lt;P: <a class='trait' href='http://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html' title='core::convert::AsRef'>AsRef</a>&lt;<a class='struct' href='http://doc.rust-lang.org/nightly/std/path/struct.Path.html' title='std::path::Path'>Path</a>&gt;&gt;(&amp;mut self, dir: P) -&gt; &amp;mut <a class='struct' href='../gcc/struct.Config.html' title='gcc::Config'>Config</a></code></h4>
+<div class='docblock'><p>Add a directory to the <code>-I</code> or include path for headers</p>
+</div><h4 id='method.define' class='method'><code>fn <a href='#method.define' class='fnname'>define</a>(&amp;mut self, var: &amp;<a href='http://doc.rust-lang.org/nightly/std/primitive.str.html'>str</a>, val: <a class='enum' href='http://doc.rust-lang.org/nightly/core/option/enum.Option.html' title='core::option::Option'>Option</a>&lt;&amp;<a href='http://doc.rust-lang.org/nightly/std/primitive.str.html'>str</a>&gt;) -&gt; &amp;mut <a class='struct' href='../gcc/struct.Config.html' title='gcc::Config'>Config</a></code></h4>
+<div class='docblock'><p>Specify a <code>-D</code> variable with an optional value.</p>
+</div><h4 id='method.object' class='method'><code>fn <a href='#method.object' class='fnname'>object</a>&lt;P: <a class='trait' href='http://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html' title='core::convert::AsRef'>AsRef</a>&lt;<a class='struct' href='http://doc.rust-lang.org/nightly/std/path/struct.Path.html' title='std::path::Path'>Path</a>&gt;&gt;(&amp;mut self, obj: P) -&gt; &amp;mut <a class='struct' href='../gcc/struct.Config.html' title='gcc::Config'>Config</a></code></h4>
+<div class='docblock'><p>Add an arbitrary object file to link in</p>
+</div><h4 id='method.flag' class='method'><code>fn <a href='#method.flag' class='fnname'>flag</a>(&amp;mut self, flag: &amp;<a href='http://doc.rust-lang.org/nightly/std/primitive.str.html'>str</a>) -&gt; &amp;mut <a class='struct' href='../gcc/struct.Config.html' title='gcc::Config'>Config</a></code></h4>
+<div class='docblock'><p>Add an arbitrary flag to the invocation of the compiler</p>
+</div><h4 id='method.file' class='method'><code>fn <a href='#method.file' class='fnname'>file</a>&lt;P: <a class='trait' href='http://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html' title='core::convert::AsRef'>AsRef</a>&lt;<a class='struct' href='http://doc.rust-lang.org/nightly/std/path/struct.Path.html' title='std::path::Path'>Path</a>&gt;&gt;(&amp;mut self, p: P) -&gt; &amp;mut <a class='struct' href='../gcc/struct.Config.html' title='gcc::Config'>Config</a></code></h4>
+<div class='docblock'><p>Add a file which will be compiled</p>
+</div><h4 id='method.cpp' class='method'><code>fn <a href='#method.cpp' class='fnname'>cpp</a>(&amp;mut self, cpp: <a href='http://doc.rust-lang.org/nightly/std/primitive.bool.html'>bool</a>) -&gt; &amp;mut <a class='struct' href='../gcc/struct.Config.html' title='gcc::Config'>Config</a></code></h4>
+<div class='docblock'><p>Set C++ support.</p>
+
+<p>The other <code>cpp_*</code> options will only become active if this is set to
+<code>true</code>.</p>
+</div><h4 id='method.cpp_link_stdlib' class='method'><code>fn <a href='#method.cpp_link_stdlib' class='fnname'>cpp_link_stdlib</a>(&amp;mut self, cpp_link_stdlib: <a class='enum' href='http://doc.rust-lang.org/nightly/core/option/enum.Option.html' title='core::option::Option'>Option</a>&lt;&amp;<a href='http://doc.rust-lang.org/nightly/std/primitive.str.html'>str</a>&gt;) -&gt; &amp;mut <a class='struct' href='../gcc/struct.Config.html' title='gcc::Config'>Config</a></code></h4>
+<div class='docblock'><p>Set the standard library to link against when compiling with C++
+support.</p>
+
+<p>The default value of this property depends on the current target: On
+OS X <code>Some(&quot;c++&quot;)</code> is used, when compiling for a Visual Studio based
+target <code>None</code> is used and for other targets <code>Some(&quot;stdc++&quot;)</code> is used.</p>
+
+<p>A value of <code>None</code> indicates that no automatic linking should happen,
+otherwise cargo will link against the specified library.</p>
+
+<p>The given library name must not contain the <code>lib</code> prefix.</p>
+</div><h4 id='method.cpp_set_stdlib' class='method'><code>fn <a href='#method.cpp_set_stdlib' class='fnname'>cpp_set_stdlib</a>(&amp;mut self, cpp_set_stdlib: <a class='enum' href='http://doc.rust-lang.org/nightly/core/option/enum.Option.html' title='core::option::Option'>Option</a>&lt;&amp;<a href='http://doc.rust-lang.org/nightly/std/primitive.str.html'>str</a>&gt;) -&gt; &amp;mut <a class='struct' href='../gcc/struct.Config.html' title='gcc::Config'>Config</a></code></h4>
+<div class='docblock'><p>Force the C++ compiler to use the specified standard library.</p>
+
+<p>Setting this option will automatically set <code>cpp_link_stdlib</code> to the same
+value.</p>
+
+<p>The default value of this option is always <code>None</code>.</p>
+
+<p>This option has no effect when compiling for a Visual Studio based
+target.</p>
+
+<p>This option sets the <code>-stdlib</code> flag, which is only supported by some
+compilers (clang, icc) but not by others (gcc). The library will not
+detect which compiler is used, as such it is the responsibility of the
+caller to ensure that this option is only used in conjuction with a
+compiler which supports the <code>-stdlib</code> flag.</p>
+
+<p>A value of <code>None</code> indicates that no specific C++ standard library should
+be used, otherwise <code>-stdlib</code> is added to the compile invocation.</p>
+
+<p>The given library name must not contain the <code>lib</code> prefix.</p>
+</div><h4 id='method.compile' class='method'><code>fn <a href='#method.compile' class='fnname'>compile</a>(&amp;self, output: &amp;<a href='http://doc.rust-lang.org/nightly/std/primitive.str.html'>str</a>)</code></h4>
+<div class='docblock'><p>Run the compiler, generating the file <code>output</code></p>
+
+<p>The name <code>output</code> must begin with <code>lib</code> and end with <code>.a</code></p>
+</div></div></section>
+ <section id='search' class="content hidden"></section>
+
+ <section class="footer"></section>
+
+ <div id="help" class="hidden">
+ <div class="shortcuts">
+ <h1>Keyboard shortcuts</h1>
+ <dl>
+ <dt>?</dt>
+ <dd>Show this help dialog</dd>
+ <dt>S</dt>
+ <dd>Focus the search field</dd>
+ <dt>&larrb;</dt>
+ <dd>Move up in search results</dd>
+ <dt>&rarrb;</dt>
+ <dd>Move down in search results</dd>
+ <dt>&#9166;</dt>
+ <dd>Go to active search result</dd>
+ </dl>
+ </div>
+ <div class="infos">
+ <h1>Search tricks</h1>
+ <p>
+ Prefix searches with a type followed by a colon (e.g.
+ <code>fn:</code>) to restrict the search to a given type.
+ </p>
+ <p>
+ Accepted types are: <code>fn</code>, <code>mod</code>,
+ <code>struct</code>, <code>enum</code>,
+ <code>trait</code>, <code>typedef</code> (or
+ <code>tdef</code>).
+ </p>
+ <p>
+ Search functions by type signature (e.g.
+ <code>vec -> usize</code>)
+ </p>
+ </div>
+ </div>
+
+
+
+ <script>
+ window.rootPath = "../";
+ window.currentCrate = "gcc";
+ window.playgroundUrl = "";
+ </script>
+ <script src="../jquery.js"></script>
+ <script src="../main.js"></script>
+
+ <script async src="../search-index.js"></script>
+</body>
+</html> \ No newline at end of file