load("@allwpilib_pip_deps//:requirements.bzl", "requirement") load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test") 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") cc_library( name = "headers", hdrs = glob(["src/main/native/include/**"]), includes = ["src/main/native/include"], ) wpilib_cc_library( name = "halsim_ds_socket", srcs = glob(["src/main/native/cpp/**"]), include_license_files = True, 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 = [ ":headers", "//hal:wpiHal", "//wpinet", ], ) wpilib_cc_library( name = "halsim_ds_socket_static", srcs = glob(["src/main/native/cpp/**"]), copts = [ "-DHALSIM_InitExtension=HALSIM_InitExtension_DS_SOCKET", ], include_license_files = True, 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 = [ ":headers", "//hal:wpiHal", "//wpinet", ], ) wpilib_cc_shared_library( name = "shared/halsim_ds_socket", auto_export_windows_symbols = False, dynamic_deps = [ "//hal:shared/wpiHal", "//wpinet:shared/wpinet", "//wpiutil:shared/wpiutil", ], visibility = ["//visibility:public"], deps = [":halsim_ds_socket"], ) wpilib_cc_static_library( name = "static/halsim_ds_socket", static_deps = [ "//hal:static/wpiHal", "//wpinet:static/wpinet", ], visibility = ["//visibility:public"], deps = [":halsim_ds_socket_static"], ) cc_test( name = "halsim_ds_socket-test", size = "small", srcs = glob(["src/test/native/**/*.cpp"]), deps = [ "//simulation/halsim_ds_socket", "//thirdparty/googletest", ], ) cc_binary( name = "DevMain-Cpp", srcs = ["src/dev/native/cpp/main.cpp"], deps = [ ":halsim_ds_socket", ], ) package_default_cc_project( name = "halsim_ds_socket", architectures = host_architectures, maven_artifact_name = "halsim_ds_socket", maven_group_id = "org.wpilib.halsim", ) copy_native_file( name = "halsim_ds_socket", base_path = "src/main/python/halsim_ds_socket/", library = "shared/halsim_ds_socket", ) generate_version_file( name = "generate_python_version", output_file = "src/main/python/halsim_ds_socket/version.py", template = "//shared/bazel/rules/robotpy:version_template.in", ) robotpy_library( name = "robotpy-halsim-ds-socket", srcs = glob(["src/main/python/**/*.py"]) + [":generate_python_version"], author_email = "RobotPy Development Team ", data = [":halsim_ds_socket.copy_lib"], distribution = "robotpy-halsim-ds-socket", entry_points = { "robotpy_sim.2027": ["ds-socket = halsim_ds_socket"], }, imports = ["src/main/python"], requires = [ "robotpy-native-wpihal==0.0.0", "robotpy-native-wpinet==0.0.0", ], strip_path_prefixes = ["simulation/halsim_ds_socket/src/main/python"], summary = "WPILib simulator DS Socket Extension", deps = [ "//hal:robotpy-native-wpihal", "//wpinet:robotpy-native-wpinet", ], ) robotpy_py_test( "python_tests", srcs = glob(["src/test/python/**/*.py"]), deps = [ ":robotpy-halsim-ds-socket", requirement("pytest"), ], )