omdev 0.0.0.dev325__py3-none-any.whl → 0.0.0.dev327__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,9 @@ 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
+
93
101
  else:
94
102
  raise KeyError(src_magic.key)
95
103
 
@@ -97,8 +105,15 @@ class Cli(ap.Cli):
97
105
 
98
106
  src_file_name = os.path.basename(src_file)
99
107
 
108
+ sl = SrcLangs.CPP
109
+ if '.' in src_file:
110
+ ext = src_file.rpartition('.')[2]
111
+ sl = SRC_LANGS_BY_EXT.get(ext, sl)
112
+
113
+ #
114
+
100
115
  sh_parts: list[str] = [
101
- self.args.cc or 'clang++',
116
+ self.args.cmd or sl.cmd,
102
117
  ]
103
118
 
104
119
  for inc_dir in include_dirs:
@@ -110,8 +125,10 @@ class Cli(ap.Cli):
110
125
  if ldflags := os.environ.get('LDFLAGS'):
111
126
  sh_parts.append(ldflags) # Explicitly shell-unquoted
112
127
 
128
+ if sl.std is not None:
129
+ sh_parts.append(f'-std={sl.std}')
130
+
113
131
  sh_parts.extend([
114
- '-std=c++20',
115
132
  shlex.quote(os.path.abspath(src_file)),
116
133
  '-o',
117
134
  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.dev325
3
+ Version: 0.0.0.dev327
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.dev325
15
+ Requires-Dist: omlish==0.0.0.dev327
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=-B2ZpJu_jzRJ7H9NMlwvkmC0RAr47WJKgo-abn5P8gE,4788
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.dev325.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
299
- omdev-0.0.0.dev325.dist-info/METADATA,sha256=bo-x4syOra1uBqjmDyVP-qlwpzV0dTi_GQOXp-fNJA8,1674
300
- omdev-0.0.0.dev325.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
301
- omdev-0.0.0.dev325.dist-info/entry_points.txt,sha256=dHLXFmq5D9B8qUyhRtFqTGWGxlbx3t5ejedjrnXNYLU,33
302
- omdev-0.0.0.dev325.dist-info/top_level.txt,sha256=1nr7j30fEWgLYHW3lGR9pkdHkb7knv1U1ES1XRNVQ6k,6
303
- omdev-0.0.0.dev325.dist-info/RECORD,,
299
+ omdev-0.0.0.dev327.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
300
+ omdev-0.0.0.dev327.dist-info/METADATA,sha256=iLFrTj1rdGPcr6Jdohkpsa4In8rY1KsSssW3yE9_Rug,1674
301
+ omdev-0.0.0.dev327.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
302
+ omdev-0.0.0.dev327.dist-info/entry_points.txt,sha256=dHLXFmq5D9B8qUyhRtFqTGWGxlbx3t5ejedjrnXNYLU,33
303
+ omdev-0.0.0.dev327.dist-info/top_level.txt,sha256=1nr7j30fEWgLYHW3lGR9pkdHkb7knv1U1ES1XRNVQ6k,6
304
+ omdev-0.0.0.dev327.dist-info/RECORD,,