This commit is contained in:
crazywhalecc
2025-11-30 15:35:04 +08:00
parent f6c818d3c0
commit 14bfb4198a
179 changed files with 19502 additions and 655 deletions

View File

@@ -0,0 +1,43 @@
<?php
declare(strict_types=1);
namespace StaticPHP\Toolchain\Interface;
/**
* Interface for toolchain implementations
*
* This interface defines the contract for toolchain classes that handle
* environment initialization and setup for different build targets.
*/
interface ToolchainInterface
{
/**
* Initialize the environment for the given target.
*
* This method should set up any necessary environment variables,
* paths, or configurations required for the build process.
*/
public function initEnv(): void;
/**
* Perform actions after the environment has been initialized for the given target.
*
* This method is called after initEnv() and can be used for any
* post-initialization setup or validation.
*/
public function afterInit(): void;
/**
* Returns the compiler name and version for toolchains.
*
* If the toolchain does not support compiler information,
* this method can return null.
*/
public function getCompilerInfo(): ?string;
/**
* Returns whether the toolchain with target is built for full static linking.
*/
public function isStatic(): bool;
}