# 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 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
  "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
]
