build: Really make the acpi feature disableable

The command "cargo build --no-default-features" does not recursively
disable the default features across the workspace. Instead add an acpi
feature at the top-level, making it default, and then make that feature
conditional on all the crate acpi features.

Signed-off-by: Rob Bradford <robert.bradford@intel.com>
This commit is contained in:
Rob Bradford 2019-09-05 16:29:55 +01:00 committed by Sebastien Boeuf
parent 7688e6e231
commit 9661e8da5d
6 changed files with 11 additions and 7 deletions

View File

@ -18,7 +18,8 @@ tempdir= "0.3.7"
lazy_static= "1.4.0" lazy_static= "1.4.0"
[features] [features]
default = [] default = ["acpi"]
acpi = ["vmm/acpi"]
# Integration tests require a special environment to run in # Integration tests require a special environment to run in
integration_tests = [] integration_tests = []

View File

@ -4,7 +4,7 @@ version = "0.1.0"
authors = ["The Chromium OS Authors"] authors = ["The Chromium OS Authors"]
[features] [features]
default = ["acpi"] default = []
acpi = ["acpi_tables"] acpi = ["acpi_tables"]
[dependencies] [dependencies]

View File

@ -13,6 +13,7 @@ extern crate byteorder;
extern crate kvm_bindings; extern crate kvm_bindings;
extern crate libc; extern crate libc;
#[cfg(feature = "acpi")]
extern crate acpi_tables; extern crate acpi_tables;
extern crate arch_gen; extern crate arch_gen;
extern crate kvm_ioctls; extern crate kvm_ioctls;

View File

@ -5,7 +5,9 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE-BSD-3-Clause file. // found in the LICENSE-BSD-3-Clause file.
#[cfg(feature = "acpi")]
mod acpi; mod acpi;
mod gdt; mod gdt;
pub mod interrupts; pub mod interrupts;
pub mod layout; pub mod layout;
@ -127,7 +129,7 @@ pub fn configure_system(
cmdline_size: usize, cmdline_size: usize,
num_cpus: u8, num_cpus: u8,
setup_hdr: Option<setup_header>, setup_hdr: Option<setup_header>,
serial_enabled: bool, _serial_enabled: bool,
) -> super::Result<()> { ) -> super::Result<()> {
const KERNEL_BOOT_FLAG_MAGIC: u16 = 0xaa55; const KERNEL_BOOT_FLAG_MAGIC: u16 = 0xaa55;
const KERNEL_HDR_MAGIC: u32 = 0x53726448; const KERNEL_HDR_MAGIC: u32 = 0x53726448;
@ -185,7 +187,7 @@ pub fn configure_system(
#[cfg(feature = "acpi")] #[cfg(feature = "acpi")]
{ {
let rsdp_addr = acpi::create_acpi_tables(guest_mem, num_cpus, serial_enabled); let rsdp_addr = acpi::create_acpi_tables(guest_mem, num_cpus, _serial_enabled);
params.0.acpi_rsdp_addr = rsdp_addr.0; params.0.acpi_rsdp_addr = rsdp_addr.0;
} }

View File

@ -17,5 +17,5 @@ vmm-sys-util = { git = "https://github.com/rust-vmm/vmm-sys-util" }
tempfile = "3.1.0" tempfile = "3.1.0"
[features] [features]
default = ["acpi"] default = []
acpi = [] acpi = []

View File

@ -5,8 +5,8 @@ authors = ["The Cloud Hypervisor Authors"]
edition = "2018" edition = "2018"
[features] [features]
default = ["acpi"] default = []
acpi = ["acpi_tables"] acpi = ["acpi_tables","devices/acpi", "arch/acpi"]
[dependencies] [dependencies]
acpi_tables = { path = "../acpi_tables", optional = true } acpi_tables = { path = "../acpi_tables", optional = true }