# Annotation Type Build

@Retention(CLASS) @Target(TYPE) public @interface Build

Build hints that are not specific to one platform.

Place this on your application's main class -- the class named by `codename1.mainName`. An attribute you do not set is not written at all, so the build server's own default applies. The `default` clause below each attribute names a constant that says nothing -- see `HintUnset` -- and this package deliberately does not record what the server would do instead, because that is the server's to change.

- ## Optional Element Summary

  Optional Elements
  Modifier and Type
  Optional Element
  Description
  `String`
  `facebookAppId`
  The application ID for an app that requires native Facebook login integration, this defaults to null which means native Facebook support shouldn't be in the app
  `String`
  `gcmSenderId`
  The Android/chrome push identifier, see the push section for more details
  `ThemeMode`
  `nativeTheme`
  `modern`, `legacy`, `custom` (default unset).
  `Toggle`
  `noExtraResources`
  true/false (defaults to false).

- ## Element Details

  - ### facebookAppId

    String facebookAppId
    The application ID for an app that requires native Facebook login integration, this defaults to null which means native Facebook support shouldn't be in the app
    Default:
      `""`

  - ### gcmSenderId

    String gcmSenderId
    The Android/chrome push identifier, see the push section for more details
    Default:
      `""`

  - ### nativeTheme

    ThemeMode nativeTheme

    `modern`, `legacy`, `custom` (default unset). Cross-platform override that sets both `ios.themeMode` and `and.themeMode` together when those aren't set explicitly. `modern` = liquid glass + Material 3, `legacy` = iOS 7 flat

    - Holo Light, `custom` disables the framework native theme entirely. The legacy alias `cn1.nativeTheme` is still accepted.
    Default:
      `DEFAULT`

  - ### noExtraResources

    Toggle noExtraResources
    true/false (defaults to false). Blocks codename one from injecting its own resources when set to true, the only effect this has is in slightly reducing archive size. This might have adverse effects on some features of Codename One so it isn't recommended.
    Default:
      `DEFAULT`