omdev 0.0.0.dev326__py3-none-any.whl → 0.0.0.dev328__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
omdev/cc/cli.py CHANGED
@@ -39,12 +39,17 @@ from ..cache import data as dcache
39
39
  from .cdeps import Cdep
40
40
  from .cdeps import load_cdeps
41
41
  from .cdeps import process_marshaled_cdep
42
+ from .srclangs import SRC_LANGS_BY_EXT
43
+ from .srclangs import SrcLangs
44
+
45
+
46
+ ##
42
47
 
43
48
 
44
49
  class Cli(ap.Cli):
45
50
  @ap.cmd(
46
51
  ap.arg('--cwd'),
47
- ap.arg('--cc'),
52
+ ap.arg('--cmd'),
48
53
  ap.arg('src-file'),
49
54
  ap.arg('args', nargs=ap.REMAINDER),
50
55
  )
@@ -90,6 +95,13 @@ class Cli(ap.Cli):
90
95
  check.state(os.path.isdir(inc_dir))
91
96
  include_dirs.append(inc_dir)
92
97
 
98
+ elif src_magic.key == '@omlish-llm-author':
99
+ pass
100
+
101
+ elif src_magic.key == '@omlish-cext':
102
+ # FIXME: lol - usecase for non-cext bins?
103
+ pass
104
+
93
105
  else:
94
106
  raise KeyError(src_magic.key)
95
107
 
@@ -97,8 +109,15 @@ class Cli(ap.Cli):
97
109
 
98
110
  src_file_name = os.path.basename(src_file)
99
111
 
112
+ sl = SrcLangs.CPP
113
+ if '.' in src_file:
114
+ ext = src_file.rpartition('.')[2]
115
+ sl = SRC_LANGS_BY_EXT.get(ext, sl)
116
+
117
+ #
118
+
100
119
  sh_parts: list[str] = [
101
- self.args.cc or 'clang++',
120
+ self.args.cmd or sl.cmd,
102
121
  ]
103
122
 
104
123
  for inc_dir in include_dirs:
@@ -110,8 +129,10 @@ class Cli(ap.Cli):
110
129
  if ldflags := os.environ.get('LDFLAGS'):
111
130
  sh_parts.append(ldflags) # Explicitly shell-unquoted
112
131
 
