feat: 对接Python,暴露接口
This commit is contained in:
58
python/setup.py
Normal file
58
python/setup.py
Normal file
@@ -0,0 +1,58 @@
|
||||
from pathlib import Path
|
||||
import sys
|
||||
|
||||
from setuptools import Extension, setup
|
||||
|
||||
|
||||
ROOT = Path(__file__).resolve().parent.parent
|
||||
PY_ROOT = Path(__file__).resolve().parent
|
||||
|
||||
if sys.platform != "linux":
|
||||
raise RuntimeError("omnisocket Python extension can only be built on Linux")
|
||||
|
||||
|
||||
COMMON_SOURCES = [
|
||||
ROOT / "src" / "omni_common.c",
|
||||
ROOT / "src" / "protocol.c",
|
||||
ROOT / "src" / "latencylog.c",
|
||||
ROOT / "src" / "tx_timestamp_debug.c",
|
||||
ROOT / "src" / "kcp_packet_debug.c",
|
||||
ROOT / "src" / "kcp_session_stats.c",
|
||||
ROOT / "src" / "linux_timestamping.c",
|
||||
ROOT / "src" / "interactive.c",
|
||||
ROOT / "src" / "transport_udp.c",
|
||||
ROOT / "src" / "transport_kcp.c",
|
||||
ROOT / "src" / "server_udp_relay.c",
|
||||
ROOT / "src" / "server_udp_hub.c",
|
||||
ROOT / "src" / "server_kcp_hub.c",
|
||||
ROOT / "src" / "peer_udp_client.c",
|
||||
ROOT / "src" / "peer_kcp_client.c",
|
||||
ROOT / "third_party" / "cjson" / "cJSON.c",
|
||||
ROOT / "third_party" / "kcp" / "ikcp.c",
|
||||
]
|
||||
|
||||
|
||||
setup(
|
||||
name="omnisocket",
|
||||
version="0.1.0",
|
||||
packages=["omnisocket"],
|
||||
ext_modules=[
|
||||
Extension(
|
||||
"omnisocket._omnisocket",
|
||||
sources=[
|
||||
str(PY_ROOT / "omnisocket" / "_omnisocket.c"),
|
||||
str(PY_ROOT / "omnisocket" / "omnisocket_client.c"),
|
||||
*[str(path) for path in COMMON_SOURCES],
|
||||
],
|
||||
include_dirs=[
|
||||
str(ROOT / "include"),
|
||||
str(ROOT / "third_party" / "cjson"),
|
||||
str(ROOT / "third_party" / "kcp"),
|
||||
str(PY_ROOT / "omnisocket"),
|
||||
],
|
||||
define_macros=[("_GNU_SOURCE", None)],
|
||||
extra_compile_args=["-std=c11", "-O2", "-pthread"],
|
||||
extra_link_args=["-pthread"],
|
||||
)
|
||||
],
|
||||
)
|
||||
Reference in New Issue
Block a user