// Automatically generated file. DO NOT MODIFY
//
// This file is generated by device/samsung/beyond2lte/setup-makefiles.sh

soong_namespace {
	imports: [
		"vendor/samsung/exynos9820-common",
	],
}

cc_prebuilt_library_shared {
	name: "gatekeeper.exynos9820",
	owner: "samsung",
	strip: {
		none: true,
	},
	target: {
		android_arm: {
			srcs: ["proprietary/vendor/lib/hw/gatekeeper.exynos9820.so"],
		},
		android_arm64: {
			srcs: ["proprietary/vendor/lib64/hw/gatekeeper.exynos9820.so"],
		},
	},
	compile_multilib: "both",
	check_elf_files: false,
	relative_install_path: "hw",
	prefer: true,
	soc_specific: true,
}

cc_prebuilt_library_shared {
	name: "libbauthserver",
	owner: "samsung",
	strip: {
		none: true,
	},
	target: {
		android_arm: {
			srcs: ["proprietary/vendor/lib/libbauthserver.so"],
		},
		android_arm64: {
			srcs: ["proprietary/vendor/lib64/libbauthserver.so"],
		},
	},
	compile_multilib: "both",
	check_elf_files: false,
	prefer: true,
	soc_specific: true,
}

cc_prebuilt_library_shared {
	name: "libbauthtzcommon",
	owner: "samsung",
	strip: {
		none: true,
	},
	target: {
		android_arm: {
			srcs: ["proprietary/vendor/lib/libbauthtzcommon.so"],
		},
		android_arm64: {
			srcs: ["proprietary/vendor/lib64/libbauthtzcommon.so"],
		},
	},
	compile_multilib: "both",
	check_elf_files: false,
	prefer: true,
	soc_specific: true,
}

cc_prebuilt_library_shared {
	name: "sensors.bio",
	owner: "samsung",
	strip: {
		none: true,
	},
	target: {
		android_arm: {
			srcs: ["proprietary/vendor/lib/sensors.bio.so"],
		},
		android_arm64: {
			srcs: ["proprietary/vendor/lib64/sensors.bio.so"],
		},
	},
	compile_multilib: "both",
	check_elf_files: false,
	prefer: true,
	soc_specific: true,
}

cc_prebuilt_library_shared {
	name: "sensors.sensorhub",
	owner: "samsung",
	strip: {
		none: true,
	},
	target: {
		android_arm: {
			srcs: ["proprietary/vendor/lib/sensors.sensorhub.so"],
		},
		android_arm64: {
			srcs: ["proprietary/vendor/lib64/sensors.sensorhub.so"],
		},
	},
	compile_multilib: "both",
	check_elf_files: false,
	prefer: true,
	soc_specific: true,
}

cc_prebuilt_library_shared {
	name: "libswdap",
	owner: "samsung",
	strip: {
		none: true,
	},
	target: {
		android_arm: {
			srcs: ["proprietary/vendor/lib/soundfx/libswdap.so"],
		},
	},
	compile_multilib: "32",
	check_elf_files: false,
	relative_install_path: "soundfx",
	prefer: true,
	soc_specific: true,
}

cc_prebuilt_library_shared {
	name: "android.hardware.gnss@2.0-impl",
	owner: "samsung",
	strip: {
		none: true,
	},
	target: {
		android_arm64: {
			srcs: ["proprietary/vendor/lib64/hw/android.hardware.gnss@2.0-impl.so"],
		},
	},
	compile_multilib: "64",
	check_elf_files: false,
	relative_install_path: "hw",
	prefer: true,
	soc_specific: true,
}

cc_prebuilt_library_shared {
	name: "camera.exynos9820",
	owner: "samsung",
	strip: {
		none: true,
	},
	target: {
		android_arm64: {
			srcs: ["proprietary/vendor/lib64/hw/camera.exynos9820.so"],
		},
	},
	compile_multilib: "64",
	check_elf_files: false,
	relative_install_path: "hw",
	prefer: true,
	soc_specific: true,
}

