Add the stage setting to musl
This commit is contained in:
parent
7362583790
commit
e8bedba2cb
|
@ -27,17 +27,27 @@ from conf.utils import copy_tree, get_version
|
|||
|
||||
class Musl(ConanFile):
|
||||
name = "musl"
|
||||
settings = "os", "arch", "build_type"
|
||||
settings = "os", "arch", "build_type", "compiler"
|
||||
version = get_version("musl")
|
||||
|
||||
options = {
|
||||
"stage": [1, 2],
|
||||
}
|
||||
default_options = {"stage": 1}
|
||||
|
||||
def build_requirements(self):
|
||||
self.requires(
|
||||
f"kernel-headers/{get_version('kernel')}@{self.user}/{self.channel}"
|
||||
)
|
||||
|
||||
self.tool_requires(
|
||||
f"clang-bootstrap/{get_version('llvm')}@{self.user}/{self.channel}"
|
||||
)
|
||||
if self.options.stage == 1:
|
||||
self.tool_requires(
|
||||
f"clang-bootstrap/{get_version('llvm')}@{self.user}/{self.channel}"
|
||||
)
|
||||
else:
|
||||
self.tool_requires(
|
||||
f"clang/{get_version('llvm')}@{self.user}/{self.channel}"
|
||||
)
|
||||
|
||||
@property
|
||||
def target(self):
|
||||
|
@ -52,7 +62,10 @@ class Musl(ConanFile):
|
|||
def generate(self):
|
||||
tc = AutotoolsToolchain(self, prefix=f"{self.package_folder}/")
|
||||
env = tc.environment()
|
||||
buildenv = self.dependencies.build["clang-bootstrap"].buildenv_info.vars(self)
|
||||
|
||||
clang = "clang-bootstrap" if self.options.stage == 1 else "clang"
|
||||
|
||||
clang_root = Path(self.dependencies.build[clang].package_folder)
|
||||
|
||||
tc.update_configure_args(
|
||||
{
|
||||
|
@ -63,11 +76,22 @@ class Musl(ConanFile):
|
|||
}
|
||||
)
|
||||
|
||||
libcc_dir = Path(buildenv["LIBCC_GNU"])
|
||||
if "musl" in self.target:
|
||||
libcc_dir = Path(buildenv["LIBCC_MUSL"])
|
||||
libcc = (
|
||||
clang_root
|
||||
/ "lib"
|
||||
/ "clang"
|
||||
/ get_version("llvm_major")
|
||||
/ "lib"
|
||||
/ self.target
|
||||
/ "libclang_rt.builtins.a"
|
||||
)
|
||||
|
||||
env.define("LIBCC", str(libcc_dir / "libclang_rt.builtins.a"))
|
||||
env.define(
|
||||
"LIBCC",
|
||||
str(libcc),
|
||||
)
|
||||
env.define("CC", "clang")
|
||||
env.prepend_path("PATH", str(clang_root / "bin"))
|
||||
# We will strip the debug data later
|
||||
tc.extra_cflags = ["-g", f"--target={self.target}"]
|
||||
tc.generate(env)
|
||||
|
|
Loading…
Reference in New Issue