# This file defines the content of the regular Haiku image.

# import everything from the minimum image
include [ FDirName $(HAIKU_BUILD_RULES_DIR) images definitions minimum ] ;

SEARCH on [ FGristFiles userguide quicktour welcome ]
	= [ FDirName $(HAIKU_TOP) data bin ] ;
SYSTEM_BIN += userguide quicktour welcome ;

SYSTEM_BIN += [ FFilterByBuildFeatures
	cddb_lookup
	clipboard CortexAddOnHost
	dpms
	FirstBootPrompt
	<bin>i2c@x86,x86_64 installsound
	mail mail2mbox mbox2mail media_client mount_nfs
	pidof recover screenshot setcontrollook setdecor spamdbm
	translate
	WindowShade
] ;

SYSTEM_APPS += [ FFilterByBuildFeatures
	ActivityMonitor AutoRaise
	CodyCam
	GLInfo@mesa
	HaikuDepot
	Icon-O-Matic@expat LaunchBox LegacyPackageInstaller
	Magnify Mail MediaConverter MediaPlayer MidiPlayer
	People PoorMan PowerStatus
	RemoteDesktop
	Screenshot SerialConnect SoftwareUpdater SoundRecorder
	TV
] ;

DESKBAR_APPLICATIONS +=
	ActivityMonitor
	CodyCam
	HaikuDepot
	Icon-O-Matic
	Magnify Mail MediaConverter MediaPlayer MidiPlayer
	People PoorMan
	SerialConnect SoftwareUpdater SoundRecorder
	TV
;

DESKBAR_DESKTOP_APPLETS +=
	AutoRaise
	LaunchBox
	PowerStatus
;

SYSTEM_PREFERENCES += [ FFilterByBuildFeatures
	Bluetooth
	DataTranslations
	E-mail
	Media
	Printers
	Repositories
	ScreenSaver Sounds
] ;

SYSTEM_DEMOS += [ FFilterByBuildFeatures
	Chart Clock Cortex@expat FontDemo GLTeapot@mesa
	$(HAIKU_INCLUDE_TRADEMARKS)Haiku3d@mesa Mandelbrot OverlayImage Pairs
	PatchBay Playground Pulse Sudoku
] ;


rule HaikuImageGetSystemLibs
{
	return
		# libs with special grist
		[ MultiArchDefaultGristFiles libroot.so : revisioned ]
		[ Libstdc++ForImage ]
		# libs with standard grist
		[ MultiArchDefaultGristFiles [ FFilterByBuildFeatures
			libalm.so
			libbe.so libbsd.so libbnetapi.so
			libbluetooth.so
			libdebug.so
			libdebugger.so@primary
			libdevice.so
			libgame.so libglut.so@mesa libgnu.so
			libmail.so libmedia.so libmidi.so libmidi2.so
			libnetwork.so
			libpackage.so
			libscreensaver.so
			libtextencoding.so libtracker.so libtranslation.so
		] ]
		;
}


rule HaikuImageGetPrivateSystemLibs
{
	return [ MultiArchDefaultGristFiles [ FFilterByBuildFeatures
		libalm.so
		libpackage-add-on-libsolv.so
		libroot-addon-icu.so
	] ] ;
}


SYSTEM_SERVERS += [ FFilterByBuildFeatures
	mail_daemon media_addon_server media_server midi_server
	nfs4_idmapper_server bluetooth_server
	print_server print_addon_server
] ;

# Bluetooth stack + drivers
SYSTEM_BT_STACK = hci btCoreData ;
SYSTEM_ADD_ONS_DRIVERS_BT_H2 +=
	h2generic
;

SYSTEM_ADD_ONS_ACCELERANTS += [ FFilterByBuildFeatures
	x86,x86_64 @{
		ati.accelerant
		intel_810.accelerant intel_extreme.accelerant
		matrox.accelerant
		nvidia.accelerant
		radeon.accelerant radeon_hd.accelerant
		via.accelerant
	}@ # x86,x86_64
	x86 @{
		3dfx.accelerant neomagic.accelerant s3.accelerant
	}@ # x86
] ;

SYSTEM_ADD_ONS_TRANSLATORS += [ FFilterByBuildFeatures
	AVIFTranslator@libavif
	BMPTranslator
	EXRTranslator@openexr
	GIFTranslator
	HVIFTranslator
	ICOTranslator ICNSTranslator@libicns
	JPEGTranslator@jpeg	JPEG2000Translator@jasper
	PCXTranslator PNGTranslator@libpng PPMTranslator PSDTranslator
	RAWTranslator RTFTranslator
	SGITranslator
	TGATranslator TIFFTranslator@tiff
	WebPTranslator@libwebp WonderBrushTranslator
] ;

