blob: acd35458cdb7d83b61f475feda418f3d92b9add9 [file] [log] [blame] [edit]
# Copyright 2024 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//common-mk/pkg_config.gni")
group("platform") {
deps = [
":install_fuzzer_headers",
":install_platform_fake_headers",
":install_platform_headers",
":install_platform_keyring_headers",
":libstorage_fake_platform",
":libstorage_fake_platform_static",
":libstorage_fuzzer",
":libstorage_platform",
":libstorage_platform_static",
]
if (use.test) {
deps += [
":fake_platform_test",
":platform_testrunner",
]
}
}
pkg_config("target_defaults") {
# This is a list of pkg-config dependencies
pkg_deps = [
"absl",
"libbrillo",
"libchrome",
"libcrossystem",
"libecryptfs",
"openssl",
"system_api",
]
libs = [
"hwsec-foundation",
"keyutils",
"rootdev",
"secure_erase_file",
]
defines = [
"USE_SELINUX=${use.selinux}",
"USE_DEVICE_MAPPER=${use.device_mapper}",
]
if (use.selinux) {
libs += [ "selinux" ]
}
}
generate_pkg_config("libstorage_platform_pc") {
name = "libstorage_platform"
description = "Storage Platform library"
version = "1.0"
cflags = [ "-I/usr/include/libstorage" ]
libs = [ "-lstorage_platform" ]
install = true
}
source_set("libstorage_sources") {
sources = [
"dircrypto_util.cc",
"keyring/real_keyring.cc",
"keyring/utils.cc",
"platform.cc",
]
all_dependent_configs = [ ":target_defaults" ]
configs += [ "//common-mk:pic" ]
}
source_set("libstorage_fake_platform_sources") {
sources = [
"fake_platform.cc",
"fake_platform/fake_fake_mount_mapping_redirect_factory.cc",
"fake_platform/fake_mount_mapper.cc",
"fake_platform/real_fake_mount_mapping_redirect_factory.cc",
"fake_platform/test_file_path.cc",
"mock_platform.cc",
"util/get_random_suffix.cc",
]
libs = [ "hwsec-foundation" ]
pkg_deps = [
"libbrillo-test",
"libcrossystem-test",
]
all_dependent_configs = [
":target_defaults",
"//common-mk:test",
]
configs += [ "//common-mk:pic" ]
}
static_library("libstorage_platform_static") {
deps = [ ":libstorage_sources" ]
}
static_library("libstorage_fake_platform_static") {
deps = [ ":libstorage_fake_platform_sources" ]
}
shared_library("libstorage_platform") {
deps = [
":libstorage_platform_pc",
":libstorage_sources",
]
install_path = "lib"
}
install_config("install_platform_headers") {
sources = [
"dircrypto_util.h",
"fake_platform.h",
"mock_platform.h",
"platform.h",
]
install_path = "/usr/include/libstorage/platform"
}
install_config("install_platform_keyring_headers") {
sources = [
"keyring/fake_keyring.h",
"keyring/keyring.h",
"keyring/real_keyring.h",
"keyring/utils.h",
]
install_path = "/usr/include/libstorage/platform/keyring"
}
install_config("install_platform_fake_headers") {
sources = [
"fake_platform/fake_fake_mount_mapping_redirect_factory.h",
"fake_platform/fake_mount_mapper.h",
"fake_platform/fake_mount_mapping_redirect_factory.h",
"fake_platform/real_fake_mount_mapping_redirect_factory.h",
"fake_platform/test_file_path.h",
]
install_path = "/usr/include/libstorage/platform/fake_platform"
}
generate_pkg_config("libstorage_fake_platform_pc") {
name = "libstorage_fake_platform"
description = "Fake Storage Platform library"
version = "1.0"
libs = [ "-lstorage_fake_platform" ]
install = true
}
shared_library("libstorage_fake_platform") {
deps = [
":libstorage_fake_platform_pc",
":libstorage_fake_platform_sources",
":libstorage_platform",
]
# We want to install this shared lib on the test image.
# gnlint: disable=GnLintInstallPathAlias
install_path = "/usr/local/lib"
}
install_config("install_fuzzer_headers") {
sources = [ "fuzzers/fuzzed_platform.h" ]
install_path = "/usr/include/libstorage/platform/fuzzers"
}
generate_pkg_config("libstorage_fuzzer_pc") {
name = "libstorage_fuzzer"
description = "Fuzzer Platform library"
version = "1.0"
cflags = [ "-I/usr/include/libstorage" ]
libs = [ "-lstorage_fuzzer" ]
install = true
}
shared_library("libstorage_fuzzer") {
sources = [ "fuzzers/fuzzed_platform.cc" ]
configs += [
"//common-mk:test",
":target_defaults",
]
libs = [ "hwsec-foundation" ]
pkg_deps = [
"libbrillo",
"libchrome",
]
deps = [ ":libstorage_fuzzer_pc" ]
install_path = "/build/lib"
}
if (use.test) {
executable("platform_testrunner") {
sources = [ "platform_test.cc" ]
configs += [ "//common-mk:test" ]
pkg_deps = [ "libbrillo-test" ]
deps = [
":libstorage_fake_platform_static",
":libstorage_platform_static",
"//common-mk/testrunner",
]
run_test = true
}
executable("fake_platform_test") {
sources = [
"fake_platform/fake_mount_mapper_test.cc",
"fake_platform/real_fake_mount_mapping_redirect_factory_test.cc",
"fake_platform/test_file_path_test.cc",
]
configs += [ "//common-mk:test" ]
pkg_deps = [ "libbrillo-test" ]
deps = [
":libstorage_fake_platform_static",
":libstorage_platform_static",
"//common-mk/testrunner",
]
run_test = true
}
}