summaryrefslogtreecommitdiff
path: root/.cmake-format
blob: 4ca1e0f0b1f16b629b5addd06fe495167b10284f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103

# --------------------------
# General Formatting Options
# --------------------------
# How wide to allow formatted cmake files
line_width = 140

# How many spaces to tab for indent
tab_size = 4

# If arglists are longer than this, break them always
max_subargs_per_line = 3

# If true, separate flow control names from their parentheses with a space
separate_ctrl_name_with_space = False

# If true, separate function names from parentheses with a space
separate_fn_name_with_space = False

# If a statement is wrapped to more than one line, than dangle the closing
# parenthesis on it's own line
dangle_parens = True

# If the statement spelling length (including space and parenthesis is larger
# than the tab width by more than this amoung, then force reject un-nested
# layouts.
max_prefix_chars = 2

# If a candidate layout is wrapped horizontally but it exceeds this many lines,
# then reject the layout.
max_lines_hwrap = 8

# What style line endings to use in the output.
line_ending = u'unix'

# Format command names consistently as 'lower' or 'upper' case
command_case = u'canonical'

# Format keywords consistently as 'lower' or 'upper' case
keyword_case = u'unchanged'

# Specify structure for custom cmake functions
additional_commands = {
  "add_node_module": {
    "kwargs": {
      "INSTALL_PATH": "*",
      "NAN_VERSION": "*",
      "EXCLUDE_NODE_ABIS": "*"
    }
  },
  "target_compile_definitions": {
    "kwargs": {
      "PRIVATE": "*",
      "PUBLIC": "*"
    }
  },
  "set_target_properties": {
    "kwargs": {
      "PROPERTIES": {
        "kwargs": {
          "INTERFACE_MAPBOX_NAME": "*",
          "INTERFACE_MAPBOX_URL": "*",
          "INTERFACE_MAPBOX_AUTHOR": "*",
          "INTERFACE_MAPBOX_LICENSE": "*"
        }
      }
    }
  },
  "target_sources": {
    "kwargs": {
      "INTERFACE": "*",
      "PRIVATE": "*",
      "PUBLIC": "*"
    }
  }
}

# A list of command names which should always be wrapped
always_wrap = [
    "add_executable",
    "add_library",
    "set_source_files_properties",
    "target_compile_definitions",
    "target_include_directories",
    "target_link_libraries",
    "target_sources"
]

# Specify the order of wrapping algorithms during successive reflow attempts
algorithm_order = [0, 1, 2, 3, 4]

# If true, the argument lists which are known to be sortable will be sorted
# lexicographicall
enable_sort = True

# If true, the parsers may infer whether or not an argument list is sortable
# (without annotation).
autosort = True

# If a comment line starts with at least this many consecutive hash characters,
# then don't lstrip() them off. This allows for lazy hash rulers where the first
# hash char is not separated by space
hashruler_min_length = 10