load("@allwpilib_pip_deps//:requirements.bzl", "requirement") load("//shared/bazel/rules:cc_rules.bzl", "wpilib_cc_library", "wpilib_cc_shared_library", "wpilib_cc_static_library") load("//shared/bazel/rules:packaging.bzl", "package_default_cc_project") load("//shared/bazel/rules:publishing.bzl", "host_architectures") load("//shared/bazel/rules/gen:gen-version-file.bzl", "generate_version_file") load("//shared/bazel/rules/robotpy:pytest_util.bzl", "robotpy_py_test") load("//shared/bazel/rules/robotpy:robotpy_rules.bzl", "copy_native_file", "robotpy_library") wpilib_cc_library( name = "halsim_ws_core", srcs = glob(["src/main/native/cpp/*.cpp"]), hdrs = glob(["src/main/native/include/**/*.hpp"]), include_license_files = True, strip_include_prefix = "src/main/native/include", target_compatible_with = select({ "@rules_bzlmodrio_toolchains//constraints/is_roborio:roborio": ["@platforms//:incompatible"], "@rules_bzlmodrio_toolchains//constraints/is_systemcore:systemcore": ["@platforms//:incompatible"], "//conditions:default": [], }), visibility = ["//visibility:public"], deps = [ "//hal:wpiHal", "//wpinet", "//wpiutil", ], ) wpilib_cc_shared_library( name = "shared/halsim_ws_core", auto_export_windows_symbols = False, dynamic_deps = [ "//hal:shared/wpiHal", "//wpinet:shared/wpinet", "//wpiutil:shared/wpiutil", ], visibility = ["//visibility:public"], deps = [ ":halsim_ws_core", ], ) wpilib_cc_static_library( name = "static/halsim_ws_core", static_deps = [ "//hal:static/wpiHal", "//wpinet:static/wpinet", "//wpiutil:static/wpiutil", ], visibility = ["//visibility:public"], deps = [ ":halsim_ws_core", ], ) package_default_cc_project( name = "halsim_ws_core", architectures = host_architectures, maven_artifact_name = "halsim_ws_core", maven_group_id = "org.wpilib.halsim", ) copy_native_file( name = "halsim_ws_client", base_path = "src/main/python/halsim_ws/client/", library = "//simulation/halsim_ws_client:shared/halsim_ws_client", ) copy_native_file( name = "halsim_ws_server", base_path = "src/main/python/halsim_ws/server/", library = "//simulation/halsim_ws_server:shared/halsim_ws_server", ) generate_version_file( name = "generate_python_version", output_file = "src/main/python/halsim_ws/version.py", template = "//shared/bazel/rules/robotpy:version_template.in", ) robotpy_library( name = "robotpy-halsim-ws", srcs = glob(["src/main/python/**/*.py"]) + [":generate_python_version"], author_email = "RobotPy Development Team ", data = [ ":halsim_ws_client.copy_lib", ":halsim_ws_server.copy_lib", ], distribution = "robotpy-halsim-ws", entry_points = { "robotpy_sim.2027": [ "ws-client = halsim_ws.client", "ws-server = halsim_ws.server", ], }, imports = ["src/main/python"], project_urls = {"Source code": "https://github.com/robotpy/mostrobotpy"}, requires = [ "robotpy-native-wpihal==0.0.0", "robotpy-native-wpinet==0.0.0", ], strip_path_prefixes = ["simulation/halsim_ws_core/src/main/python"], summary = "WPILib simulator websim Extensions", deps = [ "//hal:robotpy-native-wpihal", "//wpinet:robotpy-native-wpinet", ], ) robotpy_py_test( "python_tests", srcs = glob(["src/test/python/**/*.py"]), deps = [ ":robotpy-halsim-ws", requirement("pytest"), ], )