# Sorting, making sure we don't detach comments.

sources = []

sources = [
  "x.cc",
]

sources = [
  "/a",
  "/b",
  "/c",

  # End of block.
]

sources += [
  # Start of block, separate.

  "a",
  "b",
  "c",
]

sources += [
  "a",
  "y.cc",

  # Attached comment.
  "y.h",
  "y.mm",
  "y.rc",
  "z",
  "z2",
]

sources += [
  "z",
  "z2",

  # Block comment.

  "a",
  "y.cc",
  "y.h",
  "y.mm",
  "y.rc",
]

sources += [
  "z",
  "z2",

  #
  # Multiline block comment.
  #

  "a",
  "y.cc",
  "y.h",
  "y.mm",
  "y.rc",
]

# With identifiers.
sources += [
  "a",
  "b",
  "c",
  abcd,
  some_other_thing,
]

# With accessors.
sources += [
  "a",
  "b",
  "c",
  invoker.stuff,
  wee[0],
]

# Various separated blocks.
sources -= [
  # Fix this test to build on Windows.
  "focus_cycler_unittest.cc",

  # All tests for multiple displays: not supported on Windows Ash.
  "wm/drag_window_resizer_unittest.cc",

  # Accelerometer is only available on Chrome OS.
  "wm/maximize_mode/maximize_mode_controller_unittest.cc",

  # Can't resize on Windows Ash. http://crbug.com/165962
  "autoclick/autoclick_unittest.cc",
  "magnifier/magnification_controller_unittest.cc",
  "sticky_keys/sticky_keys_overlay_unittest.cc",
  "system/tray/media_security/multi_profile_media_tray_item_unittest.cc",
  "virtual_keyboard_controller_unittest.cc",

  # Attached 1.
  # Attached 2.
  "wm/workspace/workspace_window_resizer_unittest.cc",

  # Separated at end.
  "zzzzzzzzzzzzzz.cc",
]

sources += [
  "srtp/crypto/include/xfm.h",

  # sources
  "srtp/crypto/rng/prng.c",
  "srtp/crypto/rng/rand_source.c",
  "srtp/srtp/ekt.c",
  "srtp/srtp/srtp.c",
]

# Try "public" too. It should be treated the same.
public = [
  # Let's sort
  "into",
  "salad",
  "this",
  "word",

  # But leave
  "these",
  "two",

  # alone!
]
