Browse Source

Revert "Link C/C++ operators using `LINK.EXE` on Windows"

This reverts commit 202170951d.
tags/v0.0.0-test.4
Philipp Oppermann 3 years ago
parent
commit
06d027235e
Failed to extract signature
2 changed files with 17 additions and 45 deletions
  1. +9
    -25
      examples/c++-dataflow/run.rs
  2. +8
    -20
      examples/c-dataflow/run.rs

+ 9
- 25
examples/c++-dataflow/run.rs View File

@@ -137,32 +137,16 @@ async fn build_cxx_operator(path: &Path, out_name: &str) -> eyre::Result<()> {
bail!("failed to compile cxx operator");
};

let out_path = Path::new("../build").join(library_filename(out_name));
#[cfg(unix)]
{
let mut link = tokio::process::Command::new("clang++");
link.arg("-shared").arg(&object_file_path);
link.arg("-o").arg(out_path);
if let Some(parent) = path.parent() {
link.current_dir(parent);
}
if !link.status().await?.success() {
bail!("failed to create shared library from cxx operator (c api)");
};
}
#[cfg(windows)]
{
let mut link = tokio::process::Command::new("LINK.EXE");
link.arg("/DLL");
link.arg(format!("/OUT:{}", out_path.display()));
link.arg(&object_file_path);
if let Some(parent) = path.parent() {
link.current_dir(parent);
}
if !link.status().await?.success() {
bail!("failed to link c++ operator (c api)");
};
let mut link = tokio::process::Command::new("clang++");
link.arg("-shared").arg(&object_file_path);
link.arg("-o")
.arg(Path::new("../build").join(library_filename(out_name)));
if let Some(parent) = path.parent() {
link.current_dir(parent);
}
if !link.status().await?.success() {
bail!("failed to create shared library from cxx operator (c api)");
};

Ok(())
}


+ 8
- 20
examples/c-dataflow/run.rs View File

@@ -129,26 +129,14 @@ async fn build_c_operator(root: &Path) -> eyre::Result<()> {
bail!("failed to compile c operator");
};

let out_path = Path::new("build").join(library_filename("operator"));
#[cfg(unix)]
{
let mut link = tokio::process::Command::new("clang");
link.arg("-shared").arg("build/operator.o");
link.arg("-o").arg(out_path);
if !link.status().await?.success() {
bail!("failed to link c operator");
};
}
#[cfg(windows)]
{
let mut link = tokio::process::Command::new("LINK.EXE");
link.arg("/DLL");
link.arg(format!("/OUT:{}", out_path.display()));
link.arg("build/operator.o");
if !link.status().await?.success() {
bail!("failed to link c operator");
};
}
let mut link = tokio::process::Command::new("clang");
link.arg("-shared").arg("build/operator.o");
link.arg("-o")
.arg(Path::new("build").join(library_filename("operator")));
if !link.status().await?.success() {
bail!("failed to link c operator");
};

Ok(())
}



Loading…
Cancel
Save