Skip to content
Snippets Groups Projects
Commit 5c4c0524 authored by Вартан Бабаян's avatar Вартан Бабаян :dart:
Browse files

fix: identify build type with cfg

parent cfeb374a
No related branches found
No related tags found
1 merge request!1487Follow-up from "Improve verbosity of picodata version output"
......@@ -19,7 +19,7 @@ fn main() {
let build_root = cargo::get_build_root();
let use_static_build = !cargo::get_feature("dynamic_build");
insert_build_metadata(use_static_build);
insert_build_metadata();
// Build and link all the relevant tarantool libraries.
// For more info, read the comments in tarantool-build.
......@@ -36,24 +36,9 @@ fn main() {
}
}
fn insert_build_metadata(use_static_build: bool) {
rustc::env(
"BUILD_TYPE",
if use_static_build {
"static"
} else {
"dynamic"
},
);
rustc::env(
"BUILD_MODE",
if cfg!(debug_assertions) {
"debug"
} else {
"release"
},
);
fn insert_build_metadata() {
let build_mode = std::env::var("PROFILE").expect("always set");
rustc::env("BUILD_MODE", build_mode);
let os_version = std::process::Command::new("uname")
.args(["-srmo"])
......
use crate::address::{HttpAddress, IprotoAddress};
use crate::config::{ByteSize, DEFAULT_USERNAME};
use crate::info::FULL_PICODATA_VERSION;
use crate::info::version_for_help;
use crate::util::Uppercase;
use clap::Parser;
use std::borrow::Cow;
......@@ -11,7 +11,7 @@ use tarantool::log::SayLevel;
use tarantool::tlua;
#[derive(Debug, Parser)]
#[clap(name = "picodata", version = FULL_PICODATA_VERSION)]
#[clap(name = "picodata", version = version_for_help())]
pub enum Picodata {
Run(Box<Run>),
#[clap(hide = true)]
......
......@@ -13,19 +13,39 @@ use std::borrow::Cow;
use tarantool::proc;
use tarantool::tuple::RawByteBuf;
pub const FULL_PICODATA_VERSION: &'static str = concat!(
env!("GIT_DESCRIBE"),
", ",
env!("BUILD_TYPE"),
", ",
env!("BUILD_MODE"),
"\n",
env!("OS_VERSION")
);
pub const PICODATA_VERSION: &'static str = std::env!("GIT_DESCRIBE");
pub const RPC_API_VERSION: &'static str = "1.0.0";
/// Note: this returns a `&'static str` because of clap's requirements.
pub fn version_for_help() -> &'static str {
static VERSION_OUTPUT: std::sync::OnceLock<String> = std::sync::OnceLock::new();
const BUILD_TYPE: &str = {
#[cfg(feature = "dynamic_build")]
{
"dynamic"
}
#[cfg(not(feature = "dynamic_build"))]
{
"static"
}
};
VERSION_OUTPUT.get_or_init(|| {
let mut result = PICODATA_VERSION.to_string();
result.push_str(", ");
result.push_str(BUILD_TYPE);
result.push_str(", ");
result.push_str(env!("BUILD_MODE"));
result.push('\n');
result.push_str(env!("OS_VERSION"));
result
})
}
////////////////////////////////////////////////////////////////////////////////
// VersionInfo
////////////////////////////////////////////////////////////////////////////////
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment