diff --git a/NOTICE.md b/NOTICE.md index 76b5c651ca35c8a1117a9d9565146732a286e3dc..812ea2b8495990a7992c6ab61414b6853340f264 100644 --- a/NOTICE.md +++ b/NOTICE.md @@ -90,9 +90,12 @@ pthread OpenSCENARIO API (Parser) * License: Apache-2.0 -openpass/stochastics-libarary +openpass/stochastics-library * License: EPL 2.0 +Boost + * License: Boost Software License 1.0 + ## Cryptography Content may contain encryption software. The country in which you are currently diff --git a/engine/WORKSPACE b/engine/WORKSPACE index 855ff2ce5e4b659c6a8a33b8ad7b68363caf8ae7..53c4ff4ff19e13818fd1b9cbe2a7f17ce1725992 100644 --- a/engine/WORKSPACE +++ b/engine/WORKSPACE @@ -1,5 +1,5 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") -load("//bazel:deps.bzl", "osc_engine_deps") +load("//third_party:deps.bzl", "osc_engine_deps") http_archive( name = "googletest", diff --git a/engine/bazel/deps.bzl b/engine/bazel/deps.bzl deleted file mode 100644 index 299b51c2c45b2402e9977cf4f99a60a8cf7d7023..0000000000000000000000000000000000000000 --- a/engine/bazel/deps.bzl +++ /dev/null @@ -1,52 +0,0 @@ -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") -load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe") - -ECLIPSE_GITLAB = "https://gitlab.eclipse.org/eclipse" - -MANTLE_API_TAG = "v8.0.0" -STOCHASTICS_LIBRARY_TAG = "v0.10.0" -UNITS_TAG = "2.3.3" -YASE_TAG = "v0.0.1" - -def osc_engine_deps(): - """Load dependencies""" - maybe( - http_archive, - name = "mantle_api", - url = ECLIPSE_GITLAB + "/openpass/mantle-api/-/archive/{tag}/mantle-api-{tag}.tar.gz".format(tag = MANTLE_API_TAG), - sha256 = "abb18f7180da012c02bda874752a7efd9ceab1da31e616174790f07a17c4fa3f", - strip_prefix = "mantle-api-{tag}".format(tag = MANTLE_API_TAG), - ) - - maybe( - http_archive, - name = "stochastics_library", - url = ECLIPSE_GITLAB + "/openpass/stochastics-library/-/archive/{tag}/stochastics-library-{tag}.tar.gz".format(tag = STOCHASTICS_LIBRARY_TAG), - sha256 = "0b9173d005e433cf9e5ad68d3fe28fdcff5ea1b511118a4a47bb95f225534a6f", - strip_prefix = "stochastics-library-{tag}".format(tag = STOCHASTICS_LIBRARY_TAG), - ) - - maybe( - http_archive, - name = "units_nhh", - url = "https://github.com/nholthaus/units/archive/refs/tags/v{tag}.tar.gz".format(tag = UNITS_TAG), - sha256 = "b1f3c1dd11afa2710a179563845ce79f13ebf0c8c090d6aa68465b18bd8bd5fc", - strip_prefix = "./units-{tag}".format(tag = UNITS_TAG), - build_file = "//bazel:units.BUILD", - ) - - maybe( - http_archive, - name = "yase", - url = ECLIPSE_GITLAB + "/openpass/yase/-/archive/{tag}/yase-{tag}.tar.gz".format(tag = YASE_TAG), - sha256 = "243d710172dff4c4e7ab95e5bd68a6d8335cf8a3fdd1efa87d118250e3b85ee3", - strip_prefix = "yase-{tag}".format(tag = YASE_TAG), - ) - - http_archive( - name = "open_scenario_parser", - build_file = "//bazel:openscenario_api.BUILD", - url = "https://github.com/RA-Consulting-GmbH/openscenario.api.test/releases/download/v1.4.0/OpenSCENARIO_API_LinuxSharedRelease_2024.11.18.tgz", - sha256 = "7a4cdb82ccaaeed5fccf12efd94cf4f9c9d3ac0fc7d7feedd4c0babe2404f853", - strip_prefix = "OpenSCENARIO_API_LinuxSharedRelease", - ) diff --git a/engine/bazel/BUILD b/engine/third_party/BUILD similarity index 100% rename from engine/bazel/BUILD rename to engine/third_party/BUILD diff --git a/engine/third_party/boost/BUILD.bazel b/engine/third_party/boost/BUILD.bazel new file mode 100644 index 0000000000000000000000000000000000000000..871b6bc6bfefd9178db4bc88c4a9d2608bc87770 --- /dev/null +++ b/engine/third_party/boost/BUILD.bazel @@ -0,0 +1,12 @@ +load(":boost.bzl", "create_alias_rules") + +MODULES = [ + "lexical_cast", + "math", + "multiprecision", + "type_traits", + "utility", +] + +# Reference via "//third_party/boost:<module>" +create_alias_rules(modules = MODULES) diff --git a/engine/third_party/boost/boost.bzl b/engine/third_party/boost/boost.bzl new file mode 100644 index 0000000000000000000000000000000000000000..287bd92d7ec545c476c084d5c9841a6b76208eca --- /dev/null +++ b/engine/third_party/boost/boost.bzl @@ -0,0 +1,39 @@ +load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") +load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe") + +def create_alias_rules(modules): + """Helper method to reduce code duplication for alias creation + + Args: + modules: the list of modules for which to create aliases + """ + + for module in modules: + native.alias( + name = module, + actual = "@boost_171//:{}".format(module), + visibility = ["//visibility:public"], + ) + +def boost_deps(): + maybe( + http_archive, + name = "boost_171", + url = "https://archives.boost.io/release/1.71.0/source/boost_1_71_0.tar.gz", + build_file = Label("//:third_party/boost/boost_171.BUILD"), + strip_prefix = "boost_1_71_0/", + sha256 = "96b34f7468f26a141f6020efb813f1a2f3dfb9797ecf76a7d7cbd843cc95f5bd", + patches = [ + Label("//:third_party/boost/boost_asio_no_zero_as_nullptr_constant.patch"), + # Resolves "undefined template 'boost::serialization::nvp'", see this issue: + # https://github.com/boostorg/serialization/issues/186 + # The following issue indicates we will be able to drop this patch when moving to a version >= 1.73: + # https://github.com/lgottwald/PaPILO/issues/31 + Label("//:third_party/boost/multiprecision_missing_nvp_include.patch"), + Label("//:third_party/boost/singleton_reference_binding_to_null_pointer_is_an_undefined_behavior.patch"), + # Resolves "load of value ___, which is not a valid value for type 'boost::dll::load_mode::type'". Issue: + # https://github.com/boostorg/dll/issues/30 + # Fixed in version >= 1.73 + Label("//:third_party/boost/boost_dll_load_mode_enum_undefined_behavior.patch"), + ], + ) diff --git a/engine/third_party/boost/boost_171.BUILD b/engine/third_party/boost/boost_171.BUILD new file mode 100644 index 0000000000000000000000000000000000000000..958a270b53f375c00b146391665dbf1b40a93656 --- /dev/null +++ b/engine/third_party/boost/boost_171.BUILD @@ -0,0 +1,1776 @@ +# Note: This is a temporary copy of boost.BUILD in order to maintain 1.66 and 1.68 at the same time. +# The file has minor differences compared to the original boost.BUILD, due to 1.68 not being backward compatible. +load("@//third_party/boost:boost_library.bzl", "boost_library") + +# We track some third party dependencies which have a hard requirement for Boost 1.71 or are precompiled against it. +# In those cases referencing the exact version is preferable over using the version agnostic alias. +package(default_visibility = ["@//third_party/boost:__pkg__"]) + +config_setting( + name = "linux_x86_64", + constraint_values = [ + "@platforms//os:linux", + "@platforms//cpu:x86_64", + ], +) + +config_setting( + name = "linux", + constraint_values = [ + "@platforms//os:linux", + ], +) + +config_setting( + name = "windows_x86_64", + constraint_values = [ + "@platforms//os:windows", + "@platforms//cpu:x86_64", + ], +) + +BOOST_CTX_ASM_SOURCES = select({ + ":linux_x86_64": [ + "libs/context/src/asm/jump_x86_64_sysv_elf_gas.S", + "libs/context/src/asm/make_x86_64_sysv_elf_gas.S", + "libs/context/src/asm/ontop_x86_64_sysv_elf_gas.S", + ], + ":windows_x86_64": [ + "libs/context/src/asm/make_x86_64_ms_pe_masm.asm", + "libs/context/src/asm/jump_x86_64_ms_pe_masm.asm", + "libs/context/src/asm/ontop_x86_64_ms_pe_masm.asm", + ], +}) + +boost_library( + name = "context", + srcs = BOOST_CTX_ASM_SOURCES + select({ + ":linux_x86_64": [ + "libs/context/src/posix/stack_traits.cpp", + ], + ":windows_x86_64": [ + "libs/context/src/windows/stack_traits.cpp", + ], + }), + exclude_src = [ + "libs/context/src/untested.cpp", + "libs/context/src/continuation.cpp", + "libs/context/src/fiber.cpp", + ], + deps = [ + ":assert", + ":config", + ":cstdint", + ":detail", + ":intrusive_ptr", + ], +) + +BOOST_FIBER_NUMA_SRCS = select({ + ":linux_x86_64": [ + "libs/fiber/src/numa/linux/pin_thread.cpp", + "libs/fiber/src/numa/linux/topology.cpp", + ], + ":windows_x86_64": [ + "libs/fiber/src/numa/windows/pin_thread.cpp", + "libs/fiber/src/numa/windows/topology.cpp", + ], +}) + +boost_library( + name = "fiber", + srcs = BOOST_FIBER_NUMA_SRCS + glob(["libs/fiber/src/algo/**/*.cpp"]), + copts = select({ + ":windows_x86_64": [ + "/D_WIN32_WINNT=0x0601", + ], + "//conditions:default": [], + }), + exclude_src = ["libs/fiber/src/numa/**/*.cpp"], + linkopts = select({ + ":linux_x86_64": [ + "-lpthread", + ], + "//conditions:default": [], + }), + deps = [ + ":algorithm", + ":context", + ":filesystem", + ":format", + ":intrusive", + ":intrusive_ptr", + ":pool", + ], +) + +boost_library( + name = "pool", + deps = [ + ":assert", + ":config", + ":detail", + ":integer", + ":limits", + ":throw_exception", + ":type_traits", + ], +) + +boost_library( + name = "algorithm", + deps = [ + ":function", + ":iterator", + ":range", + ], +) + +boost_library( + name = "align", +) + +boost_library( + name = "any", + deps = [ + ":config", + ":mpl", + ":static_assert", + ":throw_exception", + ":type_index", + ":type_traits", + ":utility", + ], +) + +boost_library( + name = "assign", + deps = [ + ":config", + ":detail", + ":mpl", + ":preprocessor", + ":ptr_container", + ":range", + ":static_assert", + ":type_traits", + ], +) + +boost_library( + name = "atomic", + hdrs = [ + "boost/memory_order.hpp", + ], + deps = [ + ":assert", + ":config", + ":cstdint", + ":type_traits", + ], +) + +boost_library( + name = "archive", + deps = [ + ":assert", + ":cstdint", + ":integer", + ":io", + ":iterator", + ":mpl", + ":noncopyable", + ":smart_ptr", + ":spirit", + ], +) + +boost_library( + name = "array", + deps = [ + ":assert", + ":config", + ":core", + ":functional", + ":swap", + ":throw_exception", + ], +) + +boost_library( + name = "asio", + defines = ["BOOST_ASIO_DISABLE_STD_EXPERIMENTAL_STRING_VIEW"], + linkopts = select({ + ":linux_x86_64": [ + "-lpthread", + ], + "//conditions:default": [], + }), + deps = [ + ":bind", + ":date_time", + ":regex", + ], +) + +boost_library( + name = "assert", +) + +boost_library( + name = "beast", + deps = [ + ":asio", + ":config", + ":core", + ":detail", + ":endian", + ":logic", + ":mp11", + ":smart_ptr", + ":static_assert", + ":system", + ":throw_exception", + ":utility", + ], +) + +boost_library( + name = "bimap", + deps = [ + ":concept_check", + ":multi_index", + ":serialization", + ], +) + +boost_library( + name = "bind", + deps = [ + ":get_pointer", + ":is_placeholder", + ":mem_fn", + ":ref", + ":type", + ":visit_each", + ], +) + +boost_library( + name = "callable_traits", + deps = [ + ], +) + +boost_library( + name = "call_traits", +) + +boost_library( + name = "cerrno", +) + +boost_library( + name = "checked_delete", +) + +boost_library( + name = "chrono", + deps = [ + ":config", + ":mpl", + ":operators", + ":predef", + ":ratio", + ":system", + ":throw_exception", + ":type_traits", + ], +) + +boost_library( + name = "circular_buffer", + deps = [ + ":call_traits", + ":concept_check", + ":config", + ":container", + ":detail", + ":iterator", + ":limits", + ":move", + ":static_assert", + ":throw_exception", + ":type_traits", + ":utility", + ], +) + +boost_library( + name = "compute", + linkopts = [ + "-lOpenCL", + ], + deps = [ + ":algorithm", + ":chrono", + ":config", + ":throw_exception", + ], +) + +boost_library( + name = "concept_archetype", + deps = [ + ":config", + ":iterator", + ":mpl", + ], +) + +boost_library( + name = "concept_check", + deps = [ + ":concept", + ":concept_archetype", + ], +) + +boost_library( + name = "config", + deps = [ + ":version", + ], +) + +boost_library( + name = "concept", +) + +boost_library( + name = "container", + srcs = [ + "libs/container/src/dlmalloc_ext_2_8_6.c", + ], + hdrs = [ + "libs/container/src/dlmalloc_2_8_6.c", + ], + deps = [ + ":config", + ":core", + ":intrusive", + ":move", + ], +) + +boost_library( + name = "conversion", +) + +boost_library( + name = "core", + srcs = [ + "boost/checked_delete.hpp", + ], +) + +BOOST_CORO_SRCS = select({ + ":linux_x86_64": [ + "libs/coroutine/src/posix/stack_traits.cpp", + ], + ":windows_x86_64": [ + "libs/coroutine/src/windows/stack_traits.cpp", + ], +}) + +boost_library( + name = "coroutine", + srcs = BOOST_CORO_SRCS + [ + "libs/coroutine/src/detail/coroutine_context.cpp", + ], + deps = [ + ":config", + ":context", + ":move", + ":range", + ":system", + ":thread", + ], +) + +boost_library( + name = "cstdint", +) + +boost_library( + name = "current_function", +) + +boost_library( + name = "date_time", + srcs = glob([ + "libs/date_time/src/gregorian/*.cpp", + "libs/date_time/src/gregorian/*.hpp", + ]), + deps = [ + ":algorithm", + ":io", + ":lexical_cast", + ":mpl", + ":operators", + ":smart_ptr", + ":static_assert", + ":tokenizer", + ":type_traits", + ], +) + +boost_library( + name = "detail", + hdrs = [ + "boost/blank.hpp", + "boost/blank_fwd.hpp", + "boost/cstdlib.hpp", + ], + deps = [ + ":call_traits", + ":limits", + ], +) + +boost_library( + name = "dynamic_bitset", + deps = [ + ":config", + ":core", + ":detail", + ":integer", + ":move", + ":throw_exception", + ":utility", + ], +) + +boost_library( + name = "enable_shared_from_this", +) + +boost_library( + name = "endian", + deps = [ + ":config", + ":core", + ":cstdint", + ":detail", + ":predef", + ":type_traits", + ], +) + +# Note: Users of exception must also bring :smart_ptr on their own! +# This is because there is a circular dependency between these targets: +# +# exception/info.hpp brings boost/shared_ptr.hpp +# But smart_ptr -> throw_exception -> exception => circular dep +# +# Bringing ":shared_ptr" is not a solution either, as this is a fake library. +# Trying to create a proper :shared_ptr is not possible, as it cannot be extracted +# easily from the :smart_ptr lib. +boost_library( + name = "exception", + hdrs = [ + "boost/exception_ptr.hpp", + ], + deps = [ + ":config", + ":detail", + ], +) + +boost_library( + name = "exception_ptr", + deps = [ + ":config", + ], +) + +boost_library( + name = "filesystem", + deps = [ + ":config", + ":functional", + ":io", + ":iterator", + ":range", + ":smart_ptr", + ":system", + ":type_traits", + ], +) + +boost_library( + name = "foreach", + deps = [ + ":config", + ":detail", + ":iterator", + ":mpl", + ":noncopyable", + ":range", + ":type_traits", + ":utility", + ], +) + +boost_library( + name = "format", + deps = [ + ":assert", + ":config", + ":detail", + ":limits", + ":optional", + ":smart_ptr", + ":throw_exception", + ":timer", + ":utility", + ], +) + +boost_library( + name = "function", + hdrs = [ + "boost/function_equal.hpp", + ], + deps = [ + ":bind", + ":integer", + ":type_index", + ], +) + +boost_library( + name = "function_types", +) + +boost_library( + name = "functional", + deps = [ + ":container_hash", + ":detail", + ":integer", + ], +) + +boost_library( + name = "fusion", + deps = [ + ":call_traits", + ":config", + ":core", + ":detail", + ":function_types", + ":functional", + ":get_pointer", + ":mpl", + ":preprocessor", + ":ref", + ":static_assert", + ":tuple", + ":type_traits", + ":typeof", + ":utility", + ], +) + +boost_library( + name = "geometry", + deps = [ + ":algorithm", + ":call_traits", + ":config", + ":function_types", + ":lexical_cast", + ":math", + ":mpl", + ":numeric", + ":qvm", + ":range", + ":rational", + ":tokenizer", + ":variant", + ], +) + +boost_library( + name = "property_tree", + deps = [ + ":any", + ":bind", + ":format", + ":multi_index", + ":optional", + ":range", + ":ref", + ":throw_exception", + ":utility", + ], +) + +boost_library( + name = "get_pointer", +) + +boost_library( + name = "heap", + deps = [ + ":parameter", + ], +) + +boost_library( + name = "icl", + deps = [ + ":concept_check", + ], +) + +boost_library( + name = "is_placeholder", +) + +boost_library( + name = "integer", + hdrs = [ + "boost/cstdint.hpp", + "boost/integer_traits.hpp", + "boost/pending/integer_log2.hpp", + ], + deps = [ + ":static_assert", + ], +) + +boost_library( + name = "interprocess", + deps = [ + ":assert", + ":checked_delete", + ":config", + ":container", + ":core", + ":date_time", + ":detail", + ":integer", + ":intrusive", + ":limits", + ":move", + ":static_assert", + ":type_traits", + ":unordered", + ":utility", + ], +) + +boost_library( + name = "iterator", + hdrs = [ + "boost/function_output_iterator.hpp", + "boost/generator_iterator.hpp", + "boost/indirect_reference.hpp", + "boost/iterator_adaptors.hpp", + "boost/next_prior.hpp", + "boost/pointee.hpp", + "boost/shared_container_iterator.hpp", + ], + deps = [ + ":detail", + ":fusion", + ":static_assert", + ":type_traits", + ":utility", + ], +) + +boost_library( + name = "intrusive", + deps = [ + ":assert", + ":config", + ":core", + ":cstdint", + ":move", + ":noncopyable", + ":static_assert", + ], +) + +boost_library( + name = "intrusive_ptr", + deps = [ + ":assert", + ":detail", + ":smart_ptr", + ], +) + +boost_library( + name = "io", +) + +boost_library( + name = "iostreams", + deps = [ + ":assert", + ":bind", + ":call_traits", + ":checked_delete", + ":config", + ":detail", + ":function", + ":integer", + ":mpl", + ":noncopyable", + ":preprocessor", + ":random", + ":range", + ":ref", + ":regex", + ":shared_ptr", + ":static_assert", + ":throw_exception", + ":type", + ":type_traits", + ":utility", + "@//third_party/libzstd", + "@org_bzip_bzip2//:bz2lib", + "@zlib", + ], +) + +boost_library( + name = "lexical_cast", + deps = [ + ":array", + ":chrono", + ":config", + ":container", + ":detail", + ":integer", + ":limits", + ":math", + ":mpl", + ":noncopyable", + ":numeric_conversion", + ":range", + ":static_assert", + ":throw_exception", + ":type_traits", + ], +) + +boost_library( + name = "limits", +) + +boost_library( + name = "locale", +) + +boost_library( + name = "logic", +) + +boost_library( + name = "math", + hdrs = [ + "boost/cstdint.hpp", + ], + deps = [ + ":predef", + ":throw_exception", + ], +) + +boost_library( + name = "mem_fn", +) + +boost_library( + name = "move", + deps = [ + ":assert", + ":detail", + ":static_assert", + ], +) + +boost_library( + name = "mp11", + deps = [ + ":config", + ":detail", + ], +) + +boost_library( + name = "mpl", + deps = [ + ":move", + ":preprocessor", + ], +) + +boost_library( + name = "multi_index", + hdrs = [ + "boost/multi_index_container.hpp", + "boost/multi_index_container_fwd.hpp", + ], + deps = [ + ":foreach", + ":serialization", + ":static_assert", + ":tuple", + ], +) + +boost_library( + name = "multiprecision", + deps = [ + ":config", + ":cstdint", + ":lexical_cast", + ":math", + ":mpl", + ":predef", + ":rational", + ":serialization", + ":throw_exception", + ":type_traits", + ":utility", + ], +) + +boost_library( + name = "msm", + deps = [ + ":any", + ":bind", + ":config", + ":core", + ":function", + ":fusion", + ":mp11", + ":mpl", + ":noncopyable", + ":parameter", + ":proto", + ":serialization", + ":type_traits", + ], +) + +boost_library( + name = "noncopyable", +) + +boost_library( + name = "none", + hdrs = [ + "boost/none_t.hpp", + ], +) + +boost_library( + name = "numeric_conversion", + hdrs = glob([ + "boost/numeric/conversion/**/*.hpp", + ]), + deps = [ + ":config", + ":detail", + ":integer", + ":limits", + ":mpl", + ":throw_exception", + ":type", + ":type_traits", + ], +) + +boost_library( + name = "numeric_ublas", + hdrs = glob([ + "boost/numeric/ublas/**/*.hpp", + ]), + deps = [ + ":concept_check", + ":config", + ":core", + ":iterator", + ":mpl", + ":noncopyable", + ":numeric", + ":range", + ":serialization", + ":shared_array", + ":static_assert", + ":timer", + ":type_traits", + ":typeof", + ":utility", + ], +) + +boost_library( + name = "operators", +) + +boost_library( + name = "optional", + deps = [ + ":assert", + ":config", + ":detail", + ":none", + ":static_assert", + ":throw_exception", + ":type", + ":type_traits", + ":utility", + ], +) + +boost_library( + name = "parameter", + deps = [ + ":mp11", + ], +) + +boost_library( + name = "polygon", + deps = [ + ":config", + ":cstdint", + ], +) + +boost_library( + name = "predef", +) + +boost_library( + name = "preprocessor", +) + +boost_library( + name = "process", + deps = [ + ":algorithm", + ":asio", + ":config", + ":filesystem", + ":fusion", + ":system", + ":winapi", + ], +) + +boost_library( + name = "program_options", + deps = [ + ":any", + ":bind", + ":config", + ":detail", + ":function", + ":iterator", + ":lexical_cast", + ":limits", + ":noncopyable", + ":shared_ptr", + ":static_assert", + ":throw_exception", + ":tokenizer", + ":type_traits", + ":version", + ], +) + +boost_library( + name = "ptr_container", + deps = [ + ":assert", + ":checked_delete", + ":circular_buffer", + ":config", + ":iterator", + ":mpl", + ":range", + ":serialization", + ":static_assert", + ":type_traits", + ":unordered", + ":utility", + ], +) + +boost_library( + name = "qvm", + deps = [ + ":assert", + ":core", + ":exception", + ":static_assert", + ":throw_exception", + ":utility", + ], +) + +boost_library( + name = "random", + deps = [ + ":assert", + ":config", + ":detail", + ":foreach", + ":integer", + ":lexical_cast", + ":limits", + ":math", + ":mpl", + ":multi_index", + ":noncopyable", + ":operators", + ":range", + ":regex", + ":shared_ptr", + ":static_assert", + ":system", + ":throw_exception", + ":timer", + ":tuple", + ":type_traits", + ":utility", + ], +) + +boost_library( + name = "range", + deps = [ + ":array", + ":assert", + ":concept_check", + ":config", + ":detail", + ":functional", + ":integer", + ":iterator", + ":mpl", + ":noncopyable", + ":optional", + ":preprocessor", + ":ref", + ":regex", + ":static_assert", + ":tuple", + ":type_traits", + ":utility", + ], +) + +boost_library( + name = "ratio", + deps = [ + ":integer", + ], +) + +boost_library( + name = "rational", + deps = [ + ":assert", + ":call_traits", + ":config", + ":detail", + ":integer", + ":operators", + ":static_assert", + ":throw_exception", + ":type_traits", + ":utility", + ], +) + +boost_library( + name = "ref", + deps = [ + ":config", + ":core", + ":detail", + ":utility", + ], +) + +boost_library( + name = "regex", + hdrs = [ + "boost/cregex.hpp", + ], + defines = [ + "BOOST_FALLTHROUGH", + ], + deps = [ + ":assert", + ":config", + ":cstdint", + ":detail", + ":exception", + ":functional", + ":integer", + ":limits", + ":mpl", + ":predef", + ":ref", + ":smart_ptr", + ":throw_exception", + ":type_traits", + ], +) + +boost_library( + name = "scope_exit", + deps = [ + ":config", + ":detail", + ":function", + ":mpl", + ":preprocessor", + ":type_traits", + ":typeof", + ":utility", + ], +) + +boost_library( + name = "scoped_array", + deps = [ + ":checked_delete", + ], +) + +boost_library( + name = "scoped_ptr", + deps = [ + ":checked_delete", + ], +) + +boost_library( + name = "shared_ptr", + deps = [ + ":checked_delete", + ], +) + +boost_library( + name = "shared_array", + deps = [ + ":checked_delete", + ], +) + +boost_library( + name = "signals2", + deps = [ + ":assert", + ":bind", + ":checked_delete", + ":config", + ":core", + ":detail", + ":function", + ":iterator", + ":mpl", + ":multi_index", + ":noncopyable", + ":optional", + ":parameter", + ":predef", + ":preprocessor", + ":ref", + ":scoped_ptr", + ":shared_ptr", + ":smart_ptr", + ":swap", + ":throw_exception", + ":tuple", + ":type_traits", + ":utility", + ":variant", + ":visit_each", + ], +) + +boost_library( + name = "serialization", + deps = [ + ":archive", + ":array", + ":call_traits", + ":config", + ":container_hash", + ":detail", + ":function", + ":operators", + ":type_traits", + ], +) + +boost_library( + name = "smart_ptr", + hdrs = [ + "boost/enable_shared_from_this.hpp", + "boost/intrusive_ptr.hpp", + "boost/make_shared.hpp", + "boost/make_unique.hpp", + "boost/pointer_to_other.hpp", + "boost/weak_ptr.hpp", + ], + deps = [ + ":align", + ":assert", + ":core", + ":integer", + ":predef", + ":scoped_array", + ":scoped_ptr", + ":shared_array", + ":shared_ptr", + ":throw_exception", + ":utility", + ], +) + +boost_library( + name = "spirit", + deps = [ + ":optional", + ":ref", + ":utility", + ], +) + +boost_library( + name = "static_assert", +) + +boost_library( + name = "system", + deps = [ + ":assert", + ":cerrno", + ":config", + ":core", + ":cstdint", + ":noncopyable", + ":predef", + ":utility", + ], +) + +boost_library( + name = "swap", +) + +boost_library( + name = "throw_exception", + deps = [ + ":current_function", + ":detail", + ":exception", + ], +) + +boost_library( + name = "thread", + srcs = [ + "libs/thread/src/pthread/once.cpp", + "libs/thread/src/pthread/thread.cpp", + ], + hdrs = [ + "libs/thread/src/pthread/once_atomic.cpp", + ], + linkopts = select({ + ":linux_x86_64": [ + "-lpthread", + ], + "//conditions:default": [], + }), + deps = [ + ":algorithm", + ":atomic", + ":bind", + ":chrono", + ":config", + ":core", + ":date_time", + ":detail", + ":enable_shared_from_this", + ":exception", + ":function", + ":io", + ":lexical_cast", + ":smart_ptr", + ":system", + ":tuple", + ":type_traits", + ], +) + +boost_library( + name = "tokenizer", + hdrs = [ + "boost/token_functions.hpp", + "boost/token_iterator.hpp", + ], + deps = [ + ":assert", + ":config", + ":detail", + ":iterator", + ":mpl", + ":throw_exception", + ], +) + +boost_library( + name = "tribool", + hdrs = [ + "boost/logic/tribool.hpp", + "boost/logic/tribool_fwd.hpp", + ], + deps = [ + ":config", + ":detail", + ], +) + +boost_library( + name = "type", + deps = [ + ":core", + ], +) + +boost_library( + name = "type_index", + deps = [ + ":core", + ":functional", + ":throw_exception", + ], +) + +boost_library( + name = "tti", + deps = [ + ":config", + ":function_types", + ":mpl", + ":preprocessor", + ":type_traits", + ], +) + +boost_library( + name = "type_traits", + hdrs = [ + "boost/aligned_storage.hpp", + ], + deps = [ + ":config", + ":core", + ":mpl", + ":static_assert", + ], +) + +boost_library( + name = "typeof", + deps = [ + ":config", + ":detail", + ":mpl", + ":preprocessor", + ":type_traits", + ":utility", + ], +) + +boost_library( + name = "tuple", + deps = [ + ":ref", + ], +) + +boost_library( + name = "unordered", + hdrs = [ + "boost/unordered_map.hpp", + "boost/unordered_set.hpp", + ], + deps = [ + ":assert", + ":config", + ":container", + ":detail", + ":functional", + ":iterator", + ":limits", + ":move", + ":preprocessor", + ":smart_ptr", + ":swap", + ":throw_exception", + ":tuple", + ":type_traits", + ":utility", + ], +) + +boost_library( + name = "utility", + hdrs = [ + "boost/compressed_pair.hpp", + "boost/next_prior.hpp", + ], + deps = [ + ":config", + ":detail", + ":swap", + ], +) + +boost_library( + name = "uuid", + deps = [ + ":assert", + ":config", + ":core", + ":detail", + ":io", + ":random", + ":serialization", + ":static_assert", + ":throw_exception", + ":tti", + ":type_traits", + ], +) + +boost_library( + name = "variant", + deps = [ + ":call_traits", + ":config", + ":detail", + ":functional", + ":math", + ":static_assert", + ":type_index", + ":type_traits", + ":utility", + ], +) + +boost_library( + name = "variant2", + deps = [ + ":assert", + ":call_traits", + ":config", + ":detail", + ":exception", + ":functional", + ":math", + ":mp11", + ":static_assert", + ":throw_exception", + ":type_index", + ":type_traits", + ":utility", + ], +) + +boost_library( + name = "version", +) + +boost_library( + name = "visit_each", +) + +boost_library( + name = "timer", + deps = [ + ":cerrno", + ":chrono", + ":config", + ":cstdint", + ":io", + ":limits", + ":system", + ":throw_exception", + ], +) + +boost_library( + name = "numeric", +) + +boost_library( + name = "test", + exclude_src = glob(["libs/test/src/*.cpp"]), + deps = [ + ":algorithm", + ":assert", + ":bind", + ":call_traits", + ":config", + ":core", + ":current_function", + ":detail", + ":exception", + ":function", + ":io", + ":iterator", + ":limits", + ":mpl", + ":numeric_conversion", + ":optional", + ":preprocessor", + ":smart_ptr", + ":static_assert", + ":timer", + ":type", + ":type_traits", + ":utility", + ":version", + ], +) + +boost_library( + name = "winapi", +) + +boost_library( + name = "proto", + deps = [ + ":fusion", + ], +) + +boost_library( + name = "phoenix", + deps = [ + ":proto", + ], +) + +boost_library( + name = "log", + defines = [ + "BOOST_LOG_WITHOUT_WCHAR_T", + "BOOST_LOG_USE_STD_REGEX", + "BOOST_LOG_WITHOUT_DEFAULT_FACTORIES", + "BOOST_LOG_WITHOUT_SETTINGS_PARSERS", + "BOOST_LOG_WITHOUT_DEBUG_OUTPUT", + "BOOST_LOG_WITHOUT_EVENT_LOG", + "BOOST_LOG_WITHOUT_SYSLOG", + ], + exclude_src = [ + "libs/log/src/dump_avx2.cpp", + ], + deps = [ + ":asio", + ":date_time", + ":filesystem", + ":interprocess", + ":locale", + ":parameter", + ":phoenix", + ":random", + ":spirit", + ":system", + ":thread", + ":variant", + ], +) + +boost_library( + name = "xpressive", +) + +boost_library( + name = "property_map", +) + +boost_library( + name = "graph", + hdrs = [ + "boost/implicit_cast.hpp", + ], + deps = [ + ":algorithm", + ":config", + ":foreach", + ":function", + ":fusion", + ":iterator", + ":lexical_cast", + ":parameter", + ":pending", + ":property_map", + ":property_tree", + ":proto", + ":regex", + ":smart_ptr", + ":tti", + ":typeof", + ":unordered", + ":xpressive", + ], +) + +boost_library( + name = "pending", +) + +boost_library( + name = "units", + deps = [ + ":config", + ":integer", + ":math", + ":mpl", + ":static_assert", + ":type_traits", + ":typeof", + ":version", + ], +) + +boost_library( + name = "crc", +) + +boost_library( + name = "lockfree", + deps = [ + ":parameter", + ], +) + +boost_library( + name = "accumulators", + deps = [ + ":numeric", + ":parameter", + ":serialization", + ], +) + +boost_library( + name = "cast", +) + +boost_library( + name = "polymorphic_cast", +) + +boost_library( + name = "implicit_cast", +) + +boost_library( + name = "python", + srcs = glob([ + "libs/python/src/converter/*.cpp", + "libs/python/src/object/*.cpp", + ]), + deps = [ + ":cast", + ":config", + ":detail", + ":function", + ":get_pointer", + ":graph", + ":implicit_cast", + ":iterator", + ":mp11", + ":mpl", + ":noncopyable", + ":numeric", + ":operators", + ":parameter", + ":polymorphic_cast", + ":ref", + ":shared_ptr", + ":smart_ptr", + ":type", + ":type_traits", + "@//third_party/python3:lib", + ], +) + +boost_library( + name = "container_hash", + deps = [ + ":assert", + ":config", + ":core", + ":type_traits", + ], +) + +boost_library( + name = "dll", + deps = [ + ":filesystem", + ":function", + ":shared_ptr", + ":system", + ], +) + +boost_library( + name = "statechart", + deps = [ + ":assert", + ":bind", + ":config", + ":detail", + ":function", + ":intrusive_ptr", + ":mpl", + ":noncopyable", + ":polymorphic_cast", + ":ref", + ":smart_ptr", + ":static_assert", + ], +) + +boost_library( + name = "progress", + deps = [ + ":config", + ":cstdint", + ":noncopyable", + ":timer", + ], +) diff --git a/engine/third_party/boost/boost_asio_no_zero_as_nullptr_constant.patch b/engine/third_party/boost/boost_asio_no_zero_as_nullptr_constant.patch new file mode 100644 index 0000000000000000000000000000000000000000..a2eac0eb7de658de36d77fbeb131c8f6eb352606 --- /dev/null +++ b/engine/third_party/boost/boost_asio_no_zero_as_nullptr_constant.patch @@ -0,0 +1,30 @@ +index b058f78..8eae871 100644 +--- boost/asio/basic_datagram_socket.hpp ++++ boost/asio/basic_datagram_socket.hpp +@@ -187,7 +187,7 @@ public: + const endpoint_type& endpoint, + typename enable_if< + is_convertible<ExecutionContext&, execution_context&>::value +- >::type* = 0) ++ >::type* = nullptr) + : basic_socket<Protocol, Executor>(context, endpoint) + { + } +@@ -232,7 +232,7 @@ public: + const protocol_type& protocol, const native_handle_type& native_socket, + typename enable_if< + is_convertible<ExecutionContext&, execution_context&>::value +- >::type* = 0) ++ >::type* = nullptr) + : basic_socket<Protocol, Executor>(context, protocol, native_socket) + { + } +@@ -289,7 +289,7 @@ public: + typename enable_if< + is_convertible<Protocol1, Protocol>::value + && is_convertible<Executor1, Executor>::value +- >::type* = 0) ++ >::type* = nullptr) + : basic_socket<Protocol, Executor>(std::move(other)) + { + } diff --git a/engine/third_party/boost/boost_dll_load_mode_enum_undefined_behavior.patch b/engine/third_party/boost/boost_dll_load_mode_enum_undefined_behavior.patch new file mode 100644 index 0000000000000000000000000000000000000000..3fd241960f6ea3788f0accdbea5fed95055c8e9a --- /dev/null +++ b/engine/third_party/boost/boost_dll_load_mode_enum_undefined_behavior.patch @@ -0,0 +1,148 @@ +From f5d56094f159c1751387a336cb79f89078ec0fcb Mon Sep 17 00:00:00 2001 +From: Antony Polukhin <antoshkka@gmail.com> +Date: Sat, 23 Nov 2019 20:59:00 +0300 +Subject: [PATCH] fix warnings and work with enum without UB (fixes #30) + +--- + .../dll/detail/posix/shared_library_impl.hpp | 27 ++++++++++--------- + .../detail/windows/shared_library_impl.hpp | 19 ++++++------- + include/boost/dll/library_info.hpp | 2 +- + 3 files changed, 25 insertions(+), 23 deletions(-) + +diff --git boost/dll/detail/posix/shared_library_impl.hpp boost/dll/detail/posix/shared_library_impl.hpp +index 6ecb38c3..b6444e3d 100644 +--- boost/dll/detail/posix/shared_library_impl.hpp ++++ boost/dll/detail/posix/shared_library_impl.hpp +@@ -69,8 +69,9 @@ class shared_library_impl { + return actual_path; + } + +- void load(boost::dll::fs::path sl, load_mode::type mode, boost::dll::fs::error_code &ec) { ++ void load(boost::dll::fs::path sl, load_mode::type portable_mode, boost::dll::fs::error_code &ec) { + typedef int native_mode_t; ++ native_mode_t native_mode = static_cast<native_mode_t>(portable_mode); + unload(); + + // Do not allow opening NULL paths. User must use program_location() instead +@@ -84,20 +85,20 @@ class shared_library_impl { + } + + // Fixing modes +- if (!(mode & load_mode::rtld_now)) { +- mode |= load_mode::rtld_lazy; ++ if (!(native_mode & load_mode::rtld_now)) { ++ native_mode |= load_mode::rtld_lazy; + } + +- if (!(mode & load_mode::rtld_global)) { +- mode |= load_mode::rtld_local; ++ if (!(native_mode & load_mode::rtld_global)) { ++ native_mode |= load_mode::rtld_local; + } + + #if BOOST_OS_LINUX || BOOST_OS_ANDROID +- if (!sl.has_parent_path() && !(mode & load_mode::search_system_folders)) { ++ if (!sl.has_parent_path() && !(native_mode & load_mode::search_system_folders)) { + sl = "." / sl; + } + #else +- if (!sl.is_absolute() && !(mode & load_mode::search_system_folders)) { ++ if (!sl.is_absolute() && !(native_mode & load_mode::search_system_folders)) { + boost::dll::fs::error_code current_path_ec; + boost::dll::fs::path prog_loc = boost::dll::fs::current_path(current_path_ec); + if (!current_path_ec) { +@@ -107,14 +108,14 @@ class shared_library_impl { + } + #endif + +- mode &= ~load_mode::search_system_folders; ++ native_mode = static_cast<unsigned>(native_mode) & ~static_cast<unsigned>(load_mode::search_system_folders); + + // Trying to open with appended decorations +- if (!!(mode & load_mode::append_decorations)) { +- mode &= ~load_mode::append_decorations; ++ if (!!(native_mode & load_mode::append_decorations)) { ++ native_mode = static_cast<unsigned>(native_mode) & ~static_cast<unsigned>(load_mode::append_decorations); + + boost::dll::fs::path actual_path = decorate(sl); +- handle_ = dlopen(actual_path.c_str(), static_cast<native_mode_t>(mode)); ++ handle_ = dlopen(actual_path.c_str(), native_mode); + if (handle_) { + boost::dll::detail::reset_dlerror(); + return; +@@ -131,7 +132,7 @@ class shared_library_impl { + } + + // Opening by exactly specified path +- handle_ = dlopen(sl.c_str(), static_cast<native_mode_t>(mode)); ++ handle_ = dlopen(sl.c_str(), native_mode); + if (handle_) { + boost::dll::detail::reset_dlerror(); + return; +@@ -153,7 +154,7 @@ class shared_library_impl { + // returned handle is for the main program. + ec.clear(); + boost::dll::detail::reset_dlerror(); +- handle_ = dlopen(NULL, static_cast<native_mode_t>(mode)); ++ handle_ = dlopen(NULL, native_mode); + if (!handle_) { + ec = boost::dll::fs::make_error_code( + boost::dll::fs::errc::bad_file_descriptor +diff --git boost/dll/detail/windows/shared_library_impl.hpp boost/dll/detail/windows/shared_library_impl.hpp +index ca584fad..4df18b48 100644 +--- boost/dll/detail/windows/shared_library_impl.hpp ++++ boost/dll/detail/windows/shared_library_impl.hpp +@@ -56,11 +56,12 @@ class shared_library_impl { + return actual_path; + } + +- void load(boost::dll::fs::path sl, load_mode::type mode, boost::dll::fs::error_code &ec) { ++ void load(boost::dll::fs::path sl, load_mode::type portable_mode, boost::dll::fs::error_code &ec) { + typedef boost::winapi::DWORD_ native_mode_t; ++ native_mode_t native_mode = static_cast<native_mode_t>(portable_mode); + unload(); + +- if (!sl.is_absolute() && !(mode & load_mode::search_system_folders)) { ++ if (!sl.is_absolute() && !(native_mode & load_mode::search_system_folders)) { + boost::dll::fs::error_code current_path_ec; + boost::dll::fs::path prog_loc = boost::dll::fs::current_path(current_path_ec); + +@@ -69,13 +70,13 @@ class shared_library_impl { + sl.swap(prog_loc); + } + } +- mode &= ~load_mode::search_system_folders; ++ native_mode = static_cast<unsigned>(native_mode) & ~static_cast<unsigned>(load_mode::search_system_folders); + + // Trying to open with appended decorations +- if (!!(mode & load_mode::append_decorations)) { +- mode &= ~load_mode::append_decorations; ++ if (!!(native_mode & load_mode::append_decorations)) { ++ native_mode = static_cast<unsigned>(native_mode) & ~static_cast<unsigned>(load_mode::append_decorations); + +- if (load_impl(decorate(sl), static_cast<native_mode_t>(mode), ec)) { ++ if (load_impl(decorate(sl), native_mode, ec)) { + return; + } + +@@ -85,7 +86,7 @@ class shared_library_impl { + ? sl.parent_path() / L"lib" + : L"lib" + ).native() + sl.filename().native() + suffix().native(); +- if (load_impl(mingw_load_path, static_cast<native_mode_t>(mode), ec)) { ++ if (load_impl(mingw_load_path, native_mode, ec)) { + return; + } + } +@@ -98,9 +99,9 @@ class shared_library_impl { + // we have some path. So we do not check for path, only for extension. We can not be sure that + // such behavior remain across all platforms, so we add L"." by hand. + if (sl.has_extension()) { +- handle_ = boost::winapi::LoadLibraryExW(sl.c_str(), 0, static_cast<native_mode_t>(mode)); ++ handle_ = boost::winapi::LoadLibraryExW(sl.c_str(), 0, native_mode); + } else { +- handle_ = boost::winapi::LoadLibraryExW((sl.native() + L".").c_str(), 0, static_cast<native_mode_t>(mode)); ++ handle_ = boost::winapi::LoadLibraryExW((sl.native() + L".").c_str(), 0, native_mode); + } + + // LoadLibraryExW method is capable of self loading from program_location() path. No special actions diff --git a/engine/third_party/boost/boost_library.bzl b/engine/third_party/boost/boost_library.bzl new file mode 100644 index 0000000000000000000000000000000000000000..94a7fd799336f704502f0b45b5b6033d3e6b25ec --- /dev/null +++ b/engine/third_party/boost/boost_library.bzl @@ -0,0 +1,93 @@ +include_pattern = "boost/%s/" + +hdrs_patterns = [ + "boost/%s.h", + "boost/%s_fwd.h", + "boost/%s.hpp", + "boost/%s_fwd.hpp", + "boost/%s/**/*.hpp", + "boost/%s/**/*.ipp", + "boost/%s/**/*.h", + "libs/%s/src/*.ipp", +] + +srcs_patterns = [ + "libs/%s/src/*.cpp", + "libs/%s/src/*.hpp", +] + +def _srcs_list(library_name, exclude): + return native.glob( + [p % (library_name,) for p in srcs_patterns], + exclude = exclude, + allow_empty = True, + ) + +def _includes_list(library_name): + return [".", include_pattern % library_name] + +def _hdr_list(library_name): + return native.glob([p % (library_name,) for p in hdrs_patterns], allow_empty = True) + +def boost_library( + name, + defines = None, + includes = None, + hdrs = None, + srcs = None, + deps = None, + copts = None, + exclude_src = [], + linkopts = None, + visibility = None): + """Declare a boost boost library + + Args: + name:name + defines:defines + includes:includes + hdrs:hdrs + srcs:srcs + deps:deps + copts:copts + exclude_src:exclude_src + linkopts:linkopts + visibility:visibility + Returns: + A native cc_library + """ + + if defines == None: + defines = [] + + if includes == None: + includes = [] + + if hdrs == None: + hdrs = [] + + if srcs == None: + srcs = [] + + if deps == None: + deps = [] + + if copts == None: + copts = [] + + if linkopts == None: + linkopts = [] + + return native.cc_library( + name = name, + visibility = visibility, + defines = defines + ["BOOST_AUTO_LINK_NOMANGLE"], + includes = _includes_list(name) + includes, + hdrs = _hdr_list(name) + hdrs, + srcs = _srcs_list(name, exclude_src) + srcs, + deps = deps, + copts = copts, + features = ["third_party_warnings"], + linkopts = linkopts, + licenses = ["notice"], + ) diff --git a/engine/third_party/boost/multiprecision_missing_nvp_include.patch b/engine/third_party/boost/multiprecision_missing_nvp_include.patch new file mode 100644 index 0000000000000000000000000000000000000000..2c4739bd025d0c47c60e2420d2339d3b2b6275b7 --- /dev/null +++ b/engine/third_party/boost/multiprecision_missing_nvp_include.patch @@ -0,0 +1,10 @@ +--- boost/multiprecision/cpp_dec_float.hpp ++++ boost/multiprecision/cpp_dec_float.hpp +@@ -29,6 +29,7 @@ + #include <boost/multiprecision/number.hpp> + #include <boost/multiprecision/detail/big_lanczos.hpp> + #include <boost/multiprecision/detail/dynamic_array.hpp> ++#include <boost/serialization/nvp.hpp> + + // + // Headers required for Boost.Math integration: diff --git a/engine/third_party/boost/singleton_reference_binding_to_null_pointer_is_an_undefined_behavior.patch b/engine/third_party/boost/singleton_reference_binding_to_null_pointer_is_an_undefined_behavior.patch new file mode 100644 index 0000000000000000000000000000000000000000..2992a939dfe7cf5150ffe4e40d8e56c2ea45601d --- /dev/null +++ b/engine/third_party/boost/singleton_reference_binding_to_null_pointer_is_an_undefined_behavior.patch @@ -0,0 +1,19 @@ +commit 48f0844fda0a4af8093b98b1505777d845747e3a +Author: TaWeiTu <tu.da.wei@gmail.com> +Date: Mon Sep 2 05:58:06 2019 +0800 + + reference binding to null pointer is an undefined behaviour + +diff --git a/include/boost/serialization/singleton.hpp b/include/boost/serialization/singleton.hpp +index a668100d..427e1bbd 100644 +--- boost/serialization/singleton.hpp ++++ boost/serialization/singleton.hpp +@@ -178,7 +178,7 @@ private: + // Unfortunately, this triggers detectors of undefine behavior + // and reports an error. But I've been unable to find a different + // of guarenteeing that the the singleton is created at pre-main time. +- use(* m_instance); ++ if (m_instance) use(* m_instance); + + return static_cast<T &>(t); + } diff --git a/engine/third_party/deps.bzl b/engine/third_party/deps.bzl new file mode 100644 index 0000000000000000000000000000000000000000..1f832f8a4118020d008720161d4fea8b2b7e8350 --- /dev/null +++ b/engine/third_party/deps.bzl @@ -0,0 +1,18 @@ +load("@//third_party/boost:boost.bzl", "boost_deps") +load("@//third_party/mantle_api:mantle_api.bzl", "mantle_api") +load("@//third_party/open_scenario_parser:open_scenario_parser.bzl", "open_scenario_parser") +load("@//third_party/stochastics_library:stochastics_library.bzl", "stochastics_library") +load("@//third_party/units:units.bzl", "units_nhh") +load("@//third_party/yase:yase.bzl", "yase") + + + +def osc_engine_deps(): + """Load dependencies""" + boost_deps() + mantle_api() + open_scenario_parser() + stochastics_library() + units_nhh() + yase() + diff --git a/engine/third_party/mantle_api/BUILD.bazel b/engine/third_party/mantle_api/BUILD.bazel new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/engine/third_party/mantle_api/mantle_api.bzl b/engine/third_party/mantle_api/mantle_api.bzl new file mode 100644 index 0000000000000000000000000000000000000000..2bbe12d82e7430ca25e305db26e3f10d45774d63 --- /dev/null +++ b/engine/third_party/mantle_api/mantle_api.bzl @@ -0,0 +1,14 @@ +load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") +load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe") + +_TAG = "v8.0.0" + +def mantle_api(): + maybe( + http_archive, + name = "mantle_api", + url = "https://gitlab.eclipse.org/eclipse/openpass/mantle-api/-/archive/{tag}/mantle-api-{tag}.tar.gz".format(tag = _TAG), + sha256 = "abb18f7180da012c02bda874752a7efd9ceab1da31e616174790f07a17c4fa3f", + strip_prefix = "mantle-api-{tag}".format(tag = _TAG), + type = "tar.gz", + ) diff --git a/engine/third_party/open_scenario_parser/BUILD.bazel b/engine/third_party/open_scenario_parser/BUILD.bazel new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/engine/bazel/openscenario_api.BUILD b/engine/third_party/open_scenario_parser/open_scenario_parser.BUILD similarity index 100% rename from engine/bazel/openscenario_api.BUILD rename to engine/third_party/open_scenario_parser/open_scenario_parser.BUILD diff --git a/engine/third_party/open_scenario_parser/open_scenario_parser.bzl b/engine/third_party/open_scenario_parser/open_scenario_parser.bzl new file mode 100644 index 0000000000000000000000000000000000000000..8c5d3e88735acc25031b0bd33310f1f72c16b3b9 --- /dev/null +++ b/engine/third_party/open_scenario_parser/open_scenario_parser.bzl @@ -0,0 +1,12 @@ +load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") +load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe") + +def open_scenario_parser(): + maybe( + http_archive, + name = "open_scenario_parser", + build_file = Label("//:third_party/open_scenario_parser/open_scenario_parser.BUILD"), + url = "https://github.com/RA-Consulting-GmbH/openscenario.api.test/releases/download/v1.4.0/OpenSCENARIO_API_LinuxSharedRelease_2024.11.18.tgz", + sha256 = "7a4cdb82ccaaeed5fccf12efd94cf4f9c9d3ac0fc7d7feedd4c0babe2404f853", + strip_prefix = "OpenSCENARIO_API_LinuxSharedRelease", + ) diff --git a/engine/third_party/stochastics_library/BUILD.bazel b/engine/third_party/stochastics_library/BUILD.bazel new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/engine/third_party/stochastics_library/stochastics_library.bzl b/engine/third_party/stochastics_library/stochastics_library.bzl new file mode 100644 index 0000000000000000000000000000000000000000..3b971518abf728e7b4b22fb9109ed3b5ccfad5e1 --- /dev/null +++ b/engine/third_party/stochastics_library/stochastics_library.bzl @@ -0,0 +1,13 @@ +load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") +load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe") + +_TAG = "v0.11.1" + +def stochastics_library(): + maybe( + http_archive, + name = "stochastics_library", + url = "https://gitlab.eclipse.org/eclipse/openpass/stochastics-library/-/archive/{tag}/stochastics-library-{tag}.tar.gz".format(tag = _TAG), + sha256 = "b2c0d60a848b7a2e62be49bd2c3f2576903cf78b8bc21e65b8346274e46c15a6", + strip_prefix = "stochastics-library-{tag}".format(tag = _TAG), + ) diff --git a/engine/third_party/units/BUILD.bazel b/engine/third_party/units/BUILD.bazel new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/engine/bazel/units.BUILD b/engine/third_party/units/units.BUILD similarity index 100% rename from engine/bazel/units.BUILD rename to engine/third_party/units/units.BUILD diff --git a/engine/third_party/units/units.bzl b/engine/third_party/units/units.bzl new file mode 100644 index 0000000000000000000000000000000000000000..c2f4b6e3dde4b5912e57448dccfd75097bf90eff --- /dev/null +++ b/engine/third_party/units/units.bzl @@ -0,0 +1,18 @@ +""" +This module contains rule to pull nholthaus units +""" + +load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") +load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe") + +_TAG = "2.3.3" + +def units_nhh(): + maybe( + http_archive, + name = "units_nhh", + build_file = Label("//:third_party/units/units.BUILD"), + url = "https://github.com/nholthaus/units/archive/refs/tags/v{tag}.tar.gz".format(tag = _TAG), + sha256 = "b1f3c1dd11afa2710a179563845ce79f13ebf0c8c090d6aa68465b18bd8bd5fc", + strip_prefix = "units-{tag}".format(tag = _TAG), + ) diff --git a/engine/third_party/yase/BUILD.bazel b/engine/third_party/yase/BUILD.bazel new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/engine/third_party/yase/yase.bzl b/engine/third_party/yase/yase.bzl new file mode 100644 index 0000000000000000000000000000000000000000..9a01b2e81742cad85f86ca0e3ad6802c416f0808 --- /dev/null +++ b/engine/third_party/yase/yase.bzl @@ -0,0 +1,13 @@ +load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") +load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe") + +_TAG = "v0.0.1" + +def yase(): + maybe( + http_archive, + name = "yase", + url = "https://gitlab.eclipse.org/eclipse/openpass/yase/-/archive/{tag}/yase-{tag}.tar.gz".format(tag = _TAG), + sha256 = "243d710172dff4c4e7ab95e5bd68a6d8335cf8a3fdd1efa87d118250e3b85ee3", + strip_prefix = "yase-{tag}".format(tag = _TAG), + )