提交 cdfdc1eb 编写于 作者: A Alex Crichton

Move extra::flate to libflate

This is hopefully the beginning of the long-awaited dissolution of libextra.
Using the newly created build infrastructure for building libraries, I decided
to move the first module out of libextra.

While not being a particularly meaty module in and of itself, the flate module
is required by rustc and additionally has a native C dependency. I was able to
very easily split out the C dependency from rustrt, update librustc, and
magically everything gets installed to the right locations and built
automatically.

This is meant to be a proof-of-concept commit to how easy it is to remove
modules from libextra now. I didn't put any effort into modernizing the
interface of libflate or updating it other than to remove the one glob import it
had.
上级 26114838
......@@ -37,6 +37,8 @@ li {list-style-type: none; }
* [The Rust parser, `libsyntax`](syntax/index.html)
* [The Rust compiler, `librustc`](rustc/index.html)
* [The `flate` compression library](flate/index.html)
# Tooling
* [The `rustdoc` manual](rustdoc.html)
......@@ -47,11 +49,11 @@ li {list-style-type: none; }
* [Language FAQ](complement-lang-faq.html)
* [Project FAQ](complement-project-faq.html)
* [Usage FAQ](complement-usage-faq.html)
* [Code cheatsheet](complement-cheatsheet.html) - "How do I do X?"
* [Code cheatsheet](complement-cheatsheet.html) - "How do I do X?"
* [How to submit a bug report](complement-bugreport.html)
# External resources
* The Rust [IRC channel](http://chat.mibbit.com/?server=irc.mozilla.org&channel=%23rust) - `#rust` on irc.mozilla.org
* The Rust [IRC channel](http://chat.mibbit.com/?server=irc.mozilla.org&channel=%23rust) - `#rust` on irc.mozilla.org
* The Rust community on [Reddit](http://reddit.com/r/rust)
* The Rust [wiki](http://github.com/mozilla/rust/wiki)
......@@ -49,7 +49,7 @@
# automatically generated for all stage/host/target combinations.
################################################################################
TARGET_CRATES := std extra green rustuv native
TARGET_CRATES := std extra green rustuv native flate
HOST_CRATES := syntax rustc rustdoc rustpkg
CRATES := $(TARGET_CRATES) $(HOST_CRATES)
TOOLS := compiletest rustpkg rustdoc rustc
......@@ -60,9 +60,10 @@ DEPS_green := std
DEPS_rustuv := std native:uv native:uv_support
DEPS_native := std
DEPS_syntax := std extra
DEPS_rustc := syntax native:rustllvm
DEPS_rustc := syntax native:rustllvm flate
DEPS_rustdoc := rustc native:sundown
DEPS_rustpkg := rustc
DEPS_flate := std native:miniz
TOOL_DEPS_compiletest := extra green rustuv
TOOL_DEPS_rustpkg := rustpkg green rustuv
......
......@@ -35,7 +35,7 @@
# that's per-target so you're allowed to conditionally add files based on the
# target.
################################################################################
NATIVE_LIBS := rustrt sundown uv_support morestack
NATIVE_LIBS := rustrt sundown uv_support morestack miniz
# $(1) is the target triple
define NATIVE_LIBRARIES
......@@ -49,8 +49,8 @@ NATIVE_DEPS_sundown_$(1) := sundown/src/autolink.c \
sundown/html/html_smartypants.c \
sundown/html/html.c
NATIVE_DEPS_uv_support_$(1) := rust_uv.c
NATIVE_DEPS_miniz_$(1) = miniz.c
NATIVE_DEPS_rustrt_$(1) := rust_builtin.c \
miniz.c \
rust_android_dummy.c \
rust_test_helpers.c \
rust_try.ll \
......
......@@ -855,14 +855,16 @@ $$(TLIB2_T_$(2)_H_$(3))/$$(FT_LIB): \
tmp/$$(FT).rc \
$$(SREQ2_T_$(2)_H_$(3))
@$$(call E, compile_and_link: $$@)
$$(STAGE2_T_$(2)_H_$(3)) --lib -o $$@ $$<
$$(STAGE2_T_$(2)_H_$(3)) --lib -o $$@ $$< \
-L "$$(RT_OUTPUT_DIR_$(2))"
$(3)/test/$$(FT_DRIVER)-$(2)$$(X_$(2)): \
tmp/$$(FT_DRIVER).rs \
$$(TLIB2_T_$(2)_H_$(3))/$$(FT_LIB) \
$$(SREQ2_T_$(2)_H_$(3))
@$$(call E, compile_and_link: $$@ $$<)
$$(STAGE2_T_$(2)_H_$(3)) -o $$@ $$<
$$(STAGE2_T_$(2)_H_$(3)) -o $$@ $$< \
-L "$$(RT_OUTPUT_DIR_$(2))"
$(3)/test/$$(FT_DRIVER)-$(2).out: \
$(3)/test/$$(FT_DRIVER)-$(2)$$(X_$(2)) \
......
......@@ -82,7 +82,6 @@
pub mod complex;
pub mod stats;
pub mod semver;
pub mod flate;
pub mod hex;
pub mod uuid;
......
......@@ -14,6 +14,10 @@
*/
#[crate_id = "flate#0.10-pre"];
#[crate_type = "rlib"];
#[crate_type = "dylib"];
#[license = "MIT/ASL2"];
#[allow(missing_doc)];
use std::libc::{c_void, size_t, c_int};
......@@ -23,7 +27,7 @@
pub mod rustrt {
use std::libc::{c_int, c_void, size_t};
#[link(name = "rustrt", kind = "static")]
#[link(name = "miniz", kind = "static")]
extern {
pub fn tdefl_compress_mem_to_heap(psrc_buf: *c_void,
src_buf_len: size_t,
......@@ -91,7 +95,7 @@ pub fn inflate_bytes_zlib(bytes: &[u8]) -> ~[u8] {
#[cfg(test)]
mod tests {
use super::*;
use super::{inflate_bytes, deflate_bytes};
use std::rand;
use std::rand::Rng;
......
......@@ -30,6 +30,7 @@
#[feature(macro_rules, globs, struct_variant, managed_boxes)];
extern mod extra;
extern mod flate;
extern mod syntax;
use back::link;
......
......@@ -33,7 +33,7 @@
use std::ptr;
use std::str;
use std::vec;
use extra::flate;
use flate;
pub enum Os {
OsMacos,
......
......@@ -2683,7 +2683,7 @@ pub fn crate_ctxt_to_encode_parms<'r>(cx: &'r CrateContext, ie: encoder::encode_
}
pub fn write_metadata(cx: &CrateContext, crate: &ast::Crate) -> ~[u8] {
use extra::flate;
use flate;
if !cx.sess.building_library.get() {
return ~[]
......
......@@ -16,7 +16,9 @@
//! functionality through a unit-struct, `Markdown`, which has an implementation
//! of `fmt::Default`. Example usage:
//!
//! ```rust
//! ```rust,ignore
//! use rustdoc::html::markdown::Markdown;
//!
//! let s = "My *markdown* _text_";
//! let html = format!("{}", Markdown(s));
//! // ... something using html
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册