conan 0.4.2

A Rust wrapper of the conan C/C++ package manager (conan.io) to simplify usage in build scripts
Documentation
use super::{
    build_info::{build_settings::BuildType, BuildSettings},
    BuildPolicy, InstallCommandBuilder,
};

#[test]
fn test_install_builder() -> Result<(), Box<dyn std::error::Error>> {
    let build_settings = BuildSettings::new().build_type(BuildType::Release);
    let command = InstallCommandBuilder::new()
        .with_profile("linux-x86_64")
        .build_settings(build_settings)
        .build_policy(BuildPolicy::Missing)
        .build();
    assert_eq!(
        command.args()?,
        [
            "install",
            "-g",
            "json",
            "--profile:host",
            "linux-x86_64",
            "-b",
            "missing",
            "-s",
            "build_type=Release"
        ]
    );

    Ok(())
}

#[test]
fn test_install_builder_cross() -> Result<(), Box<dyn std::error::Error>> {
    let build_settings = BuildSettings::new().build_type(BuildType::Debug);
    let command = InstallCommandBuilder::new()
        .with_host_profile("windows-x86_64")
        .with_build_profile("linux-x86_64")
        .build_settings(build_settings)
        .build_policy(BuildPolicy::Always)
        .build();
    assert_eq!(
        command.args()?,
        [
            "install",
            "-g",
            "json",
            "--profile:host",
            "windows-x86_64",
            "--profile:build",
            "linux-x86_64",
            "-b",
            "-s",
            "build_type=Debug"
        ]
    );

    Ok(())
}

#[test]
fn test_install_builder_with_options() -> Result<(), Box<dyn std::error::Error>> {
    let build_settings = BuildSettings::new().build_type(BuildType::Release);
    let command = InstallCommandBuilder::new()
        .with_profile("linux-x86_64")
        .build_settings(build_settings)
        .with_options(&["shared=True", "build_type=Release"])
        .build_policy(BuildPolicy::Missing)
        .build();
    assert_eq!(
        command.args()?,
        [
            "install",
            "-g",
            "json",
            "--profile:host",
            "linux-x86_64",
            "-b",
            "missing",
            "-o",
            "shared=True",
            "-o",
            "build_type=Release",
            "-s",
            "build_type=Release"
        ]
    );

    Ok(())
}