aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dev_tools/src/verify.rs4
-rw-r--r--examples/example-combine-pathf-dispatch-tree/build.rs2
-rw-r--r--examples/example-pathfinder/build.rs2
-rw-r--r--mingling_core/src/builds.rs8
-rw-r--r--mingling_core/src/builds/pathf.rs43
-rw-r--r--mingling_core/src/lib.rs50
-rw-r--r--mling/build.rs2
7 files changed, 54 insertions, 57 deletions
diff --git a/dev_tools/src/verify.rs b/dev_tools/src/verify.rs
index 834e408..36283d3 100644
--- a/dev_tools/src/verify.rs
+++ b/dev_tools/src/verify.rs
@@ -278,8 +278,8 @@ pub fn generate_main_rs(block: &CodeBlock) -> String {
pub fn generate_build_rs(block: &CodeBlock) -> String {
let mut output = String::from("#![allow(dead_code)]\n#![allow(unused)]\n");
- if !block.code.contains("use mingling::builds::*;") {
- output.push_str("#[allow(unused_imports)]\nuse mingling::builds::*;\n\n");
+ if !block.code.contains("use mingling::build::*;") {
+ output.push_str("#[allow(unused_imports)]\nuse mingling::build::*;\n\n");
}
if block.has_main {
diff --git a/examples/example-combine-pathf-dispatch-tree/build.rs b/examples/example-combine-pathf-dispatch-tree/build.rs
index 4c66258..d909431 100644
--- a/examples/example-combine-pathf-dispatch-tree/build.rs
+++ b/examples/example-combine-pathf-dispatch-tree/build.rs
@@ -1,3 +1,3 @@
fn main() {
- mingling::pathf::analyze_and_build_type_mapping().unwrap();
+ mingling::build::analyze_and_build_type_mapping().unwrap();
}
diff --git a/examples/example-pathfinder/build.rs b/examples/example-pathfinder/build.rs
index 1dcc2fc..e96f978 100644
--- a/examples/example-pathfinder/build.rs
+++ b/examples/example-pathfinder/build.rs
@@ -1,4 +1,4 @@
-use mingling::builds::analyze_and_build_type_mapping;
+use mingling::build::analyze_and_build_type_mapping;
fn main() {
// --------- IMPORTANT ---------
diff --git a/mingling_core/src/builds.rs b/mingling_core/src/builds.rs
index 17dc7d2..3c52907 100644
--- a/mingling_core/src/builds.rs
+++ b/mingling_core/src/builds.rs
@@ -2,8 +2,6 @@
#[cfg(feature = "comp")]
pub mod comp;
-#[cfg(all(feature = "builds", feature = "pathf"))]
-pub use mingling_pathf::analyze_and_build_type_mapping;
-
-#[cfg(all(feature = "builds", feature = "pathf"))]
-pub use mingling_pathf::analyze_and_build_type_mapping_for;
+#[doc(hidden)]
+#[cfg(feature = "pathf")]
+pub mod pathf;
diff --git a/mingling_core/src/builds/pathf.rs b/mingling_core/src/builds/pathf.rs
new file mode 100644
index 0000000..d8d4698
--- /dev/null
+++ b/mingling_core/src/builds/pathf.rs
@@ -0,0 +1,43 @@
+pub use mingling_pathf::config::*;
+pub use mingling_pathf::module_pathf::*;
+pub use mingling_pathf::pattern_analyzer::*;
+pub use mingling_pathf::patterns::*;
+
+use std::path::Path;
+
+/// Wraps `analyze_and_build_type_mapping_for` with config derived from
+/// the crate's feature flags (e.g., `dispatch_tree`).
+pub fn analyze_and_build_type_mapping_for(
+ crate_dir: &Path,
+ output_dir: &Path,
+) -> Result<(), crate::error::MinglingPathfinderError> {
+ let config = mingling_pathf::config::PathfinderConfig {
+ use_dispatch_tree: cfg!(feature = "dispatch_tree"),
+ };
+ mingling_pathf::analyze_and_build_type_mapping_for(crate_dir, output_dir, &config)
+}
+
+/// Wraps `analyze_and_build_type_mapping` (build.rs convenience) with config.
+pub fn analyze_and_build_type_mapping() -> Result<(), crate::error::MinglingPathfinderError> {
+ let config = mingling_pathf::config::PathfinderConfig {
+ use_dispatch_tree: cfg!(feature = "dispatch_tree"),
+ };
+ let crate_dir =
+ std::env::current_dir().map_err(crate::error::MinglingPathfinderError::IoError)?;
+ let crate_name = std::env::var("CARGO_PKG_NAME").map_err(|_| {
+ crate::error::MinglingPathfinderError::IoError(std::io::Error::new(
+ std::io::ErrorKind::NotFound,
+ "CARGO_PKG_NAME not set",
+ ))
+ })?;
+ let out_dir = std::env::var("OUT_DIR").map_err(|_| {
+ crate::error::MinglingPathfinderError::IoError(std::io::Error::new(
+ std::io::ErrorKind::NotFound,
+ "OUT_DIR not set",
+ ))
+ })?;
+ let output_dir = Path::new(&out_dir).join(&crate_name);
+ mingling_pathf::analyze_and_build_type_mapping_for(&crate_dir, &output_dir, &config)?;
+ println!("cargo:rerun-if-changed=src/");
+ Ok(())
+}
diff --git a/mingling_core/src/lib.rs b/mingling_core/src/lib.rs
index ac6449f..3c2cf9b 100644
--- a/mingling_core/src/lib.rs
+++ b/mingling_core/src/lib.rs
@@ -61,6 +61,9 @@ pub mod builds;
pub mod build {
#[cfg(feature = "comp")]
pub use crate::builds::comp::*;
+
+ #[cfg(feature = "pathf")]
+ pub use crate::builds::pathf::*;
}
/// Provided for framework developers
@@ -94,50 +97,3 @@ pub mod core_res {
#[cfg(feature = "repl")]
pub use crate::program::repl_exec::res::ResREPL;
}
-
-#[cfg(feature = "pathf")]
-pub mod pathf {
- pub use mingling_pathf::config::*;
- pub use mingling_pathf::module_pathf::*;
- pub use mingling_pathf::pattern_analyzer::*;
- pub use mingling_pathf::patterns::*;
-
- use std::path::Path;
-
- /// Wraps `analyze_and_build_type_mapping_for` with config derived from
- /// the crate's feature flags (e.g., `dispatch_tree`).
- pub fn analyze_and_build_type_mapping_for(
- crate_dir: &Path,
- output_dir: &Path,
- ) -> Result<(), crate::error::MinglingPathfinderError> {
- let config = mingling_pathf::config::PathfinderConfig {
- use_dispatch_tree: cfg!(feature = "dispatch_tree"),
- };
- mingling_pathf::analyze_and_build_type_mapping_for(crate_dir, output_dir, &config)
- }
-
- /// Wraps `analyze_and_build_type_mapping` (build.rs convenience) with config.
- pub fn analyze_and_build_type_mapping() -> Result<(), crate::error::MinglingPathfinderError> {
- let config = mingling_pathf::config::PathfinderConfig {
- use_dispatch_tree: cfg!(feature = "dispatch_tree"),
- };
- let crate_dir =
- std::env::current_dir().map_err(crate::error::MinglingPathfinderError::IoError)?;
- let crate_name = std::env::var("CARGO_PKG_NAME").map_err(|_| {
- crate::error::MinglingPathfinderError::IoError(std::io::Error::new(
- std::io::ErrorKind::NotFound,
- "CARGO_PKG_NAME not set",
- ))
- })?;
- let out_dir = std::env::var("OUT_DIR").map_err(|_| {
- crate::error::MinglingPathfinderError::IoError(std::io::Error::new(
- std::io::ErrorKind::NotFound,
- "OUT_DIR not set",
- ))
- })?;
- let output_dir = Path::new(&out_dir).join(&crate_name);
- mingling_pathf::analyze_and_build_type_mapping_for(&crate_dir, &output_dir, &config)?;
- println!("cargo:rerun-if-changed=src/");
- Ok(())
- }
-}
diff --git a/mling/build.rs b/mling/build.rs
index b935c64..9a7b503 100644
--- a/mling/build.rs
+++ b/mling/build.rs
@@ -1,8 +1,8 @@
use std::path::Path;
use std::process::Command;
+use mingling::build::analyze_and_build_type_mapping;
use mingling::build::build_comp_scripts;
-use mingling::builds::analyze_and_build_type_mapping;
fn main() {
build_version_info();