diff --git a/mojo/mojo_library.bzl b/mojo/mojo_library.bzl index deb4d46..9765657 100644 --- a/mojo/mojo_library.bzl +++ b/mojo/mojo_library.bzl @@ -1,6 +1,7 @@ """Compile Mojo files into a precompiled object (mojoc) that can be consumed by other Mojo targets.""" +load("@bazel_skylib//lib:paths.bzl", "paths") load("@bazel_skylib//rules:common_settings.bzl", "BuildSettingInfo") load("//mojo:providers.bzl", "MojoInfo") load("//mojo/private:utils.bzl", "MOJO_EXTENSIONS", "collect_mojoinfo", "format_import", "is_exec_config") @@ -11,6 +12,10 @@ def _format_include(arg): def _format_root(arg): return arg.dirname +def _format_root_import(ctx): + package, import_path = ctx + return ["-I", paths.normalize(paths.join(package, import_path))] + def _mojo_library_implementation(ctx): mojo_toolchain = ctx.toolchains["//:toolchain_type"].mojo_toolchain_info build_env = getattr(ctx.toolchains["//:toolchain_type"], "build_env", {}) @@ -36,6 +41,8 @@ def _mojo_library_implementation(ctx): for file in ctx.files.srcs: if not file.dirname.startswith(root_directory): args.add_all([file], map_each = _format_include) + if ctx.attr.import_path != ".": + args.add_all([(ctx.label.package, ctx.attr.import_path)], map_each = _format_root_import) output_group_kwargs = {} precompile_outputs = [mojo_precmp_file]