Files
IfcOpenShell/src/wrappergen/config.py
T
2026-03-31 20:51:46 +02:00

43 lines
1.5 KiB
Python

from __future__ import annotations
from dataclasses import dataclass, field
@dataclass(slots=True)
class CompilationConfig:
headers: list[str]
clang_args: list[str] = field(default_factory=lambda: ["-x", "c++", "-std=c++17"])
include_dirs: list[str] = field(default_factory=list)
defines: list[str] = field(default_factory=list)
compile_commands: str | None = None
@dataclass(slots=True)
class IgnoreConfig:
namespaces: list[str] = field(default_factory=list)
classes: list[str] = field(default_factory=list)
enums: list[str] = field(default_factory=list)
methods: list[str] = field(default_factory=list)
@dataclass(slots=True)
class WrapperConfig:
module_name: str
c_prefix: str
api_header_name: str
api_implementation_name: str
extension_source_name: str
python_source_name: str
compilation: CompilationConfig
allowed_namespaces: list[str] = field(default_factory=list)
export_macro: str = "IFC_PARSE_API"
require_exported_classes: bool = True
default_class_handle_kind: str = "value"
class_names: dict[str, str] = field(default_factory=dict)
enum_names: dict[str, str] = field(default_factory=dict)
parameter_names: dict[str, str] = field(default_factory=dict)
class_handle_kinds: dict[str, str] = field(default_factory=dict)
class_owner_types: dict[str, str] = field(default_factory=dict)
type_adapters: dict[str, str] = field(default_factory=dict)
ignore: IgnoreConfig = field(default_factory=IgnoreConfig)