mirror of
https://gitlab.com/gabmus/envision.git
synced 2025-08-03 06:38:52 +00:00
feat: basalt support
This commit is contained in:
parent
ecb4f08262
commit
7a88489ef3
4 changed files with 71 additions and 52 deletions
|
@ -1,30 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -ev
|
|
||||||
|
|
||||||
echo "Basalt is currently unsupported"
|
|
||||||
exit 1
|
|
||||||
#
|
|
||||||
# REPO_DIR=$1
|
|
||||||
#
|
|
||||||
# PREFIX=$2
|
|
||||||
#
|
|
||||||
# DO_PULL=$3
|
|
||||||
#
|
|
||||||
# REPO_URL=$4
|
|
||||||
#
|
|
||||||
# if [[ -z $REPO_DIR ]] || [[ -z $PREFIX ]] || [[ -z $DO_PULL ]]; then
|
|
||||||
# echo "Usage: $0 REPO_DIR PREFIX DO_PULL [REPO_URL]"
|
|
||||||
# exit 1
|
|
||||||
# fi
|
|
||||||
#
|
|
||||||
# if [[ -z $REPO_URL ]]; then
|
|
||||||
# REPO_URL="https://gitlab.freedesktop.org/mateosss/basalt"
|
|
||||||
# fi
|
|
||||||
#
|
|
||||||
# "$(dirname -- "$0")/_clone_or_pull.sh" "$REPO_URL" "$REPO_DIR" "$DO_PULL"
|
|
||||||
#
|
|
||||||
# cd "$REPO_DIR"
|
|
||||||
# rm -rf build
|
|
||||||
# mkdir -p build
|
|
||||||
# cd build
|
|
|
@ -1,3 +1,2 @@
|
||||||
install_data('_clone_or_pull.sh', install_dir: pkgdatadir / 'scripts')
|
install_data('_clone_or_pull.sh', install_dir: pkgdatadir / 'scripts')
|
||||||
install_data('build_basalt.sh', install_dir: pkgdatadir / 'scripts')
|
|
||||||
install_data('build_mercury.sh', install_dir: pkgdatadir / 'scripts')
|
install_data('build_mercury.sh', install_dir: pkgdatadir / 'scripts')
|
||||||
|
|
|
@ -1,23 +1,73 @@
|
||||||
use crate::{constants::pkg_data_dir, profile::Profile, runner::Runner};
|
use crate::{
|
||||||
|
build_tools::{cmake::Cmake, git::Git},
|
||||||
|
constants::pkg_data_dir,
|
||||||
|
file_utils::rm_rf,
|
||||||
|
profile::Profile,
|
||||||
|
runner::Runner,
|
||||||
|
};
|
||||||
|
use std::{collections::HashMap, path::Path};
|
||||||
|
|
||||||
pub fn get_build_basalt_runner(profile: &Profile) -> Runner {
|
pub fn get_build_basalt_runners(profile: &Profile, clean_build: bool) -> Vec<Runner> {
|
||||||
let mut args = vec![
|
let mut runners: Vec<Runner> = vec![];
|
||||||
profile
|
let git = Git {
|
||||||
.features.basalt.path.clone()
|
repo: match profile.features.basalt.repo.as_ref() {
|
||||||
.expect("Missing basalt path for given profile"),
|
Some(r) => r.clone(),
|
||||||
profile.prefix.clone(),
|
None => "https://gitlab.freedesktop.org/mateosss/basalt.git".into(),
|
||||||
match profile.pull_on_build {
|
|
||||||
true => "1".into(),
|
|
||||||
false => "0".into(),
|
|
||||||
},
|
},
|
||||||
];
|
dir: profile.features.basalt.path.as_ref().unwrap().clone(),
|
||||||
if profile.features.basalt.repo.is_some() {
|
};
|
||||||
args.push(profile.features.basalt.repo.as_ref().unwrap().clone());
|
match git.clone_or_pull(profile) {
|
||||||
}
|
Some(r) => runners.push(r),
|
||||||
let runner = Runner::new(
|
None => {}
|
||||||
None,
|
};
|
||||||
format!("{sysdata}/scripts/build_basalt.sh", sysdata = pkg_data_dir()),
|
|
||||||
args,
|
let build_dir = format!("{}/build", profile.features.basalt.path.as_ref().unwrap());
|
||||||
|
let mut cmake_vars: HashMap<String, String> = HashMap::new();
|
||||||
|
cmake_vars.insert("CMAKE_BUILD_TYPE".into(), "Release".into());
|
||||||
|
cmake_vars.insert("CMAKE_INSTALL_PREFIX".into(), profile.prefix.clone());
|
||||||
|
cmake_vars.insert("BUILD_TESTS".into(), "OFF".into());
|
||||||
|
cmake_vars.insert("BASALT_INSTANTIATIONS_DOUBLE".into(), "OFF".into());
|
||||||
|
cmake_vars.insert(
|
||||||
|
"CMAKE_INSTALL_LIBDIR".into(),
|
||||||
|
format!("{}/lib", profile.prefix),
|
||||||
);
|
);
|
||||||
runner
|
|
||||||
|
let cmake = Cmake {
|
||||||
|
env: None,
|
||||||
|
vars: Some(cmake_vars),
|
||||||
|
source_dir: profile.features.basalt.path.as_ref().unwrap().clone(),
|
||||||
|
build_dir: build_dir.clone(),
|
||||||
|
};
|
||||||
|
if !Path::new(&build_dir).is_dir() || clean_build {
|
||||||
|
rm_rf(&build_dir);
|
||||||
|
runners.push(cmake.get_prepare_runner());
|
||||||
|
}
|
||||||
|
runners.push(cmake.get_build_runner());
|
||||||
|
runners.push(cmake.get_install_runner());
|
||||||
|
|
||||||
|
runners.push(Runner::new(
|
||||||
|
None,
|
||||||
|
"mkdir".into(),
|
||||||
|
vec![
|
||||||
|
"-p".into(),
|
||||||
|
format!(
|
||||||
|
"{}/share/basalt/thirdparty/basalt-headers/thirdparty",
|
||||||
|
profile.prefix
|
||||||
|
),
|
||||||
|
],
|
||||||
|
));
|
||||||
|
runners.push(Runner::new(
|
||||||
|
None,
|
||||||
|
"cp".into(),
|
||||||
|
vec![
|
||||||
|
"-Ra".into(),
|
||||||
|
format!(
|
||||||
|
"{}/basalt/thirdparty/basalt-headers/thirdparty/eigen",
|
||||||
|
profile.features.basalt.path.as_ref().unwrap().clone()
|
||||||
|
),
|
||||||
|
format!("{}/share/basalt/thirdparty", profile.prefix),
|
||||||
|
],
|
||||||
|
));
|
||||||
|
|
||||||
|
runners
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,7 @@ use super::build_window::{BuildStatus, BuildWindow};
|
||||||
use super::debug_view::{DebugView, DebugViewMsg};
|
use super::debug_view::{DebugView, DebugViewMsg};
|
||||||
use super::libsurvive_setup_window::LibsurviveSetupWindow;
|
use super::libsurvive_setup_window::LibsurviveSetupWindow;
|
||||||
use super::main_view::MainViewMsg;
|
use super::main_view::MainViewMsg;
|
||||||
use crate::builders::build_basalt::get_build_basalt_runner;
|
use crate::builders::build_basalt::get_build_basalt_runners;
|
||||||
use crate::builders::build_libsurvive::get_build_libsurvive_runners;
|
use crate::builders::build_libsurvive::get_build_libsurvive_runners;
|
||||||
use crate::builders::build_mercury::get_build_mercury_runner;
|
use crate::builders::build_mercury::get_build_mercury_runner;
|
||||||
use crate::builders::build_monado::get_build_monado_runners;
|
use crate::builders::build_monado::get_build_monado_runners;
|
||||||
|
@ -383,7 +383,7 @@ impl SimpleComponent for App {
|
||||||
}
|
}
|
||||||
if profile.features.basalt.enabled {
|
if profile.features.basalt.enabled {
|
||||||
missing_deps.extend(get_missing_basalt_deps());
|
missing_deps.extend(get_missing_basalt_deps());
|
||||||
runners.push(get_build_basalt_runner(&profile));
|
runners.extend(get_build_basalt_runners(&profile, clean_build));
|
||||||
}
|
}
|
||||||
if profile.features.mercury_enabled {
|
if profile.features.mercury_enabled {
|
||||||
missing_deps.extend(get_missing_mercury_deps());
|
missing_deps.extend(get_missing_mercury_deps());
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue