blob: bb68e29a2c599d4d6f0572bffa7199cbc0284571 [file] [log] [blame]
# Copyright 2021 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/components.gni")
import("//build/dist/resource.gni")
source_set("src") {
testonly = true
defines = [ "CL_TARGET_OPENCL_VERSION=300" ]
sources = [ "libopencl_test.cc" ]
public_deps = [
"//sdk/fidl/fuchsia.io",
"//sdk/lib/fdio",
"//sdk/lib/sys/cpp",
"//src/lib/fxl/test:test_settings",
"//third_party/OpenCL-Headers:opencl_headers",
"//third_party/OpenCL-ICD-Loader",
"//third_party/googletest:gtest",
"//zircon/system/ulib/async-loop:async-loop-cpp",
"//zircon/system/ulib/async-loop:async-loop-default",
]
}
executable("libopencl_test_bin") {
testonly = true
output_name = "libopencl_test"
deps = [ ":src" ]
}
executable("fake_opencl_loader_bin") {
testonly = true
output_name = "fake_opencl_loader"
defines = [ "CL_TARGET_OPENCL_VERSION=300" ]
sources = [ "fake_opencl_loader.cc" ]
deps = [
"//sdk/fidl/fuchsia.opencl.loader",
"//sdk/lib/sys/cpp",
"//src/lib/fxl",
"//zircon/system/ulib/async-loop:async-loop-cpp",
"//zircon/system/ulib/async-loop:async-loop-default",
]
deps += [
":icd-json",
":libopencl_fake",
]
# IMPORTANT: The fake_opencl_loader_bin program
# expects the library to be in /pkg/lib/ at
# runtime, which disallows using instrumented
# variants, which will install it it /pkg/lib/<variant>/
# instead, resulting in a runtime error.
exclude_toolchain_tags = [ "instrumented" ]
}
resource("icd-json") {
sources = [ "libopencl_fake.json" ]
outputs = [ "data/manifest/libopencl_fake.json" ]
}
shared_library("libopencl_fake") {
defines = [ "CL_TARGET_OPENCL_VERSION=300" ]
sources = [ "libopencl_fake.cc" ]
deps = [
"//sdk/lib/fdio",
"//third_party/OpenCL-Headers:opencl_headers",
"//zircon/system/ulib/zx",
]
}
fuchsia_component("libopencl_test_driver") {
testonly = true
component_name = "libopencl_test_driver"
deps = [ ":libopencl_test_bin" ]
manifest = "meta/libopencl_test_driver.cml"
}
fuchsia_component("libopencl_test_cmp") {
testonly = true
component_name = "libopencl_test"
manifest = "meta/libopencl_test.cml"
}
fuchsia_component("fake_opencl_loader") {
testonly = true
component_name = "fake_opencl_loader"
deps = [ ":fake_opencl_loader_bin" ]
manifest = "meta/fake_opencl_loader.cml"
}
fuchsia_test_package("libopencl-test") {
package_name = "libopencl_test"
test_components = [ ":libopencl_test_cmp" ]
deps = [
":fake_opencl_loader",
":libopencl_fake",
":libopencl_test_driver",
]
}
group("libopencl") {
testonly = true
deps = [ ":libopencl-test" ]
}