aboutsummaryrefslogtreecommitdiff
path: root/src_doit/c.py
diff options
context:
space:
mode:
Diffstat (limited to 'src_doit/c.py')
-rw-r--r--src_doit/c.py46
1 files changed, 30 insertions, 16 deletions
diff --git a/src_doit/c.py b/src_doit/c.py
index 8318d10..49c794f 100644
--- a/src_doit/c.py
+++ b/src_doit/c.py
@@ -1,6 +1,8 @@
from pathlib import Path
-from hat.doit.c import (exe_suffix,
+from hat.doit.c import (local_platform,
+ get_exe_suffix,
+ Platform,
CBuild)
@@ -10,33 +12,45 @@ __all__ = ['task_c',
build_dir = Path('build')
-src_c_dir = Path('src_c')
deps_dir = Path('deps')
+src_c_dir = Path('src_c')
+src_py_dir = Path('src_py')
build_c_dir = build_dir / 'c'
-exe_path = build_c_dir / f'opcut-calculate{exe_suffix}'
+
+platforms = [local_platform]
+if local_platform == Platform.LINUX:
+ platforms.append(Platform.WINDOWS)
+
+builds = [CBuild(src_paths=[*src_c_dir.rglob('*.c'),
+ *(deps_dir / 'argparse').rglob('*.c')],
+ build_dir=build_c_dir / platform.name.lower(),
+ platform=platform,
+ cc_flags=['-fPIC', '-O2',
+ f'-I{deps_dir / "jsmn"}',
+ f'-I{deps_dir / "argparse"}'],
+ task_dep=['deps'])
+ for platform in platforms]
+
+exe_paths = [src_py_dir / (f'opcut/{platform.name.lower()}-'
+ f'opcut-calculate'
+ f'{get_exe_suffix(platform)}')
+ for platform in platforms]
def task_c():
"""Build native app"""
- return _build.get_task_exe(exe_path)
+ for build, exe_path in zip(builds, exe_paths):
+ yield from build.get_task_exe(exe_path)
def task_c_obj():
"""Build .o files"""
- yield from _build.get_task_objs()
+ for build in builds:
+ yield from build.get_task_objs()
def task_c_dep():
"""Build .d files"""
- yield from _build.get_task_deps()
-
-
-_build = CBuild(
- src_paths=[*src_c_dir.rglob('*.c'),
- *(deps_dir / 'argparse').rglob('*.c')],
- build_dir=build_c_dir,
- cc_flags=['-fPIC', '-O2',
- f'-I{deps_dir / "jsmn"}',
- f'-I{deps_dir / "argparse"}'],
- task_dep=['deps'])
+ for build in builds:
+ yield from build.get_task_deps()