diff --git a/Makefile.in b/Makefile.in index 6f2b962d416..5bb15c760dd 100644 --- a/Makefile.in +++ b/Makefile.in @@ -153,21 +153,28 @@ $(eval $(call DEF_SUBMODULE_RULES,$(submodule)))) DONE_SUBMODULES = $(foreach dep,$(DEPS_SUBMODULES),$(DONE_$(dep))) -RFLAGS_servo_gfx = $(strip $(CFG_RUSTC_FLAGS)) $(addprefix -L $(B)src/,$(DEPS_SUBMODULES)) +RFLAGS_servo_util = $(strip $(CFG_RUSTC_FLAGS)) $(addprefix -L $(B)src/,$(DEPS_SUBMODULES)) +SRC_servo_util = $(call rwildcard,$(S)src/servo-util/,*.rs) +CRATE_servo_util = $(S)src/servo-util/servo_util.rc +DONE_servo_util = $(B)src/servo-util/libservoutil.dummy + +DEPS_servo_util = $(CRATE_servo_util) $(SRC_servo_util) $(DONE_SUBMODULES) + +RFLAGS_servo_gfx = $(strip $(CFG_RUSTC_FLAGS)) $(addprefix -L $(B)src/,$(DEPS_SUBMODULES)) -L $(B)src/servo-util SRC_servo_gfx = $(call rwildcard,$(S)src/servo-gfx/,*.rs) CRATE_servo_gfx = $(S)src/servo-gfx/servo_gfx.rc DONE_servo_gfx = $(B)src/servo-gfx/libservogfx.dummy -DEPS_servo_gfx = $(CRATE_servo_gfx) $(SRC_servo_gfx) $(DONE_SUBMODULES) +DEPS_servo_gfx = $(CRATE_servo_gfx) $(SRC_servo_gfx) $(DONE_SUBMODULES) $(DONE_servo_util) -RFLAGS_servo = $(strip $(CFG_RUSTC_FLAGS)) $(addprefix -L $(B)src/,$(DEPS_SUBMODULES)) -L $(B)src/servo-gfx +RFLAGS_servo = $(strip $(CFG_RUSTC_FLAGS)) $(addprefix -L $(B)src/,$(DEPS_SUBMODULES)) -L $(B)src/servo-gfx -L $(B)src/servo-util WEBIDL_servo = $(call rwildcard,$(S)src/servo/,*.webidl) AUTOGEN_SRC_servo = $(patsubst %.webidl, %Binding.rs, $(WEBIDL_servo)) SRC_servo = $(call rwildcard,$(S)src/servo/,*.rs) $(AUTOGEN_SRC_servo) CRATE_servo = $(S)src/servo/servo.rc -DEPS_servo = $(CRATE_servo) $(SRC_servo) $(DONE_SUBMODULES) $(DONE_servo_gfx) +DEPS_servo = $(CRATE_servo) $(SRC_servo) $(DONE_SUBMODULES) $(DONE_servo_util) $(DONE_servo_gfx) # rules that depend on having correct meta-target vars (DEPS_CLEAN, DEPS_servo, etc) include $(S)mk/check.mk @@ -179,6 +186,9 @@ all: servo package # Servo helper libraries +$(DONE_servo_util): $(DEPS_servo_util) + $(RUSTC) $(RFLAGS_servo_util) -o $@ $< && touch $@ + $(DONE_servo_gfx): $(DEPS_servo_gfx) $(RUSTC) $(RFLAGS_servo_gfx) -o $@ $< && touch $@ diff --git a/configure b/configure index c7a8a5408e6..54137ec33e4 100755 --- a/configure +++ b/configure @@ -440,6 +440,7 @@ do make_dir ${CFG_BUILD_DIR}src/${i} done +make_dir ${CFG_BUILD_DIR}src/servo-util make_dir ${CFG_BUILD_DIR}src/servo-gfx make_dir src/test/ref make_dir src/rust diff --git a/src/servo-gfx/display_list.rs b/src/servo-gfx/display_list.rs index 136403b2261..fe26147e4a5 100644 --- a/src/servo-gfx/display_list.rs +++ b/src/servo-gfx/display_list.rs @@ -7,7 +7,7 @@ use geometry::Au; use image::base::Image; use render_context::RenderContext; use text::SendableTextRun; -use util::range::Range; +use servo_util::range::Range; use clone_arc = std::arc::clone; use geom::Rect; diff --git a/src/servo-gfx/font.rs b/src/servo-gfx/font.rs index 9a8386e7f7a..bb70af4ad63 100644 --- a/src/servo-gfx/font.rs +++ b/src/servo-gfx/font.rs @@ -6,7 +6,7 @@ use color::Color; use font_context::FontContext; use geometry::Au; use render_context::RenderContext; -use util::range::Range; +use servo_util::range::Range; use text::glyph::{GlyphStore, GlyphIndex}; use text::shaper::ShaperMethods; use text::{Shaper, TextRun}; diff --git a/src/servo-gfx/font_context.rs b/src/servo-gfx/font_context.rs index 31e26de928e..1958d3288ea 100644 --- a/src/servo-gfx/font_context.rs +++ b/src/servo-gfx/font_context.rs @@ -6,8 +6,8 @@ use font::{Font, FontDescriptor, FontGroup, FontStyle, SelectorPlatformIdentifie use font::{SelectorStubDummy, SpecifiedFontStyle, UsedFontStyle}; use font_list::FontList; use native::FontHandle; -use util::cache::Cache; -use util::cache::MonoCache; +use servo_util::cache::Cache; +use servo_util::cache::MonoCache; use azure::azure_hl::BackendType; use core::hashmap::HashMap; diff --git a/src/servo-gfx/font_list.rs b/src/servo-gfx/font_list.rs index 5617968e57c..9913c197264 100644 --- a/src/servo-gfx/font_list.rs +++ b/src/servo-gfx/font_list.rs @@ -14,7 +14,7 @@ use fontconfig; #[cfg(target_os = "macos")] use quartz; use native; -use util::time::time; +use servo_util::time::time; #[cfg(target_os = "macos")] type FontListHandle = quartz::font_list::QuartzFontListHandle; diff --git a/src/servo-gfx/render_layers.rs b/src/servo-gfx/render_layers.rs index 3d9825f342d..b409215366a 100644 --- a/src/servo-gfx/render_layers.rs +++ b/src/servo-gfx/render_layers.rs @@ -5,7 +5,7 @@ use compositor::{LayerBuffer, LayerBufferSet}; use display_list::DisplayList; use opts::Opts; -use util::time; +use servo_util::time; use azure::azure_hl::{B8G8R8A8, DrawTarget}; use core::comm::Chan; diff --git a/src/servo-gfx/render_task.rs b/src/servo-gfx/render_task.rs index 055a41a0ac8..0b3ae93b99c 100644 --- a/src/servo-gfx/render_task.rs +++ b/src/servo-gfx/render_task.rs @@ -12,7 +12,7 @@ use opts::Opts; use render_context::RenderContext; use render_layers::{RenderLayer, render_layers}; use resource::util::spawn_listener; -use util::time::time; +use servo_util::time::time; use core::cell::Cell; use core::comm::{Port, SharedChan}; diff --git a/src/servo-gfx/resource/image_cache_task.rs b/src/servo-gfx/resource/image_cache_task.rs index 511afab04be..51568c80da9 100644 --- a/src/servo-gfx/resource/image_cache_task.rs +++ b/src/servo-gfx/resource/image_cache_task.rs @@ -5,7 +5,7 @@ use image::base::{Image, load_from_memory}; use resource::resource_task; use resource::resource_task::ResourceTask; -use util::url::{UrlMap, url_map}; +use servo_util::url::{UrlMap, url_map}; use clone_arc = std::arc::clone; use core::comm::{Chan, Port, SharedChan, stream}; diff --git a/src/servo-gfx/resource/local_image_cache.rs b/src/servo-gfx/resource/local_image_cache.rs index 92ef4225dec..a051f8e19de 100644 --- a/src/servo-gfx/resource/local_image_cache.rs +++ b/src/servo-gfx/resource/local_image_cache.rs @@ -13,7 +13,7 @@ use std::net::url::Url; use core::comm::Port; use resource::image_cache_task::{ImageCacheTask, ImageResponseMsg, Prefetch, Decode, GetImage}; use resource::image_cache_task::{ WaitForImage, ImageReady, ImageNotReady, ImageFailed}; -use util::url::{UrlMap, url_map}; +use servo_util::url::{UrlMap, url_map}; pub fn LocalImageCache(image_cache_task: ImageCacheTask) -> LocalImageCache { LocalImageCache { diff --git a/src/servo-gfx/servo_gfx.rc b/src/servo-gfx/servo_gfx.rc index 4330c8858a6..207e5373a86 100644 --- a/src/servo-gfx/servo_gfx.rc +++ b/src/servo-gfx/servo_gfx.rc @@ -13,14 +13,13 @@ extern mod geom; extern mod http_client; extern mod stb_image; extern mod std; +extern mod servo_util (name = "servo_util"); -pub use servo_util = util; pub use gfx_font = font; pub use gfx_font_context = font_context; pub use gfx_font_list = font_list; pub use servo_gfx_font = font; pub use servo_gfx_font_list = font_list; -pub use servo_gfx_util = util; priv mod render_context; @@ -86,10 +85,3 @@ pub mod resource { pub mod util; } -pub mod util { - pub mod cache; - pub mod range; - pub mod time; - pub mod url; - pub mod vec; -} diff --git a/src/servo-gfx/text/glyph.rs b/src/servo-gfx/text/glyph.rs index 939fd4982c5..f1633080e48 100644 --- a/src/servo-gfx/text/glyph.rs +++ b/src/servo-gfx/text/glyph.rs @@ -3,8 +3,8 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use geometry::Au; -use servo_gfx_util::range::Range; -use servo_gfx_util::vec::*; +use servo_util::range::Range; +use servo_util::vec::*; use geometry; use core; diff --git a/src/servo-gfx/text/harfbuzz/shaper.rs b/src/servo-gfx/text/harfbuzz/shaper.rs index cc57ad80585..c1443191254 100644 --- a/src/servo-gfx/text/harfbuzz/shaper.rs +++ b/src/servo-gfx/text/harfbuzz/shaper.rs @@ -14,7 +14,7 @@ use text::glyph::{GlyphStore, GlyphIndex, GlyphData}; use text::shaper::ShaperMethods; use gfx_font::{FontHandleMethods, FontTableMethods}; -use util::range::Range; +use servo_util::range::Range; use core::libc::{c_uint, c_int, c_void, c_char}; use core::util::ignore; diff --git a/src/servo-gfx/text/text_run.rs b/src/servo-gfx/text/text_run.rs index e6775b5f260..2885d96da90 100644 --- a/src/servo-gfx/text/text_run.rs +++ b/src/servo-gfx/text/text_run.rs @@ -6,7 +6,7 @@ use font_context::FontContext; use geometry::Au; use text::glyph::{BreakTypeNormal, GlyphStore}; use servo_gfx_font::{Font, FontDescriptor, RunMetrics}; -use servo_gfx_util::range::Range; +use servo_util::range::Range; pub struct TextRun { text: ~str, diff --git a/src/servo-gfx/util/cache.rs b/src/servo-util/cache.rs similarity index 100% rename from src/servo-gfx/util/cache.rs rename to src/servo-util/cache.rs diff --git a/src/servo-gfx/util/range.rs b/src/servo-util/range.rs similarity index 100% rename from src/servo-gfx/util/range.rs rename to src/servo-util/range.rs diff --git a/src/servo-util/servo_util.rc b/src/servo-util/servo_util.rc new file mode 100644 index 00000000000..0f67d299cb3 --- /dev/null +++ b/src/servo-util/servo_util.rc @@ -0,0 +1,18 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#[link(name = "servo_util", + vers = "0.1", + uuid = "48421f49-17cf-41c5-a68e-ff669ff2ecd5", + url = "http://servo.org/")]; +#[crate_type = "lib"]; + +extern mod std; + +pub mod cache; +pub mod range; +pub mod time; +pub mod url; +pub mod vec; + diff --git a/src/servo-gfx/util/time.rs b/src/servo-util/time.rs similarity index 100% rename from src/servo-gfx/util/time.rs rename to src/servo-util/time.rs diff --git a/src/servo-gfx/util/url.rs b/src/servo-util/url.rs similarity index 100% rename from src/servo-gfx/util/url.rs rename to src/servo-util/url.rs diff --git a/src/servo-gfx/util/vec.rs b/src/servo-util/vec.rs similarity index 100% rename from src/servo-gfx/util/vec.rs rename to src/servo-util/vec.rs diff --git a/src/servo/html/hubbub_html_parser.rs b/src/servo/html/hubbub_html_parser.rs index 2829f8ebab7..5abb93d6608 100644 --- a/src/servo/html/hubbub_html_parser.rs +++ b/src/servo/html/hubbub_html_parser.rs @@ -14,7 +14,7 @@ use util::task::spawn_conversation; use core::cell::Cell; use core::comm::{Chan, Port, SharedChan}; use core::str::eq_slice; -use gfx::util::url::make_url; +use servo_util::url::make_url; use hubbub::hubbub; use std::net::url::Url; use std::net::url; diff --git a/src/servo/layout/box.rs b/src/servo/layout/box.rs index c7167767353..b3996250cce 100644 --- a/src/servo/layout/box.rs +++ b/src/servo/layout/box.rs @@ -27,7 +27,7 @@ use gfx::display_list::{DisplayItem, DisplayList}; use gfx::font::{FontStyle, FontWeight300}; use gfx::geometry::Au; use gfx::image::holder::ImageHolder; -use gfx::util::range::*; +use servo_util::range::*; use gfx; use std::arc; diff --git a/src/servo/layout/box_builder.rs b/src/servo/layout/box_builder.rs index c619ab397df..1b084a366ee 100644 --- a/src/servo/layout/box_builder.rs +++ b/src/servo/layout/box_builder.rs @@ -17,7 +17,7 @@ use layout::root::RootFlowData; use util::tree; use gfx::image::holder::ImageHolder; -use gfx::util::range::Range; +use servo_util::range::Range; use newcss::values::{CSSDisplay, CSSDisplayBlock, CSSDisplayInline, CSSDisplayInlineBlock}; use newcss::values::{CSSDisplayNone}; diff --git a/src/servo/layout/inline.rs b/src/servo/layout/inline.rs index 16506545dce..a5a6f5d355b 100644 --- a/src/servo/layout/inline.rs +++ b/src/servo/layout/inline.rs @@ -18,7 +18,7 @@ use gfx::geometry::Au; use gfx::image::holder; use gfx::text::text_run::TextRun; use gfx::text::util::*; -use gfx::util::range::Range; +use servo_util::range::Range; use newcss::values::{CSSTextAlignCenter, CSSTextAlignJustify, CSSTextAlignLeft, CSSTextAlignRight}; use std::deque::Deque; use core::util; diff --git a/src/servo/layout/text.rs b/src/servo/layout/text.rs index 29098e8aa23..0f3e5683cfb 100644 --- a/src/servo/layout/text.rs +++ b/src/servo/layout/text.rs @@ -7,7 +7,7 @@ use layout::box::{TextBox, RenderBox, RenderBoxData, UnscannedTextBox}; use gfx::text::text_run::TextRun; -use gfx::util::range::Range; +use servo_util::range::Range; pub struct TextBoxData { run: @TextRun, diff --git a/src/servo/platform/osmain.rs b/src/servo/platform/osmain.rs index 621f9543dd5..88d192612b1 100644 --- a/src/servo/platform/osmain.rs +++ b/src/servo/platform/osmain.rs @@ -15,7 +15,7 @@ use geom::rect::Rect; use geom::size::Size2D; use gfx::compositor::{Compositor, LayerBuffer, LayerBufferSet}; use gfx::opts::Opts; -use gfx::util::time; +use servo_util::time; use core::cell::Cell; use glut::glut; use layers; diff --git a/src/servo/servo.rc b/src/servo/servo.rc index 03c37fc2e18..ddcd8d5df3c 100755 --- a/src/servo/servo.rc +++ b/src/servo/servo.rc @@ -16,6 +16,7 @@ extern mod azure; extern mod geom; extern mod gfx (name = "servo_gfx"); +extern mod servo_util (name = "servo_util"); extern mod glut; extern mod http_client; extern mod hubbub; @@ -40,7 +41,7 @@ pub use gfx::resource; pub use gfx::resource::image_cache_task::ImageCacheTask; pub use gfx::resource::resource_task::ResourceTask; pub use gfx::text; -pub use gfx::util::url::make_url; +pub use servo_util::url::make_url; pub mod content { pub mod content_task; diff --git a/src/servo/util/mod.rs b/src/servo/util/mod.rs index 3023793d5f9..807add80b8c 100644 --- a/src/servo/util/mod.rs +++ b/src/servo/util/mod.rs @@ -2,8 +2,9 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -pub use gfx::util::cache; -pub use gfx::util::time; +pub use servo_util::cache; +pub use servo_util::time; pub mod tree; -pub mod task; \ No newline at end of file +pub mod task; +