pub fn build_binding_wheel_abi3(&self, major: u8, min_minor: u8) -> Result<PathBuf> {
        // On windows, we have picked an interpreter to set the location of python.lib,
        // otherwise it's none
        let artifact = self.compile_cdylib(self.interpreter.get(0), Some(&self.module_name))?;

        let platform = self
            .target
            .get_platform_tag(&self.manylinux, self.universal2);
        let tag = format!("cp{}{}-abi3-{}", major, min_minor, platform);

        let mut writer = WheelWriter::new(
            &tag,
            &self.out,
            &self.metadata21,
            &self.scripts,
            &[tag.clone()],
        )?;

        write_bindings_module(
            &mut writer,
            &self.project_layout,
            &self.module_name,
            &artifact,
            None,
            &self.target,
            false,
        )
        .context("Failed to add the files to the wheel")?;

        let wheel_path = writer.finish()?;

        println!(
            "📦 Built wheel for abi3 Python ≥ {}.{} to {}",
            major,
            min_minor,
            wheel_path.display()
        );

        Ok(wheel_path)
    }
/// For abi3 we only need to build a single wheel and we don't even need a python interpreter
/// for it
For abi3 we only need to build a single wheel and we don't even need a python interpreter
for it
For abi3 we only need to build a single wheel and we don ' t even need a python interpreter for it
pub fn build_binding_wheel_abi3(&self, major: u8, min_minor: u8) -> Result<PathBuf> {
        // On windows, we have picked an interpreter to set the location of python.lib,
        // otherwise it's none
        let artifact = self.compile_cdylib(self.interpreter.get(0), Some(&self.module_name))?;
        let platform = self
            .target
            .get_platform_tag(&self.manylinux, self.universal2);
        let tag = format!("cp{}{}-abi3-{}", major, min_minor, platform);
        let mut writer = WheelWriter::new(
            &tag,
            &self.out,
            &self.metadata21,
            &self.scripts,
            &[tag.clone()],
        )?;
        write_bindings_module(
            &mut writer,
            &self.project_layout,
            &self.module_name,
            &artifact,
            None,
            &self.target,
            false,
        )
        .context("Failed to add the files to the wheel")?;
        let wheel_path = writer.finish()?;
        println!(
            "📦 Built wheel for abi3 Python ≥ {}.{} to {}",
            major,
            min_minor,
            wheel_path.display()
        );
        Ok(wheel_path)
    }
pub fn build_binding_wheel_abi3 ( & self , major : u8 , min_minor : u8 ) -> Result < PathBuf > { // On windows, we have picked an interpreter to set the location of python.lib, // otherwise it's none let artifact = self . compile_cdylib ( self . interpreter . get ( 0 ) , Some ( & self . module_name ) ) ? ; let platform = self . target . get_platform_tag ( & self . manylinux , self . universal2 ) ; let tag = format ! ( " " major min_minor platform ) ; let mut writer = WheelWriter :: new ( & tag , & self . out , & self . metadata21 , & self . scripts , & [ tag . clone ( ) ] , ) ? ; write_bindings_module ( & mut writer , & self . project_layout , & self . module_name , & artifact , None , & self . target , false , ) . context ( " " ) ? ; let wheel_path = writer . finish ( ) ? ; println ! ( " major min_minor wheel_path display ( ) ) ; Ok ( wheel_path ) }
For abi3 we only need to build a single wheel and we don't even need a python interpreter
for it
For abi3 we only need to build a single wheel and we don ' t even need a python interpreter for it
&self
major
u8
min_minor
u8
&self
major
u8
min_minor
u8