-
Notifications
You must be signed in to change notification settings - Fork 25
Expand file tree
/
Copy pathsetup.py
More file actions
63 lines (54 loc) · 1.77 KB
/
Copy pathsetup.py
File metadata and controls
63 lines (54 loc) · 1.77 KB
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
import sys
sys.path.append("scripts")
import argparse
import configparser
import os
import scripts.utils as utils
if __name__ == "__main__":
keyboards = [
keyboard
for keyboard in os.listdir("keyboards")
if os.path.isdir(os.path.join("keyboards", keyboard))
]
parser = argparse.ArgumentParser(description="PlatformIO Project Setup")
parser.add_argument(
"--keyboard", "-k", choices=keyboards, required=True, help="Select a keyboard"
)
args = parser.parse_args()
keyboard: str = args.keyboard
driver = utils.get_driver(keyboard)
build_flags = ["${env.build_flags}"]
build_src_flags = [
"${env.build_src_flags}",
"-Werror",
"-Wall",
"-Wextra",
"-Wsign-conversion",
"-Wswitch-default",
"-Wswitch",
"-Wdouble-promotion",
"-Wstrict-prototypes",
"-Wno-unused-parameter",
]
extra_scripts = [
"pre:scripts/get_deps.py",
"pre:scripts/validate.py",
"pre:scripts/make.py",
"pre:scripts/metadata.py",
]
lib_deps = ["https://github.com/hathach/tinyusb.git#0.20.0"]
pio_config = configparser.ConfigParser()
pio_config[f"env:{keyboard}"] = {
"board": driver.platformio.board,
"board_build.ldscript": f"linker/{driver.platformio.ldscript}",
"build_flags": "\n".join(build_flags),
"build_src_filter": "${env.build_src_filter}",
"build_src_flags": "\n".join(build_src_flags),
"extra_scripts": "\n".join(extra_scripts),
"framework": driver.platformio.framework,
"lib_deps": "\n".join(lib_deps),
"platform": driver.platformio.platform,
"upload_protocol": "dfu",
}
with open("platformio.ini", "w") as f:
pio_config.write(f)