132
+ if sl.std is not None:
133
+ sh_parts.append(f'-std={sl.std}')
134
+
113
135
  sh_parts.extend([
114
- '-std=c++20',
115
136
  shlex.quote(os.path.abspath(src_file)),
116
137
  '-o',
117
138
  shlex.quote(src_file_name),
omdev/cc/srclangs.py ADDED
@@ -0,0 +1,44 @@
1
+ import typing as ta
2
+
3
+ from omlish import collections as col
4
+ from omlish import dataclasses as dc
5
+ from omlish import lang
6
+
7
+
8
+ ##
9
+
10
+
11
+ @dc.dataclass(frozen=True, kw_only=True)
12
+ class SrcLang:
13
+ name: str
14
+
15
+ ext: str
16
+ alt_exts: ta.Sequence[str] | None = None
17
+
18
+ cmd: str
19
+
20
+ std: str | None = None
21
+
22
+
23
+ class SrcLangs(lang.Namespace):
24
+ CPP = SrcLang(
25
+ name='cpp',
26
+ ext='cc',
27
+ alt_exts=['cpp'],
28
+ cmd='clang++',
29
+ std='c++20',
30
+ )
31
+
32
+ C = SrcLang(
33
+ name='c',
34
+ ext='c',
35
+ cmd='clang',
36
+ std='c17',
37
+ )
38
+
39
+
40
+ SRC_LANGS_BY_EXT: ta.Mapping[str, SrcLang] = col.make_map([
41
+ (ext, sl)
42
+ for _, sl in SrcLangs
43
+ for ext in [sl.ext, *(sl.alt_exts or [])]
44
+ ], strict=True)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: omdev
3
- Version: 0.0.0.dev326
3
+ Version: 0.0.0.dev328
4
4
  Summary: omdev
5
5
  Author: wrmsr
6
6
  License: BSD-3-Clause
@@ -12,7 +12,7 @@ Classifier: Operating System :: OS Independent
12
12
  Classifier: Operating System :: POSIX
13
13
  Requires-Python: >=3.12
14
14
  License-File: LICENSE
15
- Requires-Dist: omlish==0.0.0.dev326
15
+ Requires-Dist: omlish==0.0.0.dev328
16
16
  Provides-Extra: all
17
17
  Requires-Dist: black~=25.1; extra == "all"
18
18
  Requires-Dist: pycparser~=2.22; extra == "all"
@@ -36,7 +36,8 @@ omdev/cc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
36
36
  omdev/cc/__main__.py,sha256=n7gxSRYZ1QZOUxQPCT0_n9Xl26zi2UIvCwyGW_m67nA,166
37
37
  omdev/cc/cdeps.py,sha256=33_XLbLZMptyJIkzas6ruSHsaNi95pRQj5BNQInG75o,1546
38
38
  omdev/cc/cdeps.toml,sha256=MqZ1OQHQ2JPvQpHRL32GpRgQWQRtzjPI2EWl4EqSm-I,1004
39
- omdev/cc/cli.py,sha256=h_eIA370FLJTzzSmPlk4WEcJZMuH_zeeokztG0FZMFI,4425
39
+ omdev/cc/cli.py,sha256=qmBLyq7dz85Sv4xZ_YR2S4UehCGKrf7-ZIWL0RwnLIY,4918
40
+ omdev/cc/srclangs.py,sha256=3u_APHgknuc-BPRQSDISwSzouluKsnLlBxodp-XCl_E,728
40
41
  omdev/cexts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
41
42
  omdev/cexts/_boilerplate.cc,sha256=sbpXEgdFrkdzZXgaNWFFNN27fL9TZu6VrwvMY4-nnFM,1726
42
43
  omdev/cexts/build.py,sha256=F3z1-CjDlEM-Gzi5IunKUBO52qdH_pMsFylobTdGJnI,2654
@@ -295,9 +296,9 @@ omdev/tools/json/rendering.py,sha256=3HhdlKSetS6iK1tjF2aILzsl8Mb3D8wW92vYwGpRdVA
295
296
  omdev/tools/pawk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
296
297
  omdev/tools/pawk/__main__.py,sha256=VCqeRVnqT1RPEoIrqHFSu4PXVMg4YEgF4qCQm90-eRI,66
297
298
  omdev/tools/pawk/pawk.py,sha256=zsEkfQX0jF5bn712uqPAyBSdJt2dno1LH2oeSMNfXQI,11424
298
- omdev-0.0.0.dev326.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
299
- omdev-0.0.0.dev326.dist-info/METADATA,sha256=FmWy3rprjDSjibWIe6umKnDU_NTbCKFxOOx68p8JC-k,1674
300
- omdev-0.0.0.dev326.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
301
- omdev-0.0.0.dev326.dist-info/entry_points.txt,sha256=dHLXFmq5D9B8qUyhRtFqTGWGxlbx3t5ejedjrnXNYLU,33
302
- omdev-0.0.0.dev326.dist-info/top_level.txt,sha256=1nr7j30fEWgLYHW3lGR9pkdHkb7knv1U1ES1XRNVQ6k,6
303
- omdev-0.0.0.dev326.dist-info/RECORD,,
299
+ omdev-0.0.0.dev328.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
300
+ omdev-0.0.0.dev328.dist-info/METADATA,sha256=RxvGx7H2RP1Jzdxu9licD0UP3I09pz-Bl7Efovlaj0s,1674
301
+ omdev-0.0.0.dev328.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
302
+ omdev-0.0.0.dev328.dist-info/entry_points.txt,sha256=dHLXFmq5D9B8qUyhRtFqTGWGxlbx3t5ejedjrnXNYLU,33
303
+ omdev-0.0.0.dev328.dist-info/top_level.txt,sha256=1nr7j30fEWgLYHW3lGR9pkdHkb7knv1U1ES1XRNVQ6k,6
304
+ omdev-0.0.0.dev328.dist-info/RECORD,,