# Copyright 2014 The Chromium OS Authors. All rights reserved.
# Distributed under the terms of the GNU General Public License v2

EAPI="7"

# This ebuild only cares about its own FILESDIR and ebuild file, so it tracks
# the canonical empty project.
CROS_WORKON_COMMIT="3a01873e59ec25ecb10d1b07ff9816e69f3bbfee"
CROS_WORKON_TREE="8ce164efd78fcb4a68e898d8c92c7579657a49b1"
CROS_WORKON_PROJECT="chromiumos/infra/build/empty-project"
CROS_WORKON_LOCALNAME="platform/empty-project"

inherit cros-workon

DESCRIPTION="Text file listing USE flags for chromeos-base/libchromeos"

LICENSE="BSD-Google"
# Nothing depends on this package for build info.  All the files are used at
# runtime only by design.
SLOT="0/0"
KEYWORDS="*"

# NB: Flags listed here are off by default unless prefixed with a '+'.
# This list is lengthy since it determines the USE flags that will be written to
# the /etc/ui_use_flags.txt file that's used to generate Chrome's command line.
IUSE="
	allow_consumer_kiosk
	arc
	arc_adb_sideloading
	arc_force_2x_scaling
	arc_native_bridge_64bit_support_experiment
	arc_transition_m_to_n
	arc_uses_cros_video_decoder
	arcpp
	arcvm
	asan
	background_blur
	big_little
	biod
	borealis_host
	cfm_enabled_device
	cheets
	clear_fast_ink_buffer
	compupdates
	diagnostics
	disable_background_blur
	disable_cros_video_decoder
	disable_explicit_dma_fences
	disable_native_gpu_memory_buffers
	disable_instant_tethering
	disable_spectre_variant2_mitigation
	drm_atomic
	edge_touch_filtering
	enable_dsp_hotword
	enable_heuristic_palm_detection_filter
	enable_neural_palm_detection_filter
	force_breakpad
	gpu_sandbox_allow_sysv_shm
	gpu_sandbox_failures_not_fatal
	gpu_sandbox_start_early
	houdini
	houdini64
	kvm_guest
	kvm_host
	kvm_transition
	lacros
	legacy_keyboard
	legacy_power_button
	moblab
	native_gpu_memory_buffers
	natural_scroll_default
	ndk_translation
	ndk_translation64
	neon
	ondevice_document_scanner
	ondevice_handwriting
	ondevice_handwriting_dlc
	ondevice_speech
	oobe_skip_postlogin
	oobe_skip_to_login
	opengles
	os_install_service
	passive_event_listeners
	pita
	pita-camera
	pita-microphone
	rialto
	scheduler_configuration_performance
	screenshare_sw_codec
	set_hw_overlay_strategy_none
	shelf-hotseat
	smartdim
	tablet_form_factor
	touch_centric_device
	touchscreen_wakeup
	touchview
	video_capture_use_gpu_memory_buffer
	virtio_gpu
	webui-tab-strip
	wilco
"

src_install() {
	# Install a file containing a list of currently-set USE flags that
	# ChromiumCommandBuilder reads at runtime while constructing Chrome's
	# command line.
	local path="${WORKDIR}/ui_use_flags.txt"
	cat <<EOF >"${path}"
# This file is just for libchromeos's ChromiumCommandBuilder class.
# Don't use it for anything else. Your code will break.
EOF

	# If you need to use a new flag, add it to $IUSE at the top of the file.
	local flags=( ${IUSE} )
	local flag
	for flag in "${flags[@]/#[-+]}" ; do
		usev ${flag}
	done | sort -u >>"${path}"

	insinto /etc
	doins "${path}"
}