SYSTEM_ADD_ONS_MEDIA += [ FFilterByBuildFeatures
	cortex_audioadapter.media_addon	cortex_flanger.media_addon
	cortex_logging_consumer.media_addon
	dvb.media_addon@x86
	equalizer.media_addon
	hmulti_audio.media_addon
	#legacy.media_addon
	mixer.media_addon
	opensound.media_addon
	tone_producer_demo.media_addon
	usb_webcam.media_addon
	video_producer_demo.media_addon	video_window_demo.media_addon
	vst_host.media_addon
] ;

SYSTEM_ADD_ONS_MEDIA_PLUGINS += [ FFilterByBuildFeatures
	ape_reader@x86
	ffmpeg@ffmpeg
	http_streamer
	raw_decoder
] ;

SYSTEM_ADD_ONS_PRINT += [ FFilterByBuildFeatures
	Canon\ LIPS3\ Compatible
	Canon\ LIPS4\ Compatible
	Gutenprint@gutenprint
	PCL5\ Compatible
	PCL6\ Compatible
	PS\ Compatible
	Preview
] ;

SYSTEM_ADD_ONS_PRINT_TRANSPORT +=
	HP\ JetDirect
	IPP
	LPR
	# Parallel\ Port
	Print\ To\ File
	Serial\ Port
	USB\ Port
;

SYSTEM_ADD_ONS_SCREENSAVERS += [ FFilterByBuildFeatures
	Butterfly
	DebugNow
	Flurry@mesa
	GLife@mesa Gravity@mesa
	Icons IFS
	Leaves
	Message
	Nebula
	Shelf
	Spider
] ;

SYSTEM_ADD_ONS_DRIVERS_AUDIO +=
	auich auvia
	echo3g emuxki es1370
	hda
	ice1712
	sis7018
;

SYSTEM_ADD_ONS_DRIVERS_AUDIO_OLD +=
	#cmedia usb_audio
;

SYSTEM_ADD_ONS_DRIVERS_GRAPHICS += [ FFilterByBuildFeatures
	x86,x86_64 @{
		ati
		intel_810 intel_extreme
		matrox
		nvidia
		radeon radeon_hd
		via
	}@ # x86,x86_64
	x86 @{
		3dfx
		neomagic
		s3
	}@ # x86
] ;

SYSTEM_ADD_ONS_DRIVERS_MIDI +=
	emuxki
	ice1712
	usb_midi
;

SYSTEM_ADD_ONS_DRIVERS_NET += [ FFilterByBuildFeatures
	# WLAN drivers
	x86,x86_64,riscv64 @{
		aironetwifi atheroswifi
		broadcom43xx
		iaxwifi200 idualwifi7260
		iprowifi2100 iprowifi2200 iprowifi3945 iprowifi4965
		marvell88w8363 marvell88w8335
		ralinkwifi realtekwifi
	}@ # x86,x86_64,riscv64
] ;

SYSTEM_ADD_ONS_DRIVERS_POWER += [ FFilterByBuildFeatures
	acpi_battery@x86,x86_64
] ;

SYSTEM_ADD_ONS_FILE_SYSTEMS +=
	cdda
	#googlefs
	nfs nfs4
	ufs2
;

# Mailbox folders and symlink
AddDirectoryToHaikuImage home mail : home-mail.rdef ;
AddDirectoryToHaikuImage home mail draft : home-mail-draft.rdef ;
AddDirectoryToHaikuImage home mail in : home-mail-in.rdef ;
AddDirectoryToHaikuImage home mail out : home-mail-out.rdef ;
AddDirectoryToHaikuImage home mail queries : home-mail-queries.rdef ;
AddDirectoryToHaikuImage home mail sent : home-mail-sent.rdef ;
AddDirectoryToHaikuImage home mail spam : home-mail-spam.rdef ;

# Add boot launch directory
AddDirectoryToHaikuImage home config settings boot launch ;

# Add mail provider infos.
AddFilesToHaikuImage home config settings Mail ProviderInfo :
	$(HAIKU_PROVIDER_INFOS) ;

# Add Tracker New Templates
AddDirectoryToHaikuImage home config settings Tracker "Tracker New Templates"
	:  tracker-new-templates.rdef ;
AddFilesToHaikuImage home config settings Tracker "Tracker New Templates"
	:
	"<tracker-new-templates>C++ header"
	"<tracker-new-templates>C++ source"
	"<tracker-new-templates>Makefile"
	"<tracker-new-templates>Person"
	"<tracker-new-templates>text file"
;

# printers
AddDirectoryToHaikuImage home config settings printers Preview
	: home-config-settings-printers-preview.rdef ;
AddDirectoryToHaikuImage home config settings printers "Save as PDF"
	: home-config-settings-printers-save-as-pdf.rdef ;

# padblocker
AddDirectoryToHaikuImage home config settings touchpad ;

# shortcuts defaults
local shortcutsSettingsFile = <settings>shortcuts_settings ;
SEARCH on $(shortcutsSettingsFile) = [ FDirName $(HAIKU_TOP) data settings ] ;
AddFilesToHaikuImage home config settings : $(shortcutsSettingsFile) ;
