# In Windows, we use the following defines to make sure certain resources are
# embedded into one binary only.

# GN config is always executed after defines, so if we would like to generate
# defines ordered as
# #define BINARY_CORE=1
# #define REMOTING_HOST_BINARY=BINARY_CORE
# we need to set these predefines as a list, and append others after it.

assert(is_win)

host_predefines = [
  "BINARY_CORE=1",  # For remoting_core
  "BINARY_DESKTOP=2",  # For remoting_desktop
  "BINARY_HOST_ME2ME=3",  # For remoting_console and remoting_me2me_host
  "BINARY_NATIVE_MESSAGING_HOST=4",  # For remoting_native_messaging_host
  "BINARY_REMOTE_ASSISTANCE_HOST=5",  # For remote_assistance_host
  "BINARY_REMOTE_SECURITY_KEY=6",  # For remote_security_key
  "BINARY_REMOTING_START_HOST=7",  # For remoting_start_host
  "BINARY_HOST_IT2ME_UIACCESS=8",  # For remote_assistance_host_uiaccess
]
