From 7c5d48a09e3648adc3d4f4118808a903758a9dda Mon Sep 17 00:00:00 2001 From: Michael Darakananda Date: Wed, 23 Apr 2014 01:01:31 -0400 Subject: Cleaned up os::consts. The module only exposes constants for the target OS and arch. Constants for other OS's and arch's must be defined manually. [breaking-change] --- src/libstd/os.rs | 302 ++++++++++++++++++++++++------------------------------- 1 file changed, 130 insertions(+), 172 deletions(-) (limited to 'src/libstd') diff --git a/src/libstd/os.rs b/src/libstd/os.rs index 67b12de0edb..004652d786f 100644 --- a/src/libstd/os.rs +++ b/src/libstd/os.rs @@ -1282,224 +1282,182 @@ impl Drop for MemoryMap { } } -/// Various useful system-specific constants. +#[cfg(target_os = "linux")] pub mod consts { - #[cfg(unix)] - pub use os::consts::unix::FAMILY; + pub use std::os::arch_consts::ARCH; - #[cfg(windows)] - pub use os::consts::windows::FAMILY; + pub static FAMILY: &'static str = "unix"; - #[cfg(target_os = "macos")] - pub use os::consts::macos::{SYSNAME, DLL_PREFIX, DLL_SUFFIX, DLL_EXTENSION}; - #[cfg(target_os = "macos")] - pub use os::consts::macos::{EXE_SUFFIX, EXE_EXTENSION}; + /// A string describing the specific operating system in use: in this + /// case, `linux`. + pub static SYSNAME: &'static str = "linux"; - #[cfg(target_os = "freebsd")] - pub use os::consts::freebsd::{SYSNAME, DLL_PREFIX, DLL_SUFFIX, DLL_EXTENSION}; - #[cfg(target_os = "freebsd")] - pub use os::consts::freebsd::{EXE_SUFFIX, EXE_EXTENSION}; + /// Specifies the filename prefix used for shared libraries on this + /// platform: in this case, `lib`. + pub static DLL_PREFIX: &'static str = "lib"; - #[cfg(target_os = "linux")] - pub use os::consts::linux::{SYSNAME, DLL_PREFIX, DLL_SUFFIX, DLL_EXTENSION}; - #[cfg(target_os = "linux")] - pub use os::consts::linux::{EXE_SUFFIX, EXE_EXTENSION}; + /// Specifies the filename suffix used for shared libraries on this + /// platform: in this case, `.so`. + pub static DLL_SUFFIX: &'static str = ".so"; - #[cfg(target_os = "android")] - pub use os::consts::android::{SYSNAME, DLL_PREFIX, DLL_SUFFIX, DLL_EXTENSION}; - #[cfg(target_os = "android")] - pub use os::consts::android::{EXE_SUFFIX, EXE_EXTENSION}; + /// Specifies the file extension used for shared libraries on this + /// platform that goes after the dot: in this case, `so`. + pub static DLL_EXTENSION: &'static str = "so"; - #[cfg(target_os = "win32")] - pub use os::consts::win32::{SYSNAME, DLL_PREFIX, DLL_SUFFIX, DLL_EXTENSION}; - #[cfg(target_os = "win32")] - pub use os::consts::win32::{EXE_SUFFIX, EXE_EXTENSION}; + /// Specifies the filename suffix used for executable binaries on this + /// platform: in this case, the empty string. + pub static EXE_SUFFIX: &'static str = ""; - #[cfg(target_arch = "x86")] - pub use os::consts::x86::{ARCH}; + /// Specifies the file extension, if any, used for executable binaries + /// on this platform: in this case, the empty string. + pub static EXE_EXTENSION: &'static str = ""; +} - #[cfg(target_arch = "x86_64")] - pub use os::consts::x86_64::{ARCH}; +#[cfg(target_os = "macos")] +pub mod consts { + pub use std::os::arch_consts::ARCH; - #[cfg(target_arch = "arm")] - pub use os::consts::arm::{ARCH}; + pub static FAMILY: &'static str = "unix"; - #[cfg(target_arch = "mips")] - pub use os::consts::mips::{ARCH}; + /// A string describing the specific operating system in use: in this + /// case, `macos`. + pub static SYSNAME: &'static str = "macos"; - /// Constants for Unix systems. - pub mod unix { - /// A string describing the family that this operating system belongs - /// to: in this case, `unix`. - pub static FAMILY: &'static str = "unix"; - } + /// Specifies the filename prefix used for shared libraries on this + /// platform: in this case, `lib`. + pub static DLL_PREFIX: &'static str = "lib"; - /// Constants for Windows systems. - pub mod windows { - /// A string describing the family that this operating system belongs - /// to: in this case, `windows`. - pub static FAMILY: &'static str = "windows"; - } + /// Specifies the filename suffix used for shared libraries on this + /// platform: in this case, `.dylib`. + pub static DLL_SUFFIX: &'static str = ".dylib"; - /// Constants for Mac OS systems. - pub mod macos { - /// A string describing the specific operating system in use: in this - /// case, `macos`. - pub static SYSNAME: &'static str = "macos"; + /// Specifies the file extension used for shared libraries on this + /// platform that goes after the dot: in this case, `dylib`. + pub static DLL_EXTENSION: &'static str = "dylib"; - /// Specifies the filename prefix used for shared libraries on this - /// platform: in this case, `lib`. - pub static DLL_PREFIX: &'static str = "lib"; + /// Specifies the filename suffix used for executable binaries on this + /// platform: in this case, the empty string. + pub static EXE_SUFFIX: &'static str = ""; - /// Specifies the filename suffix used for shared libraries on this - /// platform: in this case, `.dylib`. - pub static DLL_SUFFIX: &'static str = ".dylib"; + /// Specifies the file extension, if any, used for executable binaries + /// on this platform: in this case, the empty string. + pub static EXE_EXTENSION: &'static str = ""; +} - /// Specifies the file extension used for shared libraries on this - /// platform that goes after the dot: in this case, `dylib`. - pub static DLL_EXTENSION: &'static str = "dylib"; +#[cfg(target_os = "freebsd")] +pub mod consts { + pub use std::os::arch_consts::ARCH; - /// Specifies the filename suffix used for executable binaries on this - /// platform: in this case, the empty string. - pub static EXE_SUFFIX: &'static str = ""; + pub static FAMILY: &'static str = "unix"; - /// Specifies the file extension, if any, used for executable binaries - /// on this platform: in this case, the empty string. - pub static EXE_EXTENSION: &'static str = ""; - } + /// A string describing the specific operating system in use: in this + /// case, `freebsd`. + pub static SYSNAME: &'static str = "freebsd"; - /// Constants for FreeBSD systems. - pub mod freebsd { - /// A string describing the specific operating system in use: in this - /// case, `freebsd`. - pub static SYSNAME: &'static str = "freebsd"; + /// Specifies the filename prefix used for shared libraries on this + /// platform: in this case, `lib`. + pub static DLL_PREFIX: &'static str = "lib"; - /// Specifies the filename prefix used for shared libraries on this - /// platform: in this case, `lib`. - pub static DLL_PREFIX: &'static str = "lib"; + /// Specifies the filename suffix used for shared libraries on this + /// platform: in this case, `.so`. + pub static DLL_SUFFIX: &'static str = ".so"; - /// Specifies the filename suffix used for shared libraries on this - /// platform: in this case, `.so`. - pub static DLL_SUFFIX: &'static str = ".so"; + /// Specifies the file extension used for shared libraries on this + /// platform that goes after the dot: in this case, `so`. + pub static DLL_EXTENSION: &'static str = "so"; - /// Specifies the file extension used for shared libraries on this - /// platform that goes after the dot: in this case, `so`. - pub static DLL_EXTENSION: &'static str = "so"; + /// Specifies the filename suffix used for executable binaries on this + /// platform: in this case, the empty string. + pub static EXE_SUFFIX: &'static str = ""; - /// Specifies the filename suffix used for executable binaries on this - /// platform: in this case, the empty string. - pub static EXE_SUFFIX: &'static str = ""; + /// Specifies the file extension, if any, used for executable binaries + /// on this platform: in this case, the empty string. + pub static EXE_EXTENSION: &'static str = ""; +} - /// Specifies the file extension, if any, used for executable binaries - /// on this platform: in this case, the empty string. - pub static EXE_EXTENSION: &'static str = ""; - } +#[cfg(target_os = "android")] +pub mod consts { + pub use std::os::arch_consts::ARCH; - /// Constants for GNU/Linux systems. - pub mod linux { - /// A string describing the specific operating system in use: in this - /// case, `linux`. - pub static SYSNAME: &'static str = "linux"; + pub static FAMILY: &'static str = "unix"; - /// Specifies the filename prefix used for shared libraries on this - /// platform: in this case, `lib`. - pub static DLL_PREFIX: &'static str = "lib"; + /// A string describing the specific operating system in use: in this + /// case, `android`. + pub static SYSNAME: &'static str = "android"; - /// Specifies the filename suffix used for shared libraries on this - /// platform: in this case, `.so`. - pub static DLL_SUFFIX: &'static str = ".so"; + /// Specifies the filename prefix used for shared libraries on this + /// platform: in this case, `lib`. + pub static DLL_PREFIX: &'static str = "lib"; - /// Specifies the file extension used for shared libraries on this - /// platform that goes after the dot: in this case, `so`. - pub static DLL_EXTENSION: &'static str = "so"; + /// Specifies the filename suffix used for shared libraries on this + /// platform: in this case, `.so`. + pub static DLL_SUFFIX: &'static str = ".so"; - /// Specifies the filename suffix used for executable binaries on this - /// platform: in this case, the empty string. - pub static EXE_SUFFIX: &'static str = ""; + /// Specifies the file extension used for shared libraries on this + /// platform that goes after the dot: in this case, `so`. + pub static DLL_EXTENSION: &'static str = "so"; - /// Specifies the file extension, if any, used for executable binaries - /// on this platform: in this case, the empty string. - pub static EXE_EXTENSION: &'static str = ""; - } + /// Specifies the filename suffix used for executable binaries on this + /// platform: in this case, the empty string. + pub static EXE_SUFFIX: &'static str = ""; - /// Constants for Android systems. - pub mod android { - /// A string describing the specific operating system in use: in this - /// case, `android`. - pub static SYSNAME: &'static str = "android"; + /// Specifies the file extension, if any, used for executable binaries + /// on this platform: in this case, the empty string. + pub static EXE_EXTENSION: &'static str = ""; +} - /// Specifies the filename prefix used for shared libraries on this - /// platform: in this case, `lib`. - pub static DLL_PREFIX: &'static str = "lib"; +#[cfg(target_os = "win32")] +pub mod consts { + pub use std::os::arch_consts::ARCH; - /// Specifies the filename suffix used for shared libraries on this - /// platform: in this case, `.so`. - pub static DLL_SUFFIX: &'static str = ".so"; + pub static FAMILY: &'static str = "windows"; - /// Specifies the file extension used for shared libraries on this - /// platform that goes after the dot: in this case, `so`. - pub static DLL_EXTENSION: &'static str = "so"; + /// A string describing the specific operating system in use: in this + /// case, `win32`. + pub static SYSNAME: &'static str = "win32"; - /// Specifies the filename suffix used for executable binaries on this - /// platform: in this case, the empty string. - pub static EXE_SUFFIX: &'static str = ""; + /// Specifies the filename prefix used for shared libraries on this + /// platform: in this case, the empty string. + pub static DLL_PREFIX: &'static str = ""; - /// Specifies the file extension, if any, used for executable binaries - /// on this platform: in this case, the empty string. - pub static EXE_EXTENSION: &'static str = ""; - } + /// Specifies the filename suffix used for shared libraries on this + /// platform: in this case, `.dll`. + pub static DLL_SUFFIX: &'static str = ".dll"; - /// Constants for 32-bit or 64-bit Windows systems. - pub mod win32 { - /// A string describing the specific operating system in use: in this - /// case, `win32`. - pub static SYSNAME: &'static str = "win32"; + /// Specifies the file extension used for shared libraries on this + /// platform that goes after the dot: in this case, `dll`. + pub static DLL_EXTENSION: &'static str = "dll"; - /// Specifies the filename prefix used for shared libraries on this - /// platform: in this case, the empty string. - pub static DLL_PREFIX: &'static str = ""; + /// Specifies the filename suffix used for executable binaries on this + /// platform: in this case, `.exe`. + pub static EXE_SUFFIX: &'static str = ".exe"; - /// Specifies the filename suffix used for shared libraries on this - /// platform: in this case, `.dll`. - pub static DLL_SUFFIX: &'static str = ".dll"; + /// Specifies the file extension, if any, used for executable binaries + /// on this platform: in this case, `exe`. + pub static EXE_EXTENSION: &'static str = "exe"; +} - /// Specifies the file extension used for shared libraries on this - /// platform that goes after the dot: in this case, `dll`. - pub static DLL_EXTENSION: &'static str = "dll"; +#[cfg(target_arch = "x86")] +mod arch_consts { + pub static ARCH: &'static str = "x86"; +} - /// Specifies the filename suffix used for executable binaries on this - /// platform: in this case, `.exe`. - pub static EXE_SUFFIX: &'static str = ".exe"; +#[cfg(target_arch = "x86_64")] +mod arch_consts { + pub static ARCH: &'static str = "x86_64"; +} - /// Specifies the file extension, if any, used for executable binaries - /// on this platform: in this case, `exe`. - pub static EXE_EXTENSION: &'static str = "exe"; - } +#[cfg(target_arch = "arm")] +mod arch_consts { + pub static ARCH: &'static str = "arm"; +} - /// Constants for Intel Architecture-32 (x86) architectures. - pub mod x86 { - /// A string describing the architecture in use: in this case, `x86`. - pub static ARCH: &'static str = "x86"; - } - /// Constants for Intel 64/AMD64 (x86-64) architectures. - pub mod x86_64 { - /// A string describing the architecture in use: in this case, - /// `x86_64`. - pub static ARCH: &'static str = "x86_64"; - } - /// Constants for Advanced RISC Machine (ARM) architectures. - pub mod arm { - /// A string describing the architecture in use: in this case, `ARM`. - pub static ARCH: &'static str = "arm"; - } - /// Constants for Microprocessor without Interlocked Pipeline Stages - /// (MIPS) architectures. - pub mod mips { - /// A string describing the architecture in use: in this case, `MIPS`. - pub static ARCH: &'static str = "mips"; - } +#[cfg(target_arch = "mips")] +mod arch_consts { + pub static ARCH: &'static str = "mips"; } + #[cfg(test)] mod tests { use prelude::*; -- cgit 1.4.1-3-g733a5