cc_prebuilt_library_shared {
	name: "gps.default",
	owner: "samsung",
	strip: {
		none: true,
	},
	target: {
		android_arm64: {
			srcs: ["proprietary/vendor/lib64/hw/gps.default.so"],
		},
	},
	compile_multilib: "64",
	check_elf_files: false,
	relative_install_path: "hw",
	prefer: true,
	soc_specific: true,
}

cc_prebuilt_library_shared {
	name: "vendor.samsung.hardware.gnss@2.0-impl",
	owner: "samsung",
	strip: {
		none: true,
	},
	target: {
		android_arm64: {
			srcs: ["proprietary/vendor/lib64/hw/vendor.samsung.hardware.gnss@2.0-impl.so"],
		},
	},
	compile_multilib: "64",
	check_elf_files: false,
	relative_install_path: "hw",
	prefer: true,
	soc_specific: true,
}

cc_prebuilt_library_shared {
	name: "libexynoscamera3",
	owner: "samsung",
	strip: {
		none: true,
	},
	target: {
		android_arm64: {
			srcs: ["proprietary/vendor/lib64/libexynoscamera3.so"],
		},
	},
	compile_multilib: "64",
	check_elf_files: false,
	prefer: true,
	soc_specific: true,
}

cc_prebuilt_library_shared {
	name: "libstork_shared",
	owner: "samsung",
	strip: {
		none: true,
	},
	target: {
		android_arm64: {
			srcs: ["proprietary/vendor/lib64/libstork_shared.so"],
		},
	},
	compile_multilib: "64",
	check_elf_files: false,
	prefer: true,
	soc_specific: true,
}

cc_prebuilt_library_shared {
	name: "libvkmanager_vendor",
	owner: "samsung",
	strip: {
		none: true,
	},
	target: {
		android_arm64: {
			srcs: ["proprietary/vendor/lib64/libvkmanager_vendor.so"],
		},
	},
	compile_multilib: "64",
	check_elf_files: false,
	prefer: true,
	soc_specific: true,
}

cc_prebuilt_library_shared {
	name: "libvkservice",
	owner: "samsung",
	strip: {
		none: true,
	},
	target: {
		android_arm64: {
			srcs: ["proprietary/vendor/lib64/libvkservice.so"],
		},
	},
	compile_multilib: "64",
	check_elf_files: false,
	prefer: true,
	soc_specific: true,
}

cc_prebuilt_library_shared {
	name: "libwrappergps",
	owner: "samsung",
	strip: {
		none: true,
	},
	target: {
		android_arm64: {
			srcs: ["proprietary/vendor/lib64/libwrappergps.so"],
		},
	},
	compile_multilib: "64",
	check_elf_files: false,
	prefer: true,
	soc_specific: true,
}

cc_prebuilt_binary {
	name: "gpsd",
	owner: "samsung",
	target: {
		android_arm64: {
			srcs: ["proprietary/vendor/bin/hw/gpsd"],
		},
	},
	compile_multilib: "64",
	check_elf_files: false,
	strip: {
		none: true,
	},
	prefer: true,
	relative_install_path: "hw",
	soc_specific: true,
}

cc_prebuilt_binary {
	name: "lhd",
	owner: "samsung",
	target: {
		android_arm64: {
			srcs: ["proprietary/vendor/bin/hw/lhd"],
		},
	},
	compile_multilib: "64",
	check_elf_files: false,
	strip: {
		none: true,
	},
	prefer: true,
	relative_install_path: "hw",
	soc_specific: true,
}

cc_prebuilt_binary {
	name: "vendor.samsung.hardware.gnss@2.0-service",
	owner: "samsung",
	target: {
		android_arm64: {
			srcs: ["proprietary/vendor/bin/hw/vendor.samsung.hardware.gnss@2.0-service"],
		},
	},
	compile_multilib: "64",
	check_elf_files: false,
	strip: {
		none: true,
	},
	prefer: true,
	relative_install_path: "hw",
	soc_specific: true,
}

cc_prebuilt_binary {
	name: "vaultkeeperd",
	owner: "samsung",
	target: {
		android_arm64: {
			srcs: ["proprietary/vendor/bin/vaultkeeperd"],
		},
	},
	compile_multilib: "64",
	check_elf_files: false,
	strip: {
		none: true,
	},
	prefer: true,
	soc_specific: true,
}

