Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
131 changes: 122 additions & 9 deletions MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ single_version_override(

bazel_dep(name = "bazel_skylib", version = "1.2.0")
bazel_dep(name = "rules_java", version = "7.4.0")
bazel_dep(name = "rules_rust", version = "0.64.0")

bazel_dep(name = "rules_android", version = "0.6.5")
bazel_dep(name = "rules_android_ndk", version = "0.1.3")
Expand Down Expand Up @@ -200,12 +201,6 @@ local_path_override(
path = "bin",
)

bazel_dep(name = "resvg_libs")
local_path_override(
module_name = "resvg_libs",
path = "third-party/resvg/resvg_libs",
)

bazel_dep(name = "jsoncpp", version = "1.9.6")

http_archive(
Expand Down Expand Up @@ -259,10 +254,128 @@ http_archive(

http_archive(
name = "resvg",
url = "https://github.com/RazrFalcon/resvg/archive/a739aef5d01360ec238c886bc50674f31458df00.zip",
url = "https://github.com/linebender/resvg/archive/b3c7f58d059da6aa0a25141b1948c61b8c579c12.zip",
build_file = "@valdi//third-party/resvg:resvg.BUILD",
strip_prefix = "resvg-a739aef5d01360ec238c886bc50674f31458df00",
integrity = "sha256-kohUhIYyFoaeIHLBhYwq6g7+h34r3i9/IIQoWyJAmSE=",
strip_prefix = "resvg-b3c7f58d059da6aa0a25141b1948c61b8c579c12",
integrity = "sha256-0F/rzIZh2AQW3zyJ8S0c269xlbCvn8rFSAI2r0jLdgU=",
)

http_archive(
name = "pngquant",
url = "https://github.com/kornelski/pngquant/archive/5b4e91f5dd6af27c928474ffd526bb69e17b0f37.zip",
build_file = "@valdi//third-party/pngquant:pngquant.BUILD",
strip_prefix = "pngquant-5b4e91f5dd6af27c928474ffd526bb69e17b0f37",
integrity = "sha256-CqMGdZFDTa+6gyxJN3Wvr6d5O4ezR9xvyBd1tzUNR+8=",
patch_args = ["-p1"],
patches = ["@valdi//third-party/pngquant:pngquant-build-script-bazel-headers.patch"],
)

rust = use_extension("@rules_rust//rust:extensions.bzl", "rust")
rust.toolchain(
edition = "2024",
extra_target_triples = [
"aarch64-apple-ios",
"aarch64-apple-ios-sim",
"aarch64-linux-android",
"armv7-linux-androideabi",
"x86_64-apple-ios",
"x86_64-linux-android",
],
versions = ["1.87.0"],
)
use_repo(rust, "rust_toolchains")
register_toolchains("@rust_toolchains//:all")

resvg_crate = use_extension("@rules_rust//crate_universe:extensions.bzl", "crate")
resvg_crate.spec(package = "base64", repositories = ["resvg_crates"], version = "0.22.1")
resvg_crate.spec(package = "data-url", repositories = ["resvg_crates"], version = "0.3.2")
resvg_crate.spec(package = "flate2", default_features = False, features = ["rust_backend"], repositories = ["resvg_crates"], version = "1.1.5")
resvg_crate.spec(package = "imagesize", repositories = ["resvg_crates"], version = "0.14.0")
resvg_crate.spec(package = "kurbo", repositories = ["resvg_crates"], version = "0.13.0")
resvg_crate.spec(package = "log", repositories = ["resvg_crates"], version = "0.4.29")
resvg_crate.spec(package = "pico-args", features = ["eq-separator"], repositories = ["resvg_crates"], version = "0.5.0")
resvg_crate.spec(package = "rgb", repositories = ["resvg_crates"], version = "0.8.52")
resvg_crate.spec(package = "roxmltree", repositories = ["resvg_crates"], version = "0.21.1")
resvg_crate.spec(package = "simplecss", repositories = ["resvg_crates"], version = "0.2.2")
resvg_crate.spec(package = "siphasher", repositories = ["resvg_crates"], version = "1.0.1")
resvg_crate.spec(package = "strict-num", repositories = ["resvg_crates"], version = "0.1.1")
resvg_crate.spec(package = "svgtypes", repositories = ["resvg_crates"], version = "0.16.1")
resvg_crate.spec(package = "tiny-skia", repositories = ["resvg_crates"], version = "0.12.0")
resvg_crate.spec(package = "tiny-skia-path", repositories = ["resvg_crates"], version = "0.12.0")
resvg_crate.spec(package = "xmlwriter", repositories = ["resvg_crates"], version = "0.1.0")
resvg_crate.render_config(
default_package_name = "",
repositories = ["resvg_crates"],
)
resvg_crate.from_specs(
name = "resvg_crates",
cargo_lockfile = "@resvg//:Cargo.lock",
lockfile = "//third-party/resvg:cargo-bazel-lock.json",
supported_platform_triples = [
"aarch64-apple-darwin",
"aarch64-apple-ios",
"aarch64-apple-ios-sim",
"aarch64-linux-android",
"armv7-linux-androideabi",
"x86_64-apple-ios",
"x86_64-linux-android",
"x86_64-apple-darwin",
"x86_64-unknown-linux-gnu",
],
)
use_repo(resvg_crate, "resvg_crates")

rust_host_tools = use_extension("@rules_rust//rust:extensions.bzl", "rust_host_tools")
rust_host_tools.host_tools(
name = "rust_host_tools_nightly",
version = "nightly",
)
use_repo(rust_host_tools, "rust_host_tools_nightly")

pngquant_crate = use_extension("@rules_rust//crate_universe:extensions.bzl", "crate")
pngquant_crate.spec(package = "pngquant", artifact = "bin", default_features = False, features = ["png-static", "z-static"], repositories = ["pngquant_crates"], version = "=3.0.0")
pngquant_crate.annotation(
crate = "pngquant",
build_script_data = [
"@pngquant_crates__imagequant-sys-4.1.0//:libimagequant.h",
"@pngquant_crates__libpng-sys-1.1.11//:vendor/png.h",
"@pngquant_crates__libpng-sys-1.1.11//:vendor/pngconf.h",
],
build_script_env = {
"DEP_IMAGEQUANT_INCLUDE_FILE": "$(execpath @pngquant_crates__imagequant-sys-4.1.0//:libimagequant.h)",
"DEP_PNG_INCLUDE_FILE": "$(execpath @pngquant_crates__libpng-sys-1.1.11//:vendor/png.h)",
},
gen_all_binaries = True,
patch_args = ["-p1"],
patches = ["//third-party/pngquant:pngquant-build-script-bazel-headers.patch"],
repositories = ["pngquant_crates"],
)
pngquant_crate.render_config(
default_package_name = "",
repositories = ["pngquant_crates"],
)
pngquant_crate.from_specs(
name = "pngquant_crates",
cargo_lockfile = "//third-party/pngquant:Cargo.lock",
host_tools = "@rust_host_tools_nightly",
lockfile = "//third-party/pngquant:cargo-bazel-lock.json",
supported_platform_triples = [
"aarch64-apple-darwin",
"x86_64-apple-darwin",
"x86_64-unknown-linux-gnu",
],
)
use_repo(
pngquant_crate,
"pngquant_crates",
"pngquant_crates__cc-1.2.61",
"pngquant_crates__dunce-1.0.5",
"pngquant_crates__getopts-0.2.24",
"pngquant_crates__imagequant-sys-4.1.0",
"pngquant_crates__libc-0.2.186",
"pngquant_crates__libpng-sys-1.1.11",
"pngquant_crates__libz-sys-1.1.28",
"pngquant_crates__wild-2.2.1",
)

bazel_dep(name = "rules_license", version = "1.0.0")
Expand Down
14 changes: 0 additions & 14 deletions bin/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@ load("@bazel_skylib//rules:native_binary.bzl", "native_binary")
load(
"@valdi//bzl:prebuilt_tools.bzl",
"bundle_js",
"pngquant_linux",
"pngquant_macos",
"valdi_compiler_companion_files",
)

Expand Down Expand Up @@ -32,18 +30,6 @@ alias(
visibility = ["//visibility:public"],
)

native_binary(
name = "pngquant",
src = select(
{
"@bazel_tools//src/conditions:darwin": pngquant_macos(),
"@bazel_tools//src/conditions:linux_x86_64": pngquant_linux(),
},
),
out = "pngquant",
visibility = ["//visibility:public"],
)

alias(
name = "valdi_standalone",
actual = "@valdi//valdi:valdi_standalone",
Expand Down
2 changes: 1 addition & 1 deletion bin/MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,4 @@ bazel_dep(name = "aspect_rules_js", version = "1.37.0")
# that workspace_prepare.bzl would normally create are never set up.
# This extension creates them and makes them visible to this module.
valdi_tools = use_extension("@valdi//bzl:valdi_compiler_repos_extension.bzl", "valdi_compiler_repos")
use_repo(valdi_tools, "valdi_compiler_macos", "valdi_compiler_linux", "valdi_pngquant_macos", "valdi_pngquant_linux", "jscore_libs")
use_repo(valdi_tools, "valdi_compiler_macos", "valdi_compiler_linux", "jscore_libs")
4 changes: 2 additions & 2 deletions bin/compiler/macos/valdi_compiler
Git LFS file not shown
24 changes: 0 additions & 24 deletions bzl/additional_dependencies.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -47,18 +47,6 @@ def setup_additional_dependencies(bzlmod = False):
build_file_content = SOURCES_FILEGROUP_BUILD_FILE_CONTENT,
)

native.new_local_repository(
name = "valdi_pngquant_macos",
path = "bin/pngquant/macos",
build_file_content = SOURCES_FILEGROUP_BUILD_FILE_CONTENT,
)

native.new_local_repository(
name = "valdi_pngquant_linux",
path = "bin/pngquant/linux",
build_file_content = SOURCES_FILEGROUP_BUILD_FILE_CONTENT,
)

native.new_local_repository(
name = "valdi_compiler_companion",
path = "bin/compiler_companion",
Expand Down Expand Up @@ -90,18 +78,6 @@ def setup_additional_dependencies(bzlmod = False):
target_dir = "bin/compiler/macos",
)

nested_repository(
name = "valdi_pngquant_macos",
source_repo = "valdi",
target_dir = "bin/pngquant/macos",
)

nested_repository(
name = "valdi_pngquant_linux",
source_repo = "valdi",
target_dir = "bin/pngquant/linux",
)

nested_repository(
name = "valdi_compiler_companion",
source_repo = "valdi",
Expand Down
28 changes: 19 additions & 9 deletions bzl/dependencies.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -263,12 +263,6 @@ def setup_dependencies(workspace_root = None):
path = "/bin",
)

local_or_nested_repository(
workspace_root = workspace_root,
name = "resvg_libs",
path = "/third-party/resvg/resvg_libs",
)

# From https://github.com/open-source-parsers/jsoncpp/releases/tag/1.8.0
http_archive(
name = "jsoncpp",
Expand Down Expand Up @@ -429,6 +423,12 @@ def setup_dependencies(workspace_root = None):
url = "https://github.com/bazel-contrib/bazel-lib/releases/download/v2.21.2/bazel-lib-v2.21.2.tar.gz",
)

http_archive(
name = "rules_rust",
integrity = "sha256-2GH766nwQzOgrmnkSO6D1pF/JC3bt/41xo/CEqarpUY=",
urls = ["https://github.com/bazelbuild/rules_rust/releases/download/0.64.0/rules_rust-0.64.0.tar.gz"],
)

# fuzzing rules directly copied from https://github.com/bazelbuild/rules_fuzzing/tree/1dbcd9167300ad226d29972f5f9c925d6d81f441?tab=readme-ov-file#configuring-the-workspace
http_archive(
name = "rules_fuzzing",
Expand All @@ -446,10 +446,20 @@ def setup_dependencies(workspace_root = None):

http_archive(
name = "resvg",
url = "https://github.com/RazrFalcon/resvg/archive/a739aef5d01360ec238c886bc50674f31458df00.zip",
url = "https://github.com/linebender/resvg/archive/b3c7f58d059da6aa0a25141b1948c61b8c579c12.zip",
build_file = "@valdi//third-party/resvg:resvg.BUILD",
strip_prefix = "resvg-a739aef5d01360ec238c886bc50674f31458df00",
integrity = "sha256-kohUhIYyFoaeIHLBhYwq6g7+h34r3i9/IIQoWyJAmSE=",
strip_prefix = "resvg-b3c7f58d059da6aa0a25141b1948c61b8c579c12",
integrity = "sha256-0F/rzIZh2AQW3zyJ8S0c269xlbCvn8rFSAI2r0jLdgU=",
)

http_archive(
name = "pngquant",
url = "https://github.com/kornelski/pngquant/archive/5b4e91f5dd6af27c928474ffd526bb69e17b0f37.zip",
build_file = "@valdi//third-party/pngquant:pngquant.BUILD",
strip_prefix = "pngquant-5b4e91f5dd6af27c928474ffd526bb69e17b0f37",
integrity = "sha256-CqMGdZFDTa+6gyxJN3Wvr6d5O4ezR9xvyBd1tzUNR+8=",
patch_args = ["-p1"],
patches = ["@valdi//third-party/pngquant:pngquant-build-script-bazel-headers.patch"],
)

http_archive(
Expand Down
10 changes: 0 additions & 10 deletions bzl/prebuilt_tools.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,6 @@

INTERNAL_BUILD = False

def pngquant_linux():
if INTERNAL_BUILD:
return "@valdi_pngquant_linux//:pngquant"
return "pngquant/linux/pngquant"

def pngquant_macos():
if INTERNAL_BUILD:
return "@valdi_pngquant_macos//:pngquant"
return "pngquant/macos/pngquant"

def valdi_compiler_companion_files():
if INTERNAL_BUILD:
return ["@valdi_compiler_companion//:all_files"]
Expand Down
1 change: 0 additions & 1 deletion bzl/valdi/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -405,7 +405,6 @@ valdi_toolchain(
compiler = ":compiler_source",
compiler_companion = ":compiler_companion_source",
compiler_toolbox = "@valdi_toolchain//:valdi_compiler_toolbox",
pngquant = "@valdi_toolchain//:pngquant",
sqldelight_compiler = "@valdi_toolchain//:sqldelight_compiler",
)

Expand Down
3 changes: 0 additions & 3 deletions bzl/valdi/valdi_compiled.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -2226,7 +2226,6 @@ def _prepare_hotreload_arguments(module_names, config_yaml_file, explicit_input_

companion_bin_wrapper = toolchain.companion.files.to_list()[0]
compiler_toolbox = toolchain.compiler_toolbox.files.to_list()[0]
pngquant = toolchain.pngquant.files.to_list()[0]
minify_config = toolchain.minify_config.files.to_list()[0]
client_sql = toolchain.sqldelight_compiler.files.to_list()

Expand All @@ -2243,8 +2242,6 @@ def _prepare_hotreload_arguments(module_names, config_yaml_file, explicit_input_
args.append(companion_bin_wrapper.path)
args.append("--direct-compiler-toolbox-path")
args.append(compiler_toolbox.path)
args.append("--direct-pngquant-path")
args.append(pngquant.path)
args.append("--direct-minify-config-path")
args.append(minify_config.path)

Expand Down
4 changes: 0 additions & 4 deletions bzl/valdi/valdi_config.yaml.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -51,10 +51,6 @@ compiler_toolbox_path:
linux: {COMPILER_TOOLBOX_PATH}
macos: {COMPILER_TOOLBOX_PATH}

pngquant_bin_path:
linux: {PNGQUANT_PATH}
macos: {PNGQUANT_PATH}

minify_config_path: {MINIFY_CONFIG_PATH}

node_modules_dir: {NODE_MODULES_DIR}
Expand Down
6 changes: 0 additions & 6 deletions bzl/valdi/valdi_run_compiler.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ def generate_config(ctx):
companion_path = toolchain.companion.files.to_list()[0].path
minify_config_path = toolchain.minify_config.files.to_list()[0].path
compiler_toolbox_path = toolchain.compiler_toolbox.files.to_list()[0].path
pngquant_path = toolchain.pngquant.files.to_list()[0].path

ctx.actions.expand_template(
output = out,
Expand All @@ -29,7 +28,6 @@ def generate_config(ctx):
"{COMPANION_BINARY}": companion_path + "/scripts/run.sh",
"{MINIFY_CONFIG_PATH}": "$PWD/" + minify_config_path,
"{COMPILER_TOOLBOX_PATH}": "$PWD/" + compiler_toolbox_path,
"{PNGQUANT_PATH}": "$PWD/" + pngquant_path,
"{NODE_MODULES_DIR}": NODE_MODULES_BASE,
},
)
Expand All @@ -42,7 +40,6 @@ def resolve_compiler_executable(ctx, toolchain, include_tools):
* compiler_toolbox binary
* companion tool (see //src/valdi_internal/compiler/companion:bin_wrapper)
* minify config file
* pngquant binary
* sqldelight compiler binary

Args:
Expand All @@ -66,7 +63,6 @@ def resolve_compiler_executable(ctx, toolchain, include_tools):
if include_tools:
inputs_depsets.append(toolchain.compiler_toolbox.files)
inputs_depsets.append(toolchain.minify_config.files)
inputs_depsets.append(toolchain.pngquant.files)
inputs_depsets.append(toolchain.sqldelight_compiler.files)

sqldelight_compiler = toolchain.sqldelight_compiler
Expand All @@ -87,14 +83,12 @@ def run_valdi_compiler(ctx, args, outputs, inputs, mnemonic, progress_message, u

companion_bin_wrapper = toolchain.companion.files.to_list()[0]
compiler_toolbox = toolchain.compiler_toolbox.files.to_list()[0]
pngquant = toolchain.pngquant.files.to_list()[0]
minify_config = toolchain.minify_config.files.to_list()[0]
client_sql = toolchain.sqldelight_compiler.files.to_list()

args.add("--bazel")
args.add("--direct-companion-path", companion_bin_wrapper)
args.add("--direct-compiler-toolbox-path", compiler_toolbox)
args.add("--direct-pngquant-path", pngquant)
args.add("--direct-minify-config-path", minify_config)

if client_sql:
Expand Down
Loading
Loading