├── .appveyor.yml
├── .azure-pipelines
├── nuget
│ ├── NugetTemplate
│ │ ├── OpenXR.Loader.nuspec
│ │ └── build
│ │ │ └── native
│ │ │ ├── OpenXR.Loader.props
│ │ │ └── OpenXR.Loader.targets
│ └── stage_nuget.ps1
├── openxr-sdk-source.yml
├── openxr-sdk.yml
└── shared
│ ├── build_jobs.yml
│ ├── build_linux.yml
│ ├── build_mingw.yml
│ ├── build_msvc.yml
│ ├── check_clang_format.yml
│ ├── check_file_format.yml
│ ├── codespell.yml
│ ├── generate_windows_matrix_build.py
│ ├── install_vulkan.ps1
│ ├── organize_windows_artifacts.py
│ ├── print_windows_artifact_names.py
│ └── shared.py
├── .editorconfig
├── .env
├── .git-blame-ignore-revs
├── .gitattributes
├── .github
├── .java-version
├── .java-version.license
├── dependabot.yml
├── scripts
│ ├── CMakePresets.json
│ ├── CMakePresets.json.license
│ ├── generate_windows_matrix_build.py
│ ├── install_vulkan.ps1
│ ├── organize_windows_artifacts.py
│ └── shared.py
└── workflows
│ ├── android.yml
│ ├── check_clang_format_and_codespell.yml
│ ├── macOS.yml
│ ├── macos-build.yml
│ ├── msvc-build-preset.yml
│ ├── pr.yml
│ ├── release.yml
│ ├── snapshot.yml
│ └── windows-matrix.yml
├── .gitignore
├── .gitmodules
├── .mailmap
├── .proclamation.json
├── .proclamation.json.license
├── .reuse
└── dep5
├── BUILDING.md
├── CHANGELOG.SDK.md
├── CMakeLists.txt
├── CODE_OF_CONDUCT.md
├── COPYING.adoc
├── LICENSE
├── LICENSES
├── Apache-2.0.txt
├── BSD-3-Clause.txt
├── BSL-1.0.txt
├── CC-BY-4.0.txt
├── CC0-1.0.txt
├── ISC.txt
├── LicenseRef-Khronos-Free-Use-License-for-Software-and-Documentation.txt
├── LicenseRef-KhronosSpecCopyright-WithNormativeWording-v10.txt
├── LicenseRef-jsoncpp-public-domain.txt
├── MIT.txt
├── OFL-1.1-RFN.txt
├── Unlicense.txt
└── Zlib.txt
├── README.md
├── SwordMotionBlurTest.exe
├── changes
├── .markdownlint.yaml
├── README.md
├── registry
│ └── README.md
├── sdk
│ ├── README.md
│ └── pr.516.gh.OpenXR-SDK-Source.md
└── template.md
├── checkCodespell
├── external
├── include
│ ├── CMakeLists.txt
│ └── GL
│ │ ├── gl_format.h
│ │ ├── glext.h
│ │ ├── glext.h.license
│ │ ├── wglext.h
│ │ └── wglext.h.license
└── python
│ ├── Jinja2-2.11.3.dist-info
│ ├── INSTALLER
│ ├── LICENSE.rst
│ ├── METADATA
│ ├── RECORD
│ ├── REQUESTED
│ ├── WHEEL
│ ├── entry_points.txt
│ └── top_level.txt
│ ├── MarkupSafe-1.1.1.dist-info
│ ├── INSTALLER
│ ├── LICENSE.txt
│ ├── METADATA
│ ├── RECORD
│ ├── WHEEL
│ └── top_level.txt
│ ├── jinja2
│ ├── __init__.py
│ ├── _compat.py
│ ├── _identifier.py
│ ├── asyncfilters.py
│ ├── asyncsupport.py
│ ├── bccache.py
│ ├── compiler.py
│ ├── constants.py
│ ├── debug.py
│ ├── defaults.py
│ ├── environment.py
│ ├── exceptions.py
│ ├── ext.py
│ ├── filters.py
│ ├── idtracking.py
│ ├── lexer.py
│ ├── loaders.py
│ ├── meta.py
│ ├── nativetypes.py
│ ├── nodes.py
│ ├── optimizer.py
│ ├── parser.py
│ ├── runtime.py
│ ├── sandbox.py
│ ├── tests.py
│ ├── utils.py
│ └── visitor.py
│ ├── markupsafe
│ ├── __init__.py
│ ├── _compat.py
│ ├── _constants.py
│ ├── _native.py
│ └── _speedups.c
│ ├── pyparsing-3.1.2.dist-info
│ ├── LICENSE
│ ├── METADATA
│ ├── RECORD
│ └── WHEEL
│ └── pyparsing
│ ├── __init__.py
│ ├── actions.py
│ ├── common.py
│ ├── core.py
│ ├── diagram
│ └── __init__.py
│ ├── exceptions.py
│ ├── helpers.py
│ ├── py.typed
│ ├── results.py
│ ├── testing.py
│ ├── unicode.py
│ └── util.py
├── github
└── sdk
│ ├── .github
│ └── pull_request_template.md
│ └── README.md
├── hello_xr-Vulkan-release.apk
├── hello_xr_HDR_EXT_GazeInteraction.exe
├── include
├── CMakeLists.txt
├── generated_header_list.txt
├── generated_header_list.txt.license
└── openxr
│ ├── CMakeLists.txt
│ └── openxr_platform_defines.h
├── maintainer-scripts
├── archive-sdk.sh
├── build-aar.sh
├── build-and-publish-aar-mavencentral.sh
├── build-and-publish-aar-snapshot.sh
├── check-changelog-fragments.sh
├── common.sh
└── publish-aar
│ ├── build.gradle.kts
│ ├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ ├── gradle-wrapper.jar.license
│ │ ├── gradle-wrapper.properties
│ │ └── gradle-wrapper.properties.license
│ ├── gradlew
│ ├── gradlew.bat
│ ├── gradlew.bat.license
│ ├── gradlew.license
│ └── settings.gradle
├── open-in-docker.sh
├── openxr-codespell.exclude
├── runClangFormat.sh
├── specification
├── .gitignore
├── Makefile
├── README.md
├── config
│ └── attribs.adoc
├── loader
│ ├── api_layer.adoc
│ ├── appendices.adoc
│ ├── application.adoc
│ ├── debug.adoc
│ ├── design.adoc
│ ├── images
│ │ ├── app_dispatch_table_call_chain.svg
│ │ ├── app_dispatch_table_call_chain.svg.license
│ │ ├── call_chain_example.svg
│ │ ├── call_chain_example.svg.license
│ │ ├── class_diagram.svg
│ │ ├── class_diagram.svg.license
│ │ ├── high_level_loader.svg
│ │ ├── high_level_loader.svg.license
│ │ ├── loader_layer_order_calls.svg
│ │ ├── loader_layer_order_calls.svg.license
│ │ ├── optional_layer_function_impl.svg
│ │ ├── optional_layer_function_impl.svg.license
│ │ ├── standard_call_chains.svg
│ │ └── standard_call_chains.svg.license
│ ├── loader.adoc
│ ├── overview.adoc
│ ├── runtime.adoc
│ └── source.adoc
├── registry
│ └── xr.xml
├── requirements.txt
└── scripts
│ ├── __init__.py.docs
│ ├── apiconventions.py
│ ├── cgenerator.py
│ ├── check_spec_links.py
│ ├── check_stamp.py
│ ├── comment_convert.py
│ ├── creflectiongenerator.py
│ ├── docgenerator.py
│ ├── extdependency.py
│ ├── extensionmetadocgenerator.py
│ ├── extract_code.py
│ ├── findBareNormatives.sh
│ ├── genRef.py
│ ├── genanchorlinks.rb
│ ├── generator.py
│ ├── genxr.py
│ ├── hostsyncgenerator.py
│ ├── indexgenerator.py
│ ├── interfacedocgenerator.py
│ ├── jinja_helpers.py
│ ├── nonbreaking-ext-titles.rb
│ ├── parse_dependency.py
│ ├── pdf-index-customizer.rb
│ ├── pdf_chapter_diff.py
│ ├── pygenerator.py
│ ├── realign.py
│ ├── reflib.py
│ ├── reflow.py
│ ├── reg.py
│ ├── reserve_extensions.py
│ ├── rouge-extend-css.rb
│ ├── rubygenerator.py
│ ├── scriptgenerator.py
│ ├── spec-macros.rb
│ ├── spec-macros
│ └── extension.rb
│ ├── spec_tools
│ ├── __init__.py
│ ├── algo.py
│ ├── attributes.py
│ ├── base_printer.py
│ ├── consistency_tools.py
│ ├── console_printer.py
│ ├── conventions.py
│ ├── data_structures.py
│ ├── entity_db.py
│ ├── file_process.py
│ ├── html_printer.py
│ ├── macro_checker.py
│ ├── macro_checker_file.py
│ ├── main.py
│ ├── shared.py
│ ├── util.py
│ └── validity.py
│ ├── template_openxr_reflection.h
│ ├── template_openxr_reflection_parent_structs.h
│ ├── template_openxr_reflection_structs.h
│ ├── test_check_spec_links.py
│ ├── test_check_spec_links_api_specific.py
│ ├── test_entity_db.py
│ ├── update_version.py
│ ├── validitygenerator.py
│ ├── vuidCounts.py
│ ├── xml_consistency.py
│ └── xrconventions.py
├── src
├── .gitignore
├── CMakeLists.txt
├── api_layers
│ ├── CMakeLists.txt
│ ├── OpenXR_API_Dump.png
│ ├── OpenXR_API_Dump.png.license
│ ├── OpenXR_Core_Validation.png
│ ├── OpenXR_Core_Validation.png.license
│ ├── README.md
│ ├── README_api_dump.md
│ ├── README_core_validation.md
│ ├── XrApiLayer_api_dump.def
│ ├── XrApiLayer_api_dump.expsym
│ ├── XrApiLayer_api_dump.map
│ ├── XrApiLayer_core_validation.def
│ ├── XrApiLayer_core_validation.expsym
│ ├── XrApiLayer_core_validation.map
│ ├── api_dump.cpp
│ ├── api_layer_platform_defines.h
│ ├── core_validation.cpp
│ ├── core_validation_html_anchor.png
│ ├── core_validation_html_anchor.png.license
│ ├── core_validation_message.svg
│ ├── core_validation_message.svg.license
│ └── validation_utils.h
├── cmake
│ ├── FindEGL.cmake
│ ├── FindJsonCpp.cmake
│ ├── FindMetalTools.cmake
│ ├── FindOpenGLES.cmake
│ ├── GetGitRevisionDescription.cmake
│ ├── GetGitRevisionDescription.cmake.in
│ ├── StdFilesystemFlags.cmake
│ ├── cmake_uninstall.cmake.in
│ ├── fxc_shader.cmake
│ ├── glsl_shader.cmake
│ ├── make_includable.cmake
│ ├── metaconfig.cmake.in
│ ├── metaconfig_android.cmake.in
│ └── presentation.cmake
├── common
│ ├── android_logging.h
│ ├── extra_algorithms.h
│ ├── filesystem_utils.cpp
│ ├── filesystem_utils.hpp
│ ├── gfxwrapper_opengl.c
│ ├── gfxwrapper_opengl.h
│ ├── hex_and_handles.h
│ ├── object_info.cpp
│ ├── object_info.h
│ ├── platform_utils.hpp
│ ├── stdfs_conditions.h
│ ├── unique_asset.h
│ ├── vulkan_debug_object_namer.hpp
│ ├── xr_dependencies.h
│ └── xr_linear.h
├── common_config.h.in
├── external
│ ├── android-jni-wrappers
│ │ └── wrap
│ │ │ ├── ObjectWrapperBase.h
│ │ │ ├── android.content.cpp
│ │ │ ├── android.content.h
│ │ │ ├── android.content.impl.h
│ │ │ ├── android.database.cpp
│ │ │ ├── android.database.h
│ │ │ ├── android.database.impl.h
│ │ │ ├── android.net.cpp
│ │ │ ├── android.net.h
│ │ │ └── android.net.impl.h
│ ├── catch2
│ │ ├── .clang-format
│ │ ├── .clang-tidy
│ │ ├── .gitattributes
│ │ ├── .gitignore
│ │ ├── BUILD.bazel
│ │ ├── CMake
│ │ │ ├── Catch2Config.cmake.in
│ │ │ ├── CatchConfigOptions.cmake
│ │ │ ├── CatchMiscFunctions.cmake
│ │ │ ├── FindGcov.cmake
│ │ │ ├── FindLcov.cmake
│ │ │ ├── Findcodecov.cmake
│ │ │ ├── catch2-with-main.pc.in
│ │ │ ├── catch2.pc.in
│ │ │ └── llvm-cov-wrapper
│ │ ├── CMakeLists.txt
│ │ ├── CMakePresets.json
│ │ ├── CODE_OF_CONDUCT.md
│ │ ├── Doxyfile
│ │ ├── LICENSE.txt
│ │ ├── MODULE.bazel
│ │ ├── README.md
│ │ ├── SECURITY.md
│ │ ├── WORKSPACE.bazel
│ │ ├── appveyor.yml
│ │ ├── codecov.yml
│ │ ├── conanfile.py
│ │ ├── data
│ │ │ └── artwork
│ │ │ │ ├── catch2-c-logo.png
│ │ │ │ ├── catch2-hand-logo.png
│ │ │ │ ├── catch2-logo-small-with-background.png
│ │ │ │ └── catch2-logo-small.png
│ │ ├── docs
│ │ │ ├── Readme.md
│ │ │ ├── assertions.md
│ │ │ ├── benchmarks.md
│ │ │ ├── ci-and-misc.md
│ │ │ ├── cmake-integration.md
│ │ │ ├── command-line.md
│ │ │ ├── commercial-users.md
│ │ │ ├── comparing-floating-point-numbers.md
│ │ │ ├── configuration.md
│ │ │ ├── contributing.md
│ │ │ ├── deprecations.md
│ │ │ ├── event-listeners.md
│ │ │ ├── faq.md
│ │ │ ├── generators.md
│ │ │ ├── limitations.md
│ │ │ ├── list-of-examples.md
│ │ │ ├── logging.md
│ │ │ ├── matchers.md
│ │ │ ├── migrate-v2-to-v3.md
│ │ │ ├── opensource-users.md
│ │ │ ├── other-macros.md
│ │ │ ├── own-main.md
│ │ │ ├── release-notes.md
│ │ │ ├── release-process.md
│ │ │ ├── reporter-events.md
│ │ │ ├── reporters.md
│ │ │ ├── skipping-passing-failing.md
│ │ │ ├── test-cases-and-sections.md
│ │ │ ├── test-fixtures.md
│ │ │ ├── tostring.md
│ │ │ ├── tutorial.md
│ │ │ ├── usage-tips.md
│ │ │ └── why-catch.md
│ │ ├── examples
│ │ │ ├── 010-TestCase.cpp
│ │ │ ├── 020-TestCase-1.cpp
│ │ │ ├── 020-TestCase-2.cpp
│ │ │ ├── 030-Asn-Require-Check.cpp
│ │ │ ├── 100-Fix-Section.cpp
│ │ │ ├── 110-Fix-ClassFixture.cpp
│ │ │ ├── 111-Fix-PersistentFixture.cpp
│ │ │ ├── 120-Bdd-ScenarioGivenWhenThen.cpp
│ │ │ ├── 210-Evt-EventListeners.cpp
│ │ │ ├── 231-Cfg-OutputStreams.cpp
│ │ │ ├── 232-Cfg-CustomMain.cpp
│ │ │ ├── 300-Gen-OwnGenerator.cpp
│ │ │ ├── 301-Gen-MapTypeConversion.cpp
│ │ │ ├── 302-Gen-Table.cpp
│ │ │ ├── 310-Gen-VariablesInGenerators.cpp
│ │ │ ├── 311-Gen-CustomCapture.cpp
│ │ │ └── CMakeLists.txt
│ │ ├── extras
│ │ │ ├── Catch.cmake
│ │ │ ├── CatchAddTests.cmake
│ │ │ ├── CatchShardTests.cmake
│ │ │ ├── CatchShardTestsImpl.cmake
│ │ │ ├── ParseAndAddCatchTests.cmake
│ │ │ ├── catch_amalgamated.cpp
│ │ │ ├── catch_amalgamated.hpp
│ │ │ ├── gdbinit
│ │ │ └── lldbinit
│ │ ├── fuzzing
│ │ │ ├── CMakeLists.txt
│ │ │ ├── NullOStream.cpp
│ │ │ ├── NullOStream.h
│ │ │ ├── build_fuzzers.sh
│ │ │ ├── fuzz_TestSpecParser.cpp
│ │ │ ├── fuzz_XmlWriter.cpp
│ │ │ └── fuzz_textflow.cpp
│ │ ├── mdsnippets.json
│ │ ├── meson.build
│ │ ├── meson_options.txt
│ │ ├── src
│ │ │ ├── CMakeLists.txt
│ │ │ └── catch2
│ │ │ │ ├── benchmark
│ │ │ │ ├── catch_benchmark.hpp
│ │ │ │ ├── catch_benchmark_all.hpp
│ │ │ │ ├── catch_chronometer.cpp
│ │ │ │ ├── catch_chronometer.hpp
│ │ │ │ ├── catch_clock.hpp
│ │ │ │ ├── catch_constructor.hpp
│ │ │ │ ├── catch_environment.hpp
│ │ │ │ ├── catch_estimate.hpp
│ │ │ │ ├── catch_execution_plan.hpp
│ │ │ │ ├── catch_optimizer.hpp
│ │ │ │ ├── catch_outlier_classification.hpp
│ │ │ │ ├── catch_sample_analysis.hpp
│ │ │ │ └── detail
│ │ │ │ │ ├── catch_analyse.cpp
│ │ │ │ │ ├── catch_analyse.hpp
│ │ │ │ │ ├── catch_benchmark_function.cpp
│ │ │ │ │ ├── catch_benchmark_function.hpp
│ │ │ │ │ ├── catch_benchmark_stats.hpp
│ │ │ │ │ ├── catch_benchmark_stats_fwd.hpp
│ │ │ │ │ ├── catch_complete_invoke.hpp
│ │ │ │ │ ├── catch_estimate_clock.hpp
│ │ │ │ │ ├── catch_measure.hpp
│ │ │ │ │ ├── catch_repeat.hpp
│ │ │ │ │ ├── catch_run_for_at_least.cpp
│ │ │ │ │ ├── catch_run_for_at_least.hpp
│ │ │ │ │ ├── catch_stats.cpp
│ │ │ │ │ ├── catch_stats.hpp
│ │ │ │ │ └── catch_timing.hpp
│ │ │ │ ├── catch_all.hpp
│ │ │ │ ├── catch_approx.cpp
│ │ │ │ ├── catch_approx.hpp
│ │ │ │ ├── catch_assertion_info.hpp
│ │ │ │ ├── catch_assertion_result.cpp
│ │ │ │ ├── catch_assertion_result.hpp
│ │ │ │ ├── catch_case_sensitive.hpp
│ │ │ │ ├── catch_config.cpp
│ │ │ │ ├── catch_config.hpp
│ │ │ │ ├── catch_get_random_seed.cpp
│ │ │ │ ├── catch_get_random_seed.hpp
│ │ │ │ ├── catch_message.cpp
│ │ │ │ ├── catch_message.hpp
│ │ │ │ ├── catch_registry_hub.cpp
│ │ │ │ ├── catch_section_info.hpp
│ │ │ │ ├── catch_session.cpp
│ │ │ │ ├── catch_session.hpp
│ │ │ │ ├── catch_tag_alias.hpp
│ │ │ │ ├── catch_tag_alias_autoregistrar.cpp
│ │ │ │ ├── catch_tag_alias_autoregistrar.hpp
│ │ │ │ ├── catch_template_test_macros.hpp
│ │ │ │ ├── catch_test_case_info.cpp
│ │ │ │ ├── catch_test_case_info.hpp
│ │ │ │ ├── catch_test_macros.hpp
│ │ │ │ ├── catch_test_spec.cpp
│ │ │ │ ├── catch_test_spec.hpp
│ │ │ │ ├── catch_timer.cpp
│ │ │ │ ├── catch_timer.hpp
│ │ │ │ ├── catch_tostring.cpp
│ │ │ │ ├── catch_tostring.hpp
│ │ │ │ ├── catch_totals.cpp
│ │ │ │ ├── catch_totals.hpp
│ │ │ │ ├── catch_translate_exception.cpp
│ │ │ │ ├── catch_translate_exception.hpp
│ │ │ │ ├── catch_user_config.hpp.in
│ │ │ │ ├── catch_version.cpp
│ │ │ │ ├── catch_version.hpp
│ │ │ │ ├── catch_version_macros.hpp
│ │ │ │ ├── generators
│ │ │ │ ├── catch_generator_exception.cpp
│ │ │ │ ├── catch_generator_exception.hpp
│ │ │ │ ├── catch_generators.cpp
│ │ │ │ ├── catch_generators.hpp
│ │ │ │ ├── catch_generators_adapters.hpp
│ │ │ │ ├── catch_generators_all.hpp
│ │ │ │ ├── catch_generators_random.cpp
│ │ │ │ ├── catch_generators_random.hpp
│ │ │ │ └── catch_generators_range.hpp
│ │ │ │ ├── interfaces
│ │ │ │ ├── catch_interfaces_all.hpp
│ │ │ │ ├── catch_interfaces_capture.cpp
│ │ │ │ ├── catch_interfaces_capture.hpp
│ │ │ │ ├── catch_interfaces_config.cpp
│ │ │ │ ├── catch_interfaces_config.hpp
│ │ │ │ ├── catch_interfaces_enum_values_registry.hpp
│ │ │ │ ├── catch_interfaces_exception.cpp
│ │ │ │ ├── catch_interfaces_exception.hpp
│ │ │ │ ├── catch_interfaces_generatortracker.cpp
│ │ │ │ ├── catch_interfaces_generatortracker.hpp
│ │ │ │ ├── catch_interfaces_registry_hub.cpp
│ │ │ │ ├── catch_interfaces_registry_hub.hpp
│ │ │ │ ├── catch_interfaces_reporter.cpp
│ │ │ │ ├── catch_interfaces_reporter.hpp
│ │ │ │ ├── catch_interfaces_reporter_factory.cpp
│ │ │ │ ├── catch_interfaces_reporter_factory.hpp
│ │ │ │ ├── catch_interfaces_tag_alias_registry.hpp
│ │ │ │ ├── catch_interfaces_test_invoker.hpp
│ │ │ │ ├── catch_interfaces_testcase.cpp
│ │ │ │ └── catch_interfaces_testcase.hpp
│ │ │ │ ├── internal
│ │ │ │ ├── catch_assertion_handler.cpp
│ │ │ │ ├── catch_assertion_handler.hpp
│ │ │ │ ├── catch_case_insensitive_comparisons.cpp
│ │ │ │ ├── catch_case_insensitive_comparisons.hpp
│ │ │ │ ├── catch_clara.cpp
│ │ │ │ ├── catch_clara.hpp
│ │ │ │ ├── catch_commandline.cpp
│ │ │ │ ├── catch_commandline.hpp
│ │ │ │ ├── catch_compare_traits.hpp
│ │ │ │ ├── catch_compiler_capabilities.hpp
│ │ │ │ ├── catch_config_android_logwrite.hpp
│ │ │ │ ├── catch_config_counter.hpp
│ │ │ │ ├── catch_config_prefix_messages.hpp
│ │ │ │ ├── catch_config_static_analysis_support.hpp
│ │ │ │ ├── catch_config_uncaught_exceptions.hpp
│ │ │ │ ├── catch_config_wchar.hpp
│ │ │ │ ├── catch_console_colour.cpp
│ │ │ │ ├── catch_console_colour.hpp
│ │ │ │ ├── catch_console_width.hpp
│ │ │ │ ├── catch_container_nonmembers.hpp
│ │ │ │ ├── catch_context.cpp
│ │ │ │ ├── catch_context.hpp
│ │ │ │ ├── catch_debug_console.cpp
│ │ │ │ ├── catch_debug_console.hpp
│ │ │ │ ├── catch_debugger.cpp
│ │ │ │ ├── catch_debugger.hpp
│ │ │ │ ├── catch_decomposer.cpp
│ │ │ │ ├── catch_decomposer.hpp
│ │ │ │ ├── catch_enforce.cpp
│ │ │ │ ├── catch_enforce.hpp
│ │ │ │ ├── catch_enum_values_registry.cpp
│ │ │ │ ├── catch_enum_values_registry.hpp
│ │ │ │ ├── catch_errno_guard.cpp
│ │ │ │ ├── catch_errno_guard.hpp
│ │ │ │ ├── catch_exception_translator_registry.cpp
│ │ │ │ ├── catch_exception_translator_registry.hpp
│ │ │ │ ├── catch_fatal_condition_handler.cpp
│ │ │ │ ├── catch_fatal_condition_handler.hpp
│ │ │ │ ├── catch_floating_point_helpers.cpp
│ │ │ │ ├── catch_floating_point_helpers.hpp
│ │ │ │ ├── catch_getenv.cpp
│ │ │ │ ├── catch_getenv.hpp
│ │ │ │ ├── catch_is_permutation.hpp
│ │ │ │ ├── catch_istream.cpp
│ │ │ │ ├── catch_istream.hpp
│ │ │ │ ├── catch_jsonwriter.cpp
│ │ │ │ ├── catch_jsonwriter.hpp
│ │ │ │ ├── catch_lazy_expr.cpp
│ │ │ │ ├── catch_lazy_expr.hpp
│ │ │ │ ├── catch_leak_detector.cpp
│ │ │ │ ├── catch_leak_detector.hpp
│ │ │ │ ├── catch_list.cpp
│ │ │ │ ├── catch_list.hpp
│ │ │ │ ├── catch_logical_traits.hpp
│ │ │ │ ├── catch_main.cpp
│ │ │ │ ├── catch_message_info.cpp
│ │ │ │ ├── catch_message_info.hpp
│ │ │ │ ├── catch_meta.hpp
│ │ │ │ ├── catch_move_and_forward.hpp
│ │ │ │ ├── catch_noncopyable.hpp
│ │ │ │ ├── catch_optional.hpp
│ │ │ │ ├── catch_output_redirect.cpp
│ │ │ │ ├── catch_output_redirect.hpp
│ │ │ │ ├── catch_parse_numbers.cpp
│ │ │ │ ├── catch_parse_numbers.hpp
│ │ │ │ ├── catch_platform.hpp
│ │ │ │ ├── catch_polyfills.cpp
│ │ │ │ ├── catch_polyfills.hpp
│ │ │ │ ├── catch_preprocessor.hpp
│ │ │ │ ├── catch_preprocessor_internal_stringify.hpp
│ │ │ │ ├── catch_preprocessor_remove_parens.hpp
│ │ │ │ ├── catch_random_floating_point_helpers.hpp
│ │ │ │ ├── catch_random_integer_helpers.hpp
│ │ │ │ ├── catch_random_number_generator.cpp
│ │ │ │ ├── catch_random_number_generator.hpp
│ │ │ │ ├── catch_random_seed_generation.cpp
│ │ │ │ ├── catch_random_seed_generation.hpp
│ │ │ │ ├── catch_reporter_registry.cpp
│ │ │ │ ├── catch_reporter_registry.hpp
│ │ │ │ ├── catch_reporter_spec_parser.cpp
│ │ │ │ ├── catch_reporter_spec_parser.hpp
│ │ │ │ ├── catch_result_type.hpp
│ │ │ │ ├── catch_reusable_string_stream.cpp
│ │ │ │ ├── catch_reusable_string_stream.hpp
│ │ │ │ ├── catch_run_context.cpp
│ │ │ │ ├── catch_run_context.hpp
│ │ │ │ ├── catch_section.cpp
│ │ │ │ ├── catch_section.hpp
│ │ │ │ ├── catch_sharding.hpp
│ │ │ │ ├── catch_singletons.cpp
│ │ │ │ ├── catch_singletons.hpp
│ │ │ │ ├── catch_source_line_info.cpp
│ │ │ │ ├── catch_source_line_info.hpp
│ │ │ │ ├── catch_startup_exception_registry.cpp
│ │ │ │ ├── catch_startup_exception_registry.hpp
│ │ │ │ ├── catch_stdstreams.cpp
│ │ │ │ ├── catch_stdstreams.hpp
│ │ │ │ ├── catch_stream_end_stop.hpp
│ │ │ │ ├── catch_string_manip.cpp
│ │ │ │ ├── catch_string_manip.hpp
│ │ │ │ ├── catch_stringref.cpp
│ │ │ │ ├── catch_stringref.hpp
│ │ │ │ ├── catch_tag_alias_registry.cpp
│ │ │ │ ├── catch_tag_alias_registry.hpp
│ │ │ │ ├── catch_template_test_registry.hpp
│ │ │ │ ├── catch_test_case_info_hasher.cpp
│ │ │ │ ├── catch_test_case_info_hasher.hpp
│ │ │ │ ├── catch_test_case_registry_impl.cpp
│ │ │ │ ├── catch_test_case_registry_impl.hpp
│ │ │ │ ├── catch_test_case_tracker.cpp
│ │ │ │ ├── catch_test_case_tracker.hpp
│ │ │ │ ├── catch_test_failure_exception.cpp
│ │ │ │ ├── catch_test_failure_exception.hpp
│ │ │ │ ├── catch_test_macro_impl.hpp
│ │ │ │ ├── catch_test_registry.cpp
│ │ │ │ ├── catch_test_registry.hpp
│ │ │ │ ├── catch_test_run_info.hpp
│ │ │ │ ├── catch_test_spec_parser.cpp
│ │ │ │ ├── catch_test_spec_parser.hpp
│ │ │ │ ├── catch_textflow.cpp
│ │ │ │ ├── catch_textflow.hpp
│ │ │ │ ├── catch_to_string.hpp
│ │ │ │ ├── catch_uncaught_exceptions.cpp
│ │ │ │ ├── catch_uncaught_exceptions.hpp
│ │ │ │ ├── catch_uniform_floating_point_distribution.hpp
│ │ │ │ ├── catch_uniform_integer_distribution.hpp
│ │ │ │ ├── catch_unique_name.hpp
│ │ │ │ ├── catch_unique_ptr.hpp
│ │ │ │ ├── catch_void_type.hpp
│ │ │ │ ├── catch_wildcard_pattern.cpp
│ │ │ │ ├── catch_wildcard_pattern.hpp
│ │ │ │ ├── catch_windows_h_proxy.hpp
│ │ │ │ ├── catch_xmlwriter.cpp
│ │ │ │ └── catch_xmlwriter.hpp
│ │ │ │ ├── matchers
│ │ │ │ ├── catch_matchers.cpp
│ │ │ │ ├── catch_matchers.hpp
│ │ │ │ ├── catch_matchers_all.hpp
│ │ │ │ ├── catch_matchers_container_properties.cpp
│ │ │ │ ├── catch_matchers_container_properties.hpp
│ │ │ │ ├── catch_matchers_contains.hpp
│ │ │ │ ├── catch_matchers_exception.cpp
│ │ │ │ ├── catch_matchers_exception.hpp
│ │ │ │ ├── catch_matchers_floating_point.cpp
│ │ │ │ ├── catch_matchers_floating_point.hpp
│ │ │ │ ├── catch_matchers_predicate.cpp
│ │ │ │ ├── catch_matchers_predicate.hpp
│ │ │ │ ├── catch_matchers_quantifiers.cpp
│ │ │ │ ├── catch_matchers_quantifiers.hpp
│ │ │ │ ├── catch_matchers_range_equals.hpp
│ │ │ │ ├── catch_matchers_string.cpp
│ │ │ │ ├── catch_matchers_string.hpp
│ │ │ │ ├── catch_matchers_templated.cpp
│ │ │ │ ├── catch_matchers_templated.hpp
│ │ │ │ ├── catch_matchers_vector.hpp
│ │ │ │ └── internal
│ │ │ │ │ ├── catch_matchers_impl.cpp
│ │ │ │ │ └── catch_matchers_impl.hpp
│ │ │ │ ├── meson.build
│ │ │ │ └── reporters
│ │ │ │ ├── catch_reporter_automake.cpp
│ │ │ │ ├── catch_reporter_automake.hpp
│ │ │ │ ├── catch_reporter_common_base.cpp
│ │ │ │ ├── catch_reporter_common_base.hpp
│ │ │ │ ├── catch_reporter_compact.cpp
│ │ │ │ ├── catch_reporter_compact.hpp
│ │ │ │ ├── catch_reporter_console.cpp
│ │ │ │ ├── catch_reporter_console.hpp
│ │ │ │ ├── catch_reporter_cumulative_base.cpp
│ │ │ │ ├── catch_reporter_cumulative_base.hpp
│ │ │ │ ├── catch_reporter_event_listener.cpp
│ │ │ │ ├── catch_reporter_event_listener.hpp
│ │ │ │ ├── catch_reporter_helpers.cpp
│ │ │ │ ├── catch_reporter_helpers.hpp
│ │ │ │ ├── catch_reporter_json.cpp
│ │ │ │ ├── catch_reporter_json.hpp
│ │ │ │ ├── catch_reporter_junit.cpp
│ │ │ │ ├── catch_reporter_junit.hpp
│ │ │ │ ├── catch_reporter_multi.cpp
│ │ │ │ ├── catch_reporter_multi.hpp
│ │ │ │ ├── catch_reporter_registrars.cpp
│ │ │ │ ├── catch_reporter_registrars.hpp
│ │ │ │ ├── catch_reporter_sonarqube.cpp
│ │ │ │ ├── catch_reporter_sonarqube.hpp
│ │ │ │ ├── catch_reporter_streaming_base.cpp
│ │ │ │ ├── catch_reporter_streaming_base.hpp
│ │ │ │ ├── catch_reporter_tap.cpp
│ │ │ │ ├── catch_reporter_tap.hpp
│ │ │ │ ├── catch_reporter_teamcity.cpp
│ │ │ │ ├── catch_reporter_teamcity.hpp
│ │ │ │ ├── catch_reporter_xml.cpp
│ │ │ │ ├── catch_reporter_xml.hpp
│ │ │ │ └── catch_reporters_all.hpp
│ │ ├── tests
│ │ │ ├── BUILD.bazel
│ │ │ ├── CMakeLists.txt
│ │ │ ├── ExtraTests
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── ToDo.txt
│ │ │ │ ├── X01-PrefixedMacros.cpp
│ │ │ │ ├── X02-DisabledMacros.cpp
│ │ │ │ ├── X03-DisabledExceptions-DefaultHandler.cpp
│ │ │ │ ├── X04-DisabledExceptions-CustomHandler.cpp
│ │ │ │ ├── X05-DeferredStaticChecks.cpp
│ │ │ │ ├── X10-FallbackStringifier.cpp
│ │ │ │ ├── X11-DisableStringification.cpp
│ │ │ │ ├── X12-CustomDebugBreakMacro.cpp
│ │ │ │ ├── X20-AssertionStartingEventGoesBeforeAssertionIsEvaluated.cpp
│ │ │ │ ├── X21-PartialTestCaseEvents.cpp
│ │ │ │ ├── X22-BenchmarksInCumulativeReporter.cpp
│ │ │ │ ├── X23-CasingInReporterNames.cpp
│ │ │ │ ├── X24-ListenerStdoutCaptureInMultireporter.cpp
│ │ │ │ ├── X25-ListenerCanAskForCapturedStdout.cpp
│ │ │ │ ├── X26-ReporterPreferencesForPassingAssertionsIsRespected.cpp
│ │ │ │ ├── X27-CapturedStdoutInTestCaseEvents.cpp
│ │ │ │ ├── X28-ListenersGetEventsBeforeReporters.cpp
│ │ │ │ ├── X29-CustomArgumentsForReporters.cpp
│ │ │ │ ├── X30-BazelReporter.cpp
│ │ │ │ ├── X31-DuplicatedTestCases.cpp
│ │ │ │ ├── X32-DuplicatedTestCasesDifferentTags.cpp
│ │ │ │ ├── X33-DuplicatedTestCaseMethods.cpp
│ │ │ │ ├── X34-DuplicatedTestCaseMethodsDifferentFixtures.cpp
│ │ │ │ ├── X35-DuplicatedReporterNames.cpp
│ │ │ │ ├── X36-ReportingCrashWithJunitReporter.cpp
│ │ │ │ ├── X90-WindowsHeaderInclusion.cpp
│ │ │ │ ├── X91-AmalgamatedCatch.cpp
│ │ │ │ ├── X92-NoTests.cpp
│ │ │ │ └── X93-AllSkipped.cpp
│ │ │ ├── SelfTest
│ │ │ │ ├── Baselines
│ │ │ │ │ ├── automake.std.approved.txt
│ │ │ │ │ ├── automake.sw.approved.txt
│ │ │ │ │ ├── automake.sw.multi.approved.txt
│ │ │ │ │ ├── compact.sw.approved.txt
│ │ │ │ │ ├── compact.sw.multi.approved.txt
│ │ │ │ │ ├── console.std.approved.txt
│ │ │ │ │ ├── console.sw.approved.txt
│ │ │ │ │ ├── console.sw.multi.approved.txt
│ │ │ │ │ ├── console.swa4.approved.txt
│ │ │ │ │ ├── default.sw.multi.approved.txt
│ │ │ │ │ ├── junit.sw.approved.txt
│ │ │ │ │ ├── junit.sw.multi.approved.txt
│ │ │ │ │ ├── sonarqube.sw.approved.txt
│ │ │ │ │ ├── sonarqube.sw.multi.approved.txt
│ │ │ │ │ ├── tap.sw.approved.txt
│ │ │ │ │ ├── tap.sw.multi.approved.txt
│ │ │ │ │ ├── teamcity.sw.approved.txt
│ │ │ │ │ ├── teamcity.sw.multi.approved.txt
│ │ │ │ │ ├── xml.sw.approved.txt
│ │ │ │ │ └── xml.sw.multi.approved.txt
│ │ │ │ ├── IntrospectiveTests
│ │ │ │ │ ├── Algorithms.tests.cpp
│ │ │ │ │ ├── AssertionHandler.tests.cpp
│ │ │ │ │ ├── Clara.tests.cpp
│ │ │ │ │ ├── CmdLine.tests.cpp
│ │ │ │ │ ├── CmdLineHelpers.tests.cpp
│ │ │ │ │ ├── ColourImpl.tests.cpp
│ │ │ │ │ ├── Details.tests.cpp
│ │ │ │ │ ├── FloatingPoint.tests.cpp
│ │ │ │ │ ├── GeneratorsImpl.tests.cpp
│ │ │ │ │ ├── Integer.tests.cpp
│ │ │ │ │ ├── InternalBenchmark.tests.cpp
│ │ │ │ │ ├── Json.tests.cpp
│ │ │ │ │ ├── Parse.tests.cpp
│ │ │ │ │ ├── PartTracker.tests.cpp
│ │ │ │ │ ├── RandomNumberGeneration.tests.cpp
│ │ │ │ │ ├── Reporters.tests.cpp
│ │ │ │ │ ├── Sharding.tests.cpp
│ │ │ │ │ ├── Stream.tests.cpp
│ │ │ │ │ ├── String.tests.cpp
│ │ │ │ │ ├── StringManip.tests.cpp
│ │ │ │ │ ├── Tag.tests.cpp
│ │ │ │ │ ├── TestCaseInfoHasher.tests.cpp
│ │ │ │ │ ├── TestSpec.tests.cpp
│ │ │ │ │ ├── TestSpecParser.tests.cpp
│ │ │ │ │ ├── TextFlow.tests.cpp
│ │ │ │ │ ├── ToString.tests.cpp
│ │ │ │ │ ├── Traits.tests.cpp
│ │ │ │ │ ├── UniquePtr.tests.cpp
│ │ │ │ │ └── Xml.tests.cpp
│ │ │ │ ├── Misc
│ │ │ │ │ ├── invalid-test-names.input
│ │ │ │ │ ├── plain-old-tests.input
│ │ │ │ │ └── special-characters-in-file.input
│ │ │ │ ├── TestRegistrations.cpp
│ │ │ │ ├── TimingTests
│ │ │ │ │ └── Sleep.tests.cpp
│ │ │ │ ├── UsageTests
│ │ │ │ │ ├── Approx.tests.cpp
│ │ │ │ │ ├── BDD.tests.cpp
│ │ │ │ │ ├── Benchmark.tests.cpp
│ │ │ │ │ ├── Class.tests.cpp
│ │ │ │ │ ├── Compilation.tests.cpp
│ │ │ │ │ ├── Condition.tests.cpp
│ │ │ │ │ ├── Decomposition.tests.cpp
│ │ │ │ │ ├── EnumToString.tests.cpp
│ │ │ │ │ ├── Exception.tests.cpp
│ │ │ │ │ ├── Generators.tests.cpp
│ │ │ │ │ ├── Matchers.tests.cpp
│ │ │ │ │ ├── MatchersRanges.tests.cpp
│ │ │ │ │ ├── Message.tests.cpp
│ │ │ │ │ ├── Misc.tests.cpp
│ │ │ │ │ ├── Skip.tests.cpp
│ │ │ │ │ ├── ToStringByte.tests.cpp
│ │ │ │ │ ├── ToStringChrono.tests.cpp
│ │ │ │ │ ├── ToStringGeneral.tests.cpp
│ │ │ │ │ ├── ToStringOptional.tests.cpp
│ │ │ │ │ ├── ToStringPair.tests.cpp
│ │ │ │ │ ├── ToStringTuple.tests.cpp
│ │ │ │ │ ├── ToStringVariant.tests.cpp
│ │ │ │ │ ├── ToStringVector.tests.cpp
│ │ │ │ │ ├── ToStringWhich.tests.cpp
│ │ │ │ │ ├── Tricky.tests.cpp
│ │ │ │ │ └── VariadicMacros.tests.cpp
│ │ │ │ └── helpers
│ │ │ │ │ ├── parse_test_spec.cpp
│ │ │ │ │ ├── parse_test_spec.hpp
│ │ │ │ │ ├── range_test_helpers.hpp
│ │ │ │ │ └── type_with_lit_0_comparisons.hpp
│ │ │ ├── TestScripts
│ │ │ │ ├── ConfigureTestsCommon.py
│ │ │ │ ├── DiscoverTests
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ ├── VerifyRegistration.py
│ │ │ │ │ └── register-tests.cpp
│ │ │ │ ├── testBazelReporter.py
│ │ │ │ ├── testBazelSharding.py
│ │ │ │ ├── testConfigureDefaultReporter.py
│ │ │ │ ├── testConfigureDisable.py
│ │ │ │ ├── testConfigureDisableStringification.py
│ │ │ │ ├── testConfigureExperimentalRedirect.py
│ │ │ │ ├── testPartialTestCaseEvent.py
│ │ │ │ ├── testRandomOrder.py
│ │ │ │ └── testSharding.py
│ │ │ └── meson.build
│ │ ├── third_party
│ │ │ └── clara.hpp
│ │ └── tools
│ │ │ ├── misc
│ │ │ ├── CMakeLists.txt
│ │ │ ├── appveyorBuildConfigurationScript.bat
│ │ │ ├── appveyorMergeCoverageScript.py
│ │ │ ├── appveyorTestRunScript.bat
│ │ │ ├── coverage-helper.cpp
│ │ │ └── installOpenCppCoverage.ps1
│ │ │ └── scripts
│ │ │ ├── approvalTests.py
│ │ │ ├── approve.py
│ │ │ ├── buildAndTest.cmd
│ │ │ ├── buildAndTest.sh
│ │ │ ├── checkConvenienceHeaders.py
│ │ │ ├── checkDuplicateFilenames.py
│ │ │ ├── checkLicense.py
│ │ │ ├── developBuild.py
│ │ │ ├── extractFeaturesFromReleaseNotes.py
│ │ │ ├── fixWhitespace.py
│ │ │ ├── generateAmalgamatedFiles.py
│ │ │ ├── majorRelease.py
│ │ │ ├── minorRelease.py
│ │ │ ├── patchRelease.py
│ │ │ ├── releaseCommon.py
│ │ │ ├── scriptCommon.py
│ │ │ ├── updateDocumentSnippets.py
│ │ │ └── updateDocumentToC.py
│ ├── jnipp
│ │ ├── Android.bp
│ │ ├── CHANGELOG.md
│ │ ├── CMakeLists.txt
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── android
│ │ │ ├── AndroidManifest.xml
│ │ │ └── CMakeLists.txt
│ │ ├── build.gradle
│ │ ├── changes
│ │ │ ├── changes
│ │ │ │ └── pr.40.md
│ │ │ └── fixes
│ │ │ │ └── pr.49.md
│ │ ├── jnipp.cpp
│ │ ├── jnipp.h
│ │ ├── jnipp.vcxproj
│ │ ├── jnipp.vcxproj.filters
│ │ ├── makefile
│ │ ├── proclamation.json
│ │ └── tests
│ │ │ ├── CMakeLists.txt
│ │ │ ├── external_create.cpp
│ │ │ ├── external_detach.cpp
│ │ │ ├── main.cpp
│ │ │ ├── testing.h
│ │ │ ├── tests.vcxproj
│ │ │ └── tests.vcxproj.filters
│ ├── jsoncpp
│ │ ├── .clang-format
│ │ ├── .clang-tidy
│ │ ├── .gitattributes
│ │ ├── .gitignore
│ │ ├── AUTHORS
│ │ ├── BUILD.bazel
│ │ ├── CMakeLists.txt
│ │ ├── CONTRIBUTING.md
│ │ ├── CTestConfig.cmake
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── SECURITY.md
│ │ ├── amalgamate.py
│ │ ├── appveyor.yml
│ │ ├── cmake
│ │ │ └── JoinPaths.cmake
│ │ ├── dev.makefile
│ │ ├── devtools
│ │ │ ├── __init__.py
│ │ │ ├── agent_vmw7.json
│ │ │ ├── agent_vmxp.json
│ │ │ ├── antglob.py
│ │ │ ├── batchbuild.py
│ │ │ ├── fixeol.py
│ │ │ ├── licenseupdater.py
│ │ │ └── tarball.py
│ │ ├── doc
│ │ │ ├── doxyfile.in
│ │ │ ├── footer.html
│ │ │ ├── header.html
│ │ │ ├── jsoncpp.dox
│ │ │ ├── readme.txt
│ │ │ ├── roadmap.dox
│ │ │ └── web_doxyfile.in
│ │ ├── doxybuild.py
│ │ ├── example
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── readFromStream
│ │ │ │ ├── errorFormat.json
│ │ │ │ ├── readFromStream.cpp
│ │ │ │ └── withComment.json
│ │ │ ├── readFromString
│ │ │ │ └── readFromString.cpp
│ │ │ ├── streamWrite
│ │ │ │ └── streamWrite.cpp
│ │ │ └── stringWrite
│ │ │ │ └── stringWrite.cpp
│ │ ├── get_version.pl
│ │ ├── include
│ │ │ ├── CMakeLists.txt
│ │ │ ├── PreventInBuildInstalls.cmake
│ │ │ ├── PreventInSourceBuilds.cmake
│ │ │ └── json
│ │ │ │ ├── allocator.h
│ │ │ │ ├── assertions.h
│ │ │ │ ├── config.h
│ │ │ │ ├── forwards.h
│ │ │ │ ├── json.h
│ │ │ │ ├── json_features.h
│ │ │ │ ├── reader.h
│ │ │ │ ├── value.h
│ │ │ │ ├── version.h
│ │ │ │ └── writer.h
│ │ ├── jsoncpp-namespaced-targets.cmake
│ │ ├── jsoncppConfig.cmake.in
│ │ ├── jsoncppConfig.cmake.meson.in
│ │ ├── meson_options.txt
│ │ ├── pkg-config
│ │ │ └── jsoncpp.pc.in
│ │ ├── reformat.sh
│ │ ├── src
│ │ │ ├── CMakeLists.txt
│ │ │ ├── jsontestrunner
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ └── main.cpp
│ │ │ ├── lib_json
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── json_reader.cpp
│ │ │ │ ├── json_tool.h
│ │ │ │ ├── json_value.cpp
│ │ │ │ ├── json_valueiterator.inl
│ │ │ │ └── json_writer.cpp
│ │ │ └── test_lib_json
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── fuzz.cpp
│ │ │ │ ├── fuzz.dict
│ │ │ │ ├── fuzz.h
│ │ │ │ ├── jsontest.cpp
│ │ │ │ ├── jsontest.h
│ │ │ │ └── main.cpp
│ │ ├── test
│ │ │ ├── cleantests.py
│ │ │ ├── data
│ │ │ │ ├── fail_invalid_quote.json
│ │ │ │ ├── fail_strict_comment_01.json
│ │ │ │ ├── fail_strict_comment_02.json
│ │ │ │ ├── fail_strict_comment_03.json
│ │ │ │ ├── fail_test_array_01.json
│ │ │ │ ├── fail_test_array_02.json
│ │ │ │ ├── fail_test_object_01.json
│ │ │ │ ├── fail_test_object_02.json
│ │ │ │ ├── fail_test_stack_limit.json
│ │ │ │ ├── legacy_test_array_01.expected
│ │ │ │ ├── legacy_test_array_01.json
│ │ │ │ ├── legacy_test_array_02.expected
│ │ │ │ ├── legacy_test_array_02.json
│ │ │ │ ├── legacy_test_array_03.expected
│ │ │ │ ├── legacy_test_array_03.json
│ │ │ │ ├── legacy_test_array_04.expected
│ │ │ │ ├── legacy_test_array_04.json
│ │ │ │ ├── legacy_test_array_05.expected
│ │ │ │ ├── legacy_test_array_05.json
│ │ │ │ ├── legacy_test_array_06.expected
│ │ │ │ ├── legacy_test_array_06.json
│ │ │ │ ├── legacy_test_array_07.expected
│ │ │ │ ├── legacy_test_array_07.json
│ │ │ │ ├── legacy_test_basic_01.expected
│ │ │ │ ├── legacy_test_basic_01.json
│ │ │ │ ├── legacy_test_basic_02.expected
│ │ │ │ ├── legacy_test_basic_02.json
│ │ │ │ ├── legacy_test_basic_03.expected
│ │ │ │ ├── legacy_test_basic_03.json
│ │ │ │ ├── legacy_test_basic_04.expected
│ │ │ │ ├── legacy_test_basic_04.json
│ │ │ │ ├── legacy_test_basic_05.expected
│ │ │ │ ├── legacy_test_basic_05.json
│ │ │ │ ├── legacy_test_basic_06.expected
│ │ │ │ ├── legacy_test_basic_06.json
│ │ │ │ ├── legacy_test_basic_07.expected
│ │ │ │ ├── legacy_test_basic_07.json
│ │ │ │ ├── legacy_test_basic_08.expected
│ │ │ │ ├── legacy_test_basic_08.json
│ │ │ │ ├── legacy_test_basic_09.expected
│ │ │ │ ├── legacy_test_basic_09.json
│ │ │ │ ├── legacy_test_comment_00.expected
│ │ │ │ ├── legacy_test_comment_00.json
│ │ │ │ ├── legacy_test_comment_01.expected
│ │ │ │ ├── legacy_test_comment_01.json
│ │ │ │ ├── legacy_test_comment_02.expected
│ │ │ │ ├── legacy_test_comment_02.json
│ │ │ │ ├── legacy_test_complex_01.expected
│ │ │ │ ├── legacy_test_complex_01.json
│ │ │ │ ├── legacy_test_integer_01.expected
│ │ │ │ ├── legacy_test_integer_01.json
│ │ │ │ ├── legacy_test_integer_02.expected
│ │ │ │ ├── legacy_test_integer_02.json
│ │ │ │ ├── legacy_test_integer_03.expected
│ │ │ │ ├── legacy_test_integer_03.json
│ │ │ │ ├── legacy_test_integer_04.expected
│ │ │ │ ├── legacy_test_integer_04.json
│ │ │ │ ├── legacy_test_integer_05.expected
│ │ │ │ ├── legacy_test_integer_05.json
│ │ │ │ ├── legacy_test_integer_06_64bits.expected
│ │ │ │ ├── legacy_test_integer_06_64bits.json
│ │ │ │ ├── legacy_test_integer_07_64bits.expected
│ │ │ │ ├── legacy_test_integer_07_64bits.json
│ │ │ │ ├── legacy_test_integer_08_64bits.expected
│ │ │ │ ├── legacy_test_integer_08_64bits.json
│ │ │ │ ├── legacy_test_large_01.expected
│ │ │ │ ├── legacy_test_large_01.json
│ │ │ │ ├── legacy_test_object_01.expected
│ │ │ │ ├── legacy_test_object_01.json
│ │ │ │ ├── legacy_test_object_02.expected
│ │ │ │ ├── legacy_test_object_02.json
│ │ │ │ ├── legacy_test_object_03.expected
│ │ │ │ ├── legacy_test_object_03.json
│ │ │ │ ├── legacy_test_object_04.expected
│ │ │ │ ├── legacy_test_object_04.json
│ │ │ │ ├── legacy_test_preserve_comment_01.expected
│ │ │ │ ├── legacy_test_preserve_comment_01.json
│ │ │ │ ├── legacy_test_real_01.expected
│ │ │ │ ├── legacy_test_real_01.json
│ │ │ │ ├── legacy_test_real_02.expected
│ │ │ │ ├── legacy_test_real_02.json
│ │ │ │ ├── legacy_test_real_03.expected
│ │ │ │ ├── legacy_test_real_03.json
│ │ │ │ ├── legacy_test_real_04.expected
│ │ │ │ ├── legacy_test_real_04.json
│ │ │ │ ├── legacy_test_real_05.expected
│ │ │ │ ├── legacy_test_real_05.json
│ │ │ │ ├── legacy_test_real_06.expected
│ │ │ │ ├── legacy_test_real_06.json
│ │ │ │ ├── legacy_test_real_07.expected
│ │ │ │ ├── legacy_test_real_07.json
│ │ │ │ ├── legacy_test_real_08.expected
│ │ │ │ ├── legacy_test_real_08.json
│ │ │ │ ├── legacy_test_real_09.expected
│ │ │ │ ├── legacy_test_real_09.json
│ │ │ │ ├── legacy_test_real_10.expected
│ │ │ │ ├── legacy_test_real_10.json
│ │ │ │ ├── legacy_test_real_11.expected
│ │ │ │ ├── legacy_test_real_11.json
│ │ │ │ ├── legacy_test_real_12.expected
│ │ │ │ ├── legacy_test_real_12.json
│ │ │ │ ├── legacy_test_real_13.expected
│ │ │ │ ├── legacy_test_real_13.json
│ │ │ │ ├── legacy_test_string_01.expected
│ │ │ │ ├── legacy_test_string_01.json
│ │ │ │ ├── legacy_test_string_02.expected
│ │ │ │ ├── legacy_test_string_02.json
│ │ │ │ ├── legacy_test_string_03.expected
│ │ │ │ ├── legacy_test_string_03.json
│ │ │ │ ├── legacy_test_string_04.expected
│ │ │ │ ├── legacy_test_string_04.json
│ │ │ │ ├── legacy_test_string_05.expected
│ │ │ │ ├── legacy_test_string_05.json
│ │ │ │ ├── legacy_test_string_unicode_01.expected
│ │ │ │ ├── legacy_test_string_unicode_01.json
│ │ │ │ ├── legacy_test_string_unicode_02.expected
│ │ │ │ ├── legacy_test_string_unicode_02.json
│ │ │ │ ├── legacy_test_string_unicode_03.expected
│ │ │ │ ├── legacy_test_string_unicode_03.json
│ │ │ │ ├── legacy_test_string_unicode_04.expected
│ │ │ │ ├── legacy_test_string_unicode_04.json
│ │ │ │ ├── legacy_test_string_unicode_05.expected
│ │ │ │ ├── legacy_test_string_unicode_05.json
│ │ │ │ ├── test_array_08.expected
│ │ │ │ ├── test_array_08.json
│ │ │ │ ├── test_object_05.expected
│ │ │ │ └── test_object_05.json
│ │ │ ├── generate_expected.py
│ │ │ ├── jsonchecker
│ │ │ │ ├── fail1.json
│ │ │ │ ├── fail10.json
│ │ │ │ ├── fail11.json
│ │ │ │ ├── fail12.json
│ │ │ │ ├── fail13.json
│ │ │ │ ├── fail14.json
│ │ │ │ ├── fail15.json
│ │ │ │ ├── fail16.json
│ │ │ │ ├── fail17.json
│ │ │ │ ├── fail18.json
│ │ │ │ ├── fail19.json
│ │ │ │ ├── fail2.json
│ │ │ │ ├── fail20.json
│ │ │ │ ├── fail21.json
│ │ │ │ ├── fail22.json
│ │ │ │ ├── fail23.json
│ │ │ │ ├── fail24.json
│ │ │ │ ├── fail25.json
│ │ │ │ ├── fail26.json
│ │ │ │ ├── fail27.json
│ │ │ │ ├── fail28.json
│ │ │ │ ├── fail29.json
│ │ │ │ ├── fail3.json
│ │ │ │ ├── fail30.json
│ │ │ │ ├── fail31.json
│ │ │ │ ├── fail32.json
│ │ │ │ ├── fail33.json
│ │ │ │ ├── fail4.json
│ │ │ │ ├── fail5.json
│ │ │ │ ├── fail6.json
│ │ │ │ ├── fail7.json
│ │ │ │ ├── fail8.json
│ │ │ │ ├── fail9.json
│ │ │ │ ├── pass1.json
│ │ │ │ ├── pass2.json
│ │ │ │ ├── pass3.json
│ │ │ │ └── readme.txt
│ │ │ ├── pyjsontestrunner.py
│ │ │ ├── runjsontests.py
│ │ │ └── rununittests.py
│ │ └── version.in
│ └── metal-cpp
│ │ ├── Foundation
│ │ ├── Foundation.hpp
│ │ ├── NSArray.hpp
│ │ ├── NSAutoreleasePool.hpp
│ │ ├── NSBundle.hpp
│ │ ├── NSData.hpp
│ │ ├── NSDate.hpp
│ │ ├── NSDefines.hpp
│ │ ├── NSDictionary.hpp
│ │ ├── NSEnumerator.hpp
│ │ ├── NSError.hpp
│ │ ├── NSLock.hpp
│ │ ├── NSNotification.hpp
│ │ ├── NSNumber.hpp
│ │ ├── NSObjCRuntime.hpp
│ │ ├── NSObject.hpp
│ │ ├── NSPrivate.hpp
│ │ ├── NSProcessInfo.hpp
│ │ ├── NSRange.hpp
│ │ ├── NSSet.hpp
│ │ ├── NSSharedPtr.hpp
│ │ ├── NSString.hpp
│ │ ├── NSTypes.hpp
│ │ └── NSURL.hpp
│ │ ├── LICENSE.txt
│ │ ├── Metal
│ │ ├── MTLAccelerationStructure.hpp
│ │ ├── MTLAccelerationStructureCommandEncoder.hpp
│ │ ├── MTLAccelerationStructureTypes.hpp
│ │ ├── MTLArgument.hpp
│ │ ├── MTLArgumentEncoder.hpp
│ │ ├── MTLBinaryArchive.hpp
│ │ ├── MTLBlitCommandEncoder.hpp
│ │ ├── MTLBlitPass.hpp
│ │ ├── MTLBuffer.hpp
│ │ ├── MTLCaptureManager.hpp
│ │ ├── MTLCaptureScope.hpp
│ │ ├── MTLCommandBuffer.hpp
│ │ ├── MTLCommandEncoder.hpp
│ │ ├── MTLCommandQueue.hpp
│ │ ├── MTLComputeCommandEncoder.hpp
│ │ ├── MTLComputePass.hpp
│ │ ├── MTLComputePipeline.hpp
│ │ ├── MTLCounters.hpp
│ │ ├── MTLDefines.hpp
│ │ ├── MTLDepthStencil.hpp
│ │ ├── MTLDevice.hpp
│ │ ├── MTLDrawable.hpp
│ │ ├── MTLDynamicLibrary.hpp
│ │ ├── MTLEvent.hpp
│ │ ├── MTLFence.hpp
│ │ ├── MTLFunctionConstantValues.hpp
│ │ ├── MTLFunctionDescriptor.hpp
│ │ ├── MTLFunctionHandle.hpp
│ │ ├── MTLFunctionLog.hpp
│ │ ├── MTLFunctionStitching.hpp
│ │ ├── MTLHeaderBridge.hpp
│ │ ├── MTLHeap.hpp
│ │ ├── MTLIOCommandBuffer.hpp
│ │ ├── MTLIOCommandQueue.hpp
│ │ ├── MTLIOCompressor.hpp
│ │ ├── MTLIndirectCommandBuffer.hpp
│ │ ├── MTLIndirectCommandEncoder.hpp
│ │ ├── MTLIntersectionFunctionTable.hpp
│ │ ├── MTLLibrary.hpp
│ │ ├── MTLLinkedFunctions.hpp
│ │ ├── MTLParallelRenderCommandEncoder.hpp
│ │ ├── MTLPipeline.hpp
│ │ ├── MTLPixelFormat.hpp
│ │ ├── MTLPrivate.hpp
│ │ ├── MTLRasterizationRate.hpp
│ │ ├── MTLRenderCommandEncoder.hpp
│ │ ├── MTLRenderPass.hpp
│ │ ├── MTLRenderPipeline.hpp
│ │ ├── MTLResource.hpp
│ │ ├── MTLResourceStateCommandEncoder.hpp
│ │ ├── MTLResourceStatePass.hpp
│ │ ├── MTLSampler.hpp
│ │ ├── MTLStageInputOutputDescriptor.hpp
│ │ ├── MTLTexture.hpp
│ │ ├── MTLTypes.hpp
│ │ ├── MTLVersion.hpp
│ │ ├── MTLVertexDescriptor.hpp
│ │ ├── MTLVisibleFunctionTable.hpp
│ │ └── Metal.hpp
│ │ ├── QuartzCore
│ │ ├── CADefines.hpp
│ │ ├── CAMetalDrawable.hpp
│ │ ├── CAMetalLayer.hpp
│ │ ├── CAPrivate.hpp
│ │ └── QuartzCore.hpp
│ │ ├── README.md
│ │ └── SingleHeader
│ │ └── MakeSingleHeader.py
├── loader
│ ├── .gitignore
│ ├── AndroidManifest.xml.in
│ ├── CMakeLists.txt
│ ├── OpenXRConfig.cmake.in
│ ├── abi.json
│ ├── abi.json.license
│ ├── additional_manifest.mf.in
│ ├── additional_manifest.mf.in.license
│ ├── android_utilities.cpp
│ ├── android_utilities.h
│ ├── api_layer_interface.cpp
│ ├── api_layer_interface.hpp
│ ├── build.gradle
│ ├── exception_handling.hpp
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ ├── loader.rc
│ ├── loader_core.cpp
│ ├── loader_init_data.cpp
│ ├── loader_init_data.hpp
│ ├── loader_instance.cpp
│ ├── loader_instance.hpp
│ ├── loader_logger.cpp
│ ├── loader_logger.hpp
│ ├── loader_logger_recorders.cpp
│ ├── loader_logger_recorders.hpp
│ ├── loader_platform.hpp
│ ├── manifest_file.cpp
│ ├── manifest_file.hpp
│ ├── module.json
│ ├── module.json.license
│ ├── openxr-loader.def
│ ├── openxr-loader.expsym
│ ├── openxr-loader.map
│ ├── openxr.pc.in
│ ├── openxr_loader_for_android.pom
│ ├── prefab.json
│ ├── prefab.json.license
│ ├── runtime_interface.cpp
│ ├── runtime_interface.hpp
│ └── settings.gradle
├── scripts
│ ├── api_dump_generator.py
│ ├── automatic_source_generator.py
│ ├── generate_api_layer_manifest.py
│ ├── generate_runtime_manifest.py
│ ├── interaction_profile_processor.py
│ ├── loader_source_generator.py
│ ├── src_genxr.py
│ ├── template_interaction_info_generated.cpp
│ ├── template_interaction_info_generated.h
│ ├── utility_source_generator.py
│ └── validation_layer_generator.py
├── tests
│ ├── CMakeLists.txt
│ ├── c_compile_test
│ │ ├── AndroidManifest.xml
│ │ ├── CMakeLists.txt
│ │ ├── build.gradle
│ │ ├── gradle
│ │ │ └── wrapper
│ │ │ │ ├── gradle-wrapper.jar
│ │ │ │ ├── gradle-wrapper.jar.license
│ │ │ │ ├── gradle-wrapper.properties
│ │ │ │ └── gradle-wrapper.properties.license
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ ├── gradlew.bat.license
│ │ ├── gradlew.license
│ │ ├── main.c
│ │ └── settings.gradle
│ ├── hello_xr
│ │ ├── AndroidManifest.xml
│ │ ├── CMakeLists.txt
│ │ ├── android_resources
│ │ │ ├── drawable
│ │ │ │ ├── ic_helloxr_es.xml
│ │ │ │ └── ic_helloxr_vk.xml
│ │ │ ├── helloxr-es-24px.svg
│ │ │ ├── helloxr-es-24px.svg.license
│ │ │ ├── helloxr-vk-24px.svg
│ │ │ ├── helloxr-vk-24px.svg.license
│ │ │ ├── opengles
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ │ └── ic_helloxr_launcher.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ │ └── ic_helloxr_launcher.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ │ └── ic_helloxr_launcher.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ │ └── ic_helloxr_launcher.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ │ └── ic_helloxr_launcher.png
│ │ │ │ └── mipmap-xxxhdpi
│ │ │ │ │ └── ic_helloxr_launcher.png
│ │ │ ├── values
│ │ │ │ └── ic_helloxr_launcher_background.xml
│ │ │ └── vulkan
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ └── ic_helloxr_launcher.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ └── ic_helloxr_launcher.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ └── ic_helloxr_launcher.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ └── ic_helloxr_launcher.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ └── ic_helloxr_launcher.png
│ │ │ │ └── mipmap-xxxhdpi
│ │ │ │ └── ic_helloxr_launcher.png
│ │ ├── build.gradle
│ │ ├── check.h
│ │ ├── common.h
│ │ ├── d3d_common.cpp
│ │ ├── d3d_common.h
│ │ ├── defines.h
│ │ ├── geometry.h
│ │ ├── gradle.properties
│ │ ├── gradle
│ │ │ └── wrapper
│ │ │ │ ├── gradle-wrapper.jar
│ │ │ │ ├── gradle-wrapper.jar.license
│ │ │ │ ├── gradle-wrapper.properties
│ │ │ │ └── gradle-wrapper.properties.license
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ ├── gradlew.bat.license
│ │ ├── gradlew.license
│ │ ├── graphicsapi.h
│ │ ├── graphicsplugin.h
│ │ ├── graphicsplugin_d3d11.cpp
│ │ ├── graphicsplugin_d3d12.cpp
│ │ ├── graphicsplugin_factory.cpp
│ │ ├── graphicsplugin_metal.cpp
│ │ ├── graphicsplugin_opengl.cpp
│ │ ├── graphicsplugin_opengles.cpp
│ │ ├── graphicsplugin_vulkan.cpp
│ │ ├── hello_xr.1
│ │ ├── logger.cpp
│ │ ├── logger.h
│ │ ├── main.cpp
│ │ ├── openxr_program.cpp
│ │ ├── openxr_program.h
│ │ ├── options.h
│ │ ├── pch.cpp
│ │ ├── pch.h
│ │ ├── platformdata.h
│ │ ├── platformplugin.h
│ │ ├── platformplugin_android.cpp
│ │ ├── platformplugin_factory.cpp
│ │ ├── platformplugin_posix.cpp
│ │ ├── platformplugin_win32.cpp
│ │ ├── psvr2_eye_tracking.cpp
│ │ ├── psvr2_eye_tracking.h
│ │ ├── settings.gradle
│ │ ├── stb_image.c
│ │ ├── stb_image.h
│ │ ├── stb_image_write.c
│ │ ├── stb_image_write.h
│ │ ├── stb_vorbis.c
│ │ ├── stb_vorbis.h
│ │ ├── streamline_wrapper.hpp
│ │ ├── utils.cpp
│ │ ├── utils.h
│ │ └── vulkan_shaders
│ │ │ ├── frag.glsl
│ │ │ ├── frag.spv.license
│ │ │ ├── vert.glsl
│ │ │ └── vert.spv.license
│ ├── list
│ │ ├── CMakeLists.txt
│ │ ├── list.cpp
│ │ └── openxr_runtime_list.1
│ ├── list_json
│ │ ├── AndroidManifest.xml
│ │ ├── CMakeLists.txt
│ │ ├── build.gradle
│ │ ├── list_json.cpp
│ │ ├── openxr_runtime_list_json.1
│ │ └── settings.gradle
│ └── loader_test
│ │ ├── AndroidManifest.xml
│ │ ├── CMakeLists.txt
│ │ ├── android_assets
│ │ └── openxr
│ │ │ └── 1
│ │ │ └── api_layers
│ │ │ └── explicit.d
│ │ │ ├── XrApiLayer_test.json
│ │ │ ├── XrApiLayer_test.json.license
│ │ │ ├── XrApiLayer_test_badjson_api_float.json
│ │ │ ├── XrApiLayer_test_badjson_api_float.json.license
│ │ │ ├── XrApiLayer_test_badjson_api_int.json
│ │ │ ├── XrApiLayer_test_badjson_api_int.json.license
│ │ │ ├── XrApiLayer_test_badjson_api_major_high.json
│ │ │ ├── XrApiLayer_test_badjson_api_major_high.json.license
│ │ │ ├── XrApiLayer_test_badjson_api_string.json
│ │ │ ├── XrApiLayer_test_badjson_api_string.json.license
│ │ │ ├── XrApiLayer_test_badjson_file_ver_all_low.json
│ │ │ ├── XrApiLayer_test_badjson_file_ver_all_low.json.license
│ │ │ ├── XrApiLayer_test_badjson_file_ver_int.json
│ │ │ ├── XrApiLayer_test_badjson_file_ver_int.json.license
│ │ │ ├── XrApiLayer_test_badjson_file_ver_major_high.json
│ │ │ ├── XrApiLayer_test_badjson_file_ver_major_high.json.license
│ │ │ ├── XrApiLayer_test_badjson_file_ver_minor_high.json
│ │ │ ├── XrApiLayer_test_badjson_file_ver_minor_high.json.license
│ │ │ ├── XrApiLayer_test_badjson_file_ver_missing.json
│ │ │ ├── XrApiLayer_test_badjson_file_ver_missing.json.license
│ │ │ ├── XrApiLayer_test_badjson_file_ver_string.json
│ │ │ ├── XrApiLayer_test_badjson_file_ver_string.json.license
│ │ │ ├── XrApiLayer_test_badjson_layer_empty.json
│ │ │ ├── XrApiLayer_test_badjson_layer_empty.json.license
│ │ │ ├── XrApiLayer_test_badjson_layer_missing.json
│ │ │ ├── XrApiLayer_test_badjson_layer_missing.json.license
│ │ │ ├── XrApiLayer_test_badjson_name_int.json
│ │ │ ├── XrApiLayer_test_badjson_name_int.json.license
│ │ │ ├── XrApiLayer_test_badjson_name_missing.json
│ │ │ ├── XrApiLayer_test_badjson_name_missing.json.license
│ │ │ ├── XrApiLayer_test_badjson_path_int.json
│ │ │ ├── XrApiLayer_test_badjson_path_int.json.license
│ │ │ ├── XrApiLayer_test_badjson_path_missing.json
│ │ │ ├── XrApiLayer_test_badjson_path_missing.json.license
│ │ │ ├── XrApiLayer_test_badjson_path_no_file.json
│ │ │ ├── XrApiLayer_test_badjson_path_no_file.json.license
│ │ │ ├── XrApiLayer_test_badjson_relative_path.json
│ │ │ ├── XrApiLayer_test_badjson_relative_path.json.license
│ │ │ ├── XrApiLayer_test_badnegotiate_always.json
│ │ │ ├── XrApiLayer_test_badnegotiate_always.json.license
│ │ │ ├── XrApiLayer_test_badnegotiate_invalid_api.json
│ │ │ ├── XrApiLayer_test_badnegotiate_invalid_api.json.license
│ │ │ ├── XrApiLayer_test_badnegotiate_invalid_gipa.json
│ │ │ ├── XrApiLayer_test_badnegotiate_invalid_gipa.json.license
│ │ │ ├── XrApiLayer_test_badnegotiate_invalid_interface.json
│ │ │ ├── XrApiLayer_test_badnegotiate_invalid_interface.json.license
│ │ │ ├── XrApiLayer_test_good_relative_path.json
│ │ │ └── XrApiLayer_test_good_relative_path.json.license
│ │ ├── build.gradle
│ │ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ ├── gradle-wrapper.jar.license
│ │ │ ├── gradle-wrapper.properties
│ │ │ └── gradle-wrapper.properties.license
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ ├── gradlew.bat.license
│ │ ├── gradlew.license
│ │ ├── loader_test.cpp
│ │ ├── loader_test_utils.cpp
│ │ ├── loader_test_utils.hpp
│ │ ├── settings.gradle
│ │ ├── test_layers
│ │ ├── CMakeLists.txt
│ │ ├── XrApiLayer_test.def
│ │ ├── XrApiLayer_test.expsym
│ │ ├── XrApiLayer_test.map
│ │ └── layer_test.cpp
│ │ └── test_runtimes
│ │ ├── CMakeLists.txt
│ │ ├── runtime_test.cpp
│ │ ├── test_runtime.def
│ │ ├── test_runtime.expsym
│ │ └── test_runtime.map
├── version.cmake
└── version.gradle
└── tox.ini
/.azure-pipelines/nuget/NugetTemplate/OpenXR.Loader.nuspec:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 | OpenXR.Loader
9 |
10 | Khronos Group
11 | Khronos Group
12 | false
13 | Apache-2.0 OR MIT
14 | https://github.com/KhronosGroup/OpenXR-SDK
15 | Khronos OpenXR loader and headers required to build a Win32 or UWP OpenXR application
16 | native khronos openxr loader
17 |
18 |
19 |
--------------------------------------------------------------------------------
/.azure-pipelines/nuget/NugetTemplate/build/native/OpenXR.Loader.props:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 | $(MSBuildThisFileDirectory)..\..\
8 |
9 |
10 |
--------------------------------------------------------------------------------
/.azure-pipelines/openxr-sdk.yml:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2019-2025 The Khronos Group Inc.
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | # Main azure-pipelines configuration for the OpenXR-SDK repo.
5 |
6 | trigger:
7 | branches:
8 | include:
9 | - "*"
10 | variables:
11 | VULKAN_SDK_VERSION: "1.1.114.0"
12 |
13 | stages:
14 | - stage: Build
15 | jobs:
16 | - template: shared/build_jobs.yml
17 | parameters:
18 | isSdkSourceRepo: false
19 |
--------------------------------------------------------------------------------
/.azure-pipelines/shared/codespell.yml:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2019-2025 The Khronos Group Inc.
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | jobs:
5 | - job: check_codespell
6 | displayName: "codespell"
7 | pool:
8 | vmImage: "ubuntu-latest"
9 | container: khronosgroup/docker-images:openxr-sdk.20240924@sha256:5e6a6f5d72dc4a20d5c33f12550fdd9b6a1206e94d6cf1382e0697a5726c424c
10 |
11 | steps:
12 | - checkout: self
13 | lfs: true
14 |
15 | - script: ./checkCodespell
16 | displayName: Run Codespell script
17 |
--------------------------------------------------------------------------------
/.azure-pipelines/shared/print_windows_artifact_names.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 | # Copyright (c) 2019-2025 The Khronos Group Inc.
3 | # SPDX-License-Identifier: Apache-2.0
4 |
5 | from itertools import product
6 |
7 | from shared import PLATFORMS, TRUE_FALSE, VS_VERSION, make_win_artifact_name
8 |
9 | if __name__ == "__main__":
10 |
11 | for platform, uwp in product(PLATFORMS, TRUE_FALSE):
12 | print(make_win_artifact_name(platform, uwp))
13 |
--------------------------------------------------------------------------------
/.azure-pipelines/shared/shared.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2019-2025 The Khronos Group Inc.
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | import json
5 | import sys
6 |
7 | VS_VERSION = 'Visual Studio 17 2022'
8 |
9 | PLATFORMS = ('Win32', 'x64', 'ARM64')
10 |
11 | TRUE_FALSE = (True, False)
12 |
13 |
14 | def make_win_artifact_name(platform, uwp):
15 | return 'loader_{}{}'.format(
16 | platform.lower(),
17 | '_uwp' if uwp else '',
18 | )
19 |
20 |
21 | def output_json(data):
22 | if len(sys.argv) == 2:
23 | print(
24 | "##vso[task.setVariable variable={};isOutput=true]{}".format(sys.argv[1], json.dumps(data)))
25 | else:
26 | print(json.dumps(data, indent=4))
27 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2017-2025 The Khronos Group Inc.
2 | #
3 | # SPDX-License-Identifier: Apache-2.0
4 |
5 | # http://editorconfig.org
6 | root = true
7 |
8 | [*]
9 | charset = utf-8
10 | trim_trailing_whitespace = false
11 | insert_final_newline = true
12 |
13 | [*.xml,*.rnc]
14 | trim_trailing_whitespace = true
15 |
16 | [*.xml]
17 | indent_style = space
18 | trim_trailing_whitespace = true
19 | indent_size = 4
20 |
21 | [*.cmake,CMakeLists.txt]
22 | indent_style = space
23 | indent_size = 4
24 | trim_trailing_whitespace = true
25 |
26 | [*.sh]
27 | trim_trailing_whitespace = true
28 | end_of_line = lf
29 |
30 | [*.adoc]
31 | trim_trailing_whitespace = true
32 | indent_style = space
33 | indent_size = 2
34 |
--------------------------------------------------------------------------------
/.env:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2022-2025 The Khronos Group Inc.
2 | #
3 | # SPDX-License-Identifier: Apache-2.0
4 |
5 | # Improves the Python editing experience with vscode.
6 | PYTHONPATH=specification/scripts:src/scripts:external/python
7 |
--------------------------------------------------------------------------------
/.github/.java-version:
--------------------------------------------------------------------------------
1 | 17
2 |
--------------------------------------------------------------------------------
/.github/.java-version.license:
--------------------------------------------------------------------------------
1 | SPDX-FileCopyrightText: 2025 Collabora, Ltd.
2 | SPDX-License-Identifier: CC0-1.0
3 |
--------------------------------------------------------------------------------
/.github/dependabot.yml:
--------------------------------------------------------------------------------
1 | # Copyright 2022, Collabora, Ltd.
2 | # SPDX-License-Identifier: CC0-1.0
3 |
4 | version: 2
5 |
6 | updates:
7 | # for actions, define the paths relative to .github/workflows
8 | - directory: /
9 | package-ecosystem: github-actions
10 | schedule:
11 | interval: weekly
12 |
--------------------------------------------------------------------------------
/.github/scripts/CMakePresets.json.license:
--------------------------------------------------------------------------------
1 | SPDX-FileCopyrightText: 2022 Collabora, Ltd
2 | SPDX-License-Identifier: CC0-1.0
3 |
--------------------------------------------------------------------------------
/.github/scripts/generate_windows_matrix_build.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 | # Copyright (c) 2019-2025 The Khronos Group Inc.
3 | # SPDX-License-Identifier: Apache-2.0
4 |
5 | from itertools import product
6 | import sys
7 |
8 | from shared import BUILD_CONFIGS, output_json
9 |
10 | if __name__ == "__main__":
11 |
12 | matrix = {"include": [{"preset": c.preset()} for c in BUILD_CONFIGS]}
13 | var_name = None
14 | if len(sys.argv) >= 2:
15 | var_name = sys.argv[1]
16 | output_json(matrix, variable_name=var_name)
17 |
--------------------------------------------------------------------------------
/.github/workflows/pr.yml:
--------------------------------------------------------------------------------
1 | # Copyright 2021-2022, Collabora, Ltd.
2 | # SPDX-License-Identifier: CC0-1.0
3 |
4 | name: Pull request checks
5 | on:
6 | pull_request:
7 |
8 | jobs:
9 | msvc-build:
10 | uses: ./.github/workflows/windows-matrix.yml
11 |
12 | android:
13 | uses: ./.github/workflows/android.yml
14 |
15 | # format_and_spell:
16 | # uses: ./.github/workflows/check_clang_format_and_codespell.yml
17 |
--------------------------------------------------------------------------------
/.github/workflows/release.yml:
--------------------------------------------------------------------------------
1 | # Copyright 2021-2025, Collabora, Ltd.
2 | # SPDX-License-Identifier: CC0-1.0
3 |
4 | name: Build release artifacts
5 | on:
6 | release:
7 | types: [published]
8 | workflow_dispatch:
9 |
10 | jobs:
11 | # Currently Android artifacts are generated and signed internally before publication to GitHub.
12 | # android:
13 | # uses: ./.github/workflows/android.yml
14 | # with:
15 | # release: true
16 |
17 | msvc-build:
18 | uses: ./.github/workflows/windows-matrix.yml
19 | with:
20 | organizeAndRelease: true
21 |
22 | macos-build:
23 | uses: ./.github/workflows/macos-build.yml
24 |
--------------------------------------------------------------------------------
/.github/workflows/snapshot.yml:
--------------------------------------------------------------------------------
1 | # Copyright 2021, Collabora, Ltd.
2 | # SPDX-License-Identifier: CC0-1.0
3 |
4 | name: Android Builds - Publish Snapshot
5 | on:
6 | workflow_dispatch:
7 |
8 | jobs:
9 | android:
10 | uses: ./.github/workflows/android.yml
11 | with:
12 | snapshot: true
13 |
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "src/external/glm"]
2 | path = src/external/glm
3 | url = https://github.com/g-truc/glm.git
4 | [submodule "src/external/SDL"]
5 | path = src/external/SDL
6 | url = https://github.com/libsdl-org/SDL.git
7 | [submodule "src/external/Streamline"]
8 | path = src/external/Streamline
9 | url = https://github.com/BattleAxeVR/Streamline.git
10 |
--------------------------------------------------------------------------------
/.proclamation.json.license:
--------------------------------------------------------------------------------
1 | Copyright (c) 2020 Collabora, Ltd. and the Proclamation contributors
2 | Copyright (c) 2020-2025 The Khronos Group Inc.
3 |
4 | SPDX-License-Identifier: CC0-1.0
5 |
--------------------------------------------------------------------------------
/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 | A reminder that this issue tracker is managed by the Khronos Group.
9 | Interactions here should follow the Khronos Code of Conduct
10 | ([https://www.khronos.org/developers/code-of-conduct](https://www.khronos.org/developers/code-of-conduct)),
11 | which prohibits aggressive or derogatory language.
12 | Please keep the discussion friendly and civil.
13 |
--------------------------------------------------------------------------------
/LICENSES/ISC.txt:
--------------------------------------------------------------------------------
1 | ISC License:
2 |
3 | Copyright (c) 2004-2010 by Internet Systems Consortium, Inc. ("ISC")
4 | Copyright (c) 1995-2003 by Internet Software Consortium
5 |
6 | Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
7 |
8 | THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
9 |
--------------------------------------------------------------------------------
/LICENSES/Zlib.txt:
--------------------------------------------------------------------------------
1 | zlib License
2 |
3 | This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.
4 |
5 | Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
6 |
7 | 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
8 |
9 | 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
10 |
11 | 3. This notice may not be removed or altered from any source distribution.
12 |
--------------------------------------------------------------------------------
/SwordMotionBlurTest.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BattleAxeVR/OpenXR-SDK-Source/ca585cdd0fe1f22d1b74e9408ed447324458287d/SwordMotionBlurTest.exe
--------------------------------------------------------------------------------
/changes/.markdownlint.yaml:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: CC0-1.0
2 | # SPDX-FileCopyrightText: 2021 Collabora, Ltd.
3 |
4 | # Changelog fragments will never start with a header.
5 | MD041: false
6 |
7 | # Changelog fragments have long lines and this is fine, they're wrapped before use
8 | MD013: false
9 |
--------------------------------------------------------------------------------
/changes/sdk/pr.516.gh.OpenXR-SDK-Source.md:
--------------------------------------------------------------------------------
1 | ---
2 | - pr.516.gh.OpenXR-SDK-Source
3 | ---
4 | Improvement: hello_xr: Warning fixes.
5 |
--------------------------------------------------------------------------------
/external/include/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2017-2025 The Khronos Group Inc.
2 | #
3 | # SPDX-License-Identifier: Apache-2.0
4 |
5 | set(INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
6 |
7 | set(GL_HEADERS ${INCLUDE_DIR}/GL/gl_format.h)
8 |
9 | # These can be dropped by some subsetted source distributions since
10 | # they ought to exist, if required, in your OpenGL SDK package.
11 | foreach(FN ${INCLUDE_DIR}/GL/glext.h ${INCLUDE_DIR}/GL/wglext.h)
12 | if(EXISTS "${FN}")
13 | list(APPEND GL_HEADERS "${FN}")
14 | endif()
15 | endforeach()
16 |
17 | source_group(GL FILES ${GL_HEADERS})
18 | set_property(TARGET include PROPERTY FOLDER external/include)
19 |
--------------------------------------------------------------------------------
/external/include/GL/glext.h.license:
--------------------------------------------------------------------------------
1 | SPDX-FileCopyrightText: 2013-2014 Khronos Group
2 |
3 | SPDX-License-Identifier: LicenseRef-Khronos-Free-Use-License-for-Software-and-Documentation
--------------------------------------------------------------------------------
/external/include/GL/wglext.h.license:
--------------------------------------------------------------------------------
1 | SPDX-FileCopyrightText: 2013-2014 Khronos Group
2 |
3 | SPDX-License-Identifier: LicenseRef-Khronos-Free-Use-License-for-Software-and-Documentation
--------------------------------------------------------------------------------
/external/python/Jinja2-2.11.3.dist-info/INSTALLER:
--------------------------------------------------------------------------------
1 | pip
2 |
--------------------------------------------------------------------------------
/external/python/Jinja2-2.11.3.dist-info/REQUESTED:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BattleAxeVR/OpenXR-SDK-Source/ca585cdd0fe1f22d1b74e9408ed447324458287d/external/python/Jinja2-2.11.3.dist-info/REQUESTED
--------------------------------------------------------------------------------
/external/python/Jinja2-2.11.3.dist-info/WHEEL:
--------------------------------------------------------------------------------
1 | Wheel-Version: 1.0
2 | Generator: bdist_wheel (0.36.2)
3 | Root-Is-Purelib: true
4 | Tag: py2-none-any
5 | Tag: py3-none-any
6 |
7 |
--------------------------------------------------------------------------------
/external/python/Jinja2-2.11.3.dist-info/entry_points.txt:
--------------------------------------------------------------------------------
1 | [babel.extractors]
2 | jinja2 = jinja2.ext:babel_extract [i18n]
3 |
4 |
--------------------------------------------------------------------------------
/external/python/Jinja2-2.11.3.dist-info/top_level.txt:
--------------------------------------------------------------------------------
1 | jinja2
2 |
--------------------------------------------------------------------------------
/external/python/MarkupSafe-1.1.1.dist-info/INSTALLER:
--------------------------------------------------------------------------------
1 | pip
2 |
--------------------------------------------------------------------------------
/external/python/MarkupSafe-1.1.1.dist-info/WHEEL:
--------------------------------------------------------------------------------
1 | Wheel-Version: 1.0
2 | Generator: bdist_wheel (0.31.1)
3 | Root-Is-Purelib: false
4 | Tag: cp37-cp37m-manylinux1_x86_64
5 |
6 |
--------------------------------------------------------------------------------
/external/python/MarkupSafe-1.1.1.dist-info/top_level.txt:
--------------------------------------------------------------------------------
1 | markupsafe
2 |
--------------------------------------------------------------------------------
/external/python/markupsafe/_compat.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """
3 | markupsafe._compat
4 | ~~~~~~~~~~~~~~~~~~
5 |
6 | :copyright: 2010 Pallets
7 | :license: BSD-3-Clause
8 | """
9 | import sys
10 |
11 | PY2 = sys.version_info[0] == 2
12 |
13 | if not PY2:
14 | text_type = str
15 | string_types = (str,)
16 | unichr = chr
17 | int_types = (int,)
18 |
19 | def iteritems(x):
20 | return iter(x.items())
21 |
22 | from collections.abc import Mapping
23 |
24 | else:
25 | text_type = unicode
26 | string_types = (str, unicode)
27 | unichr = unichr
28 | int_types = (int, long)
29 |
30 | def iteritems(x):
31 | return x.iteritems()
32 |
33 | from collections import Mapping
34 |
--------------------------------------------------------------------------------
/external/python/pyparsing-3.1.2.dist-info/WHEEL:
--------------------------------------------------------------------------------
1 | Wheel-Version: 1.0
2 | Generator: flit 3.9.0
3 | Root-Is-Purelib: true
4 | Tag: py3-none-any
5 |
--------------------------------------------------------------------------------
/external/python/pyparsing/py.typed:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BattleAxeVR/OpenXR-SDK-Source/ca585cdd0fe1f22d1b74e9408ed447324458287d/external/python/pyparsing/py.typed
--------------------------------------------------------------------------------
/github/sdk/.github/pull_request_template.md:
--------------------------------------------------------------------------------
1 |
6 | This is a derived repository, please open a corresponding pull request at [OpenXR-SDK-Source](https://github.com/KhronosGroup/OpenXR-SDK-Source)
7 |
--------------------------------------------------------------------------------
/hello_xr-Vulkan-release.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BattleAxeVR/OpenXR-SDK-Source/ca585cdd0fe1f22d1b74e9408ed447324458287d/hello_xr-Vulkan-release.apk
--------------------------------------------------------------------------------
/hello_xr_HDR_EXT_GazeInteraction.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BattleAxeVR/OpenXR-SDK-Source/ca585cdd0fe1f22d1b74e9408ed447324458287d/hello_xr_HDR_EXT_GazeInteraction.exe
--------------------------------------------------------------------------------
/include/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2017-2025 The Khronos Group Inc.
2 | #
3 | # SPDX-License-Identifier: Apache-2.0
4 | #
5 | # Licensed under the Apache License, Version 2.0 (the "License");
6 | # you may not use this file except in compliance with the License.
7 | # You may obtain a copy of the License at
8 | #
9 | # http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing, software
12 | # distributed under the License is distributed on an "AS IS" BASIS,
13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | # See the License for the specific language governing permissions and
15 | # limitations under the License.
16 |
17 | add_subdirectory(openxr)
18 |
--------------------------------------------------------------------------------
/include/generated_header_list.txt:
--------------------------------------------------------------------------------
1 | openxr.h
2 | openxr_loader_negotiation.h
3 | openxr_platform.h
4 | openxr_reflection.h
5 | openxr_reflection_structs.h
6 | openxr_reflection_parent_structs.h
7 |
--------------------------------------------------------------------------------
/include/generated_header_list.txt.license:
--------------------------------------------------------------------------------
1 | Copyright (c) 2017-2025 The Khronos Group Inc.
2 |
3 | SPDX-License-Identifier: Apache-2.0
4 |
5 | License is being kept in a separate file here because the txt file is parsed by multiple scripts.
6 |
--------------------------------------------------------------------------------
/maintainer-scripts/build-and-publish-aar-mavencentral.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | # Copyright (c) 2020-2022 Collabora, Ltd.
3 | #
4 | # SPDX-License-Identifier: Apache-2.0
5 | set -e
6 | MAINT_SCRIPTS=$(cd "$(dirname "$0")" && pwd)
7 | ROOT=$(cd "$(dirname "$0")" && cd .. && pwd)
8 |
9 | # This file would tell the build scripts to append -SNAPSHOT to the version, make sure it's not there.
10 | rm -f "${ROOT}/SNAPSHOT"
11 |
12 | # Build AAR
13 | "${MAINT_SCRIPTS}/build-aar.sh"
14 |
15 | # Publish AAR using Gradle
16 | cd "${MAINT_SCRIPTS}/publish-aar"
17 | ./gradlew publishMavenPublicationToBuildDirRepository publishMavenPublicationToOSSRHRepository
18 |
19 | # Need to explicitly "close and release" it then
20 | # TODO disabled because it errors out
21 | # ./gradlew closeAndReleaseRepository
22 |
--------------------------------------------------------------------------------
/maintainer-scripts/build-and-publish-aar-snapshot.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | # Copyright (c) 2020-2021 Collabora, Ltd.
3 | #
4 | # SPDX-License-Identifier: Apache-2.0
5 | set -e
6 | MAINT_SCRIPTS=$(cd "$(dirname "$0")" && pwd)
7 | ROOT=$(cd "$(dirname "$0")" && cd .. && pwd)
8 |
9 | # This file tells the build scripts to append -SNAPSHOT to the version.
10 | touch "${ROOT}/SNAPSHOT"
11 |
12 | # Build AAR
13 | "${MAINT_SCRIPTS}/build-aar.sh"
14 |
15 | # Publish AAR using Gradle
16 | cd "${MAINT_SCRIPTS}/publish-aar"
17 | ./gradlew publishMavenPublicationToBuildDirRepository publishMavenPublicationToOSSRH-SnapshotsRepository
18 |
--------------------------------------------------------------------------------
/maintainer-scripts/publish-aar/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BattleAxeVR/OpenXR-SDK-Source/ca585cdd0fe1f22d1b74e9408ed447324458287d/maintainer-scripts/publish-aar/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/maintainer-scripts/publish-aar/gradle/wrapper/gradle-wrapper.jar.license:
--------------------------------------------------------------------------------
1 | SPDX-FileCopyrightText: Copyright 2007-2014, 2017 the original author or authors.
2 | SPDX-License-Identifier: Apache-2.0
3 |
--------------------------------------------------------------------------------
/maintainer-scripts/publish-aar/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
4 | networkTimeout=10000
5 | validateDistributionUrl=true
6 | zipStoreBase=GRADLE_USER_HOME
7 | zipStorePath=wrapper/dists
8 |
--------------------------------------------------------------------------------
/maintainer-scripts/publish-aar/gradle/wrapper/gradle-wrapper.properties.license:
--------------------------------------------------------------------------------
1 | SPDX-FileCopyrightText: Copyright 2010 the original author or authors.
2 | SPDX-License-Identifier: Apache-2.0
3 |
--------------------------------------------------------------------------------
/maintainer-scripts/publish-aar/gradlew.bat.license:
--------------------------------------------------------------------------------
1 | SPDX-FileCopyrightText: Copyright 2015 the original author or authors.
2 | SPDX-License-Identifier: Apache-2.0
3 |
--------------------------------------------------------------------------------
/maintainer-scripts/publish-aar/gradlew.license:
--------------------------------------------------------------------------------
1 | SPDX-FileCopyrightText: Copyright 2015-2021 the original author or authors.
2 | SPDX-License-Identifier: Apache-2.0
3 |
--------------------------------------------------------------------------------
/maintainer-scripts/publish-aar/settings.gradle:
--------------------------------------------------------------------------------
1 | // Copyright 2020-2021, Collabora, Ltd.
2 | // SPDX-License-Identifier: BSL-1.0
3 |
4 | rootProject.name = 'openxr-loader-publish'
5 |
--------------------------------------------------------------------------------
/openxr-codespell.exclude:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2017-2025 The Khronos Group Inc.
2 | #
3 | # SPDX-License-Identifier: CC-BY-4.0
4 | # Lines that should be excluded from codespell - trailing newline required!
5 |
6 | | tessellation | tesselation | Historical exception
7 | | heterogeneous | heterogenous | More common
8 | | homogeneous | homogenous | More common
9 | if (timebase_info.numer == 0) mach_timebase_info(&timebase_info);
10 | return ((mach_absolute_time() * timebase_info.numer) / timebase_info.denom);
11 | '\b[aA]nd [aA]nd\b'
12 |
--------------------------------------------------------------------------------
/specification/.gitignore:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2017-2025 The Khronos Group Inc.
2 | #
3 | # SPDX-License-Identifier: Apache-2.0
4 |
5 | scripts/__pycache__
6 | generated/*
7 | example-builds/generated/
8 | artifacts/
9 | temp/
10 | diffs/
11 |
12 | # Artifacts from converting/checking RELAX-NG Compact schema.
13 | registry/registry.rng
14 | registry/regenerated.rnc
15 | registry/regenerated.rnc.backup
16 |
17 | # Schematron-related files
18 | registry/schxslt-cli.jar
19 | registry/cli-*.jar
20 | registry/**/*.srvl
21 |
--------------------------------------------------------------------------------
/specification/loader/images/app_dispatch_table_call_chain.svg.license:
--------------------------------------------------------------------------------
1 | Copyright (c) 2017-2025 The Khronos Group Inc.
2 |
3 | SPDX-License-Identifier: CC-BY-4.0
4 |
--------------------------------------------------------------------------------
/specification/loader/images/call_chain_example.svg.license:
--------------------------------------------------------------------------------
1 | Copyright (c) 2017-2025 The Khronos Group Inc.
2 |
3 | SPDX-License-Identifier: CC-BY-4.0
4 |
--------------------------------------------------------------------------------
/specification/loader/images/class_diagram.svg.license:
--------------------------------------------------------------------------------
1 | Copyright (c) 2017-2025 The Khronos Group Inc.
2 |
3 | SPDX-License-Identifier: CC-BY-4.0
4 |
--------------------------------------------------------------------------------
/specification/loader/images/high_level_loader.svg.license:
--------------------------------------------------------------------------------
1 | Copyright (c) 2017-2025 The Khronos Group Inc.
2 |
3 | SPDX-License-Identifier: CC-BY-4.0
4 |
--------------------------------------------------------------------------------
/specification/loader/images/loader_layer_order_calls.svg.license:
--------------------------------------------------------------------------------
1 | Copyright (c) 2017-2025 The Khronos Group Inc.
2 |
3 | SPDX-License-Identifier: CC-BY-4.0
4 |
--------------------------------------------------------------------------------
/specification/loader/images/optional_layer_function_impl.svg.license:
--------------------------------------------------------------------------------
1 | Copyright (c) 2017-2025 The Khronos Group Inc.
2 |
3 | SPDX-License-Identifier: CC-BY-4.0
4 |
--------------------------------------------------------------------------------
/specification/loader/images/standard_call_chains.svg.license:
--------------------------------------------------------------------------------
1 | Copyright (c) 2017-2025 The Khronos Group Inc.
2 |
3 | SPDX-License-Identifier: CC-BY-4.0
4 |
--------------------------------------------------------------------------------
/specification/requirements.txt:
--------------------------------------------------------------------------------
1 | # Copyright 2017-2025 The Khronos Group Inc.
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | # Optional but recommended for check spec links
5 | termcolor
6 |
7 | # Optional but recommended for check spec links on Windows
8 | colorama
9 |
10 | # Optional but recommended for check spec links
11 | tabulate
12 |
13 | # Optional but recommended: needed for scripts/xml_consistency.py
14 | networkx
15 |
16 | # Optional: bundled copy may be in ../external/python
17 | jinja2
18 |
19 | # for spec diffs
20 | pypdf2
21 | pdf_diff
22 |
23 | # For testing
24 | pytest
25 |
26 | # for python doc builds
27 | pdoc3
28 |
--------------------------------------------------------------------------------
/specification/scripts/__init__.py.docs:
--------------------------------------------------------------------------------
1 | # Copyright 2019-2025 The Khronos Group Inc.
2 | #
3 | # SPDX-License-Identifier: Apache-2.0
4 | """Scripts for building the OpenXR specification and artifacts.
5 |
6 |
7 | See also `src.scripts` for scripts that help build the loader and layers,
8 | many of which build on these scripts.
9 | """
10 |
11 | # This is only used during doc builds, hence the weird file extension.
12 | # It messes up scripts at other times.
13 |
--------------------------------------------------------------------------------
/specification/scripts/apiconventions.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3 -i
2 | #
3 | # Copyright 2021-2025 The Khronos Group Inc.
4 | # SPDX-License-Identifier: Apache-2.0
5 |
6 | # Generic alias for working group-specific API conventions interface.
7 |
8 | # This import should be changed at the repository / working group level to
9 | # specify the correct API's conventions.
10 |
11 | from xrconventions import OpenXRConventions as APIConventions
12 |
--------------------------------------------------------------------------------
/specification/scripts/genanchorlinks.rb:
--------------------------------------------------------------------------------
1 | # Copyright 2023-2025 The Khronos Group Inc.
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | # Rewrite VUID anchors with 'href' attributes so they can be selected in a
5 | # browser.
6 |
7 | require 'asciidoctor/extensions' unless RUBY_ENGINE == 'opal'
8 |
9 | include ::Asciidoctor
10 |
11 | class AnchorLinkPostprocessor < Asciidoctor::Extensions::Postprocessor
12 | def process document, output
13 | if document.basebackend? 'html'
14 | return output.gsub(//, '')
15 | end
16 | output
17 | end
18 | end
19 |
20 | Asciidoctor::Extensions.register do
21 | postprocessor AnchorLinkPostprocessor
22 | end
23 |
--------------------------------------------------------------------------------
/specification/scripts/nonbreaking-ext-titles.rb:
--------------------------------------------------------------------------------
1 | # Copyright 2023-2025 The Khronos Group Inc.
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | # Adjust extension TOC entries to not break between section number and extension name.
5 |
6 | require 'asciidoctor/extensions' unless RUBY_ENGINE == 'opal'
7 |
8 | include ::Asciidoctor
9 |
10 | class NonbreakingExtTitlesPostprocessor < Asciidoctor::Extensions::Postprocessor
11 | def process document, output
12 | if document.basebackend? 'html'
13 | return output.gsub(/(?[>][0-9]+\.[0-9]+\.) (?XR_[^<]+)/, '\k \k')
14 | end
15 | output
16 | end
17 | end
18 |
19 | Asciidoctor::Extensions.register do
20 | postprocessor NonbreakingExtTitlesPostprocessor
21 | end
22 |
--------------------------------------------------------------------------------
/specification/scripts/spec_tools/__init__.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3 -i
2 | #
3 | # Copyright (c) 2018-2019 Collabora, Ltd.
4 | #
5 | # SPDX-License-Identifier: Apache-2.0
6 | #
7 | # Author(s): Rylie Pavlik
8 |
--------------------------------------------------------------------------------
/specification/scripts/test_entity_db.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3 -i
2 | #
3 | # Copyright 2018-2025 The Khronos Group Inc.
4 | # Copyright (c) 2018-2019 Collabora, Ltd.
5 | #
6 | # SPDX-License-Identifier: Apache-2.0
7 | #
8 | # Author(s): Rylie Pavlik
9 |
10 |
11 | import pytest
12 |
13 | from check_spec_links import XREntityDatabase
14 |
15 |
16 | @pytest.fixture
17 | def db():
18 | ret = XREntityDatabase()
19 | # print(ret.getEntityJson())
20 | return ret
21 |
22 |
23 | def test_likely_recognized(db):
24 | assert db.likelyRecognizedEntity('xrBla')
25 | assert db.likelyRecognizedEntity('XrBla')
26 | assert db.likelyRecognizedEntity('XR_BLA')
27 |
28 |
29 | def test_db(db):
30 | assert db.findEntity('xrCreateInstance')
31 | assert db.findEntity('XRAPI_CALL')
32 |
--------------------------------------------------------------------------------
/specification/scripts/vuidCounts.py:
--------------------------------------------------------------------------------
1 | # Do not edit this file!
2 | # VUID ranges reserved for branches
3 | # Key is branch name, value is [ start, end, nextfree ]
4 | vuidCounts = {
5 | 'main': [ 1, 999, 1 ],
6 | }
7 |
--------------------------------------------------------------------------------
/src/.gitignore:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2017-2025 The Khronos Group Inc.
2 | #
3 | # SPDX-License-Identifier: Apache-2.0
4 |
5 | # Don't commit pre-generated files in this repo.
6 | xr_generated_dispatch_table.*
7 | xr_generated_utilities.*
8 | loader/xr_generated_loader.*
9 | doc/
10 |
--------------------------------------------------------------------------------
/src/api_layers/OpenXR_API_Dump.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BattleAxeVR/OpenXR-SDK-Source/ca585cdd0fe1f22d1b74e9408ed447324458287d/src/api_layers/OpenXR_API_Dump.png
--------------------------------------------------------------------------------
/src/api_layers/OpenXR_API_Dump.png.license:
--------------------------------------------------------------------------------
1 | Copyright (c) 2017, LunarG, Inc.
2 | Copyright (c) 2021-2025 The Khronos Group Inc.
3 |
4 | SPDX-License-Identifier: CC-BY-4.0
5 |
--------------------------------------------------------------------------------
/src/api_layers/OpenXR_Core_Validation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BattleAxeVR/OpenXR-SDK-Source/ca585cdd0fe1f22d1b74e9408ed447324458287d/src/api_layers/OpenXR_Core_Validation.png
--------------------------------------------------------------------------------
/src/api_layers/OpenXR_Core_Validation.png.license:
--------------------------------------------------------------------------------
1 | Copyright (c) 2017, LunarG, Inc.
2 | Copyright (c) 2021-2025 The Khronos Group Inc.
3 |
4 | SPDX-License-Identifier: CC-BY-4.0
5 |
--------------------------------------------------------------------------------
/src/api_layers/XrApiLayer_api_dump.expsym:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2019-2025 The Khronos Group Inc.
2 | #
3 | # SPDX-License-Identifier: Apache-2.0
4 |
5 | _xrNegotiateLoaderApiLayerInterface
6 |
--------------------------------------------------------------------------------
/src/api_layers/XrApiLayer_api_dump.map:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2019-2025 The Khronos Group Inc.
3 |
4 | SPDX-License-Identifier: Apache-2.0
5 | */
6 |
7 | {
8 | global:
9 | xrNegotiateLoaderApiLayerInterface;
10 | local:
11 | *;
12 | };
13 |
--------------------------------------------------------------------------------
/src/api_layers/XrApiLayer_core_validation.expsym:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2019-2025 The Khronos Group Inc.
2 | #
3 | # SPDX-License-Identifier: Apache-2.0
4 |
5 | _xrNegotiateLoaderApiLayerInterface
6 |
--------------------------------------------------------------------------------
/src/api_layers/XrApiLayer_core_validation.map:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2019-2025 The Khronos Group Inc.
3 |
4 | SPDX-License-Identifier: Apache-2.0
5 | */
6 |
7 | {
8 | global:
9 | xrNegotiateLoaderApiLayerInterface;
10 | local:
11 | *;
12 | };
13 |
--------------------------------------------------------------------------------
/src/api_layers/core_validation_html_anchor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BattleAxeVR/OpenXR-SDK-Source/ca585cdd0fe1f22d1b74e9408ed447324458287d/src/api_layers/core_validation_html_anchor.png
--------------------------------------------------------------------------------
/src/api_layers/core_validation_html_anchor.png.license:
--------------------------------------------------------------------------------
1 | Copyright (c) 2017, The Khronos Group Inc.
2 | Copyright (c) 2021-2025 The Khronos Group Inc.
3 |
4 | SPDX-License-Identifier: CC-BY-4.0
5 |
--------------------------------------------------------------------------------
/src/api_layers/core_validation_message.svg.license:
--------------------------------------------------------------------------------
1 | Copyright (c) 2017, LunarG, Inc.
2 | Copyright (c) 2021-2025 The Khronos Group Inc.
3 |
4 | SPDX-License-Identifier: CC-BY-4.0
5 |
--------------------------------------------------------------------------------
/src/cmake/metaconfig.cmake.in:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2017-2025 The Khronos Group Inc.
2 | #
3 | # SPDX-License-Identifier: Apache-2.0
4 | #
5 | # @WARNING@
6 |
7 | unset(_UWP_SUFFIX)
8 | if(CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
9 | set(_UWP_SUFFIX _uwp)
10 | endif()
11 | if(CMAKE_GENERATOR_PLATFORM_UPPER MATCHES "ARM.*")
12 | if(CMAKE_SIZEOF_VOID_P EQUAL 8)
13 | set(_PLATFORM ARM64)
14 | else()
15 | set(_PLATFORM ARM)
16 | endif()
17 | else()
18 | if(CMAKE_SIZEOF_VOID_P EQUAL 8)
19 | set(_PLATFORM x64)
20 | else()
21 | set(_PLATFORM Win32)
22 | endif()
23 | endif()
24 |
25 | include("${CMAKE_CURRENT_LIST_DIR}/${_PLATFORM}${_UWP_SUFFIX}/lib/@TARGET_SUBDIR@/@FN@.cmake")
26 |
--------------------------------------------------------------------------------
/src/cmake/metaconfig_android.cmake.in:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2017-2025 The Khronos Group Inc.
2 | #
3 | # SPDX-License-Identifier: Apache-2.0
4 | #
5 | # @WARNING@
6 |
7 | include("${CMAKE_CURRENT_LIST_DIR}/prefab/modules/openxr_loader/libs/android.${ANDROID_ABI}/@TARGET_SUBDIR@/@FN@.cmake")
8 |
--------------------------------------------------------------------------------
/src/common/android_logging.h:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2018-2025 The Khronos Group Inc.
2 | //
3 | // SPDX-License-Identifier: Apache-2.0 OR MIT
4 | //
5 | // Utility macros for Android logging.
6 |
7 | #pragma once
8 |
9 | #ifdef XR_USE_PLATFORM_ANDROID
10 | #include
11 |
12 | #if !defined(LOG_TAG)
13 | #error "LOG_TAG must be defined before including android_logging.h"
14 | #endif
15 |
16 | #define ALOGV(...) __android_log_print(ANDROID_LOG_VERBOSE, LOG_TAG, __VA_ARGS__)
17 | #define ALOGI(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__)
18 | #define ALOGW(...) __android_log_print(ANDROID_LOG_WARN, LOG_TAG, __VA_ARGS__)
19 | #define ALOGE(...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__)
20 | #define ALOGF(...) __android_log_print(ANDROID_LOG_FATAL, LOG_TAG, __VA_ARGS__)
21 |
22 | #endif // XR_USE_PLATFORM_ANDROID
23 |
--------------------------------------------------------------------------------
/src/common/unique_asset.h:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2017-2025 The Khronos Group Inc.
2 | //
3 | // SPDX-License-Identifier: Apache-2.0 OR MIT
4 | #pragma once
5 |
6 | #ifdef XR_USE_PLATFORM_ANDROID
7 |
8 | #include
9 | #include
10 |
11 | namespace deleters {
12 | struct AAssetDeleter {
13 | void operator()(AAsset* asset) const noexcept {
14 | if (asset != nullptr) {
15 | AAsset_close(asset);
16 | }
17 | }
18 | };
19 |
20 | struct AAssetDirDeleter {
21 | void operator()(AAssetDir* dir) const noexcept {
22 | if (dir != nullptr) {
23 | AAssetDir_close(dir);
24 | }
25 | }
26 | };
27 |
28 | } // namespace deleters
29 |
30 | using UniqueAsset = std::unique_ptr;
31 | using UniqueAssetDir = std::unique_ptr;
32 |
33 | #endif
34 |
--------------------------------------------------------------------------------
/src/external/catch2/.gitattributes:
--------------------------------------------------------------------------------
1 | # This sets the default behaviour, overriding core.autocrlf
2 | * text=auto
3 |
4 | # All source files should have unix line-endings in the repository,
5 | # but convert to native line-endings on checkout
6 | *.cpp text
7 | *.h text
8 | *.hpp text
9 |
10 | # Windows specific files should retain windows line-endings
11 | *.sln text eol=crlf
12 |
13 | # Keep executable scripts with LFs so they can be run after being
14 | # checked out on Windows
15 | *.py text eol=lf
16 |
17 |
18 | # Keep the single include header with LFs to make sure it is uploaded,
19 | # hashed etc with LF
20 | single_include/**/*.hpp eol=lf
21 | # Also keep the LICENCE file with LFs for the same reason
22 | LICENCE.txt eol=lf
23 |
--------------------------------------------------------------------------------
/src/external/catch2/.gitignore:
--------------------------------------------------------------------------------
1 | *.build
2 | !meson.build
3 | *.pbxuser
4 | *.mode1v3
5 | *.ncb
6 | *.suo
7 | Debug
8 | Release
9 | *.user
10 | *.xcuserstate
11 | .DS_Store
12 | xcuserdata
13 | CatchSelfTest.xcscheme
14 | Breakpoints.xcbkptlist
15 | UpgradeLog.XML
16 | Resources/DWARF
17 | projects/Generated
18 | *.pyc
19 | DerivedData
20 | *.xccheckout
21 | Build
22 | .idea
23 | .vs
24 | .vscode
25 | cmake-build-*
26 | benchmark-dir
27 | .conan/test_package/build
28 | **/CMakeUserPresets.json
29 | bazel-*
30 | MODULE.bazel.lock
31 | build-fuzzers
32 | debug-build
33 | .vscode
34 | msvc-sln*
35 | # Currently we use Doxygen for dep graphs and the full docs are only slowly
36 | # being filled in, so we definitely do not want git to deal with the docs.
37 | docs/doxygen
38 | *.cache
39 | compile_commands.json
40 | **/*.unapproved.txt
41 |
--------------------------------------------------------------------------------
/src/external/catch2/CMake/Catch2Config.cmake.in:
--------------------------------------------------------------------------------
1 | @PACKAGE_INIT@
2 |
3 |
4 | # Avoid repeatedly including the targets
5 | if(NOT TARGET Catch2::Catch2)
6 | # Provide path for scripts
7 | list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}")
8 |
9 | include(${CMAKE_CURRENT_LIST_DIR}/Catch2Targets.cmake)
10 | endif()
11 |
--------------------------------------------------------------------------------
/src/external/catch2/CMake/catch2-with-main.pc.in:
--------------------------------------------------------------------------------
1 | includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@
2 | libdir=@CMAKE_INSTALL_FULL_LIBDIR@
3 | pkg_version=@Catch2_VERSION@
4 |
5 | Name: Catch2-With-Main
6 | Description: A modern, C++-native test framework for C++14 and above (links in default main)
7 | Version: ${pkg_version}
8 | Requires: catch2 = ${pkg_version}
9 | Cflags: -I${includedir}
10 | Libs: -L${libdir} -lCatch2Main
11 |
--------------------------------------------------------------------------------
/src/external/catch2/CMake/catch2.pc.in:
--------------------------------------------------------------------------------
1 | prefix=@CMAKE_INSTALL_PREFIX@
2 | exec_prefix=${prefix}
3 | includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@
4 | libdir=@CMAKE_INSTALL_FULL_LIBDIR@
5 |
6 | Name: Catch2
7 | Description: A modern, C++-native, test framework for C++14 and above
8 | URL: https://github.com/catchorg/Catch2
9 | Version: @Catch2_VERSION@
10 | Cflags: -I${includedir}
11 | Libs: -L${libdir} -lCatch2
12 |
--------------------------------------------------------------------------------
/src/external/catch2/MODULE.bazel:
--------------------------------------------------------------------------------
1 | module(name = "catch2")
2 |
3 | bazel_dep(name = "bazel_skylib", version = "1.7.1")
4 |
--------------------------------------------------------------------------------
/src/external/catch2/SECURITY.md:
--------------------------------------------------------------------------------
1 | # Security Policy
2 |
3 | ## Supported Versions
4 |
5 | * Versions 1.x (branch Catch1.x) are no longer supported.
6 | * Versions 2.x (branch v2.x) are currently supported.
7 | * `devel` branch serves for stable-ish development and is supported,
8 | but branches `devel-*` are considered short lived and are not supported separately.
9 |
10 |
11 | ## Reporting a Vulnerability
12 |
13 | Due to its nature as a _unit_ test framework, Catch2 shouldn't interact
14 | with untrusted inputs and there shouldn't be many security vulnerabilities
15 | in it.
16 |
17 | However, if you find one you send email to martin horenovsky
18 | gmail com. If you want to encrypt the email, my pgp key is
19 | `E29C 46F3 B8A7 5028 6079 3B7D ECC9 C20E 314B 2360`.
20 |
--------------------------------------------------------------------------------
/src/external/catch2/WORKSPACE.bazel:
--------------------------------------------------------------------------------
1 | workspace(name = "catch2")
2 |
3 | load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
4 |
5 | http_archive(
6 | name = "bazel_skylib",
7 | sha256 = "bc283cdfcd526a52c3201279cda4bc298652efa898b10b4db0837dc51652756f",
8 | urls = [
9 | "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.7.1/bazel-skylib-1.7.1.tar.gz",
10 | "https://github.com/bazelbuild/bazel-skylib/releases/download/1.7.1/bazel-skylib-1.7.1.tar.gz",
11 | ],
12 | )
13 |
14 | load("@bazel_skylib//:workspace.bzl", "bazel_skylib_workspace")
15 |
16 | bazel_skylib_workspace()
17 |
--------------------------------------------------------------------------------
/src/external/catch2/codecov.yml:
--------------------------------------------------------------------------------
1 | coverage:
2 | precision: 2
3 | round: nearest
4 | range: "60...90"
5 | status:
6 | project:
7 | default:
8 | threshold: 2%
9 | patch:
10 | default:
11 | target: 80%
12 | ignore:
13 | - "**/external/clara.hpp"
14 | - "tests"
15 |
16 |
17 | codecov:
18 | branch: devel
19 | max_report_age: off
20 |
21 | comment:
22 | layout: "diff"
23 |
--------------------------------------------------------------------------------
/src/external/catch2/data/artwork/catch2-c-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BattleAxeVR/OpenXR-SDK-Source/ca585cdd0fe1f22d1b74e9408ed447324458287d/src/external/catch2/data/artwork/catch2-c-logo.png
--------------------------------------------------------------------------------
/src/external/catch2/data/artwork/catch2-hand-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BattleAxeVR/OpenXR-SDK-Source/ca585cdd0fe1f22d1b74e9408ed447324458287d/src/external/catch2/data/artwork/catch2-hand-logo.png
--------------------------------------------------------------------------------
/src/external/catch2/data/artwork/catch2-logo-small-with-background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BattleAxeVR/OpenXR-SDK-Source/ca585cdd0fe1f22d1b74e9408ed447324458287d/src/external/catch2/data/artwork/catch2-logo-small-with-background.png
--------------------------------------------------------------------------------
/src/external/catch2/data/artwork/catch2-logo-small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BattleAxeVR/OpenXR-SDK-Source/ca585cdd0fe1f22d1b74e9408ed447324458287d/src/external/catch2/data/artwork/catch2-logo-small.png
--------------------------------------------------------------------------------
/src/external/catch2/docs/commercial-users.md:
--------------------------------------------------------------------------------
1 |
2 | # Commercial users of Catch2
3 |
4 | Catch2 is also widely used in proprietary code bases. This page contains
5 | some of them that are willing to share this information.
6 |
7 | If you want to add your organisation, please check that there is no issue
8 | with you sharing this fact.
9 |
10 | - Bloomberg
11 | - [Bloomlife](https://bloomlife.com)
12 | - [Inscopix Inc.](https://www.inscopix.com/)
13 | - Locksley.CZ
14 | - [Makimo](https://makimo.pl/)
15 | - NASA
16 | - [Nexus Software Systems](https://nexwebsites.com)
17 | - [UX3D](https://ux3d.io)
18 | - [King](https://king.com)
19 |
20 |
21 | ---
22 |
23 | [Home](Readme.md#top)
24 |
--------------------------------------------------------------------------------
/src/external/catch2/extras/gdbinit:
--------------------------------------------------------------------------------
1 | #
2 | # This file provides a way to skip stepping into Catch code when debugging with gdb.
3 | #
4 | # With the gdb "skip" command you can tell gdb to skip files or functions during debugging.
5 | # see https://xaizek.github.io/2016-05-26/skipping-standard-library-in-gdb/ for an example
6 | #
7 | # Basically the following line tells gdb to skip all functions containing the
8 | # regexp "Catch", which matches the complete Catch namespace.
9 | # If you want to skip just some parts of the Catch code you can modify the
10 | # regexp accordingly.
11 | #
12 | # If you want to permanently skip stepping into Catch code copy the following
13 | # line into your ~/.gdbinit file
14 | #
15 |
16 | skip -rfu Catch
17 |
--------------------------------------------------------------------------------
/src/external/catch2/extras/lldbinit:
--------------------------------------------------------------------------------
1 | #
2 | # This file provides a way to skip stepping into Catch code when debugging with lldb.
3 | #
4 | # With the setting "target.process.thread.step-avoid-regexp" you can tell lldb
5 | # to skip functions matching the regexp
6 | #
7 | # Basically the following line tells lldb to skip all functions containing the
8 | # regexp "Catch", which matches the complete Catch namespace.
9 | # If you want to skip just some parts of the Catch code you can modify the
10 | # regexp accordingly.
11 | #
12 | # If you want to permanently skip stepping into Catch code copy the following
13 | # line into your ~/.lldbinit file
14 | #
15 |
16 | settings set target.process.thread.step-avoid-regexp Catch
--------------------------------------------------------------------------------
/src/external/catch2/fuzzing/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # License: Boost 1.0
2 | # By Paul Dreik 2020
3 |
4 | # add a library that brings in the main() function from libfuzzer
5 | # and has all the dependencies, so the individual fuzzers can be
6 | # added one line each.
7 | add_library(fuzzhelper NullOStream.h NullOStream.cpp)
8 | target_link_libraries(fuzzhelper PUBLIC Catch2::Catch2)
9 |
10 | # use C++17 so we can get string_view
11 | target_compile_features(fuzzhelper PUBLIC cxx_std_17)
12 |
13 | # This should be possible to set from the outside to be oss-fuzz compatible,
14 | # fix later. For now, target libFuzzer only.
15 | target_link_options(fuzzhelper PUBLIC "-fsanitize=fuzzer")
16 |
17 | foreach(fuzzer TestSpecParser XmlWriter textflow)
18 | add_executable(fuzz_${fuzzer} fuzz_${fuzzer}.cpp)
19 | target_link_libraries(fuzz_${fuzzer} PRIVATE fuzzhelper)
20 | endforeach()
21 |
--------------------------------------------------------------------------------
/src/external/catch2/fuzzing/NullOStream.cpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 |
9 | #include "NullOStream.h"
10 |
11 | void NullOStream::avoidOutOfLineVirtualCompilerWarning()
12 | {
13 | }
14 |
15 | int NullStreambuf::overflow(int c){
16 | setp(dummyBuffer, dummyBuffer + sizeof(dummyBuffer));
17 | return (c == traits_type::eof()) ? '\0' : c;
18 | }
19 |
--------------------------------------------------------------------------------
/src/external/catch2/fuzzing/NullOStream.h:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 |
9 | #pragma once
10 |
11 | #include
12 | #include
13 |
14 | // from https://stackoverflow.com/a/8244052
15 | class NullStreambuf : public std::streambuf {
16 | char dummyBuffer[64];
17 |
18 | protected:
19 | virtual int overflow(int c) override final;
20 | };
21 |
22 | class NullOStream final : private NullStreambuf, public std::ostream {
23 | public:
24 | NullOStream() : std::ostream(this) {}
25 | NullStreambuf *rdbuf() { return this; }
26 | virtual void avoidOutOfLineVirtualCompilerWarning();
27 | };
28 |
29 |
--------------------------------------------------------------------------------
/src/external/catch2/fuzzing/build_fuzzers.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | #
3 | # Builds the fuzzers
4 | #
5 | # By Paul Dreik 20200923
6 | set -exu
7 |
8 | CATCHROOT=$(readlink -f $(dirname $0)/..)
9 |
10 |
11 | BUILDDIR=$CATCHROOT/build-fuzzers
12 | mkdir -p $BUILDDIR
13 | cd $BUILDDIR
14 |
15 | if which /usr/lib/ccache/clang++ >/dev/null 2>&1 ; then
16 | CXX=/usr/lib/ccache/clang++
17 | else
18 | CXX=clang++
19 | fi
20 |
21 | cmake $CATCHROOT \
22 | -DCMAKE_CXX_COMPILER=$CXX \
23 | -DCMAKE_CXX_FLAGS="-fsanitize=fuzzer-no-link,address,undefined -O3 -g" \
24 | -DCATCH_DEVELOPMENT_BUILD=On \
25 | -DCATCH_BUILD_EXAMPLES=Off \
26 | -DCATCH_BUILD_EXTRA_TESTS=Off \
27 | -DCATCH_BUILD_TESTING=Off \
28 | -DBUILD_TESTING=Off \
29 | -DCATCH_ENABLE_WERROR=Off \
30 | -DCATCH_BUILD_FUZZERS=On
31 |
32 | cmake --build . -j $(nproc)
33 |
34 |
--------------------------------------------------------------------------------
/src/external/catch2/fuzzing/fuzz_TestSpecParser.cpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 | //By Paul Dreik 2020
9 |
10 | #include
11 | #include
12 |
13 | extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
14 |
15 | Catch::TagAliasRegistry tar;
16 | Catch::TestSpecParser tsp(tar);
17 |
18 | std::string buf(Data,Data+Size);
19 | tsp.parse(buf);
20 |
21 | return 0;
22 | }
23 |
--------------------------------------------------------------------------------
/src/external/catch2/fuzzing/fuzz_XmlWriter.cpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 | //By Paul Dreik 2020
9 |
10 | #include
11 |
12 | #include "NullOStream.h"
13 |
14 | extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
15 |
16 | std::string buf(Data,Data+Size);
17 | NullOStream nul;
18 | Catch::XmlEncode encode(buf);
19 | encode.encodeTo(nul);
20 | return 0;
21 | }
22 |
23 |
--------------------------------------------------------------------------------
/src/external/catch2/mdsnippets.json:
--------------------------------------------------------------------------------
1 | {
2 | "ReadOnly": false,
3 | "TocLevel": 5,
4 | "Exclude": [
5 | "cmake-build"
6 | ],
7 | "WriteHeader": false,
8 | "Convention": "InPlaceOverwrite"
9 | }
10 |
--------------------------------------------------------------------------------
/src/external/catch2/meson.build:
--------------------------------------------------------------------------------
1 | # Copyright Catch2 Authors
2 | # Distributed under the Boost Software License, Version 1.0.
3 | # (See accompanying file LICENSE.txt or copy at
4 | # https://www.boost.org/LICENSE_1_0.txt)
5 |
6 | # SPDX-License-Identifier: BSL-1.0
7 |
8 | project(
9 | 'catch2',
10 | 'cpp',
11 | version: '3.7.1', # CML version placeholder, don't delete
12 | license: 'BSL-1.0',
13 | meson_version: '>=0.54.1',
14 | )
15 |
16 | subdir('src/catch2')
17 | if get_option('tests')
18 | subdir('tests')
19 | endif
20 |
--------------------------------------------------------------------------------
/src/external/catch2/meson_options.txt:
--------------------------------------------------------------------------------
1 | option('tests', type: 'boolean', value: true, description: 'Build the unit tests')
2 |
--------------------------------------------------------------------------------
/src/external/catch2/src/catch2/benchmark/catch_chronometer.cpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 |
9 | #include
10 |
11 | namespace Catch {
12 | namespace Benchmark {
13 | namespace Detail {
14 | ChronometerConcept::~ChronometerConcept() = default;
15 | } // namespace Detail
16 | } // namespace Benchmark
17 | } // namespace Catch
18 |
--------------------------------------------------------------------------------
/src/external/catch2/src/catch2/benchmark/catch_estimate.hpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 | // Adapted from donated nonius code.
9 |
10 | #ifndef CATCH_ESTIMATE_HPP_INCLUDED
11 | #define CATCH_ESTIMATE_HPP_INCLUDED
12 |
13 | namespace Catch {
14 | namespace Benchmark {
15 | template
16 | struct Estimate {
17 | Type point;
18 | Type lower_bound;
19 | Type upper_bound;
20 | double confidence_interval;
21 | };
22 | } // namespace Benchmark
23 | } // namespace Catch
24 |
25 | #endif // CATCH_ESTIMATE_HPP_INCLUDED
26 |
--------------------------------------------------------------------------------
/src/external/catch2/src/catch2/benchmark/detail/catch_benchmark_function.cpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 |
9 | #include
10 |
11 | namespace Catch {
12 | namespace Benchmark {
13 | namespace Detail {
14 | struct do_nothing {
15 | void operator()() const {}
16 | };
17 |
18 | BenchmarkFunction::callable::~callable() = default;
19 | BenchmarkFunction::BenchmarkFunction():
20 | f( new model{ {} } ){}
21 | } // namespace Detail
22 | } // namespace Benchmark
23 | } // namespace Catch
24 |
--------------------------------------------------------------------------------
/src/external/catch2/src/catch2/catch_case_sensitive.hpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 | #ifndef CATCH_CASE_SENSITIVE_HPP_INCLUDED
9 | #define CATCH_CASE_SENSITIVE_HPP_INCLUDED
10 |
11 | namespace Catch {
12 |
13 | enum class CaseSensitive { Yes, No };
14 |
15 | } // namespace Catch
16 |
17 | #endif // CATCH_CASE_SENSITIVE_HPP_INCLUDED
18 |
--------------------------------------------------------------------------------
/src/external/catch2/src/catch2/catch_get_random_seed.cpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 |
9 | #include
10 |
11 | #include
12 | #include
13 |
14 | namespace Catch {
15 | std::uint32_t getSeed() {
16 | return getCurrentContext().getConfig()->rngSeed();
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/external/catch2/src/catch2/catch_get_random_seed.hpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 | #ifndef CATCH_GET_RANDOM_SEED_HPP_INCLUDED
9 | #define CATCH_GET_RANDOM_SEED_HPP_INCLUDED
10 |
11 | #include
12 |
13 | namespace Catch {
14 | //! Returns Catch2's current RNG seed.
15 | std::uint32_t getSeed();
16 | }
17 |
18 | #endif // CATCH_GET_RANDOM_SEED_HPP_INCLUDED
19 |
--------------------------------------------------------------------------------
/src/external/catch2/src/catch2/catch_tag_alias.hpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 | #ifndef CATCH_TAG_ALIAS_HPP_INCLUDED
9 | #define CATCH_TAG_ALIAS_HPP_INCLUDED
10 |
11 | #include
12 |
13 | #include
14 |
15 | namespace Catch {
16 |
17 | struct TagAlias {
18 | TagAlias(std::string const& _tag, SourceLineInfo _lineInfo):
19 | tag(_tag),
20 | lineInfo(_lineInfo)
21 | {}
22 |
23 | std::string tag;
24 | SourceLineInfo lineInfo;
25 | };
26 |
27 | } // end namespace Catch
28 |
29 | #endif // CATCH_TAG_ALIAS_HPP_INCLUDED
30 |
--------------------------------------------------------------------------------
/src/external/catch2/src/catch2/catch_timer.hpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 | #ifndef CATCH_TIMER_HPP_INCLUDED
9 | #define CATCH_TIMER_HPP_INCLUDED
10 |
11 | #include
12 |
13 | namespace Catch {
14 |
15 | class Timer {
16 | uint64_t m_nanoseconds = 0;
17 | public:
18 | void start();
19 | auto getElapsedNanoseconds() const -> uint64_t;
20 | auto getElapsedMicroseconds() const -> uint64_t;
21 | auto getElapsedMilliseconds() const -> unsigned int;
22 | auto getElapsedSeconds() const -> double;
23 | };
24 |
25 | } // namespace Catch
26 |
27 | #endif // CATCH_TIMER_HPP_INCLUDED
28 |
--------------------------------------------------------------------------------
/src/external/catch2/src/catch2/catch_translate_exception.cpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 |
9 | #include
10 | #include
11 |
12 | namespace Catch {
13 | namespace Detail {
14 | void registerTranslatorImpl(
15 | Detail::unique_ptr&& translator ) {
16 | getMutableRegistryHub().registerTranslator(
17 | CATCH_MOVE( translator ) );
18 | }
19 | } // namespace Detail
20 | } // namespace Catch
21 |
--------------------------------------------------------------------------------
/src/external/catch2/src/catch2/catch_version_macros.hpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 | #ifndef CATCH_VERSION_MACROS_HPP_INCLUDED
9 | #define CATCH_VERSION_MACROS_HPP_INCLUDED
10 |
11 | #define CATCH_VERSION_MAJOR 3
12 | #define CATCH_VERSION_MINOR 7
13 | #define CATCH_VERSION_PATCH 1
14 |
15 | #endif // CATCH_VERSION_MACROS_HPP_INCLUDED
16 |
--------------------------------------------------------------------------------
/src/external/catch2/src/catch2/generators/catch_generator_exception.cpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 |
9 | #include
10 |
11 | namespace Catch {
12 |
13 | const char* GeneratorException::what() const noexcept {
14 | return m_msg;
15 | }
16 |
17 | } // end namespace Catch
18 |
--------------------------------------------------------------------------------
/src/external/catch2/src/catch2/interfaces/catch_interfaces_capture.cpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 |
9 | #include
10 |
11 | namespace Catch {
12 | IResultCapture::~IResultCapture() = default;
13 | }
14 |
--------------------------------------------------------------------------------
/src/external/catch2/src/catch2/interfaces/catch_interfaces_config.cpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 |
9 | #include
10 |
11 | namespace Catch {
12 | IConfig::~IConfig() = default;
13 | }
14 |
--------------------------------------------------------------------------------
/src/external/catch2/src/catch2/interfaces/catch_interfaces_exception.cpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 |
9 | #include
10 |
11 | namespace Catch {
12 | IExceptionTranslator::~IExceptionTranslator() = default;
13 | IExceptionTranslatorRegistry::~IExceptionTranslatorRegistry() = default;
14 | }
15 |
--------------------------------------------------------------------------------
/src/external/catch2/src/catch2/interfaces/catch_interfaces_registry_hub.cpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 |
9 | #include
10 |
11 | namespace Catch {
12 | IRegistryHub::~IRegistryHub() = default;
13 | IMutableRegistryHub::~IMutableRegistryHub() = default;
14 | }
15 |
--------------------------------------------------------------------------------
/src/external/catch2/src/catch2/interfaces/catch_interfaces_reporter_factory.cpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 |
9 | #include
10 |
11 | namespace Catch {
12 | IReporterFactory::~IReporterFactory() = default;
13 | EventListenerFactory::~EventListenerFactory() = default;
14 | }
15 |
--------------------------------------------------------------------------------
/src/external/catch2/src/catch2/interfaces/catch_interfaces_test_invoker.hpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 | #ifndef CATCH_INTERFACES_TEST_INVOKER_HPP_INCLUDED
9 | #define CATCH_INTERFACES_TEST_INVOKER_HPP_INCLUDED
10 |
11 | namespace Catch {
12 |
13 | class ITestInvoker {
14 | public:
15 | virtual void prepareTestCase();
16 | virtual void tearDownTestCase();
17 | virtual void invoke() const = 0;
18 | virtual ~ITestInvoker(); // = default
19 | };
20 |
21 | } // namespace Catch
22 |
23 | #endif // CATCH_INTERFACES_TEST_INVOKER_HPP_INCLUDED
24 |
--------------------------------------------------------------------------------
/src/external/catch2/src/catch2/interfaces/catch_interfaces_testcase.cpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 |
9 | #include
10 |
11 | namespace Catch {
12 | ITestCaseRegistry::~ITestCaseRegistry() = default;
13 | }
14 |
--------------------------------------------------------------------------------
/src/external/catch2/src/catch2/internal/catch_commandline.hpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 | #ifndef CATCH_COMMANDLINE_HPP_INCLUDED
9 | #define CATCH_COMMANDLINE_HPP_INCLUDED
10 |
11 | #include
12 |
13 | namespace Catch {
14 |
15 | struct ConfigData;
16 |
17 | Clara::Parser makeCommandLineParser( ConfigData& config );
18 |
19 | } // end namespace Catch
20 |
21 | #endif // CATCH_COMMANDLINE_HPP_INCLUDED
22 |
--------------------------------------------------------------------------------
/src/external/catch2/src/catch2/internal/catch_console_width.hpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 | #ifndef CATCH_CONSOLE_WIDTH_HPP_INCLUDED
9 | #define CATCH_CONSOLE_WIDTH_HPP_INCLUDED
10 |
11 | // This include must be kept so that user's configured value for CONSOLE_WIDTH
12 | // is used before we attempt to provide a default value
13 | #include
14 |
15 | #ifndef CATCH_CONFIG_CONSOLE_WIDTH
16 | #define CATCH_CONFIG_CONSOLE_WIDTH 80
17 | #endif
18 |
19 | #endif // CATCH_CONSOLE_WIDTH_HPP_INCLUDED
20 |
--------------------------------------------------------------------------------
/src/external/catch2/src/catch2/internal/catch_debug_console.hpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 | #ifndef CATCH_DEBUG_CONSOLE_HPP_INCLUDED
9 | #define CATCH_DEBUG_CONSOLE_HPP_INCLUDED
10 |
11 | #include
12 |
13 | namespace Catch {
14 | void writeToDebugConsole( std::string const& text );
15 | }
16 |
17 | #endif // CATCH_DEBUG_CONSOLE_HPP_INCLUDED
18 |
--------------------------------------------------------------------------------
/src/external/catch2/src/catch2/internal/catch_errno_guard.cpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 |
9 | #include
10 |
11 | #include
12 |
13 | namespace Catch {
14 | ErrnoGuard::ErrnoGuard():m_oldErrno(errno){}
15 | ErrnoGuard::~ErrnoGuard() { errno = m_oldErrno; }
16 | }
17 |
--------------------------------------------------------------------------------
/src/external/catch2/src/catch2/internal/catch_errno_guard.hpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 | #ifndef CATCH_ERRNO_GUARD_HPP_INCLUDED
9 | #define CATCH_ERRNO_GUARD_HPP_INCLUDED
10 |
11 | namespace Catch {
12 |
13 | //! Simple RAII class that stores the value of `errno`
14 | //! at construction and restores it at destruction.
15 | class ErrnoGuard {
16 | public:
17 | // Keep these outlined to avoid dragging in macros from
18 |
19 | ErrnoGuard();
20 | ~ErrnoGuard();
21 | private:
22 | int m_oldErrno;
23 | };
24 |
25 | }
26 |
27 | #endif // CATCH_ERRNO_GUARD_HPP_INCLUDED
28 |
--------------------------------------------------------------------------------
/src/external/catch2/src/catch2/internal/catch_getenv.hpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 | #ifndef CATCH_GETENV_HPP_INCLUDED
9 | #define CATCH_GETENV_HPP_INCLUDED
10 |
11 | namespace Catch {
12 | namespace Detail {
13 |
14 | //! Wrapper over `std::getenv` that compiles on UWP (and always returns nullptr there)
15 | char const* getEnv(char const* varName);
16 |
17 | }
18 | }
19 |
20 | #endif // CATCH_GETENV_HPP_INCLUDED
21 |
--------------------------------------------------------------------------------
/src/external/catch2/src/catch2/internal/catch_leak_detector.hpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 | #ifndef CATCH_LEAK_DETECTOR_HPP_INCLUDED
9 | #define CATCH_LEAK_DETECTOR_HPP_INCLUDED
10 |
11 | namespace Catch {
12 |
13 | struct LeakDetector {
14 | LeakDetector();
15 | ~LeakDetector();
16 | };
17 |
18 | }
19 | #endif // CATCH_LEAK_DETECTOR_HPP_INCLUDED
20 |
--------------------------------------------------------------------------------
/src/external/catch2/src/catch2/internal/catch_move_and_forward.hpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 | #ifndef CATCH_MOVE_AND_FORWARD_HPP_INCLUDED
9 | #define CATCH_MOVE_AND_FORWARD_HPP_INCLUDED
10 |
11 | #include
12 |
13 | //! Replacement for std::move with better compile time performance
14 | #define CATCH_MOVE(...) static_cast&&>(__VA_ARGS__)
15 |
16 | //! Replacement for std::forward with better compile time performance
17 | #define CATCH_FORWARD(...) static_cast(__VA_ARGS__)
18 |
19 | #endif // CATCH_MOVE_AND_FORWARD_HPP_INCLUDED
20 |
--------------------------------------------------------------------------------
/src/external/catch2/src/catch2/internal/catch_polyfills.hpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 | #ifndef CATCH_POLYFILLS_HPP_INCLUDED
9 | #define CATCH_POLYFILLS_HPP_INCLUDED
10 |
11 | namespace Catch {
12 |
13 | bool isnan(float f);
14 | bool isnan(double d);
15 |
16 | float nextafter(float x, float y);
17 | double nextafter(double x, double y);
18 |
19 | }
20 |
21 | #endif // CATCH_POLYFILLS_HPP_INCLUDED
22 |
--------------------------------------------------------------------------------
/src/external/catch2/src/catch2/internal/catch_preprocessor_internal_stringify.hpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 | #ifndef CATCH_PREPROCESSOR_INTERNAL_STRINGIFY_HPP_INCLUDED
9 | #define CATCH_PREPROCESSOR_INTERNAL_STRINGIFY_HPP_INCLUDED
10 |
11 | #include
12 |
13 | #if !defined(CATCH_CONFIG_DISABLE_STRINGIFICATION)
14 | #define CATCH_INTERNAL_STRINGIFY(...) #__VA_ARGS__##_catch_sr
15 | #else
16 | #define CATCH_INTERNAL_STRINGIFY(...) "Disabled by CATCH_CONFIG_DISABLE_STRINGIFICATION"_catch_sr
17 | #endif
18 |
19 | #endif // CATCH_PREPROCESSOR_INTERNAL_STRINGIFY_HPP_INCLUDED
20 |
--------------------------------------------------------------------------------
/src/external/catch2/src/catch2/internal/catch_random_seed_generation.hpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 | #ifndef CATCH_RANDOM_SEED_GENERATION_HPP_INCLUDED
9 | #define CATCH_RANDOM_SEED_GENERATION_HPP_INCLUDED
10 |
11 | #include
12 |
13 | namespace Catch {
14 |
15 | enum class GenerateFrom {
16 | Time,
17 | RandomDevice,
18 | //! Currently equivalent to RandomDevice, but can change at any point
19 | Default
20 | };
21 |
22 | std::uint32_t generateRandomSeed(GenerateFrom from);
23 |
24 | } // end namespace Catch
25 |
26 | #endif // CATCH_RANDOM_SEED_GENERATION_HPP_INCLUDED
27 |
--------------------------------------------------------------------------------
/src/external/catch2/src/catch2/internal/catch_stdstreams.cpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 |
9 | #include
10 |
11 | #include
12 |
13 | #include
14 |
15 | namespace Catch {
16 |
17 | // If you #define this you must implement these functions
18 | #if !defined( CATCH_CONFIG_NOSTDOUT )
19 | std::ostream& cout() { return std::cout; }
20 | std::ostream& cerr() { return std::cerr; }
21 | std::ostream& clog() { return std::clog; }
22 | #endif
23 |
24 | } // namespace Catch
25 |
--------------------------------------------------------------------------------
/src/external/catch2/src/catch2/internal/catch_stdstreams.hpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 |
9 | #ifndef CATCH_STDSTREAMS_HPP_INCLUDED
10 | #define CATCH_STDSTREAMS_HPP_INCLUDED
11 |
12 | #include
13 |
14 | namespace Catch {
15 |
16 | std::ostream& cout();
17 | std::ostream& cerr();
18 | std::ostream& clog();
19 |
20 | } // namespace Catch
21 |
22 | #endif
23 |
--------------------------------------------------------------------------------
/src/external/catch2/src/catch2/internal/catch_test_run_info.hpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 | #ifndef CATCH_TEST_RUN_INFO_HPP_INCLUDED
9 | #define CATCH_TEST_RUN_INFO_HPP_INCLUDED
10 |
11 | #include
12 |
13 | namespace Catch {
14 |
15 | struct TestRunInfo {
16 | constexpr TestRunInfo(StringRef _name) : name(_name) {}
17 | StringRef name;
18 | };
19 |
20 | } // end namespace Catch
21 |
22 | #endif // CATCH_TEST_RUN_INFO_HPP_INCLUDED
23 |
--------------------------------------------------------------------------------
/src/external/catch2/src/catch2/internal/catch_uncaught_exceptions.hpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 | #ifndef CATCH_UNCAUGHT_EXCEPTIONS_HPP_INCLUDED
9 | #define CATCH_UNCAUGHT_EXCEPTIONS_HPP_INCLUDED
10 |
11 | namespace Catch {
12 | bool uncaught_exceptions();
13 | } // end namespace Catch
14 |
15 | #endif // CATCH_UNCAUGHT_EXCEPTIONS_HPP_INCLUDED
16 |
--------------------------------------------------------------------------------
/src/external/catch2/src/catch2/internal/catch_void_type.hpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 | #ifndef CATCH_VOID_TYPE_HPP_INCLUDED
9 | #define CATCH_VOID_TYPE_HPP_INCLUDED
10 |
11 |
12 | namespace Catch {
13 | namespace Detail {
14 |
15 | template
16 | struct make_void { using type = void; };
17 |
18 | template
19 | using void_t = typename make_void::type;
20 |
21 | } // namespace Detail
22 | } // namespace Catch
23 |
24 |
25 | #endif // CATCH_VOID_TYPE_HPP_INCLUDED
26 |
--------------------------------------------------------------------------------
/src/external/catch2/src/catch2/matchers/catch_matchers.cpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 |
9 |
10 | #include
11 |
12 | namespace Catch {
13 | namespace Matchers {
14 |
15 | std::string MatcherUntypedBase::toString() const {
16 | if (m_cachedToString.empty()) {
17 | m_cachedToString = describe();
18 | }
19 | return m_cachedToString;
20 | }
21 |
22 | MatcherUntypedBase::~MatcherUntypedBase() = default;
23 |
24 | } // namespace Matchers
25 | } // namespace Catch
26 |
--------------------------------------------------------------------------------
/src/external/catch2/src/catch2/matchers/catch_matchers_predicate.cpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 |
9 | #include
10 |
11 | std::string Catch::Matchers::Detail::finalizeDescription(const std::string& desc) {
12 | if (desc.empty()) {
13 | return "matches undescribed predicate";
14 | } else {
15 | return "matches predicate: \"" + desc + '"';
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/external/catch2/src/catch2/reporters/catch_reporter_streaming_base.cpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 | #include
9 |
10 | namespace Catch {
11 |
12 | StreamingReporterBase::~StreamingReporterBase() = default;
13 |
14 | void
15 | StreamingReporterBase::testRunStarting( TestRunInfo const& _testRunInfo ) {
16 | currentTestRunInfo = _testRunInfo;
17 | }
18 |
19 | void StreamingReporterBase::testRunEnded( TestRunStats const& ) {
20 | currentTestCaseInfo = nullptr;
21 | }
22 |
23 | } // end namespace Catch
24 |
--------------------------------------------------------------------------------
/src/external/catch2/tests/ExtraTests/ToDo.txt:
--------------------------------------------------------------------------------
1 | Configuration options that are left default and thus are not properly tested
2 | yet:
3 |
4 | CATCH_CONFIG_COUNTER // Use __COUNTER__ to generate unique names for test cases
5 | CATCH_CONFIG_WINDOWS_SEH // Enable SEH handling on Windows
6 | CATCH_CONFIG_FAST_COMPILE // Sacrifices some (rather minor) features for compilation speed
7 | CATCH_CONFIG_POSIX_SIGNALS // Enable handling POSIX signals
8 | CATCH_CONFIG_WINDOWS_CRTDBG // Enable leak checking using Windows's CRT Debug Heap
9 | CATCH_CONFIG_DEFAULT_REPORTER
10 | CATCH_CONFIG_ENABLE_ALL_STRINGMAKERS
11 |
--------------------------------------------------------------------------------
/src/external/catch2/tests/ExtraTests/X05-DeferredStaticChecks.cpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 |
9 | /**\file
10 | * Checks that when `STATIC_CHECK` is deferred to runtime and fails, it
11 | * does not abort the test case.
12 | */
13 |
14 | #include
15 |
16 | TEST_CASE("Deferred static checks") {
17 | STATIC_CHECK(1 == 2);
18 | STATIC_CHECK_FALSE(1 != 2);
19 | // This last assertion must be executed too
20 | CHECK(1 == 2);
21 | }
22 |
--------------------------------------------------------------------------------
/src/external/catch2/tests/ExtraTests/X11-DisableStringification.cpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 |
9 | /**\file
10 | * Test that stringification of original expression can be disabled.
11 | *
12 | * This is a workaround for VS 2017, 2019 issue with Raw String literals
13 | * and preprocessor token pasting.
14 | */
15 |
16 |
17 | #include
18 |
19 | namespace {
20 | struct Hidden {};
21 |
22 | bool operator==(Hidden, Hidden) { return true; }
23 | }
24 |
25 | TEST_CASE("DisableStringification") {
26 | REQUIRE( Hidden{} == Hidden{} );
27 | }
28 |
--------------------------------------------------------------------------------
/src/external/catch2/tests/ExtraTests/X12-CustomDebugBreakMacro.cpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 |
9 | /**\file
10 | * Test that user-defined `CATCH_BREAK_INTO_DEBUGGER` is respected and used.
11 | */
12 |
13 | #include
14 |
15 | void custom_debug_break() {
16 | std::cerr << "Pretty please, break into debugger\n";
17 | }
18 |
19 | #define CATCH_BREAK_INTO_DEBUGGER() custom_debug_break()
20 |
21 | #define CATCH_CONFIG_MAIN
22 | #include
23 |
24 | TEST_CASE("Failing test that breaks into debugger", "[macros]") {
25 | REQUIRE(1 == 2);
26 | }
27 |
--------------------------------------------------------------------------------
/src/external/catch2/tests/ExtraTests/X30-BazelReporter.cpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 |
9 | /**\file
10 | * Test the Bazel report functionality with a simple set
11 | * of dummy test cases.
12 | */
13 |
14 | #include
15 |
16 | TEST_CASE( "Passing test case" ) { REQUIRE( 1 == 1 ); }
17 | TEST_CASE( "Failing test case" ) { REQUIRE( 2 == 1 ); }
18 |
--------------------------------------------------------------------------------
/src/external/catch2/tests/ExtraTests/X31-DuplicatedTestCases.cpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 |
9 | /**\file
10 | * Checks that test cases with identical name and tags are reported as error
11 | */
12 |
13 | #include
14 |
15 | TEST_CASE("A test case with duplicated name and tags", "[tag1][tag2]") {}
16 | TEST_CASE("A test case with duplicated name and tags", "[tag1][tag2]") {}
17 |
--------------------------------------------------------------------------------
/src/external/catch2/tests/ExtraTests/X32-DuplicatedTestCasesDifferentTags.cpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 |
9 | /**\file
10 | * Checks that test cases with identical name but different tags are
11 | * not reported as an error.
12 | */
13 |
14 | #include
15 |
16 | TEST_CASE("A test case with duplicated name but different tags", "[tag1]") {}
17 | TEST_CASE("A test case with duplicated name but different tags", "[tag2]") {}
18 |
--------------------------------------------------------------------------------
/src/external/catch2/tests/ExtraTests/X33-DuplicatedTestCaseMethods.cpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 |
9 | /**\file
10 | * Checks that test case methods with identical class, name and tags are
11 | * reported as error.
12 | */
13 |
14 | #include
15 |
16 | class TestCaseFixture {
17 | public:
18 | int m_a;
19 | };
20 |
21 | TEST_CASE_METHOD(TestCaseFixture, "A test case with duplicated name and tags", "[tag1]") {}
22 | TEST_CASE_METHOD(TestCaseFixture, "A test case with duplicated name and tags", "[tag1]") {}
23 |
--------------------------------------------------------------------------------
/src/external/catch2/tests/ExtraTests/X90-WindowsHeaderInclusion.cpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 |
9 | /**\file
10 | * Test that the Catch2 header compiles even after including windows.h
11 | * without defining NOMINMAX first.
12 | *
13 | * As an FYI, if you do that, you are wrong.
14 | */
15 |
16 | #include
17 | #include
18 |
19 | TEST_CASE("Catch2 did survive compilation with windows.h", "[compile-test]") {
20 | SUCCEED();
21 | }
22 |
--------------------------------------------------------------------------------
/src/external/catch2/tests/ExtraTests/X92-NoTests.cpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 |
9 | /**\file
10 | * Links into executable with no tests which should fail when run
11 | */
12 |
--------------------------------------------------------------------------------
/src/external/catch2/tests/ExtraTests/X93-AllSkipped.cpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 |
9 | #include
10 |
11 | TEST_CASE( "this test case is being skipped" ) { SKIP(); }
12 |
13 | TEST_CASE( "all sections in this test case are being skipped" ) {
14 | SECTION( "A" ) { SKIP(); }
15 | SECTION( "B" ) { SKIP(); }
16 | }
17 |
--------------------------------------------------------------------------------
/src/external/catch2/tests/SelfTest/Baselines/default.sw.multi.approved.txt:
--------------------------------------------------------------------------------
1 | This would not be caught previously
2 | Nor would this
3 | A string sent directly to stdout
4 | A string sent directly to stderr
5 | A string sent to stderr via clog
6 | Message from section one
7 | Message from section two
8 | loose text artifact
9 | a!
10 | b1!
11 | !
12 |
--------------------------------------------------------------------------------
/src/external/catch2/tests/SelfTest/IntrospectiveTests/AssertionHandler.tests.cpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 |
9 | #include
10 |
11 | TEST_CASE( "Incomplete AssertionHandler", "[assertion-handler][!shouldfail]" ) {
12 | Catch::AssertionHandler catchAssertionHandler(
13 | "REQUIRE"_catch_sr,
14 | CATCH_INTERNAL_LINEINFO,
15 | "Dummy",
16 | Catch::ResultDisposition::Normal );
17 | }
18 |
--------------------------------------------------------------------------------
/src/external/catch2/tests/SelfTest/Misc/invalid-test-names.input:
--------------------------------------------------------------------------------
1 | Test with special, characters in \" name
2 |
--------------------------------------------------------------------------------
/src/external/catch2/tests/SelfTest/Misc/plain-old-tests.input:
--------------------------------------------------------------------------------
1 | random SECTION tests
2 | nested SECTION tests
3 |
--------------------------------------------------------------------------------
/src/external/catch2/tests/SelfTest/Misc/special-characters-in-file.input:
--------------------------------------------------------------------------------
1 | Test with special\, characters \"in name
2 |
--------------------------------------------------------------------------------
/src/external/catch2/tests/SelfTest/TimingTests/Sleep.tests.cpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 |
9 | #include
10 |
11 | #include
12 | #include
13 |
14 | TEST_CASE( "sleep_for_100ms", "[.min_duration_test][approvals]" )
15 | {
16 | std::this_thread::sleep_for( std::chrono::milliseconds( 100 ) );
17 | CHECK( true );
18 | }
19 |
20 | TEST_CASE( "sleep_for_1000ms", "[.min_duration_test][approvals]" )
21 | {
22 | std::this_thread::sleep_for( std::chrono::milliseconds( 1'000 ) );
23 | CHECK( true );
24 | }
25 |
--------------------------------------------------------------------------------
/src/external/catch2/tests/SelfTest/UsageTests/VariadicMacros.tests.cpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 |
9 | #include
10 |
11 |
12 | TEST_CASE()
13 | {
14 | SUCCEED( "anonymous test case" );
15 | }
16 |
17 | TEST_CASE( "Test case with one argument" )
18 | {
19 | SUCCEED( "no assertions" );
20 | }
21 |
22 | TEST_CASE( "Variadic macros", "[variadic][sections]" )
23 | {
24 | SECTION( "Section with one argument" )
25 | {
26 | SUCCEED( "no assertions" );
27 | }
28 | }
29 |
30 |
--------------------------------------------------------------------------------
/src/external/catch2/tests/SelfTest/helpers/parse_test_spec.cpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 |
9 | #include
10 |
11 | #include
12 | #include
13 |
14 | namespace Catch {
15 |
16 | TestSpec parseTestSpec( std::string const& arg ) {
17 | return TestSpecParser( ITagAliasRegistry::get() )
18 | .parse( arg )
19 | .testSpec();
20 | }
21 |
22 | } // namespace Catch
23 |
--------------------------------------------------------------------------------
/src/external/catch2/tests/SelfTest/helpers/parse_test_spec.hpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 |
9 | #ifndef CATCH_TEST_HELPERS_PARSE_TEST_SPEC_HPP_INCLUDED
10 | #define CATCH_TEST_HELPERS_PARSE_TEST_SPEC_HPP_INCLUDED
11 |
12 | #include
13 |
14 | #include
15 |
16 | namespace Catch {
17 | TestSpec parseTestSpec( std::string const& arg );
18 | }
19 |
20 | #endif // CATCH_TEST_HELPERS_PARSE_TEST_SPEC_HPP_INCLUDED
21 |
--------------------------------------------------------------------------------
/src/external/catch2/tests/TestScripts/DiscoverTests/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.10)
2 |
3 | project(discover-tests-test
4 | LANGUAGES CXX
5 | )
6 |
7 | add_executable(tests
8 | register-tests.cpp
9 | )
10 |
11 | add_subdirectory(${CATCH2_PATH} catch2-build)
12 | target_link_libraries(tests PRIVATE Catch2::Catch2WithMain)
13 |
14 | enable_testing()
15 | include(Catch)
16 | set(extra_args)
17 | if (CMAKE_VERSION GREATER_EQUAL 3.27)
18 | list(APPEND extra_args
19 | DL_PATHS "${CMAKE_CURRENT_LIST_DIR};${CMAKE_CURRENT_LIST_DIR}/.."
20 | )
21 | endif ()
22 | catch_discover_tests(tests ${extra_args})
23 |
--------------------------------------------------------------------------------
/src/external/catch2/tests/TestScripts/DiscoverTests/register-tests.cpp:
--------------------------------------------------------------------------------
1 |
2 | // Copyright Catch2 Authors
3 | // Distributed under the Boost Software License, Version 1.0.
4 | // (See accompanying file LICENSE.txt or copy at
5 | // https://www.boost.org/LICENSE_1_0.txt)
6 |
7 | // SPDX-License-Identifier: BSL-1.0
8 |
9 | #include
10 |
11 | TEST_CASE("@Script[C:\\EPM1A]=x;\"SCALA_ZERO:\"", "[script regressions]"){}
12 | TEST_CASE("Some test") {}
13 | TEST_CASE( "Let's have a test case with a long name. Longer. No, even longer. "
14 | "Really looooooooooooong. Even longer than that. Multiple lines "
15 | "worth of test name. Yep, like this." ) {}
16 | TEST_CASE( "And now a test case with weird tags.", "[tl;dr][tl;dw][foo,bar]" ) {}
17 |
--------------------------------------------------------------------------------
/src/external/catch2/tools/misc/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.0)
2 |
3 | project(CatchCoverageHelper)
4 |
5 | add_executable(CoverageHelper coverage-helper.cpp)
6 | set_property(TARGET CoverageHelper PROPERTY CXX_STANDARD 11)
7 | set_property(TARGET CoverageHelper PROPERTY CXX_STANDARD_REQUIRED ON)
8 | set_property(TARGET CoverageHelper PROPERTY CXX_EXTENSIONS OFF)
9 | if (MSVC)
10 | target_compile_options( CoverageHelper PRIVATE /W4 /w44265 /WX /w44061 /w44062 )
11 | endif()
12 |
--------------------------------------------------------------------------------
/src/external/catch2/tools/misc/appveyorMergeCoverageScript.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 |
3 | import glob
4 | import subprocess
5 |
6 | if __name__ == '__main__':
7 | cov_files = list(glob.glob('tests/cov-report*.bin'))
8 | base_cmd = ['OpenCppCoverage', '--quiet', '--export_type=cobertura:cobertura.xml'] + ['--input_coverage={}'.format(f) for f in cov_files]
9 | subprocess.check_call(base_cmd)
10 |
--------------------------------------------------------------------------------
/src/external/catch2/tools/misc/appveyorTestRunScript.bat:
--------------------------------------------------------------------------------
1 | SETLOCAL EnableDelayedExpansion
2 |
3 | rem Disable launching the JIT debugger for ctest.exe
4 | reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug\AutoExclusionList" /v "ctest.ext" /t REG_DWORD /d 1
5 | cd Build
6 | if "%CONFIGURATION%"=="Debug" (
7 | if "%coverage%"=="1" (
8 | ctest -j 2 -C %CONFIGURATION% -D ExperimentalMemCheck -LE uses-signals || exit /b !ERRORLEVEL!
9 | python ..\tools\misc\appveyorMergeCoverageScript.py || exit /b !ERRORLEVEL!
10 | codecov --root .. --no-color --disable gcov -f cobertura.xml -t %CODECOV_TOKEN% || exit /b !ERRORLEVEL!
11 | ) else (
12 | ctest -j 2 -C %CONFIGURATION% || exit /b !ERRORLEVEL!
13 | )
14 | )
15 | if "%CONFIGURATION%"=="Release" (
16 | ctest -j 2 -C %CONFIGURATION% || exit /b !ERRORLEVEL!
17 | )
18 |
--------------------------------------------------------------------------------
/src/external/catch2/tools/scripts/buildAndTest.cmd:
--------------------------------------------------------------------------------
1 | rem Start at the root of the Catch project directory, for example:
2 | rem cd Catch2
3 |
4 | rem begin-snippet: catch2-build-and-test-win
5 | rem 1. Regenerate the amalgamated distribution
6 | python tools\scripts\generateAmalgamatedFiles.py
7 |
8 | rem 2. Configure the full test build
9 | cmake -B debug-build -S . -DCMAKE_BUILD_TYPE=Debug --preset all-tests
10 |
11 | rem 3. Run the actual build
12 | cmake --build debug-build
13 |
14 | rem 4. Run the tests using CTest
15 | ctest -j 4 --output-on-failure -C Debug --test-dir debug-build
16 | rem end-snippet
17 |
--------------------------------------------------------------------------------
/src/external/catch2/tools/scripts/buildAndTest.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env sh
2 |
3 | # Start at the root of the Catch project directory, for example:
4 | # cd Catch2
5 |
6 | # begin-snippet: catch2-build-and-test
7 | # 1. Regenerate the amalgamated distribution
8 | ./tools/scripts/generateAmalgamatedFiles.py
9 |
10 | # 2. Configure the full test build
11 | cmake -B debug-build -S . -DCMAKE_BUILD_TYPE=Debug --preset all-tests
12 |
13 | # 3. Run the actual build
14 | cmake --build debug-build
15 |
16 | # 4. Run the tests using CTest
17 | ctest -j 4 --output-on-failure -C Debug --test-dir debug-build
18 | # end-snippet
19 |
--------------------------------------------------------------------------------
/src/external/catch2/tools/scripts/checkDuplicateFilenames.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 |
3 | import os
4 | import sys
5 |
6 | files_set = set()
7 |
8 | for root, dir, files in os.walk("src/catch2"):
9 | for file in files:
10 | if file not in files_set:
11 | files_set.add(file)
12 | else:
13 | print("File %s is duplicate" % file)
14 | sys.exit(1)
15 |
--------------------------------------------------------------------------------
/src/external/catch2/tools/scripts/developBuild.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 |
3 | import releaseCommon
4 |
5 | v = releaseCommon.Version()
6 | v.incrementBuildNumber()
7 | releaseCommon.performUpdates(v)
8 |
9 | print( "Updated files to v{0}".format( v.getVersionString() ) )
10 |
--------------------------------------------------------------------------------
/src/external/catch2/tools/scripts/majorRelease.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 |
3 | import releaseCommon
4 |
5 | v = releaseCommon.Version()
6 | v.incrementMajorVersion()
7 | releaseCommon.performUpdates(v)
8 |
9 | print( "Updated files to v{0}".format( v.getVersionString() ) )
10 |
--------------------------------------------------------------------------------
/src/external/catch2/tools/scripts/minorRelease.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 |
3 | import releaseCommon
4 |
5 | v = releaseCommon.Version()
6 | v.incrementMinorVersion()
7 | releaseCommon.performUpdates(v)
8 |
9 | print( "Updated files to v{0}".format( v.getVersionString() ) )
10 |
--------------------------------------------------------------------------------
/src/external/catch2/tools/scripts/patchRelease.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 |
3 | import releaseCommon
4 |
5 | v = releaseCommon.Version()
6 | v.incrementPatchNumber()
7 | releaseCommon.performUpdates(v)
8 |
9 | print( "Updated files to v{0}".format( v.getVersionString() ) )
10 |
--------------------------------------------------------------------------------
/src/external/catch2/tools/scripts/scriptCommon.py:
--------------------------------------------------------------------------------
1 | import os
2 | import sys
3 |
4 | catchPath = os.path.dirname(os.path.dirname(os.path.realpath( os.path.dirname(sys.argv[0]))))
5 |
--------------------------------------------------------------------------------
/src/external/jnipp/Android.bp:
--------------------------------------------------------------------------------
1 |
2 | cc_library_headers {
3 | name: "libjnipp-headers",
4 | export_include_dirs: ["."],
5 | vendor_available: true,
6 | }
7 |
8 | cc_library_static {
9 | name: "libjnipp",
10 |
11 | srcs: [
12 | "jnipp.cpp",
13 | ],
14 |
15 | cppflags: [ "-fexceptions" ],
16 | header_libs: [
17 | "libjnipp-headers",
18 | ],
19 | export_header_lib_headers: [
20 | "libjnipp-headers"
21 | ],
22 | vendor_available: true,
23 | }
24 |
--------------------------------------------------------------------------------
/src/external/jnipp/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Changelog for jnipp
2 |
3 | ## jnipp 1.0.0 (25-October-2023)
4 |
5 | This release is somewhat of a formality, as jnipp has been used in production
6 | environments for some time. It was prompted by the need for an API breaking
7 | change to ensure continued compatibility with libc++ as they move to more
8 | strictly follow the C++ standard.
9 |
--------------------------------------------------------------------------------
/src/external/jnipp/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # Copyright 2021, Collabora, Ltd.
2 | #
3 | # SPDX-License-Identifier: MIT
4 |
5 | cmake_minimum_required(VERSION 3.10.2)
6 | project(jnipp)
7 |
8 | find_package(JNI REQUIRED)
9 | include(CTest)
10 |
11 | add_library(jnipp jnipp.cpp)
12 | target_include_directories(
13 | jnipp
14 | PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
15 | PRIVATE ${JNI_INCLUDE_DIRS})
16 | target_compile_features(jnipp PUBLIC cxx_std_11)
17 | target_link_libraries(jnipp PUBLIC ${CMAKE_DL_LIBS})
18 |
19 | add_subdirectory(tests)
20 |
--------------------------------------------------------------------------------
/src/external/jnipp/android/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/src/external/jnipp/android/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | CMAKE_MINIMUM_REQUIRED(VERSION 3.4.1)
2 |
3 | GET_FILENAME_COMPONENT(root_dir "../.." ABSOLUTE)
4 |
5 | LINK_DIRECTORIES("${root_dir}/${ANDROID_ABI}")
6 |
7 | SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${root_dir}/${ANDROID_ABI}")
8 | SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DANDROID_STL=c++_static -std=gnu++11 -fexceptions")
9 |
10 | FILE(GLOB sources ../*.cpp ../common/*.cpp ../android/*.cpp)
11 |
12 | ADD_LIBRARY(jnipp SHARED ${sources})
13 |
--------------------------------------------------------------------------------
/src/external/jnipp/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 |
3 | android {
4 | compileSdkVersion 26
5 | buildToolsVersion '28.0.3'
6 |
7 | defaultConfig {
8 | minSdkVersion 15
9 | targetSdkVersion 26
10 | }
11 |
12 | buildTypes {
13 | release {
14 | minifyEnabled = false
15 | proguardFiles getDefaultProguardFile('proguard-android.txt')
16 | }
17 | }
18 |
19 | sourceSets {
20 | main {
21 | manifest.srcFile 'android/AndroidManifest.xml'
22 | }
23 | }
24 |
25 | externalNativeBuild {
26 | cmake {
27 | path 'android/CMakeLists.txt'
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/src/external/jnipp/changes/changes/pr.40.md:
--------------------------------------------------------------------------------
1 | Stop using `std::basic_string` internally, because it is `std::basic_string` on some platforms, and this specialization is not technically provided by the standard library. libc++ is removing support for it, so this internal change is required to continue to compile against libc++. In place of it, use `std::vector`.
2 |
--------------------------------------------------------------------------------
/src/external/jnipp/changes/fixes/pr.49.md:
--------------------------------------------------------------------------------
1 | Do not allow exceptions to escape destructors.
2 |
--------------------------------------------------------------------------------
/src/external/jnipp/jnipp.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/src/external/jnipp/makefile:
--------------------------------------------------------------------------------
1 | CC=g++
2 |
3 | OS_NAME := linux
4 |
5 | ifeq ($(OS),Windows_NT)
6 | OS_NAME := win32
7 | RM := del
8 | else
9 | RM := rm -f
10 | UNAME_S := $(shell uname -s)
11 | ifeq ($(UNAME_S),Darwin)
12 | OS_NAME := darwin
13 | endif
14 | endif
15 |
16 | JAVA_HOME ?= /usr/lib/jvm/default-java
17 |
18 | CXXFLAGS=-I. -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/$(OS_NAME) -ldl -std=c++11 -Wall -g
19 |
20 | SRC=jnipp.o main.o
21 | VPATH=tests
22 |
23 | %.o: %.cpp
24 | $(CC) -c -o $@ $< $(CXXFLAGS)
25 |
26 | test: $(SRC)
27 | $(CC) -o test $(SRC) $(CXXFLAGS)
28 |
29 | clean:
30 | -$(RM) $(SRC) test
31 |
32 | .PHONY: clean
33 |
--------------------------------------------------------------------------------
/src/external/jnipp/proclamation.json:
--------------------------------------------------------------------------------
1 | {
2 | "#": "This is a config file for Proclamation, the changelog combiner: https://gitlab.com/proclamation/proclamation",
3 | "SPDX-License-Identifier: CC0-1.0": "",
4 | "SPDX-FileCopyrightText: 2020 Collabora, Ltd. and the Proclamation contributors": "",
5 | "$schema": "https://proclamation.gitlab.io/proclamation/proclamation.schema.json",
6 | "project_name": "jnipp",
7 | "base_url": "https://github.com/mitchdowd/jnipp",
8 | "news_filename": "CHANGELOG.md",
9 | "sections": {
10 | "Changes": {
11 | "directory": "changes/templates"
12 | },
13 | "Fixes": {
14 | "directory": "changes/misc"
15 | },
16 | "Additions": {
17 | "directory": "changes/script"
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/external/jnipp/tests/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # Copyright 2021, Collabora, Ltd.
2 | #
3 | # SPDX-License-Identifier: MIT
4 |
5 | add_executable(main_test main.cpp testing.h)
6 | target_link_libraries(main_test PRIVATE jnipp)
7 | add_test(NAME main_test COMMAND main_test)
8 |
9 | add_executable(external_create external_create.cpp testing.h)
10 | target_link_libraries(external_create PUBLIC jnipp ${JNI_LIBRARIES})
11 | target_include_directories(external_create PUBLIC ${JNI_INCLUDE_DIRS})
12 | add_test(NAME external_create COMMAND external_create)
13 |
14 |
15 | add_executable(external_detach external_detach.cpp testing.h)
16 | target_link_libraries(external_detach PUBLIC jnipp ${JNI_LIBRARIES})
17 | target_include_directories(external_detach PUBLIC ${JNI_INCLUDE_DIRS})
18 | add_test(NAME external_detach COMMAND external_detach)
19 |
--------------------------------------------------------------------------------
/src/external/jnipp/tests/external_create.cpp:
--------------------------------------------------------------------------------
1 | // Project Dependencies
2 | #include
3 | #include
4 |
5 | // Standard Dependencies
6 | #include
7 |
8 | // Local Dependencies
9 | #include "testing.h"
10 |
11 | /*
12 | jni::Vm Tests
13 | */
14 | TEST(Vm_externalCreateAndAttach) {
15 | JNIEnv *env;
16 | JavaVMInitArgs args = {};
17 | args.version = JNI_VERSION_1_2;
18 | JavaVM *javaVm{};
19 | auto ret = JNI_CreateJavaVM(&javaVm, (void **)&env, &args);
20 | ASSERT(ret == 0);
21 |
22 | {
23 | jni::init(env);
24 | jni::Class cls("java/lang/String");
25 | }
26 | JavaVM *localVmPointer{};
27 |
28 | ret = env->GetJavaVM(&localVmPointer);
29 | ASSERT(ret == 0);
30 | }
31 |
32 | int main() {
33 | // jni::Vm Tests
34 | RUN_TEST(Vm_externalCreateAndAttach);
35 |
36 | return 0;
37 | }
38 |
--------------------------------------------------------------------------------
/src/external/jnipp/tests/external_detach.cpp:
--------------------------------------------------------------------------------
1 | // Project Dependencies
2 | #include
3 | #include
4 |
5 | // Standard Dependencies
6 | #include
7 |
8 | // Local Dependencies
9 | #include "testing.h"
10 |
11 | /*
12 | jni::Vm Tests
13 | */
14 | TEST(Vm_externalDetach) {
15 | jni::Vm vm;
16 |
17 | jni::Class cls("java/lang/String");
18 |
19 | JNIEnv *env = (JNIEnv *)jni::env();
20 | JavaVM *localVmPointer{};
21 |
22 | auto ret = env->GetJavaVM(&localVmPointer);
23 | ASSERT(ret == 0);
24 | ret = localVmPointer->DetachCurrentThread();
25 | ASSERT(ret == 0);
26 |
27 | ASSERT(1);
28 | }
29 |
30 | int main() {
31 | // jni::Vm Tests
32 | RUN_TEST(Vm_externalDetach);
33 | return 0;
34 | }
35 |
--------------------------------------------------------------------------------
/src/external/jnipp/tests/tests.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/src/external/jsoncpp/.clang-format:
--------------------------------------------------------------------------------
1 | BasedOnStyle: LLVM
2 | DerivePointerAlignment: false
3 | PointerAlignment: Left
4 | SpacesBeforeTrailingComments: 1
5 |
--------------------------------------------------------------------------------
/src/external/jsoncpp/.clang-tidy:
--------------------------------------------------------------------------------
1 | ---
2 | Checks: 'google-readability-casting,modernize-deprecated-headers,modernize-loop-convert,modernize-use-auto,modernize-use-default-member-init,modernize-use-using,readability-else-after-return,readability-redundant-member-init,readability-redundant-string-cstr'
3 | WarningsAsErrors: ''
4 | HeaderFilterRegex: ''
5 | AnalyzeTemporaryDtors: false
6 | FormatStyle: none
7 | CheckOptions:
8 | - key: modernize-use-using.IgnoreMacros
9 | value: '0'
10 | ...
11 |
12 |
--------------------------------------------------------------------------------
/src/external/jsoncpp/.gitattributes:
--------------------------------------------------------------------------------
1 | * text=auto
2 | *.h text
3 | *.cpp text
4 | *.json text
5 | *.in text
6 | *.sh eol=lf
7 | *.bat eol=crlf
8 | *.vcproj eol=crlf
9 | *.vcxproj eol=crlf
10 | *.sln eol=crlf
11 | devtools/agent_vm* eol=crlf
12 |
--------------------------------------------------------------------------------
/src/external/jsoncpp/CTestConfig.cmake:
--------------------------------------------------------------------------------
1 | ## This file should be placed in the root directory of your project.
2 | ## Then modify the CMakeLists.txt file in the root directory of your
3 | ## project to incorporate the testing dashboard.
4 | ##
5 | ## # The following are required to submit to the CDash dashboard:
6 | ## ENABLE_TESTING()
7 | ## INCLUDE(CTest)
8 |
9 | set(CTEST_PROJECT_NAME "jsoncpp")
10 | set(CTEST_NIGHTLY_START_TIME "01:23:45 UTC")
11 |
12 | set(CTEST_DROP_METHOD "https")
13 | set(CTEST_DROP_SITE "my.cdash.org")
14 | set(CTEST_DROP_LOCATION "/submit.php?project=jsoncpp")
15 | set(CTEST_DROP_SITE_CDASH TRUE)
16 |
--------------------------------------------------------------------------------
/src/external/jsoncpp/SECURITY.md:
--------------------------------------------------------------------------------
1 | # Security Policy
2 |
3 | If you have discovered a security vulnerability in this project, please report it
4 | privately. **Do not disclose it as a public issue.** This gives us time to work with you
5 | to fix the issue before public exposure, reducing the chance that the exploit will be
6 | used before a patch is released.
7 |
8 | Please submit the report by filling out
9 | [this form](https://github.com/open-source-parsers/jsoncpp/security/advisories/new).
10 |
11 | Please provide the following information in your report:
12 |
13 | - A description of the vulnerability and its impact
14 | - How to reproduce the issue
15 |
16 | This project is maintained by volunteers on a reasonable-effort basis. As such,
17 | we ask that you give us 90 days to work on a fix before public exposure.
18 |
--------------------------------------------------------------------------------
/src/external/jsoncpp/devtools/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright 2010 Baptiste Lepilleur and The JsonCpp Authors
2 | # Distributed under MIT license, or public domain if desired and
3 | # recognized in your jurisdiction.
4 | # See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
5 |
6 | # module
7 |
--------------------------------------------------------------------------------
/src/external/jsoncpp/devtools/agent_vmxp.json:
--------------------------------------------------------------------------------
1 | {
2 | "cmake_variants" : [
3 | {"name": "generator",
4 | "generators": [
5 | {"generator": [
6 | "Visual Studio 6",
7 | "Visual Studio 7",
8 | "Visual Studio 8 2005"
9 | ]
10 | }
11 | ]
12 | },
13 | {"name": "shared_dll",
14 | "variables": [
15 | ["BUILD_SHARED_LIBS=true"],
16 | ["BUILD_SHARED_LIBS=false"]
17 | ]
18 | },
19 | {"name": "build_type",
20 | "build_types": [
21 | "debug",
22 | "release"
23 | ]
24 | }
25 | ]
26 | }
27 |
--------------------------------------------------------------------------------
/src/external/jsoncpp/doc/footer.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
12 |
13 |
14 |
19 |
20 |