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 +20 -3
- omdev/cc/srclangs.py +44 -0
- {omdev-0.0.0.dev325.dist-info → omdev-0.0.0.dev327.dist-info}/METADATA +2 -2
- {omdev-0.0.0.dev325.dist-info → omdev-0.0.0.dev327.dist-info}/RECORD +8 -7
- {omdev-0.0.0.dev325.dist-info → omdev-0.0.0.dev327.dist-info}/WHEEL +0 -0
- {omdev-0.0.0.dev325.dist-info → omdev-0.0.0.dev327.dist-info}/entry_points.txt +0 -0
- {omdev-0.0.0.dev325.dist-info → omdev-0.0.0.dev327.dist-info}/licenses/LICENSE +0 -0
- {omdev-0.0.0.dev325.dist-info → omdev-0.0.0.dev327.dist-info}/top_level.txt +0 -0
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('--
|
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.
|
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.
|
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.
|
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
|
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.
|
299
|
-
omdev-0.0.0.
|
300
|
-
omdev-0.0.0.
|
301
|
-
omdev-0.0.0.
|
302
|
-
omdev-0.0.0.
|
303
|
-
omdev-0.0.0.
|
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,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|