load("//bazel:skia_rules.bzl", "exports_files_legacy", "skia_cc_binary_with_flags", "skia_cc_library", "skia_filegroup")
load(":compile_sksl.bzl", "compile_sksl")

licenses(["notice"])

exports_files_legacy()

skia_cc_binary_with_flags(
    name = "skslc",
    srcs = [
        "Main.cpp",
    ],
    set_flags = {
        "enable_sksl": ["True"],
        "enable_sksl_tracing": ["True"],
        "enable_skslc": ["True"],
    },
    deps = [
        ":process_worklist",
        "//:skia_internal",
        "@spirv_tools",
    ],
)

skia_cc_library(
    name = "process_worklist",
    srcs = ["ProcessWorklist.cpp"],
    hdrs = ["ProcessWorklist.h"],
    visibility = ["//tools/sksl-minify:__pkg__"],
    deps = ["//:skia_internal"],
)

skia_filegroup(
    name = "glsl_tests_with_settings",
    srcs = [
        "//resources/sksl:sksl_glsl_settings_tests_sources",
        "//resources/sksl:sksl_glsl_tests_sources",
    ],
)

# Invoke these using:
#     bazel run //tools/skslc:compile_glsl_tests
compile_sksl(
    name = "glsl_tests",
    inputs = ":glsl_tests_with_settings",
    lang = "glsl",
)

compile_sksl(
    name = "glsl_nosettings_tests",
    inputs = "//resources/sksl:sksl_glsl_settings_tests_sources",
    lang = "glsl",
    settings = "nosettings",
)

compile_sksl(
    name = "metal_tests",
    inputs = "//resources/sksl:sksl_metal_tests_sources",
    lang = "metal",
)

compile_sksl(
    name = "skrp_tests",
    inputs = "//resources/sksl:sksl_skrp_tests_sources",
    lang = "skrp",
)

compile_sksl(
    name = "skvm_tests",
    inputs = "//resources/sksl:sksl_skvm_tests_sources",
    lang = "skvm",
)

compile_sksl(
    name = "stage_tests",
    inputs = "//resources/sksl:sksl_stage_tests_sources",
    lang = "stage",
)

compile_sksl(
    name = "spirv_tests",
    inputs = "//resources/sksl:sksl_spirv_tests_sources",
    lang = "spirv",
)

compile_sksl(
    name = "hlsl_tests",
    inputs = "//resources/sksl:sksl_hlsl_tests_sources",
    lang = "hlsl",
)

compile_sksl(
    name = "wgsl_tests",
    inputs = "//resources/sksl:sksl_wgsl_tests_sources",
    lang = "wgsl",
)

_SKSL_COMPILE_TESTS = """
import glob
import os
import shutil
import subprocess
import sys

# https://bazel.build/docs/user-manual#running-executables
# Note: Bazel eats single quotes, so we must use double quotes.
os.chdir(os.environ["BUILD_WORKSPACE_DIRECTORY"])

# execpath returns the path to the given label relative to the Skia root.
# This will be something like:
#   bazel-out/k8-opt-exec-81C6BA4F/bin/tools/sksl-minify/sksl_minify
# https://bazel.build/reference/be/make-variables#predefined_label_variables
# We then find the absolute path because this is easier to debug and more
# consistent if the script we are calling changes the working directory.
sksl_compile_exe = os.path.abspath("$(execpath //tools/skslc:skslc)")
compile_tests_script = os.path.abspath("$(execpath //gn:compile_sksl_tests)")

# The last argument passed in is a file path from the root of the skia dir to a file
# containing all the tests we want to process.
input_file = os.path.abspath(sys.argv[-1])

# skslc runs in standalone mode, which means it needs to read in several sksl files
# instead of them being compiled in. These files need to be copied to the location
# the executable is in, which is where it expects them.
for sksl_file in glob.glob("src/sksl/*.sksl"):
    shutil.copy(sksl_file, os.path.dirname(sksl_compile_exe))

result = subprocess.run([
    compile_tests_script,
    sksl_compile_exe,
] + sys.argv[1:-1] + [input_file], capture_output=True, encoding="utf-8")
print(result.stdout)
sys.exit(result.returncode)
"""

genrule(
    name = "create_sksl_compile_tests_script",
    outs = ["sksl_compile_tests.py"],
    cmd = "echo '%s' > $@" % _SKSL_COMPILE_TESTS,
    exec_tools = [
        ":skslc",
        "//gn:compile_sksl_tests",
    ],
)
