From 141f5b5b13d1ee1b72d1c85c1bf31db91bc811a6 Mon Sep 17 00:00:00 2001 From: cxh Date: Fri, 30 Jan 2026 15:50:40 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMakeLists.txt | 2 +- .../api/v1/query/client-vscode/query.json | 1 + build/CMakeCache.txt | 431 +++ build/CMakeFiles/4.0.0/CMakeCCompiler.cmake | 83 + build/CMakeFiles/4.0.0/CMakeCXXCompiler.cmake | 107 + .../4.0.0/CMakeDetermineCompilerABI_C.bin | Bin 0 -> 15360 bytes .../4.0.0/CMakeDetermineCompilerABI_CXX.bin | Bin 0 -> 15360 bytes build/CMakeFiles/4.0.0/CMakeRCCompiler.cmake | 6 + build/CMakeFiles/4.0.0/CMakeSystem.cmake | 15 + .../4.0.0/CompilerIdC/CMakeCCompilerId.c | 905 +++++++ build/CMakeFiles/4.0.0/CompilerIdC/a.exe | Bin 0 -> 105984 bytes .../CompilerIdCXX/CMakeCXXCompilerId.cpp | 920 +++++++ build/CMakeFiles/4.0.0/CompilerIdCXX/a.exe | Bin 0 -> 105984 bytes build/CMakeFiles/CMakeConfigureLog.yaml | 338 +++ build/CMakeFiles/ShowIncludes/foo.h | 1 + build/CMakeFiles/ShowIncludes/main.c | 2 + build/CMakeFiles/cmake.check_cache | 1 + build/CMakeFiles/feature_tests.bin | Bin 0 -> 16896 bytes .../include/websocketpp/.gitattributes | 18 - .../include/websocketpp/.github/FUNDING.yml | 3 - third_party/include/websocketpp/.gitignore | 94 - third_party/include/websocketpp/.travis.yml | 21 - .../include/websocketpp/CMakeLists.txt | 284 +- third_party/include/websocketpp/COPYING | 145 - third_party/include/websocketpp/Doxyfile | 2355 ----------------- third_party/include/websocketpp/SConstruct | 285 -- .../{websocketpp => }/base64/base64.hpp | 0 third_party/include/websocketpp/changelog.md | 444 ---- .../websocketpp/{websocketpp => }/client.hpp | 0 .../websocketpp/{websocketpp => }/close.hpp | 0 .../{websocketpp => }/common/asio.hpp | 0 .../{websocketpp => }/common/asio_ssl.hpp | 0 .../{websocketpp => }/common/chrono.hpp | 0 .../common/connection_hdl.hpp | 0 .../{websocketpp => }/common/cpp11.hpp | 0 .../{websocketpp => }/common/functional.hpp | 0 .../{websocketpp => }/common/md5.hpp | 0 .../{websocketpp => }/common/memory.hpp | 0 .../{websocketpp => }/common/network.hpp | 0 .../{websocketpp => }/common/platforms.hpp | 0 .../{websocketpp => }/common/random.hpp | 0 .../{websocketpp => }/common/regex.hpp | 0 .../{websocketpp => }/common/stdint.hpp | 0 .../{websocketpp => }/common/system_error.hpp | 0 .../{websocketpp => }/common/thread.hpp | 0 .../{websocketpp => }/common/time.hpp | 0 .../{websocketpp => }/common/type_traits.hpp | 0 .../{websocketpp => }/concurrency/basic.hpp | 0 .../{websocketpp => }/concurrency/none.hpp | 0 .../{websocketpp => }/config/asio.hpp | 0 .../{websocketpp => }/config/asio_client.hpp | 0 .../{websocketpp => }/config/asio_no_tls.hpp | 0 .../config/asio_no_tls_client.hpp | 0 .../{websocketpp => }/config/boost_config.hpp | 0 .../{websocketpp => }/config/core.hpp | 0 .../{websocketpp => }/config/core_client.hpp | 0 .../{websocketpp => }/config/debug.hpp | 0 .../{websocketpp => }/config/debug_asio.hpp | 0 .../config/debug_asio_no_tls.hpp | 0 .../config/minimal_client.hpp | 0 .../config/minimal_server.hpp | 0 .../{websocketpp => }/connection.hpp | 0 .../{websocketpp => }/connection_base.hpp | 0 .../include/websocketpp/docs/config.dox | 138 - third_party/include/websocketpp/docs/faq.dox | 162 -- .../websocketpp/docs/getting_started.dox | 27 - .../include/websocketpp/docs/handlers.dox | 165 -- .../include/websocketpp/docs/logging.dox | 102 - .../include/websocketpp/docs/manual.css | 22 - .../include/websocketpp/docs/manual.dox | 23 - .../docs/simple_broadcast_server.cpp | 52 - .../docs/simple_count_server_thread.cpp | 65 - .../include/websocketpp/docs/tutorials.dox | 10 - .../{websocketpp => }/endpoint.hpp | 0 .../{websocketpp => }/endpoint_base.hpp | 0 .../websocketpp/{websocketpp => }/error.hpp | 0 .../associative_storage/CMakeLists.txt | 12 - .../associative_storage.cpp | 88 - .../examples/broadcast_server/CMakeLists.txt | 12 - .../examples/broadcast_server/SConscript | 23 - .../broadcast_server/broadcast_server.cpp | 160 -- .../examples/debug_client/CMakeLists.txt | 17 - .../examples/debug_client/SConscript | 24 - .../examples/debug_client/debug_client.cpp | 167 -- .../examples/debug_server/CMakeLists.txt | 12 - .../examples/debug_server/SConscript | 23 - .../examples/debug_server/debug_server.cpp | 174 -- .../websocketpp/examples/dev/CMakeLists.txt | 12 - .../websocketpp/examples/dev/SConscript | 18 - .../include/websocketpp/examples/dev/main.cpp | 200 -- .../examples/echo_client/CMakeLists.txt | 12 - .../examples/echo_client/SConscript | 23 - .../examples/echo_client/echo_client.cpp | 97 - .../examples/echo_server/CMakeLists.txt | 12 - .../examples/echo_server/SConscript | 23 - .../examples/echo_server/echo_handler.hpp | 37 - .../examples/echo_server/echo_server.cpp | 65 - .../examples/echo_server_both/CMakeLists.txt | 18 - .../examples/echo_server_both/SConscript | 24 - .../echo_server_both/echo_server_both.cpp | 87 - .../examples/echo_server_both/server.pem | 58 - .../examples/echo_server_tls/CMakeLists.txt | 18 - .../examples/echo_server_tls/SConscript | 24 - .../examples/echo_server_tls/dh.pem | 8 - .../echo_server_tls/echo_server_tls.cpp | 154 -- .../examples/echo_server_tls/server.pem | 57 - .../examples/enriched_storage/CMakeLists.txt | 12 - .../enriched_storage/enriched_storage.cpp | 87 - .../external_io_service/CMakeLists.txt | 12 - .../examples/external_io_service/SConscript | 23 - .../external_io_service.cpp | 85 - .../external_io_service/tcp_echo_server.hpp | 97 - .../examples/handler_switch/CMakeLists.txt | 12 - .../handler_switch/handler_switch.cpp | 42 - .../examples/iostream_server/CMakeLists.txt | 12 - .../examples/iostream_server/SConscript | 23 - .../iostream_server/iostream_server.cpp | 89 - .../examples/print_client/CMakeLists.txt | 12 - .../examples/print_client/SConscript | 23 - .../examples/print_client/print_client.cpp | 78 - .../examples/print_client_tls/CMakeLists.txt | 17 - .../examples/print_client_tls/SConscript | 24 - .../print_client_tls/ca-chain.cert.pem | 66 - .../print_client_tls/print_client_tls.cpp | 249 -- .../examples/print_server/CMakeLists.txt | 12 - .../examples/print_server/SConscript | 23 - .../examples/print_server/print_server.cpp | 24 - .../examples/scratch_client/SConscript | 24 - .../scratch_client/scratch_client.cpp | 270 -- .../examples/scratch_server/SConscript | 24 - .../scratch_server/scratch_server.cpp | 106 - .../simple_broadcast_server/CMakeLists.txt | 12 - .../simple_broadcast_server.cpp | 51 - .../examples/sip_client/CMakeLists.txt | 12 - .../examples/sip_client/README.txt | 22 - .../examples/sip_client/SConscript | 23 - .../examples/sip_client/sip_client.cpp | 84 - .../subprotocol_server/CMakeLists.txt | 12 - .../examples/subprotocol_server/SConscript | 23 - .../subprotocol_server/subprotocol_server.cpp | 48 - .../examples/telemetry_client/CMakeLists.txt | 12 - .../examples/telemetry_client/SConscript | 23 - .../telemetry_client/telemetry_client.cpp | 167 -- .../examples/telemetry_server/CMakeLists.txt | 12 - .../examples/telemetry_server/SConscript | 23 - .../examples/telemetry_server/index.html | 85 - .../telemetry_server/telemetry_server.cpp | 203 -- .../examples/testee_client/CMakeLists.txt | 17 - .../examples/testee_client/SConscript | 23 - .../examples/testee_client/testee_client.cpp | 145 - .../examples/testee_server/CMakeLists.txt | 17 - .../examples/testee_server/SConscript | 23 - .../examples/testee_server/testee_server.cpp | 145 - .../examples/utility_client/CMakeLists.txt | 13 - .../examples/utility_client/SConscript | 23 - .../utility_client/utility_client.cpp | 325 --- .../extensions/extension.hpp | 0 .../permessage_deflate/disabled.hpp | 0 .../extensions/permessage_deflate/enabled.hpp | 0 .../websocketpp/{websocketpp => }/frame.hpp | 0 .../{websocketpp => }/http/constants.hpp | 0 .../{websocketpp => }/http/impl/parser.hpp | 0 .../{websocketpp => }/http/impl/request.hpp | 0 .../{websocketpp => }/http/impl/response.hpp | 0 .../{websocketpp => }/http/parser.hpp | 0 .../{websocketpp => }/http/request.hpp | 0 .../{websocketpp => }/http/response.hpp | 0 .../impl/connection_impl.hpp | 0 .../{websocketpp => }/impl/endpoint_impl.hpp | 0 .../{websocketpp => }/impl/utilities_impl.hpp | 0 .../{websocketpp => }/logger/basic.hpp | 0 .../{websocketpp => }/logger/levels.hpp | 0 .../{websocketpp => }/logger/stub.hpp | 0 .../{websocketpp => }/logger/syslog.hpp | 0 .../message_buffer/alloc.hpp | 0 .../message_buffer/message.hpp | 0 .../{websocketpp => }/message_buffer/pool.hpp | 0 .../{websocketpp => }/processors/base.hpp | 0 .../{websocketpp => }/processors/hybi00.hpp | 0 .../{websocketpp => }/processors/hybi07.hpp | 0 .../{websocketpp => }/processors/hybi08.hpp | 0 .../{websocketpp => }/processors/hybi13.hpp | 0 .../processors/processor.hpp | 0 .../{websocketpp => }/random/none.hpp | 0 .../random/random_device.hpp | 0 third_party/include/websocketpp/readme.md | 49 - third_party/include/websocketpp/roadmap.md | 43 - .../roles/client_endpoint.hpp | 0 .../roles/server_endpoint.hpp | 0 .../websocketpp/{websocketpp => }/server.hpp | 0 .../{websocketpp => }/sha1/sha1.hpp | 0 .../test/connection/CMakeLists.txt | 12 - .../websocketpp/test/connection/SConscript | 25 - .../test/connection/connection.cpp | 533 ---- .../test/connection/connection_tu2.cpp | 62 - .../test/connection/connection_tu2.hpp | 51 - .../websocketpp/test/endpoint/CMakeLists.txt | 17 - .../websocketpp/test/endpoint/SConscript | 24 - .../websocketpp/test/endpoint/endpoint.cpp | 158 -- .../websocketpp/test/extension/CMakeLists.txt | 22 - .../websocketpp/test/extension/SConscript | 27 - .../websocketpp/test/extension/extension.cpp | 37 - .../test/extension/permessage_deflate.cpp | 752 ------ .../websocketpp/test/http/CMakeLists.txt | 11 - .../include/websocketpp/test/http/SConscript | 23 - .../include/websocketpp/test/http/parser.cpp | 1141 -------- .../websocketpp/test/http/parser_perf.cpp | 141 - .../websocketpp/test/logger/CMakeLists.txt | 12 - .../websocketpp/test/logger/SConscript | 23 - .../include/websocketpp/test/logger/basic.cpp | 145 - .../test/message_buffer/CMakeLists.txt | 17 - .../test/message_buffer/SConscript | 27 - .../websocketpp/test/message_buffer/alloc.cpp | 96 - .../test/message_buffer/message.cpp | 72 - .../websocketpp/test/message_buffer/pool.cpp | 156 -- .../test/processors/CMakeLists.txt | 59 - .../websocketpp/test/processors/SConscript | 47 - .../extension_permessage_compress.cpp | 198 -- .../websocketpp/test/processors/hybi00.cpp | 274 -- .../websocketpp/test/processors/hybi07.cpp | 193 -- .../websocketpp/test/processors/hybi08.cpp | 197 -- .../websocketpp/test/processors/hybi13.cpp | 693 ----- .../websocketpp/test/processors/processor.cpp | 135 - .../websocketpp/test/random/CMakeLists.txt | 17 - .../websocketpp/test/random/SConscript | 27 - .../include/websocketpp/test/random/none.cpp | 40 - .../websocketpp/test/random/random_device.cpp | 50 - .../websocketpp/test/roles/CMakeLists.txt | 17 - .../include/websocketpp/test/roles/SConscript | 27 - .../include/websocketpp/test/roles/client.cpp | 194 -- .../include/websocketpp/test/roles/server.cpp | 247 -- .../websocketpp/test/transport/CMakeLists.txt | 71 - .../websocketpp/test/transport/SConscript | 24 - .../test/transport/asio/SConscript | 32 - .../websocketpp/test/transport/asio/base.cpp | 49 - .../test/transport/asio/security.cpp | 69 - .../test/transport/asio/timers.cpp | 194 -- .../websocketpp/test/transport/hybi_util.cpp | 98 - .../test/transport/integration.cpp | 651 ----- .../test/transport/iostream/SConscript | 31 - .../test/transport/iostream/base.cpp | 33 - .../test/transport/iostream/connection.cpp | 619 ----- .../test/transport/iostream/endpoint.cpp | 41 - .../websocketpp/test/utility/CMakeLists.txt | 53 - .../websocketpp/test/utility/SConscript | 40 - .../websocketpp/test/utility/close.cpp | 124 - .../websocketpp/test/utility/error.cpp | 54 - .../websocketpp/test/utility/frame.cpp | 538 ---- .../include/websocketpp/test/utility/sha1.cpp | 81 - .../include/websocketpp/test/utility/uri.cpp | 246 -- .../websocketpp/test/utility/utilities.cpp | 73 - .../{websocketpp => }/transport/asio/base.hpp | 0 .../transport/asio/connection.hpp | 0 .../transport/asio/endpoint.hpp | 0 .../transport/asio/security/base.hpp | 0 .../transport/asio/security/none.hpp | 0 .../transport/asio/security/tls.hpp | 0 .../transport/base/connection.hpp | 0 .../transport/base/endpoint.hpp | 0 .../transport/debug/base.hpp | 0 .../transport/debug/connection.hpp | 0 .../transport/debug/endpoint.hpp | 0 .../transport/iostream/base.hpp | 0 .../transport/iostream/connection.hpp | 0 .../transport/iostream/endpoint.hpp | 0 .../{websocketpp => }/transport/stub/base.hpp | 0 .../transport/stub/connection.hpp | 0 .../transport/stub/endpoint.hpp | 0 .../broadcast_tutorial/broadcast_tutorial.md | 17 - .../tutorials/chat_tutorial/chat_tutorial.md | 13 - .../tutorials/utility_client/step1.cpp | 56 - .../tutorials/utility_client/step2.cpp | 61 - .../tutorials/utility_client/step3.cpp | 81 - .../tutorials/utility_client/step4.cpp | 202 -- .../tutorials/utility_client/step5.cpp | 280 -- .../tutorials/utility_client/step6.cpp | 335 --- .../utility_client/utility_client.md | 862 ------ .../tutorials/utility_server/step1.cpp | 71 - .../tutorials/utility_server/step2.cpp | 82 - .../utility_server/utility_server.md | 181 -- .../websocketpp/{websocketpp => }/uri.hpp | 0 .../{websocketpp => }/utf8_validator.hpp | 0 .../{websocketpp => }/utilities.hpp | 0 .../websocketpp/{websocketpp => }/version.hpp | 0 .../websocketpp/websocketpp-config.cmake.in | 14 - .../websocketpp/websocketpp/CMakeLists.txt | 2 - 286 files changed, 2813 insertions(+), 20531 deletions(-) create mode 100644 build/.cmake/api/v1/query/client-vscode/query.json create mode 100644 build/CMakeCache.txt create mode 100644 build/CMakeFiles/4.0.0/CMakeCCompiler.cmake create mode 100644 build/CMakeFiles/4.0.0/CMakeCXXCompiler.cmake create mode 100644 build/CMakeFiles/4.0.0/CMakeDetermineCompilerABI_C.bin create mode 100644 build/CMakeFiles/4.0.0/CMakeDetermineCompilerABI_CXX.bin create mode 100644 build/CMakeFiles/4.0.0/CMakeRCCompiler.cmake create mode 100644 build/CMakeFiles/4.0.0/CMakeSystem.cmake create mode 100644 build/CMakeFiles/4.0.0/CompilerIdC/CMakeCCompilerId.c create mode 100644 build/CMakeFiles/4.0.0/CompilerIdC/a.exe create mode 100644 build/CMakeFiles/4.0.0/CompilerIdCXX/CMakeCXXCompilerId.cpp create mode 100644 build/CMakeFiles/4.0.0/CompilerIdCXX/a.exe create mode 100644 build/CMakeFiles/CMakeConfigureLog.yaml create mode 100644 build/CMakeFiles/ShowIncludes/foo.h create mode 100644 build/CMakeFiles/ShowIncludes/main.c create mode 100644 build/CMakeFiles/cmake.check_cache create mode 100644 build/CMakeFiles/feature_tests.bin delete mode 100644 third_party/include/websocketpp/.gitattributes delete mode 100644 third_party/include/websocketpp/.github/FUNDING.yml delete mode 100644 third_party/include/websocketpp/.gitignore delete mode 100644 third_party/include/websocketpp/.travis.yml delete mode 100644 third_party/include/websocketpp/COPYING delete mode 100644 third_party/include/websocketpp/Doxyfile delete mode 100644 third_party/include/websocketpp/SConstruct rename third_party/include/websocketpp/{websocketpp => }/base64/base64.hpp (100%) delete mode 100644 third_party/include/websocketpp/changelog.md rename third_party/include/websocketpp/{websocketpp => }/client.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/close.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/common/asio.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/common/asio_ssl.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/common/chrono.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/common/connection_hdl.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/common/cpp11.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/common/functional.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/common/md5.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/common/memory.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/common/network.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/common/platforms.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/common/random.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/common/regex.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/common/stdint.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/common/system_error.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/common/thread.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/common/time.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/common/type_traits.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/concurrency/basic.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/concurrency/none.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/config/asio.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/config/asio_client.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/config/asio_no_tls.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/config/asio_no_tls_client.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/config/boost_config.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/config/core.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/config/core_client.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/config/debug.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/config/debug_asio.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/config/debug_asio_no_tls.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/config/minimal_client.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/config/minimal_server.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/connection.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/connection_base.hpp (100%) delete mode 100644 third_party/include/websocketpp/docs/config.dox delete mode 100644 third_party/include/websocketpp/docs/faq.dox delete mode 100644 third_party/include/websocketpp/docs/getting_started.dox delete mode 100644 third_party/include/websocketpp/docs/handlers.dox delete mode 100644 third_party/include/websocketpp/docs/logging.dox delete mode 100644 third_party/include/websocketpp/docs/manual.css delete mode 100644 third_party/include/websocketpp/docs/manual.dox delete mode 100644 third_party/include/websocketpp/docs/simple_broadcast_server.cpp delete mode 100644 third_party/include/websocketpp/docs/simple_count_server_thread.cpp delete mode 100644 third_party/include/websocketpp/docs/tutorials.dox rename third_party/include/websocketpp/{websocketpp => }/endpoint.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/endpoint_base.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/error.hpp (100%) delete mode 100644 third_party/include/websocketpp/examples/associative_storage/CMakeLists.txt delete mode 100644 third_party/include/websocketpp/examples/associative_storage/associative_storage.cpp delete mode 100644 third_party/include/websocketpp/examples/broadcast_server/CMakeLists.txt delete mode 100644 third_party/include/websocketpp/examples/broadcast_server/SConscript delete mode 100644 third_party/include/websocketpp/examples/broadcast_server/broadcast_server.cpp delete mode 100644 third_party/include/websocketpp/examples/debug_client/CMakeLists.txt delete mode 100644 third_party/include/websocketpp/examples/debug_client/SConscript delete mode 100644 third_party/include/websocketpp/examples/debug_client/debug_client.cpp delete mode 100644 third_party/include/websocketpp/examples/debug_server/CMakeLists.txt delete mode 100644 third_party/include/websocketpp/examples/debug_server/SConscript delete mode 100644 third_party/include/websocketpp/examples/debug_server/debug_server.cpp delete mode 100644 third_party/include/websocketpp/examples/dev/CMakeLists.txt delete mode 100644 third_party/include/websocketpp/examples/dev/SConscript delete mode 100644 third_party/include/websocketpp/examples/dev/main.cpp delete mode 100644 third_party/include/websocketpp/examples/echo_client/CMakeLists.txt delete mode 100644 third_party/include/websocketpp/examples/echo_client/SConscript delete mode 100644 third_party/include/websocketpp/examples/echo_client/echo_client.cpp delete mode 100644 third_party/include/websocketpp/examples/echo_server/CMakeLists.txt delete mode 100644 third_party/include/websocketpp/examples/echo_server/SConscript delete mode 100644 third_party/include/websocketpp/examples/echo_server/echo_handler.hpp delete mode 100644 third_party/include/websocketpp/examples/echo_server/echo_server.cpp delete mode 100644 third_party/include/websocketpp/examples/echo_server_both/CMakeLists.txt delete mode 100644 third_party/include/websocketpp/examples/echo_server_both/SConscript delete mode 100644 third_party/include/websocketpp/examples/echo_server_both/echo_server_both.cpp delete mode 100644 third_party/include/websocketpp/examples/echo_server_both/server.pem delete mode 100644 third_party/include/websocketpp/examples/echo_server_tls/CMakeLists.txt delete mode 100644 third_party/include/websocketpp/examples/echo_server_tls/SConscript delete mode 100644 third_party/include/websocketpp/examples/echo_server_tls/dh.pem delete mode 100644 third_party/include/websocketpp/examples/echo_server_tls/echo_server_tls.cpp delete mode 100644 third_party/include/websocketpp/examples/echo_server_tls/server.pem delete mode 100644 third_party/include/websocketpp/examples/enriched_storage/CMakeLists.txt delete mode 100644 third_party/include/websocketpp/examples/enriched_storage/enriched_storage.cpp delete mode 100644 third_party/include/websocketpp/examples/external_io_service/CMakeLists.txt delete mode 100644 third_party/include/websocketpp/examples/external_io_service/SConscript delete mode 100644 third_party/include/websocketpp/examples/external_io_service/external_io_service.cpp delete mode 100644 third_party/include/websocketpp/examples/external_io_service/tcp_echo_server.hpp delete mode 100644 third_party/include/websocketpp/examples/handler_switch/CMakeLists.txt delete mode 100644 third_party/include/websocketpp/examples/handler_switch/handler_switch.cpp delete mode 100644 third_party/include/websocketpp/examples/iostream_server/CMakeLists.txt delete mode 100644 third_party/include/websocketpp/examples/iostream_server/SConscript delete mode 100644 third_party/include/websocketpp/examples/iostream_server/iostream_server.cpp delete mode 100644 third_party/include/websocketpp/examples/print_client/CMakeLists.txt delete mode 100644 third_party/include/websocketpp/examples/print_client/SConscript delete mode 100644 third_party/include/websocketpp/examples/print_client/print_client.cpp delete mode 100644 third_party/include/websocketpp/examples/print_client_tls/CMakeLists.txt delete mode 100644 third_party/include/websocketpp/examples/print_client_tls/SConscript delete mode 100644 third_party/include/websocketpp/examples/print_client_tls/ca-chain.cert.pem delete mode 100644 third_party/include/websocketpp/examples/print_client_tls/print_client_tls.cpp delete mode 100644 third_party/include/websocketpp/examples/print_server/CMakeLists.txt delete mode 100644 third_party/include/websocketpp/examples/print_server/SConscript delete mode 100644 third_party/include/websocketpp/examples/print_server/print_server.cpp delete mode 100644 third_party/include/websocketpp/examples/scratch_client/SConscript delete mode 100644 third_party/include/websocketpp/examples/scratch_client/scratch_client.cpp delete mode 100644 third_party/include/websocketpp/examples/scratch_server/SConscript delete mode 100644 third_party/include/websocketpp/examples/scratch_server/scratch_server.cpp delete mode 100644 third_party/include/websocketpp/examples/simple_broadcast_server/CMakeLists.txt delete mode 100644 third_party/include/websocketpp/examples/simple_broadcast_server/simple_broadcast_server.cpp delete mode 100644 third_party/include/websocketpp/examples/sip_client/CMakeLists.txt delete mode 100644 third_party/include/websocketpp/examples/sip_client/README.txt delete mode 100644 third_party/include/websocketpp/examples/sip_client/SConscript delete mode 100644 third_party/include/websocketpp/examples/sip_client/sip_client.cpp delete mode 100644 third_party/include/websocketpp/examples/subprotocol_server/CMakeLists.txt delete mode 100644 third_party/include/websocketpp/examples/subprotocol_server/SConscript delete mode 100644 third_party/include/websocketpp/examples/subprotocol_server/subprotocol_server.cpp delete mode 100644 third_party/include/websocketpp/examples/telemetry_client/CMakeLists.txt delete mode 100644 third_party/include/websocketpp/examples/telemetry_client/SConscript delete mode 100644 third_party/include/websocketpp/examples/telemetry_client/telemetry_client.cpp delete mode 100644 third_party/include/websocketpp/examples/telemetry_server/CMakeLists.txt delete mode 100644 third_party/include/websocketpp/examples/telemetry_server/SConscript delete mode 100644 third_party/include/websocketpp/examples/telemetry_server/index.html delete mode 100644 third_party/include/websocketpp/examples/telemetry_server/telemetry_server.cpp delete mode 100644 third_party/include/websocketpp/examples/testee_client/CMakeLists.txt delete mode 100644 third_party/include/websocketpp/examples/testee_client/SConscript delete mode 100644 third_party/include/websocketpp/examples/testee_client/testee_client.cpp delete mode 100644 third_party/include/websocketpp/examples/testee_server/CMakeLists.txt delete mode 100644 third_party/include/websocketpp/examples/testee_server/SConscript delete mode 100644 third_party/include/websocketpp/examples/testee_server/testee_server.cpp delete mode 100644 third_party/include/websocketpp/examples/utility_client/CMakeLists.txt delete mode 100644 third_party/include/websocketpp/examples/utility_client/SConscript delete mode 100644 third_party/include/websocketpp/examples/utility_client/utility_client.cpp rename third_party/include/websocketpp/{websocketpp => }/extensions/extension.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/extensions/permessage_deflate/disabled.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/extensions/permessage_deflate/enabled.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/frame.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/http/constants.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/http/impl/parser.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/http/impl/request.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/http/impl/response.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/http/parser.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/http/request.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/http/response.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/impl/connection_impl.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/impl/endpoint_impl.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/impl/utilities_impl.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/logger/basic.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/logger/levels.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/logger/stub.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/logger/syslog.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/message_buffer/alloc.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/message_buffer/message.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/message_buffer/pool.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/processors/base.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/processors/hybi00.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/processors/hybi07.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/processors/hybi08.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/processors/hybi13.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/processors/processor.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/random/none.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/random/random_device.hpp (100%) delete mode 100644 third_party/include/websocketpp/readme.md delete mode 100644 third_party/include/websocketpp/roadmap.md rename third_party/include/websocketpp/{websocketpp => }/roles/client_endpoint.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/roles/server_endpoint.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/server.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/sha1/sha1.hpp (100%) delete mode 100644 third_party/include/websocketpp/test/connection/CMakeLists.txt delete mode 100644 third_party/include/websocketpp/test/connection/SConscript delete mode 100644 third_party/include/websocketpp/test/connection/connection.cpp delete mode 100644 third_party/include/websocketpp/test/connection/connection_tu2.cpp delete mode 100644 third_party/include/websocketpp/test/connection/connection_tu2.hpp delete mode 100644 third_party/include/websocketpp/test/endpoint/CMakeLists.txt delete mode 100644 third_party/include/websocketpp/test/endpoint/SConscript delete mode 100644 third_party/include/websocketpp/test/endpoint/endpoint.cpp delete mode 100644 third_party/include/websocketpp/test/extension/CMakeLists.txt delete mode 100644 third_party/include/websocketpp/test/extension/SConscript delete mode 100644 third_party/include/websocketpp/test/extension/extension.cpp delete mode 100644 third_party/include/websocketpp/test/extension/permessage_deflate.cpp delete mode 100644 third_party/include/websocketpp/test/http/CMakeLists.txt delete mode 100644 third_party/include/websocketpp/test/http/SConscript delete mode 100644 third_party/include/websocketpp/test/http/parser.cpp delete mode 100644 third_party/include/websocketpp/test/http/parser_perf.cpp delete mode 100644 third_party/include/websocketpp/test/logger/CMakeLists.txt delete mode 100644 third_party/include/websocketpp/test/logger/SConscript delete mode 100644 third_party/include/websocketpp/test/logger/basic.cpp delete mode 100644 third_party/include/websocketpp/test/message_buffer/CMakeLists.txt delete mode 100644 third_party/include/websocketpp/test/message_buffer/SConscript delete mode 100644 third_party/include/websocketpp/test/message_buffer/alloc.cpp delete mode 100644 third_party/include/websocketpp/test/message_buffer/message.cpp delete mode 100644 third_party/include/websocketpp/test/message_buffer/pool.cpp delete mode 100644 third_party/include/websocketpp/test/processors/CMakeLists.txt delete mode 100644 third_party/include/websocketpp/test/processors/SConscript delete mode 100644 third_party/include/websocketpp/test/processors/extension_permessage_compress.cpp delete mode 100644 third_party/include/websocketpp/test/processors/hybi00.cpp delete mode 100644 third_party/include/websocketpp/test/processors/hybi07.cpp delete mode 100644 third_party/include/websocketpp/test/processors/hybi08.cpp delete mode 100644 third_party/include/websocketpp/test/processors/hybi13.cpp delete mode 100644 third_party/include/websocketpp/test/processors/processor.cpp delete mode 100644 third_party/include/websocketpp/test/random/CMakeLists.txt delete mode 100644 third_party/include/websocketpp/test/random/SConscript delete mode 100644 third_party/include/websocketpp/test/random/none.cpp delete mode 100644 third_party/include/websocketpp/test/random/random_device.cpp delete mode 100644 third_party/include/websocketpp/test/roles/CMakeLists.txt delete mode 100644 third_party/include/websocketpp/test/roles/SConscript delete mode 100644 third_party/include/websocketpp/test/roles/client.cpp delete mode 100644 third_party/include/websocketpp/test/roles/server.cpp delete mode 100644 third_party/include/websocketpp/test/transport/CMakeLists.txt delete mode 100644 third_party/include/websocketpp/test/transport/SConscript delete mode 100644 third_party/include/websocketpp/test/transport/asio/SConscript delete mode 100644 third_party/include/websocketpp/test/transport/asio/base.cpp delete mode 100644 third_party/include/websocketpp/test/transport/asio/security.cpp delete mode 100644 third_party/include/websocketpp/test/transport/asio/timers.cpp delete mode 100644 third_party/include/websocketpp/test/transport/hybi_util.cpp delete mode 100644 third_party/include/websocketpp/test/transport/integration.cpp delete mode 100644 third_party/include/websocketpp/test/transport/iostream/SConscript delete mode 100644 third_party/include/websocketpp/test/transport/iostream/base.cpp delete mode 100644 third_party/include/websocketpp/test/transport/iostream/connection.cpp delete mode 100644 third_party/include/websocketpp/test/transport/iostream/endpoint.cpp delete mode 100644 third_party/include/websocketpp/test/utility/CMakeLists.txt delete mode 100644 third_party/include/websocketpp/test/utility/SConscript delete mode 100644 third_party/include/websocketpp/test/utility/close.cpp delete mode 100644 third_party/include/websocketpp/test/utility/error.cpp delete mode 100644 third_party/include/websocketpp/test/utility/frame.cpp delete mode 100644 third_party/include/websocketpp/test/utility/sha1.cpp delete mode 100644 third_party/include/websocketpp/test/utility/uri.cpp delete mode 100644 third_party/include/websocketpp/test/utility/utilities.cpp rename third_party/include/websocketpp/{websocketpp => }/transport/asio/base.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/transport/asio/connection.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/transport/asio/endpoint.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/transport/asio/security/base.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/transport/asio/security/none.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/transport/asio/security/tls.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/transport/base/connection.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/transport/base/endpoint.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/transport/debug/base.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/transport/debug/connection.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/transport/debug/endpoint.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/transport/iostream/base.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/transport/iostream/connection.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/transport/iostream/endpoint.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/transport/stub/base.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/transport/stub/connection.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/transport/stub/endpoint.hpp (100%) delete mode 100644 third_party/include/websocketpp/tutorials/broadcast_tutorial/broadcast_tutorial.md delete mode 100644 third_party/include/websocketpp/tutorials/chat_tutorial/chat_tutorial.md delete mode 100644 third_party/include/websocketpp/tutorials/utility_client/step1.cpp delete mode 100644 third_party/include/websocketpp/tutorials/utility_client/step2.cpp delete mode 100644 third_party/include/websocketpp/tutorials/utility_client/step3.cpp delete mode 100644 third_party/include/websocketpp/tutorials/utility_client/step4.cpp delete mode 100644 third_party/include/websocketpp/tutorials/utility_client/step5.cpp delete mode 100644 third_party/include/websocketpp/tutorials/utility_client/step6.cpp delete mode 100644 third_party/include/websocketpp/tutorials/utility_client/utility_client.md delete mode 100644 third_party/include/websocketpp/tutorials/utility_server/step1.cpp delete mode 100644 third_party/include/websocketpp/tutorials/utility_server/step2.cpp delete mode 100644 third_party/include/websocketpp/tutorials/utility_server/utility_server.md rename third_party/include/websocketpp/{websocketpp => }/uri.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/utf8_validator.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/utilities.hpp (100%) rename third_party/include/websocketpp/{websocketpp => }/version.hpp (100%) delete mode 100644 third_party/include/websocketpp/websocketpp-config.cmake.in delete mode 100644 third_party/include/websocketpp/websocketpp/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 1ec7585..7adc6c5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,7 +9,7 @@ set(CONFIG_FILE "config.json") project(${APP_NAME}) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) add_compile_definitions(GLIB_DISABLE_DEPRECATION_WARNINGS) diff --git a/build/.cmake/api/v1/query/client-vscode/query.json b/build/.cmake/api/v1/query/client-vscode/query.json new file mode 100644 index 0000000..82bb964 --- /dev/null +++ b/build/.cmake/api/v1/query/client-vscode/query.json @@ -0,0 +1 @@ +{"requests":[{"kind":"cache","version":2},{"kind":"codemodel","version":2},{"kind":"toolchains","version":1},{"kind":"cmakeFiles","version":1}]} \ No newline at end of file diff --git a/build/CMakeCache.txt b/build/CMakeCache.txt new file mode 100644 index 0000000..3878346 --- /dev/null +++ b/build/CMakeCache.txt @@ -0,0 +1,431 @@ +# This is the CMakeCache file. +# For build in directory: f:/work/kunlang_video/build +# It was generated by CMake: C:/Program Files/CMake/bin/cmake.exe +# You can edit this file to change values found and used by cmake. +# If you do not want to change any of the values, simply exit the editor. +# If you do want to change a value, simply edit, save, and exit the editor. +# The syntax for the file is as follows: +# KEY:TYPE=VALUE +# KEY is the name of a variable in the cache. +# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. +# VALUE is the current value for the KEY. + +######################## +# EXTERNAL cache entries +######################## + +//Path to a program. +CMAKE_ADDR2LINE:FILEPATH=D:/MinGW/bin/addr2line.exe + +//Path to a program. +CMAKE_AR:FILEPATH=D:/Program Files/LLVM/bin/llvm-ar.exe + +//No help, variable specified on the command line. +CMAKE_BUILD_TYPE:STRING=Debug + +//Enable/Disable color output during build. +CMAKE_COLOR_MAKEFILE:BOOL=ON + +//No help, variable specified on the command line. +CMAKE_CXX_COMPILER:FILEPATH=D:/Program Files/LLVM/bin/clang++.exe + +//LLVM archiver +CMAKE_CXX_COMPILER_AR:FILEPATH=D:/Program Files/LLVM/bin/llvm-ar.exe + +//`clang-scan-deps` dependency scanner +CMAKE_CXX_COMPILER_CLANG_SCAN_DEPS:FILEPATH=D:/Program Files/LLVM/bin/clang-scan-deps.exe + +//Generate index for LLVM archive +CMAKE_CXX_COMPILER_RANLIB:FILEPATH=D:/Program Files/LLVM/bin/llvm-ranlib.exe + +//Flags used by the CXX compiler during all build types. +CMAKE_CXX_FLAGS:STRING= + +//Flags used by the CXX compiler during DEBUG builds. +CMAKE_CXX_FLAGS_DEBUG:STRING=-O0 -g -Xclang -gcodeview -D_DEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrtd + +//Flags used by the CXX compiler during MINSIZEREL builds. +CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrt + +//Flags used by the CXX compiler during RELEASE builds. +CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrt + +//Flags used by the CXX compiler during RELWITHDEBINFO builds. +CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -DNDEBUG -g -Xclang -gcodeview -D_DLL -D_MT -Xclang --dependent-lib=msvcrt + +//Libraries linked by default with all C++ applications. +CMAKE_CXX_STANDARD_LIBRARIES:STRING=-lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 -loldnames + +//No help, variable specified on the command line. +CMAKE_C_COMPILER:FILEPATH=D:/Program Files/LLVM/bin/clang.exe + +//LLVM archiver +CMAKE_C_COMPILER_AR:FILEPATH=D:/Program Files/LLVM/bin/llvm-ar.exe + +//`clang-scan-deps` dependency scanner +CMAKE_C_COMPILER_CLANG_SCAN_DEPS:FILEPATH=D:/Program Files/LLVM/bin/clang-scan-deps.exe + +//Generate index for LLVM archive +CMAKE_C_COMPILER_RANLIB:FILEPATH=D:/Program Files/LLVM/bin/llvm-ranlib.exe + +//Flags used by the C compiler during all build types. +CMAKE_C_FLAGS:STRING= + +//Flags used by the C compiler during DEBUG builds. +CMAKE_C_FLAGS_DEBUG:STRING=-O0 -g -Xclang -gcodeview -D_DEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrtd + +//Flags used by the C compiler during MINSIZEREL builds. +CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrt + +//Flags used by the C compiler during RELEASE builds. +CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrt + +//Flags used by the C compiler during RELWITHDEBINFO builds. +CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -DNDEBUG -g -Xclang -gcodeview -D_DLL -D_MT -Xclang --dependent-lib=msvcrt + +//Libraries linked by default with all C applications. +CMAKE_C_STANDARD_LIBRARIES:STRING=-lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 -loldnames + +//Path to a program. +CMAKE_DLLTOOL:FILEPATH=D:/Program Files/LLVM/bin/llvm-dlltool.exe + +//Flags used by the linker during all build types. +CMAKE_EXE_LINKER_FLAGS:STRING= + +//Flags used by the linker during DEBUG builds. +CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during MINSIZEREL builds. +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during RELEASE builds. +CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during RELWITHDEBINFO builds. +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//No help, variable specified on the command line. +CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE + +//Value Computed by CMake. +CMAKE_FIND_PACKAGE_REDIRECTS_DIR:STATIC=F:/work/kunlang_video/build/CMakeFiles/pkgRedirects + +//Install path prefix, prepended onto install directories. +CMAKE_INSTALL_PREFIX:PATH=C:/Program Files (x86)/video_manager + +//Path to a program. +CMAKE_LINKER:FILEPATH=D:/Program Files/LLVM/bin/lld-link.exe + +//Path to a program. +CMAKE_MAKE_PROGRAM:FILEPATH=D:/MinGW/bin/make.exe + +//Flags used by the linker during the creation of modules during +// all build types. +CMAKE_MODULE_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of modules during +// DEBUG builds. +CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of modules during +// MINSIZEREL builds. +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of modules during +// RELEASE builds. +CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of modules during +// RELWITHDEBINFO builds. +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_NM:FILEPATH=D:/Program Files/LLVM/bin/llvm-nm.exe + +//Path to a program. +CMAKE_OBJCOPY:FILEPATH=D:/Program Files/LLVM/bin/llvm-objcopy.exe + +//Path to a program. +CMAKE_OBJDUMP:FILEPATH=D:/Program Files/LLVM/bin/llvm-objdump.exe + +//Value Computed by CMake +CMAKE_PROJECT_DESCRIPTION:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_HOMEPAGE_URL:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_NAME:STATIC=video_manager + +//Path to a program. +CMAKE_RANLIB:FILEPATH=D:/Program Files/LLVM/bin/llvm-ranlib.exe + +//RC compiler +CMAKE_RC_COMPILER:FILEPATH=D:/Program Files/LLVM/bin/llvm-rc.exe + +//Flags for Windows Resource Compiler during all build types. +CMAKE_RC_FLAGS:STRING= + +//Flags for Windows Resource Compiler during DEBUG builds. +CMAKE_RC_FLAGS_DEBUG:STRING= + +//Flags for Windows Resource Compiler during MINSIZEREL builds. +CMAKE_RC_FLAGS_MINSIZEREL:STRING= + +//Flags for Windows Resource Compiler during RELEASE builds. +CMAKE_RC_FLAGS_RELEASE:STRING= + +//Flags for Windows Resource Compiler during RELWITHDEBINFO builds. +CMAKE_RC_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_READELF:FILEPATH=D:/MinGW/bin/readelf.exe + +//Flags used by the linker during the creation of shared libraries +// during all build types. +CMAKE_SHARED_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of shared libraries +// during DEBUG builds. +CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of shared libraries +// during MINSIZEREL builds. +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELEASE builds. +CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELWITHDEBINFO builds. +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//If set, runtime paths are not added when installing shared libraries, +// but are added when building. +CMAKE_SKIP_INSTALL_RPATH:BOOL=NO + +//If set, runtime paths are not added when using shared libraries. +CMAKE_SKIP_RPATH:BOOL=NO + +//Flags used by the linker during the creation of static libraries +// during all build types. +CMAKE_STATIC_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of static libraries +// during DEBUG builds. +CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of static libraries +// during MINSIZEREL builds. +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELEASE builds. +CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELWITHDEBINFO builds. +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_STRIP:FILEPATH=D:/Program Files/LLVM/bin/llvm-strip.exe + +//Path to a program. +CMAKE_TAPI:FILEPATH=CMAKE_TAPI-NOTFOUND + +//If this value is on, makefiles will be generated without the +// .SILENT directive, and all commands will be echoed to the console +// during the make. This is useful for debugging only. With Visual +// Studio IDE projects all commands are done without /nologo. +CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE + +//Arguments to supply to pkg-config +PKG_CONFIG_ARGN:STRING= + +//pkg-config executable +PKG_CONFIG_EXECUTABLE:FILEPATH=PKG_CONFIG_EXECUTABLE-NOTFOUND + +//Value Computed by CMake +video_manager_BINARY_DIR:STATIC=F:/work/kunlang_video/build + +//Value Computed by CMake +video_manager_IS_TOP_LEVEL:STATIC=ON + +//Value Computed by CMake +video_manager_SOURCE_DIR:STATIC=F:/work/kunlang_video + + +######################## +# INTERNAL cache entries +######################## + +//ADVANCED property for variable: CMAKE_ADDR2LINE +CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_AR +CMAKE_AR-ADVANCED:INTERNAL=1 +//This is the directory where this CMakeCache.txt was created +CMAKE_CACHEFILE_DIR:INTERNAL=f:/work/kunlang_video/build +//Major version of cmake used to create the current loaded cache +CMAKE_CACHE_MAJOR_VERSION:INTERNAL=4 +//Minor version of cmake used to create the current loaded cache +CMAKE_CACHE_MINOR_VERSION:INTERNAL=0 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=0 +//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE +CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=C:/Program Files/CMake/bin/cmake.exe +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=C:/Program Files/CMake/bin/cpack.exe +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=C:/Program Files/CMake/bin/ctest.exe +//ADVANCED property for variable: CMAKE_CXX_COMPILER +CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR +CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_CLANG_SCAN_DEPS +CMAKE_CXX_COMPILER_CLANG_SCAN_DEPS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB +CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS +CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG +CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL +CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE +CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO +CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_STANDARD_LIBRARIES +CMAKE_CXX_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER +CMAKE_C_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_AR +CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_CLANG_SCAN_DEPS +CMAKE_C_COMPILER_CLANG_SCAN_DEPS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB +CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS +CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG +CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL +CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE +CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO +CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_STANDARD_LIBRARIES +CMAKE_C_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_DLLTOOL +CMAKE_DLLTOOL-ADVANCED:INTERNAL=1 +//Path to cache edit program executable. +CMAKE_EDIT_COMMAND:INTERNAL=C:/Program Files/CMake/bin/cmake-gui.exe +//Executable file format +CMAKE_EXECUTABLE_FORMAT:INTERNAL=Unknown +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS +CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG +CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE +CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//Name of external makefile project generator. +CMAKE_EXTRA_GENERATOR:INTERNAL= +//Name of generator. +CMAKE_GENERATOR:INTERNAL=Unix Makefiles +//Generator instance identifier. +CMAKE_GENERATOR_INSTANCE:INTERNAL= +//Name of generator platform. +CMAKE_GENERATOR_PLATFORM:INTERNAL= +//Name of generator toolset. +CMAKE_GENERATOR_TOOLSET:INTERNAL= +//Source directory with the top level CMakeLists.txt file for this +// project +CMAKE_HOME_DIRECTORY:INTERNAL=F:/work/kunlang_video +//ADVANCED property for variable: CMAKE_LINKER +CMAKE_LINKER-ADVANCED:INTERNAL=1 +//Name of CMakeLists files to read +CMAKE_LIST_FILE_NAME:INTERNAL=CMakeLists.txt +//ADVANCED property for variable: CMAKE_MAKE_PROGRAM +CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS +CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG +CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE +CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_NM +CMAKE_NM-ADVANCED:INTERNAL=1 +//number of local generators +CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJCOPY +CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJDUMP +CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 +//Platform information initialized +CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RANLIB +CMAKE_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RC_COMPILER +CMAKE_RC_COMPILER-ADVANCED:INTERNAL=1 +CMAKE_RC_COMPILER_WORKS:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RC_FLAGS +CMAKE_RC_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RC_FLAGS_DEBUG +CMAKE_RC_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RC_FLAGS_MINSIZEREL +CMAKE_RC_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RC_FLAGS_RELEASE +CMAKE_RC_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RC_FLAGS_RELWITHDEBINFO +CMAKE_RC_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_READELF +CMAKE_READELF-ADVANCED:INTERNAL=1 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=C:/Program Files/CMake/share/cmake-4.0 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS +CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG +CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE +CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH +CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_RPATH +CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS +CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG +CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE +CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STRIP +CMAKE_STRIP-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_TAPI +CMAKE_TAPI-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE +CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: PKG_CONFIG_ARGN +PKG_CONFIG_ARGN-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: PKG_CONFIG_EXECUTABLE +PKG_CONFIG_EXECUTABLE-ADVANCED:INTERNAL=1 + diff --git a/build/CMakeFiles/4.0.0/CMakeCCompiler.cmake b/build/CMakeFiles/4.0.0/CMakeCCompiler.cmake new file mode 100644 index 0000000..a133ee6 --- /dev/null +++ b/build/CMakeFiles/4.0.0/CMakeCCompiler.cmake @@ -0,0 +1,83 @@ +set(CMAKE_C_COMPILER "D:/Program Files/LLVM/bin/clang.exe") +set(CMAKE_C_COMPILER_ARG1 "") +set(CMAKE_C_COMPILER_ID "Clang") +set(CMAKE_C_COMPILER_VERSION "21.1.0") +set(CMAKE_C_COMPILER_VERSION_INTERNAL "") +set(CMAKE_C_COMPILER_WRAPPER "") +set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "17") +set(CMAKE_C_EXTENSIONS_COMPUTED_DEFAULT "ON") +set(CMAKE_C_STANDARD_LATEST "23") +set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert;c_std_17;c_std_23") +set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") +set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros") +set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") +set(CMAKE_C17_COMPILE_FEATURES "c_std_17") +set(CMAKE_C23_COMPILE_FEATURES "c_std_23") + +set(CMAKE_C_PLATFORM_ID "Windows") +set(CMAKE_C_SIMULATE_ID "MSVC") +set(CMAKE_C_COMPILER_FRONTEND_VARIANT "GNU") +set(CMAKE_C_SIMULATE_VERSION "19.50") +set(CMAKE_C_COMPILER_ARCHITECTURE_ID x64) + +set(MSVC_C_ARCHITECTURE_ID x64) + +set(CMAKE_AR "D:/Program Files/LLVM/bin/llvm-ar.exe") +set(CMAKE_C_COMPILER_AR "D:/Program Files/LLVM/bin/llvm-ar.exe") +set(CMAKE_RANLIB "D:/Program Files/LLVM/bin/llvm-ranlib.exe") +set(CMAKE_C_COMPILER_RANLIB "D:/Program Files/LLVM/bin/llvm-ranlib.exe") +set(CMAKE_LINKER "D:/Program Files/LLVM/bin/lld-link.exe") +set(CMAKE_LINKER_LINK "") +set(CMAKE_LINKER_LLD "") +set(CMAKE_C_COMPILER_LINKER "D:/Program Files/LLVM/bin/lld-link") +set(CMAKE_C_COMPILER_LINKER_ID "LLD") +set(CMAKE_C_COMPILER_LINKER_VERSION 21.1.0) +set(CMAKE_C_COMPILER_LINKER_FRONTEND_VARIANT MSVC) +set(CMAKE_MT "") +set(CMAKE_TAPI "CMAKE_TAPI-NOTFOUND") +set(CMAKE_COMPILER_IS_GNUCC ) +set(CMAKE_C_COMPILER_LOADED 1) +set(CMAKE_C_COMPILER_WORKS TRUE) +set(CMAKE_C_ABI_COMPILED TRUE) + +set(CMAKE_C_COMPILER_ENV_VAR "CC") + +set(CMAKE_C_COMPILER_ID_RUN 1) +set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) +set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) +set(CMAKE_C_LINKER_PREFERENCE 10) +set(CMAKE_C_LINKER_DEPFILE_SUPPORTED ) +set(CMAKE_LINKER_PUSHPOP_STATE_SUPPORTED ) +set(CMAKE_C_LINKER_PUSHPOP_STATE_SUPPORTED ) + +# Save compiler ABI information. +set(CMAKE_C_SIZEOF_DATA_PTR "8") +set(CMAKE_C_COMPILER_ABI "") +set(CMAKE_C_BYTE_ORDER "LITTLE_ENDIAN") +set(CMAKE_C_LIBRARY_ARCHITECTURE "") + +if(CMAKE_C_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_C_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") +endif() + +if(CMAKE_C_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "") +endif() + +set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "") +set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "") +set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "") +set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/build/CMakeFiles/4.0.0/CMakeCXXCompiler.cmake b/build/CMakeFiles/4.0.0/CMakeCXXCompiler.cmake new file mode 100644 index 0000000..456de88 --- /dev/null +++ b/build/CMakeFiles/4.0.0/CMakeCXXCompiler.cmake @@ -0,0 +1,107 @@ +set(CMAKE_CXX_COMPILER "D:/Program Files/LLVM/bin/clang++.exe") +set(CMAKE_CXX_COMPILER_ARG1 "") +set(CMAKE_CXX_COMPILER_ID "Clang") +set(CMAKE_CXX_COMPILER_VERSION "21.1.0") +set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") +set(CMAKE_CXX_COMPILER_WRAPPER "") +set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "14") +set(CMAKE_CXX_EXTENSIONS_COMPUTED_DEFAULT "ON") +set(CMAKE_CXX_STANDARD_LATEST "26") +set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_14;cxx_std_17;cxx_std_20;cxx_std_23;cxx_std_26") +set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") +set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") +set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14") +set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") +set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20") +set(CMAKE_CXX23_COMPILE_FEATURES "cxx_std_23") +set(CMAKE_CXX26_COMPILE_FEATURES "cxx_std_26") + +set(CMAKE_CXX_PLATFORM_ID "Windows") +set(CMAKE_CXX_SIMULATE_ID "MSVC") +set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "GNU") +set(CMAKE_CXX_SIMULATE_VERSION "19.50") +set(CMAKE_CXX_COMPILER_ARCHITECTURE_ID x64) + +set(MSVC_CXX_ARCHITECTURE_ID x64) + +set(CMAKE_AR "D:/Program Files/LLVM/bin/llvm-ar.exe") +set(CMAKE_CXX_COMPILER_AR "D:/Program Files/LLVM/bin/llvm-ar.exe") +set(CMAKE_RANLIB "D:/Program Files/LLVM/bin/llvm-ranlib.exe") +set(CMAKE_CXX_COMPILER_RANLIB "D:/Program Files/LLVM/bin/llvm-ranlib.exe") +set(CMAKE_LINKER "D:/Program Files/LLVM/bin/lld-link.exe") +set(CMAKE_LINKER_LINK "") +set(CMAKE_LINKER_LLD "") +set(CMAKE_CXX_COMPILER_LINKER "D:/Program Files/LLVM/bin/lld-link") +set(CMAKE_CXX_COMPILER_LINKER_ID "LLD") +set(CMAKE_CXX_COMPILER_LINKER_VERSION 21.1.0) +set(CMAKE_CXX_COMPILER_LINKER_FRONTEND_VARIANT MSVC) +set(CMAKE_MT "") +set(CMAKE_TAPI "CMAKE_TAPI-NOTFOUND") +set(CMAKE_COMPILER_IS_GNUCXX ) +set(CMAKE_CXX_COMPILER_LOADED 1) +set(CMAKE_CXX_COMPILER_WORKS TRUE) +set(CMAKE_CXX_ABI_COMPILED TRUE) + +set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") + +set(CMAKE_CXX_COMPILER_ID_RUN 1) +set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;mpp;CPP;ixx;cppm;ccm;cxxm;c++m) +set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) + +foreach (lang IN ITEMS C OBJC OBJCXX) + if (CMAKE_${lang}_COMPILER_ID_RUN) + foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS) + list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension}) + endforeach() + endif() +endforeach() + +set(CMAKE_CXX_LINKER_PREFERENCE 30) +set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) +set(CMAKE_CXX_LINKER_DEPFILE_SUPPORTED ) +set(CMAKE_LINKER_PUSHPOP_STATE_SUPPORTED ) +set(CMAKE_CXX_LINKER_PUSHPOP_STATE_SUPPORTED ) + +# Save compiler ABI information. +set(CMAKE_CXX_SIZEOF_DATA_PTR "8") +set(CMAKE_CXX_COMPILER_ABI "") +set(CMAKE_CXX_BYTE_ORDER "LITTLE_ENDIAN") +set(CMAKE_CXX_LIBRARY_ARCHITECTURE "") + +if(CMAKE_CXX_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_CXX_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") +endif() + +if(CMAKE_CXX_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "") +endif() + +set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "") +set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "") +set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "") +set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") +set(CMAKE_CXX_COMPILER_CLANG_RESOURCE_DIR "D:/Program Files/LLVM/lib/clang/21") + +set(CMAKE_CXX_COMPILER_IMPORT_STD "") +### Imported target for C++23 standard library +set(CMAKE_CXX23_COMPILER_IMPORT_STD_NOT_FOUND_MESSAGE "Unsupported generator: Unix Makefiles") + + +### Imported target for C++26 standard library +set(CMAKE_CXX26_COMPILER_IMPORT_STD_NOT_FOUND_MESSAGE "Unsupported generator: Unix Makefiles") + + + diff --git a/build/CMakeFiles/4.0.0/CMakeDetermineCompilerABI_C.bin b/build/CMakeFiles/4.0.0/CMakeDetermineCompilerABI_C.bin new file mode 100644 index 0000000000000000000000000000000000000000..a5e0cf83c98c0625febd0f7dcbb9f2d046d83706 GIT binary patch literal 15360 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 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_C) +# define COMPILER_ID "SunPro" +# if __SUNPRO_C >= 0x5100 + /* __SUNPRO_C = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# endif + +#elif defined(__HP_cc) +# define COMPILER_ID "HP" + /* __HP_cc = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100) + +#elif defined(__DECC) +# define COMPILER_ID "Compaq" + /* __DECC_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000) + +#elif defined(__IBMC__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__open_xl__) && defined(__clang__) +# define COMPILER_ID "IBMClang" +# define COMPILER_VERSION_MAJOR DEC(__open_xl_version__) +# define COMPILER_VERSION_MINOR DEC(__open_xl_release__) +# define COMPILER_VERSION_PATCH DEC(__open_xl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__open_xl_ptf_fix_level__) +# define COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(__ibmxl__) && defined(__clang__) +# define COMPILER_ID "XLClang" +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) + + +#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800 +# define COMPILER_ID "XL" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800 +# define COMPILER_ID "VisualAge" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__NVCOMPILER) +# define COMPILER_ID "NVHPC" +# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) +# if defined(__NVCOMPILER_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) +# endif + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(__clang__) && defined(__cray__) +# define COMPILER_ID "CrayClang" +# define COMPILER_VERSION_MAJOR DEC(__cray_major__) +# define COMPILER_VERSION_MINOR DEC(__cray_minor__) +# define COMPILER_VERSION_PATCH DEC(__cray_patchlevel__) +# define COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__CLANG_FUJITSU) +# define COMPILER_ID "FujitsuClang" +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# define COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(__FUJITSU) +# define COMPILER_ID "Fujitsu" +# if defined(__FCC_version__) +# define COMPILER_VERSION __FCC_version__ +# elif defined(__FCC_major__) +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# endif +# if defined(__fcc_version) +# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) +# elif defined(__FCC_VERSION) +# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) +# endif + + +#elif defined(__ghs__) +# define COMPILER_ID "GHS" +/* __GHS_VERSION_NUMBER = VVVVRP */ +# ifdef __GHS_VERSION_NUMBER +# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) +# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) +# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) +# endif + +#elif defined(__TASKING__) +# define COMPILER_ID "Tasking" + # define COMPILER_VERSION_MAJOR DEC(__VERSION__/1000) + # define COMPILER_VERSION_MINOR DEC(__VERSION__ % 100) +# define COMPILER_VERSION_INTERNAL DEC(__VERSION__) + +#elif defined(__ORANGEC__) +# define COMPILER_ID "OrangeC" +# define COMPILER_VERSION_MAJOR DEC(__ORANGEC_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__ORANGEC_MINOR__) +# define COMPILER_VERSION_PATCH DEC(__ORANGEC_PATCHLEVEL__) + +#elif defined(__TINYC__) +# define COMPILER_ID "TinyCC" + +#elif defined(__BCC__) +# define COMPILER_ID "Bruce" + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__ARMCC_VERSION) && !defined(__clang__) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) +# define COMPILER_ID "ARMClang" + # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION/100 % 100) +# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) + +#elif defined(__clang__) && defined(__ti__) +# define COMPILER_ID "TIClang" + # define COMPILER_VERSION_MAJOR DEC(__ti_major__) + # define COMPILER_VERSION_MINOR DEC(__ti_minor__) + # define COMPILER_VERSION_PATCH DEC(__ti_patchlevel__) +# define COMPILER_VERSION_INTERNAL DEC(__ti_version__) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__)) +# define COMPILER_ID "LCC" +# define COMPILER_VERSION_MAJOR DEC(__LCC__ / 100) +# define COMPILER_VERSION_MINOR DEC(__LCC__ % 100) +# if defined(__LCC_MINOR__) +# define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__) +# endif +# if defined(__GNUC__) && defined(__GNUC_MINOR__) +# define SIMULATE_ID "GNU" +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif +# endif + +#elif defined(__GNUC__) +# define COMPILER_ID "GNU" +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(_ADI_COMPILER) +# define COMPILER_ID "ADSP" +#if defined(__VERSIONNUM__) + /* __VERSIONNUM__ = 0xVVRRPPTT */ +# define COMPILER_VERSION_MAJOR DEC(__VERSIONNUM__ >> 24 & 0xFF) +# define COMPILER_VERSION_MINOR DEC(__VERSIONNUM__ >> 16 & 0xFF) +# define COMPILER_VERSION_PATCH DEC(__VERSIONNUM__ >> 8 & 0xFF) +# define COMPILER_VERSION_TWEAK DEC(__VERSIONNUM__ & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) && defined(__ICCARM__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) +# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) +# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + +#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC) +# define COMPILER_ID "SDCC" +# if defined(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR) +# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH) +# else + /* SDCC = VRP */ +# define COMPILER_VERSION_MAJOR DEC(SDCC/100) +# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10) +# define COMPILER_VERSION_PATCH DEC(SDCC % 10) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__MSYS__) +# define PLATFORM_ID "MSYS" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# elif defined(__VXWORKS__) +# define PLATFORM_ID "VxWorks" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#elif defined(__INTEGRITY) +# if defined(INT_178B) +# define PLATFORM_ID "Integrity178" + +# else /* regular Integrity */ +# define PLATFORM_ID "Integrity" +# endif + +# elif defined(_ADI_COMPILER) +# define PLATFORM_ID "ADSP" + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_ARM64EC) +# define ARCHITECTURE_ID "ARM64EC" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCRX__) +# define ARCHITECTURE_ID "RX" + +# elif defined(__ICCRH850__) +# define ARCHITECTURE_ID "RH850" + +# elif defined(__ICCRL78__) +# define ARCHITECTURE_ID "RL78" + +# elif defined(__ICCRISCV__) +# define ARCHITECTURE_ID "RISCV" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# elif defined(__ICC430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__ICCV850__) +# define ARCHITECTURE_ID "V850" + +# elif defined(__ICC8051__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__ICCSTM8__) +# define ARCHITECTURE_ID "STM8" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__ghs__) +# if defined(__PPC64__) +# define ARCHITECTURE_ID "PPC64" + +# elif defined(__ppc__) +# define ARCHITECTURE_ID "PPC" + +# elif defined(__ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__x86_64__) +# define ARCHITECTURE_ID "x64" + +# elif defined(__i386__) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__clang__) && defined(__ti__) +# if defined(__ARM_ARCH) +# define ARCHITECTURE_ID "ARM" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__TI_COMPILER_VERSION__) +# if defined(__TI_ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__MSP430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__TMS320C28XX__) +# define ARCHITECTURE_ID "TMS320C28x" + +# elif defined(__TMS320C6X__) || defined(_TMS320C6X) +# define ARCHITECTURE_ID "TMS320C6x" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +# elif defined(__ADSPSHARC__) +# define ARCHITECTURE_ID "SHARC" + +# elif defined(__ADSPBLACKFIN__) +# define ARCHITECTURE_ID "Blackfin" + +#elif defined(__TASKING__) + +# if defined(__CTC__) || defined(__CPTC__) +# define ARCHITECTURE_ID "TriCore" + +# elif defined(__CMCS__) +# define ARCHITECTURE_ID "MCS" + +# elif defined(__CARM__) || defined(__CPARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__CARC__) +# define ARCHITECTURE_ID "ARC" + +# elif defined(__C51__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__CPCP__) +# define ARCHITECTURE_ID "PCP" + +# else +# define ARCHITECTURE_ID "" +# endif + +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number. */ +#ifdef COMPILER_VERSION +char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; + +/* Construct a string literal encoding the version number components. */ +#elif defined(COMPILER_VERSION_MAJOR) +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#elif defined(COMPILER_VERSION_INTERNAL_STR) +char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + +#define C_STD_99 199901L +#define C_STD_11 201112L +#define C_STD_17 201710L +#define C_STD_23 202311L + +#ifdef __STDC_VERSION__ +# define C_STD __STDC_VERSION__ +#endif + +#if !defined(__STDC__) && !defined(__clang__) +# if defined(_MSC_VER) || defined(__ibmxl__) || defined(__IBMC__) +# define C_VERSION "90" +# else +# define C_VERSION +# endif +#elif C_STD > C_STD_17 +# define C_VERSION "23" +#elif C_STD > C_STD_11 +# define C_VERSION "17" +#elif C_STD > C_STD_99 +# define C_VERSION "11" +#elif C_STD >= C_STD_99 +# define C_VERSION "99" +#else +# define C_VERSION "90" +#endif +const char* info_language_standard_default = + "INFO" ":" "standard_default[" C_VERSION "]"; + +const char* info_language_extensions_default = "INFO" ":" "extensions_default[" +#if (defined(__clang__) || defined(__GNUC__) || defined(__xlC__) || \ + defined(__TI_COMPILER_VERSION__)) && \ + !defined(__STRICT_ANSI__) + "ON" +#else + "OFF" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +#ifdef ID_VOID_MAIN +void main() {} +#else +# if defined(__CLASSIC_C__) +int main(argc, argv) int argc; char *argv[]; +# else +int main(int argc, char* argv[]) +# endif +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; + require += info_arch[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#if defined(COMPILER_VERSION_INTERNAL) || defined(COMPILER_VERSION_INTERNAL_STR) + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) + require += info_cray[argc]; +#endif + require += info_language_standard_default[argc]; + require += info_language_extensions_default[argc]; + (void)argv; + return require; +} +#endif diff --git a/build/CMakeFiles/4.0.0/CompilerIdC/a.exe b/build/CMakeFiles/4.0.0/CompilerIdC/a.exe new file mode 100644 index 0000000000000000000000000000000000000000..ea40f214cb559b548651fefb4f2fe0e7646360b0 GIT binary patch literal 105984 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İiH_SXq%8gkDXd0$kAXwASPBPoP2lYp= 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 m(5et;m54EOz6`M?%xP>Md)6%W^c>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_CC) +# define COMPILER_ID "SunPro" +# if __SUNPRO_CC >= 0x5100 + /* __SUNPRO_CC = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# endif + +#elif defined(__HP_aCC) +# define COMPILER_ID "HP" + /* __HP_aCC = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) + +#elif defined(__DECCXX) +# define COMPILER_ID "Compaq" + /* __DECCXX_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) + +#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__open_xl__) && defined(__clang__) +# define COMPILER_ID "IBMClang" +# define COMPILER_VERSION_MAJOR DEC(__open_xl_version__) +# define COMPILER_VERSION_MINOR DEC(__open_xl_release__) +# define COMPILER_VERSION_PATCH DEC(__open_xl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__open_xl_ptf_fix_level__) +# define COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(__ibmxl__) && defined(__clang__) +# define COMPILER_ID "XLClang" +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) + + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800 +# define COMPILER_ID "XL" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 +# define COMPILER_ID "VisualAge" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__NVCOMPILER) +# define COMPILER_ID "NVHPC" +# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) +# if defined(__NVCOMPILER_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) +# endif + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(__clang__) && defined(__cray__) +# define COMPILER_ID "CrayClang" +# define COMPILER_VERSION_MAJOR DEC(__cray_major__) +# define COMPILER_VERSION_MINOR DEC(__cray_minor__) +# define COMPILER_VERSION_PATCH DEC(__cray_patchlevel__) +# define COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__CLANG_FUJITSU) +# define COMPILER_ID "FujitsuClang" +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# define COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(__FUJITSU) +# define COMPILER_ID "Fujitsu" +# if defined(__FCC_version__) +# define COMPILER_VERSION __FCC_version__ +# elif defined(__FCC_major__) +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# endif +# if defined(__fcc_version) +# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) +# elif defined(__FCC_VERSION) +# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) +# endif + + +#elif defined(__ghs__) +# define COMPILER_ID "GHS" +/* __GHS_VERSION_NUMBER = VVVVRP */ +# ifdef __GHS_VERSION_NUMBER +# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) +# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) +# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) +# endif + +#elif defined(__TASKING__) +# define COMPILER_ID "Tasking" + # define COMPILER_VERSION_MAJOR DEC(__VERSION__/1000) + # define COMPILER_VERSION_MINOR DEC(__VERSION__ % 100) +# define COMPILER_VERSION_INTERNAL DEC(__VERSION__) + +#elif defined(__ORANGEC__) +# define COMPILER_ID "OrangeC" +# define COMPILER_VERSION_MAJOR DEC(__ORANGEC_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__ORANGEC_MINOR__) +# define COMPILER_VERSION_PATCH DEC(__ORANGEC_PATCHLEVEL__) + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__ARMCC_VERSION) && !defined(__clang__) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) +# define COMPILER_ID "ARMClang" + # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION/100 % 100) +# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) + +#elif defined(__clang__) && defined(__ti__) +# define COMPILER_ID "TIClang" + # define COMPILER_VERSION_MAJOR DEC(__ti_major__) + # define COMPILER_VERSION_MINOR DEC(__ti_minor__) + # define COMPILER_VERSION_PATCH DEC(__ti_patchlevel__) +# define COMPILER_VERSION_INTERNAL DEC(__ti_version__) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__)) +# define COMPILER_ID "LCC" +# define COMPILER_VERSION_MAJOR DEC(__LCC__ / 100) +# define COMPILER_VERSION_MINOR DEC(__LCC__ % 100) +# if defined(__LCC_MINOR__) +# define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__) +# endif +# if defined(__GNUC__) && defined(__GNUC_MINOR__) +# define SIMULATE_ID "GNU" +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif +# endif + +#elif defined(__GNUC__) || defined(__GNUG__) +# define COMPILER_ID "GNU" +# if defined(__GNUC__) +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# else +# define COMPILER_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(_ADI_COMPILER) +# define COMPILER_ID "ADSP" +#if defined(__VERSIONNUM__) + /* __VERSIONNUM__ = 0xVVRRPPTT */ +# define COMPILER_VERSION_MAJOR DEC(__VERSIONNUM__ >> 24 & 0xFF) +# define COMPILER_VERSION_MINOR DEC(__VERSIONNUM__ >> 16 & 0xFF) +# define COMPILER_VERSION_PATCH DEC(__VERSIONNUM__ >> 8 & 0xFF) +# define COMPILER_VERSION_TWEAK DEC(__VERSIONNUM__ & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) && defined(__ICCARM__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) +# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) +# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__MSYS__) +# define PLATFORM_ID "MSYS" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# elif defined(__VXWORKS__) +# define PLATFORM_ID "VxWorks" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#elif defined(__INTEGRITY) +# if defined(INT_178B) +# define PLATFORM_ID "Integrity178" + +# else /* regular Integrity */ +# define PLATFORM_ID "Integrity" +# endif + +# elif defined(_ADI_COMPILER) +# define PLATFORM_ID "ADSP" + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_ARM64EC) +# define ARCHITECTURE_ID "ARM64EC" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCRX__) +# define ARCHITECTURE_ID "RX" + +# elif defined(__ICCRH850__) +# define ARCHITECTURE_ID "RH850" + +# elif defined(__ICCRL78__) +# define ARCHITECTURE_ID "RL78" + +# elif defined(__ICCRISCV__) +# define ARCHITECTURE_ID "RISCV" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# elif defined(__ICC430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__ICCV850__) +# define ARCHITECTURE_ID "V850" + +# elif defined(__ICC8051__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__ICCSTM8__) +# define ARCHITECTURE_ID "STM8" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__ghs__) +# if defined(__PPC64__) +# define ARCHITECTURE_ID "PPC64" + +# elif defined(__ppc__) +# define ARCHITECTURE_ID "PPC" + +# elif defined(__ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__x86_64__) +# define ARCHITECTURE_ID "x64" + +# elif defined(__i386__) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__clang__) && defined(__ti__) +# if defined(__ARM_ARCH) +# define ARCHITECTURE_ID "ARM" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__TI_COMPILER_VERSION__) +# if defined(__TI_ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__MSP430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__TMS320C28XX__) +# define ARCHITECTURE_ID "TMS320C28x" + +# elif defined(__TMS320C6X__) || defined(_TMS320C6X) +# define ARCHITECTURE_ID "TMS320C6x" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +# elif defined(__ADSPSHARC__) +# define ARCHITECTURE_ID "SHARC" + +# elif defined(__ADSPBLACKFIN__) +# define ARCHITECTURE_ID "Blackfin" + +#elif defined(__TASKING__) + +# if defined(__CTC__) || defined(__CPTC__) +# define ARCHITECTURE_ID "TriCore" + +# elif defined(__CMCS__) +# define ARCHITECTURE_ID "MCS" + +# elif defined(__CARM__) || defined(__CPARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__CARC__) +# define ARCHITECTURE_ID "ARC" + +# elif defined(__C51__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__CPCP__) +# define ARCHITECTURE_ID "PCP" + +# else +# define ARCHITECTURE_ID "" +# endif + +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number. */ +#ifdef COMPILER_VERSION +char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; + +/* Construct a string literal encoding the version number components. */ +#elif defined(COMPILER_VERSION_MAJOR) +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#elif defined(COMPILER_VERSION_INTERNAL_STR) +char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + +#define CXX_STD_98 199711L +#define CXX_STD_11 201103L +#define CXX_STD_14 201402L +#define CXX_STD_17 201703L +#define CXX_STD_20 202002L +#define CXX_STD_23 202302L + +#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG) +# if _MSVC_LANG > CXX_STD_17 +# define CXX_STD _MSVC_LANG +# elif _MSVC_LANG == CXX_STD_17 && defined(__cpp_aggregate_paren_init) +# define CXX_STD CXX_STD_20 +# elif _MSVC_LANG > CXX_STD_14 && __cplusplus > CXX_STD_17 +# define CXX_STD CXX_STD_20 +# elif _MSVC_LANG > CXX_STD_14 +# define CXX_STD CXX_STD_17 +# elif defined(__INTEL_CXX11_MODE__) && defined(__cpp_aggregate_nsdmi) +# define CXX_STD CXX_STD_14 +# elif defined(__INTEL_CXX11_MODE__) +# define CXX_STD CXX_STD_11 +# else +# define CXX_STD CXX_STD_98 +# endif +#elif defined(_MSC_VER) && defined(_MSVC_LANG) +# if _MSVC_LANG > __cplusplus +# define CXX_STD _MSVC_LANG +# else +# define CXX_STD __cplusplus +# endif +#elif defined(__NVCOMPILER) +# if __cplusplus == CXX_STD_17 && defined(__cpp_aggregate_paren_init) +# define CXX_STD CXX_STD_20 +# else +# define CXX_STD __cplusplus +# endif +#elif defined(__INTEL_COMPILER) || defined(__PGI) +# if __cplusplus == CXX_STD_11 && defined(__cpp_namespace_attributes) +# define CXX_STD CXX_STD_17 +# elif __cplusplus == CXX_STD_11 && defined(__cpp_aggregate_nsdmi) +# define CXX_STD CXX_STD_14 +# else +# define CXX_STD __cplusplus +# endif +#elif (defined(__IBMCPP__) || defined(__ibmxl__)) && defined(__linux__) +# if __cplusplus == CXX_STD_11 && defined(__cpp_aggregate_nsdmi) +# define CXX_STD CXX_STD_14 +# else +# define CXX_STD __cplusplus +# endif +#elif __cplusplus == 1 && defined(__GXX_EXPERIMENTAL_CXX0X__) +# define CXX_STD CXX_STD_11 +#else +# define CXX_STD __cplusplus +#endif + +const char* info_language_standard_default = "INFO" ":" "standard_default[" +#if CXX_STD > CXX_STD_23 + "26" +#elif CXX_STD > CXX_STD_20 + "23" +#elif CXX_STD > CXX_STD_17 + "20" +#elif CXX_STD > CXX_STD_14 + "17" +#elif CXX_STD > CXX_STD_11 + "14" +#elif CXX_STD >= CXX_STD_11 + "11" +#else + "98" +#endif +"]"; + +const char* info_language_extensions_default = "INFO" ":" "extensions_default[" +#if (defined(__clang__) || defined(__GNUC__) || defined(__xlC__) || \ + defined(__TI_COMPILER_VERSION__)) && \ + !defined(__STRICT_ANSI__) + "ON" +#else + "OFF" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; + require += info_arch[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#if defined(COMPILER_VERSION_INTERNAL) || defined(COMPILER_VERSION_INTERNAL_STR) + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) + require += info_cray[argc]; +#endif + require += info_language_standard_default[argc]; + require += info_language_extensions_default[argc]; + (void)argv; + return require; +} diff --git a/build/CMakeFiles/4.0.0/CompilerIdCXX/a.exe b/build/CMakeFiles/4.0.0/CompilerIdCXX/a.exe new file mode 100644 index 0000000000000000000000000000000000000000..b21309bc49bc85400f054665166b6ac88758ba40 GIT binary patch literal 105984 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 l3UOA27&8~h5L?2W#^$kS&0|")?[ ]*(([^"]*[/\\])?(ld[0-9]*(|\\.[a-rt-z][a-z]*|\\.s[a-np-z][a-z]*|\\.so[a-z]+)|link\\.exe|lld-link(\\.exe)?))("|,| |$)] + linker tool for 'C': D:/Program Files/LLVM/bin/lld-link + implicit libs: [] + implicit objs: [] + implicit dirs: [] + implicit fwks: [] + + + - + kind: "message-v1" + backtrace: + - "C:/Program Files/CMake/share/cmake-4.0/Modules/Internal/CMakeDetermineLinkerId.cmake:36 (message)" + - "C:/Program Files/CMake/share/cmake-4.0/Modules/CMakeDetermineCompilerABI.cmake:264 (cmake_determine_linker_id)" + - "C:/Program Files/CMake/share/cmake-4.0/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:10 (project)" + message: | + Running the C compiler's linker: "D:/Program Files/LLVM/bin/lld-link" "-v" + lld-link: warning: ignoring unknown argument '-v' + lld-link: error: no input files + - + kind: "message-v1" + backtrace: + - "C:/Program Files/CMake/share/cmake-4.0/Modules/Internal/CMakeDetermineLinkerId.cmake:36 (message)" + - "C:/Program Files/CMake/share/cmake-4.0/Modules/CMakeDetermineCompilerABI.cmake:264 (cmake_determine_linker_id)" + - "C:/Program Files/CMake/share/cmake-4.0/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:10 (project)" + message: | + Running the C compiler's linker: "D:/Program Files/LLVM/bin/lld-link" "-V" + lld-link: warning: ignoring unknown argument '-V' + lld-link: error: no input files + - + kind: "message-v1" + backtrace: + - "C:/Program Files/CMake/share/cmake-4.0/Modules/Internal/CMakeDetermineLinkerId.cmake:36 (message)" + - "C:/Program Files/CMake/share/cmake-4.0/Modules/CMakeDetermineCompilerABI.cmake:264 (cmake_determine_linker_id)" + - "C:/Program Files/CMake/share/cmake-4.0/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:10 (project)" + message: | + Running the C compiler's linker: "D:/Program Files/LLVM/bin/lld-link" "--version" + LLD 21.1.0 + - + kind: "try_compile-v1" + backtrace: + - "C:/Program Files/CMake/share/cmake-4.0/Modules/CMakeDetermineCompilerABI.cmake:83 (try_compile)" + - "C:/Program Files/CMake/share/cmake-4.0/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:10 (project)" + checks: + - "Detecting CXX compiler ABI info" + directories: + source: "F:/work/kunlang_video/build/CMakeFiles/CMakeScratch/TryCompile-llc2ph" + binary: "F:/work/kunlang_video/build/CMakeFiles/CMakeScratch/TryCompile-llc2ph" + cmakeVariables: + CMAKE_CXX_COMPILER_CLANG_SCAN_DEPS: "D:/Program Files/LLVM/bin/clang-scan-deps.exe" + CMAKE_CXX_FLAGS: "" + CMAKE_CXX_FLAGS_DEBUG: "-O0 -g -Xclang -gcodeview -D_DEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrtd" + CMAKE_CXX_SCAN_FOR_MODULES: "OFF" + CMAKE_EXE_LINKER_FLAGS: "" + buildResult: + variable: "CMAKE_CXX_ABI_COMPILED" + cached: true + stdout: | + Change Dir: 'F:/work/kunlang_video/build/CMakeFiles/CMakeScratch/TryCompile-llc2ph' + + Run Build Command(s): "C:/Program Files/CMake/bin/cmake.exe" -E env VERBOSE=1 D:/MinGW/bin/make.exe -f Makefile cmTC_76d17/fast + D:/MinGW/bin/make.exe -f CMakeFiles/cmTC_76d17.dir/build.make CMakeFiles/cmTC_76d17.dir/build + make.exe[1]: Entering directory 'F:/work/kunlang_video/build/CMakeFiles/CMakeScratch/TryCompile-llc2ph' + Building CXX object CMakeFiles/cmTC_76d17.dir/CMakeCXXCompilerABI.cpp.obj + "D:/Program Files/LLVM/bin/clang++.exe" -O0 -g -Xclang -gcodeview -D_DEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrtd -MD -MT CMakeFiles/cmTC_76d17.dir/CMakeCXXCompilerABI.cpp.obj -MF CMakeFiles/cmTC_76d17.dir/CMakeCXXCompilerABI.cpp.obj.d -o CMakeFiles/cmTC_76d17.dir/CMakeCXXCompilerABI.cpp.obj -c "C:/Program Files/CMake/share/cmake-4.0/Modules/CMakeCXXCompilerABI.cpp" + Linking CXX executable cmTC_76d17.exe + "D:/Program Files/LLVM/bin/clang++.exe" -nostartfiles -nostdlib -O0 -g -Xclang -gcodeview -D_DEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrtd -v -Xlinker /subsystem:console -fuse-ld=lld-link @CMakeFiles/cmTC_76d17.dir/objects1.rsp -o cmTC_76d17.exe -Xlinker /MANIFEST:EMBED -Xlinker /implib:cmTC_76d17.lib -Xlinker /pdb:F:/work/kunlang_video/build/CMakeFiles/CMakeScratch/TryCompile-llc2ph/cmTC_76d17.pdb -Xlinker /version:0.0 + clang version 21.1.0 + Target: x86_64-pc-windows-msvc + Thread model: posix + InstalledDir: D:\\Program Files\\LLVM\\bin + "D:\\\\Program Files\\\\LLVM\\\\bin\\\\lld-link" -out:cmTC_76d17.exe "-libpath:D:\\\\Program Files\\\\Microsoft Visual Studio\\\\18\\\\Community\\\\VC\\\\Tools\\\\MSVC\\\\14.50.35717\\\\lib\\\\x64" "-libpath:D:\\\\Program Files\\\\Microsoft Visual Studio\\\\18\\\\Community\\\\VC\\\\Tools\\\\MSVC\\\\14.50.35717\\\\atlmfc\\\\lib\\\\x64" "-libpath:D:\\\\Program Files\\\\Microsoft Visual Studio\\\\2022\\\\Windows Kits\\\\10\\\\Lib\\\\10.0.26100.0\\\\ucrt\\\\x64" "-libpath:D:\\\\Program Files\\\\Microsoft Visual Studio\\\\2022\\\\Windows Kits\\\\10\\\\Lib\\\\10.0.26100.0\\\\um\\\\x64" "-libpath:D:\\\\Program Files\\\\LLVM\\\\lib\\\\clang\\\\21\\\\lib\\\\windows" -nologo -debug /subsystem:console CMakeFiles/cmTC_76d17.dir/CMakeCXXCompilerABI.cpp.obj /MANIFEST:EMBED /implib:cmTC_76d17.lib /pdb:F:/work/kunlang_video/build/CMakeFiles/CMakeScratch/TryCompile-llc2ph/cmTC_76d17.pdb /version:0.0 + make.exe[1]: Leaving directory 'F:/work/kunlang_video/build/CMakeFiles/CMakeScratch/TryCompile-llc2ph' + + exitCode: 0 + - + kind: "message-v1" + backtrace: + - "C:/Program Files/CMake/share/cmake-4.0/Modules/CMakeDetermineCompilerABI.cmake:227 (message)" + - "C:/Program Files/CMake/share/cmake-4.0/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:10 (project)" + message: | + Parsed CXX implicit link information: + link line regex: [^( *|.*[/\\])(ld[0-9]*(|\\.[a-rt-z][a-z]*|\\.s[a-np-z][a-z]*|\\.so[a-z]+)|link\\.exe|lld-link(\\.exe)?|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)] + linker tool regex: [^[ ]*(->|")?[ ]*(([^"]*[/\\])?(ld[0-9]*(|\\.[a-rt-z][a-z]*|\\.s[a-np-z][a-z]*|\\.so[a-z]+)|link\\.exe|lld-link(\\.exe)?))("|,| |$)] + linker tool for 'CXX': D:/Program Files/LLVM/bin/lld-link + implicit libs: [] + implicit objs: [] + implicit dirs: [] + implicit fwks: [] + + + - + kind: "message-v1" + backtrace: + - "C:/Program Files/CMake/share/cmake-4.0/Modules/Internal/CMakeDetermineLinkerId.cmake:36 (message)" + - "C:/Program Files/CMake/share/cmake-4.0/Modules/CMakeDetermineCompilerABI.cmake:264 (cmake_determine_linker_id)" + - "C:/Program Files/CMake/share/cmake-4.0/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:10 (project)" + message: | + Running the CXX compiler's linker: "D:/Program Files/LLVM/bin/lld-link" "-v" + lld-link: warning: ignoring unknown argument '-v' + lld-link: error: no input files + - + kind: "message-v1" + backtrace: + - "C:/Program Files/CMake/share/cmake-4.0/Modules/Internal/CMakeDetermineLinkerId.cmake:36 (message)" + - "C:/Program Files/CMake/share/cmake-4.0/Modules/CMakeDetermineCompilerABI.cmake:264 (cmake_determine_linker_id)" + - "C:/Program Files/CMake/share/cmake-4.0/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:10 (project)" + message: | + Running the CXX compiler's linker: "D:/Program Files/LLVM/bin/lld-link" "-V" + lld-link: warning: ignoring unknown argument '-V' + lld-link: error: no input files + - + kind: "message-v1" + backtrace: + - "C:/Program Files/CMake/share/cmake-4.0/Modules/Internal/CMakeDetermineLinkerId.cmake:36 (message)" + - "C:/Program Files/CMake/share/cmake-4.0/Modules/CMakeDetermineCompilerABI.cmake:264 (cmake_determine_linker_id)" + - "C:/Program Files/CMake/share/cmake-4.0/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:10 (project)" + message: | + Running the CXX compiler's linker: "D:/Program Files/LLVM/bin/lld-link" "--version" + LLD 21.1.0 + - + kind: "try_compile-v1" + backtrace: + - "C:/Program Files/CMake/share/cmake-4.0/Modules/Internal/FeatureTesting.cmake:34 (try_compile)" + - "C:/Program Files/CMake/share/cmake-4.0/Modules/Internal/FeatureTesting.cmake:87 (_record_compiler_features)" + - "C:/Program Files/CMake/share/cmake-4.0/Modules/Compiler/CMakeCommonCompilerMacros.cmake:124 (_record_compiler_features_cxx)" + - "C:/Program Files/CMake/share/cmake-4.0/Modules/CMakeDetermineCompilerSupport.cmake:70 (cmake_record_cxx_compile_features)" + - "C:/Program Files/CMake/share/cmake-4.0/Modules/CMakeTestCXXCompiler.cmake:83 (CMAKE_DETERMINE_COMPILER_SUPPORT)" + - "CMakeLists.txt:10 (project)" + checks: + - "Detecting CXX compile features" + directories: + source: "F:/work/kunlang_video/build/CMakeFiles/CMakeScratch/TryCompile-xsyzar" + binary: "F:/work/kunlang_video/build/CMakeFiles/CMakeScratch/TryCompile-xsyzar" + cmakeVariables: + CMAKE_CXX_COMPILER_CLANG_SCAN_DEPS: "D:/Program Files/LLVM/bin/clang-scan-deps.exe" + CMAKE_CXX_FLAGS: "" + CMAKE_CXX_FLAGS_DEBUG: "-O0 -g -Xclang -gcodeview -D_DEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrtd" + CMAKE_EXE_LINKER_FLAGS: "" + buildResult: + variable: "CMAKE_CXX_FEATURE_TEST" + cached: true + stdout: | + Change Dir: 'F:/work/kunlang_video/build/CMakeFiles/CMakeScratch/TryCompile-xsyzar' + + Run Build Command(s): "C:/Program Files/CMake/bin/cmake.exe" -E env VERBOSE=1 D:/MinGW/bin/make.exe -f Makefile cmTC_ab324/fast + D:/MinGW/bin/make.exe -f CMakeFiles/cmTC_ab324.dir/build.make CMakeFiles/cmTC_ab324.dir/build + make.exe[1]: Entering directory 'F:/work/kunlang_video/build/CMakeFiles/CMakeScratch/TryCompile-xsyzar' + Building CXX object CMakeFiles/cmTC_ab324.dir/feature_tests.cxx.obj + "D:/Program Files/LLVM/bin/clang++.exe" -O0 -g -Xclang -gcodeview -D_DEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrtd -std=c++14 -MD -MT CMakeFiles/cmTC_ab324.dir/feature_tests.cxx.obj -MF CMakeFiles/cmTC_ab324.dir/feature_tests.cxx.obj.d -o CMakeFiles/cmTC_ab324.dir/feature_tests.cxx.obj -c F:/work/kunlang_video/build/CMakeFiles/CMakeScratch/TryCompile-xsyzar/feature_tests.cxx + Linking CXX executable cmTC_ab324.exe + "D:/Program Files/LLVM/bin/clang++.exe" -nostartfiles -nostdlib -O0 -g -Xclang -gcodeview -D_DEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrtd -Xlinker /subsystem:console -fuse-ld=lld-link @CMakeFiles/cmTC_ab324.dir/objects1.rsp -o cmTC_ab324.exe -Xlinker /MANIFEST:EMBED -Xlinker /implib:cmTC_ab324.lib -Xlinker /pdb:F:/work/kunlang_video/build/CMakeFiles/CMakeScratch/TryCompile-xsyzar/cmTC_ab324.pdb -Xlinker /version:0.0 @CMakeFiles/cmTC_ab324.dir/linkLibs.rsp + make.exe[1]: Leaving directory 'F:/work/kunlang_video/build/CMakeFiles/CMakeScratch/TryCompile-xsyzar' + + exitCode: 0 + - + kind: "try_compile-v1" + backtrace: + - "C:/Program Files/CMake/share/cmake-4.0/Modules/Internal/FeatureTesting.cmake:34 (try_compile)" + - "C:/Program Files/CMake/share/cmake-4.0/Modules/Internal/FeatureTesting.cmake:87 (_record_compiler_features)" + - "C:/Program Files/CMake/share/cmake-4.0/Modules/Compiler/CMakeCommonCompilerMacros.cmake:132 (_record_compiler_features_cxx)" + - "C:/Program Files/CMake/share/cmake-4.0/Modules/CMakeDetermineCompilerSupport.cmake:70 (cmake_record_cxx_compile_features)" + - "C:/Program Files/CMake/share/cmake-4.0/Modules/CMakeTestCXXCompiler.cmake:83 (CMAKE_DETERMINE_COMPILER_SUPPORT)" + - "CMakeLists.txt:10 (project)" + checks: + - "Detecting CXX compile features" + directories: + source: "F:/work/kunlang_video/build/CMakeFiles/CMakeScratch/TryCompile-4jbj7m" + binary: "F:/work/kunlang_video/build/CMakeFiles/CMakeScratch/TryCompile-4jbj7m" + cmakeVariables: + CMAKE_CXX_COMPILER_CLANG_SCAN_DEPS: "D:/Program Files/LLVM/bin/clang-scan-deps.exe" + CMAKE_CXX_FLAGS: "" + CMAKE_CXX_FLAGS_DEBUG: "-O0 -g -Xclang -gcodeview -D_DEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrtd" + CMAKE_EXE_LINKER_FLAGS: "" + buildResult: + variable: "CMAKE_CXX_FEATURE_TEST" + cached: true + stdout: | + Change Dir: 'F:/work/kunlang_video/build/CMakeFiles/CMakeScratch/TryCompile-4jbj7m' + + Run Build Command(s): "C:/Program Files/CMake/bin/cmake.exe" -E env VERBOSE=1 D:/MinGW/bin/make.exe -f Makefile cmTC_5832b/fast + D:/MinGW/bin/make.exe -f CMakeFiles/cmTC_5832b.dir/build.make CMakeFiles/cmTC_5832b.dir/build + make.exe[1]: Entering directory 'F:/work/kunlang_video/build/CMakeFiles/CMakeScratch/TryCompile-4jbj7m' + Building CXX object CMakeFiles/cmTC_5832b.dir/feature_tests.cxx.obj + "D:/Program Files/LLVM/bin/clang++.exe" -O0 -g -Xclang -gcodeview -D_DEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrtd -std=c++14 -MD -MT CMakeFiles/cmTC_5832b.dir/feature_tests.cxx.obj -MF CMakeFiles/cmTC_5832b.dir/feature_tests.cxx.obj.d -o CMakeFiles/cmTC_5832b.dir/feature_tests.cxx.obj -c F:/work/kunlang_video/build/CMakeFiles/CMakeScratch/TryCompile-4jbj7m/feature_tests.cxx + Linking CXX executable cmTC_5832b.exe + "D:/Program Files/LLVM/bin/clang++.exe" -nostartfiles -nostdlib -O0 -g -Xclang -gcodeview -D_DEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrtd -Xlinker /subsystem:console -fuse-ld=lld-link @CMakeFiles/cmTC_5832b.dir/objects1.rsp -o cmTC_5832b.exe -Xlinker /MANIFEST:EMBED -Xlinker /implib:cmTC_5832b.lib -Xlinker /pdb:F:/work/kunlang_video/build/CMakeFiles/CMakeScratch/TryCompile-4jbj7m/cmTC_5832b.pdb -Xlinker /version:0.0 @CMakeFiles/cmTC_5832b.dir/linkLibs.rsp + make.exe[1]: Leaving directory 'F:/work/kunlang_video/build/CMakeFiles/CMakeScratch/TryCompile-4jbj7m' + + exitCode: 0 +... diff --git a/build/CMakeFiles/ShowIncludes/foo.h b/build/CMakeFiles/ShowIncludes/foo.h new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/build/CMakeFiles/ShowIncludes/foo.h @@ -0,0 +1 @@ + diff --git a/build/CMakeFiles/ShowIncludes/main.c b/build/CMakeFiles/ShowIncludes/main.c new file mode 100644 index 0000000..cd3cbc1 --- /dev/null +++ b/build/CMakeFiles/ShowIncludes/main.c @@ -0,0 +1,2 @@ +#include "foo.h" +int main(){} diff --git a/build/CMakeFiles/cmake.check_cache b/build/CMakeFiles/cmake.check_cache new file mode 100644 index 0000000..3dccd73 --- /dev/null +++ b/build/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/build/CMakeFiles/feature_tests.bin b/build/CMakeFiles/feature_tests.bin new file mode 100644 index 0000000000000000000000000000000000000000..346795e266b1c3cefb2713895a95560e940dc36e GIT binary patch literal 16896 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/FALSE/0/1/ON/OFF" -option (ENABLE_CPP11 "Build websocketpp with CPP11 features enabled." TRUE) -option (BUILD_EXAMPLES "Build websocketpp examples." FALSE) -option (BUILD_TESTS "Build websocketpp tests." FALSE) - -if (BUILD_TESTS OR BUILD_EXAMPLES) - - enable_testing () - - ############ Compiler specific setup - - set (WEBSOCKETPP_PLATFORM_LIBS "") - set (WEBSOCKETPP_PLATFORM_TLS_LIBS "") - set (WEBSOCKETPP_BOOST_LIBS "") - - # VC9 and C++11 reasoning - if (ENABLE_CPP11 AND MSVC AND MSVC90) - message("* Detected Visual Studio 9 2008, disabling C++11 support.") - set (ENABLE_CPP11 FALSE) - endif () - - # Detect clang. Not officially reported by cmake. - execute_process(COMMAND "${CMAKE_CXX_COMPILER}" "-v" ERROR_VARIABLE CXX_VER_STDERR) - if ("${CXX_VER_STDERR}" MATCHES ".*clang.*") - set (CMAKE_COMPILER_IS_CLANGXX 1) - endif () - - # C++11 defines - if (ENABLE_CPP11) - if (MSVC) - add_definitions (-D_WEBSOCKETPP_CPP11_FUNCTIONAL_) - add_definitions (-D_WEBSOCKETPP_CPP11_SYSTEM_ERROR_) - add_definitions (-D_WEBSOCKETPP_CPP11_RANDOM_DEVICE_) - add_definitions (-D_WEBSOCKETPP_CPP11_MEMORY_) - else() - add_definitions (-D_WEBSOCKETPP_CPP11_STL_) - endif() - endif () - - # Visual studio - if (MSVC) - set (WEBSOCKETPP_BOOST_LIBS system thread) - set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /GL /Gy /GF /Ox /Ob2 /Ot /Oi /MP /arch:SSE2 /fp:fast") - set (CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /LTCG /INCREMENTAL:NO /OPT:REF /OPT:ICF") - add_definitions (/W3 /wd4996 /wd4995 /wd4355) - add_definitions (-DUNICODE -D_UNICODE) - add_definitions (-D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS) - add_definitions (-DNOMINMAX) - endif () - - # g++ - if (CMAKE_COMPILER_IS_GNUCXX) - if (NOT APPLE) - set (WEBSOCKETPP_PLATFORM_LIBS pthread rt) - else() - set (WEBSOCKETPP_PLATFORM_LIBS pthread) - endif() - set (WEBSOCKETPP_PLATFORM_TLS_LIBS ssl crypto) - set (WEBSOCKETPP_BOOST_LIBS system thread) - set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") - if (NOT APPLE) - add_definitions (-DNDEBUG -Wall -Wcast-align) # todo: should we use CMAKE_C_FLAGS for these? - endif () - - # Try to detect version. Note: Not tested! - execute_process (COMMAND ${CMAKE_CXX_COMPILER} "-dumpversion" OUTPUT_VARIABLE GCC_VERSION) - if ("${GCC_VERSION}" STRGREATER "4.4.0") - message("* C++11 support partially enabled due to GCC version ${GCC_VERSION}") - set (WEBSOCKETPP_BOOST_LIBS system thread) - endif () - endif () - - # clang - if (CMAKE_COMPILER_IS_CLANGXX) - if (NOT APPLE) - set (WEBSOCKETPP_PLATFORM_LIBS pthread rt) - else() - set (WEBSOCKETPP_PLATFORM_LIBS pthread) - endif() - set (WEBSOCKETPP_PLATFORM_TLS_LIBS ssl crypto) - set (WEBSOCKETPP_BOOST_LIBS system thread) - set (CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} "-std=c++0x -stdlib=libc++") # todo: is libc++ really needed here? - if (NOT APPLE) - add_definitions (-DNDEBUG -Wall -Wno-padded) # todo: should we use CMAKE_C_FLAGS for these? - endif () - endif () - - # OSX, can override above. - if (APPLE) - add_definitions (-DNDEBUG -Wall) - endif () - - if (BUILD_EXAMPLES) - list (APPEND WEBSOCKETPP_BOOST_LIBS random) - endif() - - if (BUILD_TESTS) - list (APPEND WEBSOCKETPP_BOOST_LIBS unit_test_framework) - endif() - - ############ Dependencies - - # Set BOOST_ROOT env variable or pass with cmake -DBOOST_ROOT=path. - # BOOST_ROOT can also be defined by a previous run from cmake cache. - if (NOT "$ENV{BOOST_ROOT_CPP11}" STREQUAL "") - # Scons documentation for BOOST_ROOT_CPP11: - # "look for optional second boostroot compiled with clang's libc++ STL library - # this prevents warnings/errors when linking code built with two different - # incompatible STL libraries." - file (TO_CMAKE_PATH "$ENV{BOOST_ROOT_CPP11}" BOOST_ROOT) - set (BOOST_ROOT ${BOOST_ROOT} CACHE PATH "BOOST_ROOT dependency path" FORCE) - endif () - if ("${BOOST_ROOT}" STREQUAL "") - file (TO_CMAKE_PATH "$ENV{BOOST_ROOT}" BOOST_ROOT) - # Cache BOOST_ROOT for runs that do not define $ENV{BOOST_ROOT}. - set (BOOST_ROOT ${BOOST_ROOT} CACHE PATH "BOOST_ROOT dependency path" FORCE) - endif () - - message ("* Configuring Boost") - message (STATUS "-- Using BOOST_ROOT") - message (STATUS " " ${BOOST_ROOT}) - - if (MSVC) - set (Boost_USE_MULTITHREADED TRUE) - set (Boost_USE_STATIC_LIBS TRUE) - else () - set (Boost_USE_MULTITHREADED FALSE) - set (Boost_USE_STATIC_LIBS FALSE) - endif () - - if (BOOST_STATIC) - set (Boost_USE_STATIC_LIBS TRUE) - endif () - - if (NOT Boost_USE_STATIC_LIBS) - add_definitions (-DBOOST_TEST_DYN_LINK) - endif () - - set (Boost_FIND_REQUIRED TRUE) - set (Boost_FIND_QUIETLY TRUE) - set (Boost_DEBUG FALSE) - set (Boost_USE_MULTITHREADED TRUE) - set (Boost_ADDITIONAL_VERSIONS "1.39.0" "1.40.0" "1.41.0" "1.42.0" "1.43.0" "1.44.0" "1.46.1") # todo: someone who knows better spesify these! - - find_package (Boost 1.39.0 COMPONENTS "${WEBSOCKETPP_BOOST_LIBS}") - - if (Boost_FOUND) - # Boost is a project wide global dependency. - include_directories (${Boost_INCLUDE_DIRS}) - link_directories (${Boost_LIBRARY_DIRS}) - - # Pretty print status - message (STATUS "-- Include Directories") - foreach (include_dir ${Boost_INCLUDE_DIRS}) - message (STATUS " " ${include_dir}) - endforeach () - message (STATUS "-- Library Directories") - foreach (library_dir ${Boost_LIBRARY_DIRS}) - message (STATUS " " ${library_dir}) - endforeach () - message (STATUS "-- Libraries") - foreach (boost_lib ${Boost_LIBRARIES}) - message (STATUS " " ${boost_lib}) - endforeach () - message ("") - else () - message (FATAL_ERROR "Failed to find required dependency: boost") - endif () - - find_package(OpenSSL) - find_package(ZLIB) -endif() - -############ Add projects - -# Add main library -add_subdirectory (websocketpp) - -# Add examples -if (BUILD_EXAMPLES) - include_subdirs ("examples") -endif () - -# Add tests -if (BUILD_TESTS) - include_subdirs ("test") -endif () - -print_used_build_config() - -export (PACKAGE websocketpp) - -include(CMakePackageConfigHelpers) -configure_package_config_file(websocketpp-config.cmake.in - "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/websocketpp-config.cmake" - PATH_VARS INSTALL_INCLUDE_DIR - INSTALL_DESTINATION "${INSTALL_CMAKE_DIR}" - NO_CHECK_REQUIRED_COMPONENTS_MACRO -) -write_basic_package_version_file("${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/websocketpp-configVersion.cmake" - VERSION ${WEBSOCKETPP_VERSION} - COMPATIBILITY ExactVersion) - -# Install the websocketpp-config.cmake and websocketpp-configVersion.cmake -install (FILES - "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/websocketpp-config.cmake" - "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/websocketpp-configVersion.cmake" - DESTINATION "${INSTALL_CMAKE_DIR}" COMPONENT dev) - +init_target("websocketpp") +final_target () diff --git a/third_party/include/websocketpp/COPYING b/third_party/include/websocketpp/COPYING deleted file mode 100644 index f8cc5ba..0000000 --- a/third_party/include/websocketpp/COPYING +++ /dev/null @@ -1,145 +0,0 @@ -Main Library: - -Copyright (c) 2014, Peter Thorson. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the WebSocket++ Project nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL PETER THORSON BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -Bundled Libraries: - -****** Base 64 Library (base64/base64.hpp) ****** -base64.hpp is a repackaging of the base64.cpp and base64.h files into a -single header suitable for use as a header only library. This conversion was -done by Peter Thorson (webmaster@zaphoyd.com) in 2012. All modifications to -the code are redistributed under the same license as the original, which is -listed below. - -base64.cpp and base64.h - -Copyright (C) 2004-2008 René Nyffenegger - -This source code is provided 'as-is', without any express or implied -warranty. In no event will the author be held liable for any damages -arising from the use of this software. - -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: - -1. The origin of this source code must not be misrepresented; you must not - claim that you wrote the original source code. If you use this source code - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original source code. - -3. This notice may not be removed or altered from any source distribution. - -René Nyffenegger rene.nyffenegger@adp-gmbh.ch - -****** SHA1 Library (sha1/sha1.hpp) ****** -sha1.hpp is a repackaging of the sha1.cpp and sha1.h files from the shallsha1 -library (http://code.google.com/p/smallsha1/) into a single header suitable for -use as a header only library. This conversion was done by Peter Thorson -(webmaster@zaphoyd.com) in 2013. All modifications to the code are redistributed -under the same license as the original, which is listed below. - - Copyright (c) 2011, Micael Hildenborg - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of Micael Hildenborg nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY Micael Hildenborg ''AS IS'' AND ANY - EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL Micael Hildenborg BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -****** MD5 Library (common/md5.hpp) ****** -md5.hpp is a reformulation of the md5.h and md5.c code from -http://www.opensource.apple.com/source/cups/cups-59/cups/md5.c to allow it to -function as a component of a header only library. This conversion was done by -Peter Thorson (webmaster@zaphoyd.com) in 2012 for the WebSocket++ project. The -changes are released under the same license as the original (listed below) - -Copyright (C) 1999, 2002 Aladdin Enterprises. All rights reserved. - -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. - -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: - -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. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. - -L. Peter Deutsch -ghost@aladdin.com - -****** UTF8 Validation logic (utf8_validation.hpp) ****** -utf8_validation.hpp is adapted from code originally written by Bjoern Hoehrmann -. See http://bjoern.hoehrmann.de/utf-8/decoder/dfa/ for -details. - -The original license: - -Copyright (c) 2008-2009 Bjoern Hoehrmann - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/third_party/include/websocketpp/Doxyfile b/third_party/include/websocketpp/Doxyfile deleted file mode 100644 index 20b695c..0000000 --- a/third_party/include/websocketpp/Doxyfile +++ /dev/null @@ -1,2355 +0,0 @@ -# Doxyfile 1.8.8 - -# This file describes the settings to be used by the documentation system -# doxygen (www.doxygen.org) for a project. -# -# All text after a double hash (##) is considered a comment and is placed in -# front of the TAG it is preceding. -# -# All text after a single hash (#) is considered a comment and will be ignored. -# The format is: -# TAG = value [value, ...] -# For lists, items can also be appended using: -# TAG += value [value, ...] -# Values that contain spaces should be placed between quotes (\" \"). - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- - -# This tag specifies the encoding used for all characters in the config file -# that follow. The default is UTF-8 which is also the encoding used for all text -# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv -# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv -# for the list of possible encodings. -# The default value is: UTF-8. - -DOXYFILE_ENCODING = UTF-8 - -# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by -# double-quotes, unless you are using Doxywizard) that should identify the -# project for which the documentation is generated. This name is used in the -# title of most generated pages and in a few other places. -# The default value is: My Project. - -PROJECT_NAME = WebSocket++ - -# The PROJECT_NUMBER tag can be used to enter a project or revision number. This -# could be handy for archiving the generated documentation or if some version -# control system is used. - -PROJECT_NUMBER = 0.8.2 - -# Using the PROJECT_BRIEF tag one can provide an optional one line description -# for a project that appears at the top of each page and should give viewer a -# quick idea about the purpose of the project. Keep the description short. - -PROJECT_BRIEF = "C++ websocket client/server library" - -# With the PROJECT_LOGO tag one can specify an logo or icon that is included in -# the documentation. The maximum height of the logo should not exceed 55 pixels -# and the maximum width should not exceed 200 pixels. Doxygen will copy the logo -# to the output directory. - -PROJECT_LOGO = - -# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path -# into which the generated documentation will be written. If a relative path is -# entered, it will be relative to the location where doxygen was started. If -# left blank the current directory will be used. - -OUTPUT_DIRECTORY = doxygen - -# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub- -# directories (in 2 levels) under the output directory of each output format and -# will distribute the generated files over these directories. Enabling this -# option can be useful when feeding doxygen a huge amount of source files, where -# putting all generated files in the same directory would otherwise causes -# performance problems for the file system. -# The default value is: NO. - -CREATE_SUBDIRS = NO - -# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII -# characters to appear in the names of generated files. If set to NO, non-ASCII -# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode -# U+3044. -# The default value is: NO. - -ALLOW_UNICODE_NAMES = NO - -# The OUTPUT_LANGUAGE tag is used to specify the language in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all constant output in the proper language. -# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, -# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), -# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, -# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), -# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, -# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, -# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, -# Ukrainian and Vietnamese. -# The default value is: English. - -OUTPUT_LANGUAGE = English - -# If the BRIEF_MEMBER_DESC tag is set to YES doxygen will include brief member -# descriptions after the members that are listed in the file and class -# documentation (similar to Javadoc). Set to NO to disable this. -# The default value is: YES. - -BRIEF_MEMBER_DESC = YES - -# If the REPEAT_BRIEF tag is set to YES doxygen will prepend the brief -# description of a member or function before the detailed description -# -# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the -# brief descriptions will be completely suppressed. -# The default value is: YES. - -REPEAT_BRIEF = YES - -# This tag implements a quasi-intelligent brief description abbreviator that is -# used to form the text in various listings. Each string in this list, if found -# as the leading text of the brief description, will be stripped from the text -# and the result, after processing the whole list, is used as the annotated -# text. Otherwise, the brief description is used as-is. If left blank, the -# following values are used ($name is automatically replaced with the name of -# the entity):The $name class, The $name widget, The $name file, is, provides, -# specifies, contains, represents, a, an and the. - -ABBREVIATE_BRIEF = - -# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then -# doxygen will generate a detailed section even if there is only a brief -# description. -# The default value is: NO. - -ALWAYS_DETAILED_SEC = NO - -# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all -# inherited members of a class in the documentation of that class as if those -# members were ordinary class members. Constructors, destructors and assignment -# operators of the base classes will not be shown. -# The default value is: NO. - -INLINE_INHERITED_MEMB = NO - -# If the FULL_PATH_NAMES tag is set to YES doxygen will prepend the full path -# before files name in the file list and in the header files. If set to NO the -# shortest path that makes the file name unique will be used -# The default value is: YES. - -FULL_PATH_NAMES = YES - -# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. -# Stripping is only done if one of the specified strings matches the left-hand -# part of the path. The tag can be used to show relative paths in the file list. -# If left blank the directory from which doxygen is run is used as the path to -# strip. -# -# Note that you can specify absolute paths here, but also relative paths, which -# will be relative from the directory where doxygen is started. -# This tag requires that the tag FULL_PATH_NAMES is set to YES. - -STRIP_FROM_PATH = - -# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the -# path mentioned in the documentation of a class, which tells the reader which -# header file to include in order to use a class. If left blank only the name of -# the header file containing the class definition is used. Otherwise one should -# specify the list of include paths that are normally passed to the compiler -# using the -I flag. - -STRIP_FROM_INC_PATH = - -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but -# less readable) file names. This can be useful is your file systems doesn't -# support long names like on DOS, Mac, or CD-ROM. -# The default value is: NO. - -SHORT_NAMES = NO - -# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the -# first line (until the first dot) of a Javadoc-style comment as the brief -# description. If set to NO, the Javadoc-style will behave just like regular Qt- -# style comments (thus requiring an explicit @brief command for a brief -# description.) -# The default value is: NO. - -JAVADOC_AUTOBRIEF = NO - -# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first -# line (until the first dot) of a Qt-style comment as the brief description. If -# set to NO, the Qt-style will behave just like regular Qt-style comments (thus -# requiring an explicit \brief command for a brief description.) -# The default value is: NO. - -QT_AUTOBRIEF = NO - -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a -# multi-line C++ special comment block (i.e. a block of //! or /// comments) as -# a brief description. This used to be the default behavior. The new default is -# to treat a multi-line C++ comment block as a detailed description. Set this -# tag to YES if you prefer the old behavior instead. -# -# Note that setting this tag to YES also means that rational rose comments are -# not recognized any more. -# The default value is: NO. - -MULTILINE_CPP_IS_BRIEF = NO - -# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the -# documentation from any documented member that it re-implements. -# The default value is: YES. - -INHERIT_DOCS = YES - -# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce a -# new page for each member. If set to NO, the documentation of a member will be -# part of the file/class/namespace that contains it. -# The default value is: NO. - -SEPARATE_MEMBER_PAGES = NO - -# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen -# uses this value to replace tabs by spaces in code fragments. -# Minimum value: 1, maximum value: 16, default value: 4. - -TAB_SIZE = 4 - -# This tag can be used to specify a number of aliases that act as commands in -# the documentation. An alias has the form: -# name=value -# For example adding -# "sideeffect=@par Side Effects:\n" -# will allow you to put the command \sideeffect (or @sideeffect) in the -# documentation, which will result in a user-defined paragraph with heading -# "Side Effects:". You can put \n's in the value part of an alias to insert -# newlines. - -ALIASES = - -# This tag can be used to specify a number of word-keyword mappings (TCL only). -# A mapping has the form "name=value". For example adding "class=itcl::class" -# will allow you to use the command class in the itcl::class meaning. - -TCL_SUBST = - -# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources -# only. Doxygen will then generate output that is more tailored for C. For -# instance, some of the names that are used will be different. The list of all -# members will be omitted, etc. -# The default value is: NO. - -OPTIMIZE_OUTPUT_FOR_C = NO - -# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or -# Python sources only. Doxygen will then generate output that is more tailored -# for that language. For instance, namespaces will be presented as packages, -# qualified scopes will look different, etc. -# The default value is: NO. - -OPTIMIZE_OUTPUT_JAVA = NO - -# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran -# sources. Doxygen will then generate output that is tailored for Fortran. -# The default value is: NO. - -OPTIMIZE_FOR_FORTRAN = NO - -# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL -# sources. Doxygen will then generate output that is tailored for VHDL. -# The default value is: NO. - -OPTIMIZE_OUTPUT_VHDL = NO - -# Doxygen selects the parser to use depending on the extension of the files it -# parses. With this tag you can assign which parser to use for a given -# extension. Doxygen has a built-in mapping, but you can override or extend it -# using this tag. The format is ext=language, where ext is a file extension, and -# language is one of the parsers supported by doxygen: IDL, Java, Javascript, -# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran: -# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran: -# Fortran. In the later case the parser tries to guess whether the code is fixed -# or free formatted code, this is the default for Fortran type files), VHDL. For -# instance to make doxygen treat .inc files as Fortran files (default is PHP), -# and .f files as C (default is Fortran), use: inc=Fortran f=C. -# -# Note For files without extension you can use no_extension as a placeholder. -# -# Note that for custom extensions you also need to set FILE_PATTERNS otherwise -# the files are not read by doxygen. - -EXTENSION_MAPPING = - -# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments -# according to the Markdown format, which allows for more readable -# documentation. See http://daringfireball.net/projects/markdown/ for details. -# The output of markdown processing is further processed by doxygen, so you can -# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in -# case of backward compatibilities issues. -# The default value is: YES. - -MARKDOWN_SUPPORT = YES - -# When enabled doxygen tries to link words that correspond to documented -# classes, or namespaces to their corresponding documentation. Such a link can -# be prevented in individual cases by by putting a % sign in front of the word -# or globally by setting AUTOLINK_SUPPORT to NO. -# The default value is: YES. - -AUTOLINK_SUPPORT = YES - -# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want -# to include (a tag file for) the STL sources as input, then you should set this -# tag to YES in order to let doxygen match functions declarations and -# definitions whose arguments contain STL classes (e.g. func(std::string); -# versus func(std::string) {}). This also make the inheritance and collaboration -# diagrams that involve STL classes more complete and accurate. -# The default value is: NO. - -BUILTIN_STL_SUPPORT = YES - -# If you use Microsoft's C++/CLI language, you should set this option to YES to -# enable parsing support. -# The default value is: NO. - -CPP_CLI_SUPPORT = NO - -# Set the SIP_SUPPORT tag to YES if your project consists of sip (see: -# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen -# will parse them like normal C++ but will assume all classes use public instead -# of private inheritance when no explicit protection keyword is present. -# The default value is: NO. - -SIP_SUPPORT = NO - -# For Microsoft's IDL there are propget and propput attributes to indicate -# getter and setter methods for a property. Setting this option to YES will make -# doxygen to replace the get and set methods by a property in the documentation. -# This will only work if the methods are indeed getting or setting a simple -# type. If this is not the case, or you want to show the methods anyway, you -# should set this option to NO. -# The default value is: YES. - -IDL_PROPERTY_SUPPORT = YES - -# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES, then doxygen will reuse the documentation of the first -# member in the group (if any) for the other members of the group. By default -# all members of a group must be documented explicitly. -# The default value is: NO. - -DISTRIBUTE_GROUP_DOC = NO - -# Set the SUBGROUPING tag to YES to allow class member groups of the same type -# (for instance a group of public functions) to be put as a subgroup of that -# type (e.g. under the Public Functions section). Set it to NO to prevent -# subgrouping. Alternatively, this can be done per class using the -# \nosubgrouping command. -# The default value is: YES. - -SUBGROUPING = YES - -# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions -# are shown inside the group in which they are included (e.g. using \ingroup) -# instead of on a separate page (for HTML and Man pages) or section (for LaTeX -# and RTF). -# -# Note that this feature does not work in combination with -# SEPARATE_MEMBER_PAGES. -# The default value is: NO. - -INLINE_GROUPED_CLASSES = NO - -# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions -# with only public data fields or simple typedef fields will be shown inline in -# the documentation of the scope in which they are defined (i.e. file, -# namespace, or group documentation), provided this scope is documented. If set -# to NO, structs, classes, and unions are shown on a separate page (for HTML and -# Man pages) or section (for LaTeX and RTF). -# The default value is: NO. - -INLINE_SIMPLE_STRUCTS = NO - -# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or -# enum is documented as struct, union, or enum with the name of the typedef. So -# typedef struct TypeS {} TypeT, will appear in the documentation as a struct -# with name TypeT. When disabled the typedef will appear as a member of a file, -# namespace, or class. And the struct will be named TypeS. This can typically be -# useful for C code in case the coding convention dictates that all compound -# types are typedef'ed and only the typedef is referenced, never the tag name. -# The default value is: NO. - -TYPEDEF_HIDES_STRUCT = NO - -# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This -# cache is used to resolve symbols given their name and scope. Since this can be -# an expensive process and often the same symbol appears multiple times in the -# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small -# doxygen will become slower. If the cache is too large, memory is wasted. The -# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range -# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 -# symbols. At the end of a run doxygen will report the cache usage and suggest -# the optimal cache size from a speed point of view. -# Minimum value: 0, maximum value: 9, default value: 0. - -LOOKUP_CACHE_SIZE = 0 - -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- - -# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in -# documentation are documented, even if no documentation was available. Private -# class members and static file members will be hidden unless the -# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. -# Note: This will also disable the warnings about undocumented members that are -# normally produced when WARNINGS is set to YES. -# The default value is: NO. - -EXTRACT_ALL = NO - -# If the EXTRACT_PRIVATE tag is set to YES all private members of a class will -# be included in the documentation. -# The default value is: NO. - -EXTRACT_PRIVATE = NO - -# If the EXTRACT_PACKAGE tag is set to YES all members with package or internal -# scope will be included in the documentation. -# The default value is: NO. - -EXTRACT_PACKAGE = NO - -# If the EXTRACT_STATIC tag is set to YES all static members of a file will be -# included in the documentation. -# The default value is: NO. - -EXTRACT_STATIC = YES - -# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined -# locally in source files will be included in the documentation. If set to NO -# only classes defined in header files are included. Does not have any effect -# for Java sources. -# The default value is: YES. - -EXTRACT_LOCAL_CLASSES = YES - -# This flag is only useful for Objective-C code. When set to YES local methods, -# which are defined in the implementation section but not in the interface are -# included in the documentation. If set to NO only methods in the interface are -# included. -# The default value is: NO. - -EXTRACT_LOCAL_METHODS = NO - -# If this flag is set to YES, the members of anonymous namespaces will be -# extracted and appear in the documentation as a namespace called -# 'anonymous_namespace{file}', where file will be replaced with the base name of -# the file that contains the anonymous namespace. By default anonymous namespace -# are hidden. -# The default value is: NO. - -EXTRACT_ANON_NSPACES = NO - -# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all -# undocumented members inside documented classes or files. If set to NO these -# members will be included in the various overviews, but no documentation -# section is generated. This option has no effect if EXTRACT_ALL is enabled. -# The default value is: NO. - -HIDE_UNDOC_MEMBERS = NO - -# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all -# undocumented classes that are normally visible in the class hierarchy. If set -# to NO these classes will be included in the various overviews. This option has -# no effect if EXTRACT_ALL is enabled. -# The default value is: NO. - -HIDE_UNDOC_CLASSES = NO - -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend -# (class|struct|union) declarations. If set to NO these declarations will be -# included in the documentation. -# The default value is: NO. - -HIDE_FRIEND_COMPOUNDS = NO - -# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any -# documentation blocks found inside the body of a function. If set to NO these -# blocks will be appended to the function's detailed documentation block. -# The default value is: NO. - -HIDE_IN_BODY_DOCS = NO - -# The INTERNAL_DOCS tag determines if documentation that is typed after a -# \internal command is included. If the tag is set to NO then the documentation -# will be excluded. Set it to YES to include the internal documentation. -# The default value is: NO. - -INTERNAL_DOCS = NO - -# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file -# names in lower-case letters. If set to YES upper-case letters are also -# allowed. This is useful if you have classes or files whose names only differ -# in case and if your file system supports case sensitive file names. Windows -# and Mac users are advised to set this option to NO. -# The default value is: system dependent. - -CASE_SENSE_NAMES = NO - -# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with -# their full class and namespace scopes in the documentation. If set to YES the -# scope will be hidden. -# The default value is: NO. - -HIDE_SCOPE_NAMES = NO - -# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of -# the files that are included by a file in the documentation of that file. -# The default value is: YES. - -SHOW_INCLUDE_FILES = YES - -# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each -# grouped member an include statement to the documentation, telling the reader -# which file to include in order to use the member. -# The default value is: NO. - -SHOW_GROUPED_MEMB_INC = NO - -# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include -# files with double quotes in the documentation rather than with sharp brackets. -# The default value is: NO. - -FORCE_LOCAL_INCLUDES = NO - -# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the -# documentation for inline members. -# The default value is: YES. - -INLINE_INFO = YES - -# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the -# (detailed) documentation of file and class members alphabetically by member -# name. If set to NO the members will appear in declaration order. -# The default value is: YES. - -SORT_MEMBER_DOCS = YES - -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief -# descriptions of file, namespace and class members alphabetically by member -# name. If set to NO the members will appear in declaration order. Note that -# this will also influence the order of the classes in the class list. -# The default value is: NO. - -SORT_BRIEF_DOCS = NO - -# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the -# (brief and detailed) documentation of class members so that constructors and -# destructors are listed first. If set to NO the constructors will appear in the -# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. -# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief -# member documentation. -# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting -# detailed member documentation. -# The default value is: NO. - -SORT_MEMBERS_CTORS_1ST = NO - -# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy -# of group names into alphabetical order. If set to NO the group names will -# appear in their defined order. -# The default value is: NO. - -SORT_GROUP_NAMES = NO - -# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by -# fully-qualified names, including namespaces. If set to NO, the class list will -# be sorted only by class name, not including the namespace part. -# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. -# Note: This option applies only to the class list, not to the alphabetical -# list. -# The default value is: NO. - -SORT_BY_SCOPE_NAME = NO - -# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper -# type resolution of all parameters of a function it will reject a match between -# the prototype and the implementation of a member function even if there is -# only one candidate or it is obvious which candidate to choose by doing a -# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still -# accept a match between prototype and implementation in such cases. -# The default value is: NO. - -STRICT_PROTO_MATCHING = NO - -# The GENERATE_TODOLIST tag can be used to enable ( YES) or disable ( NO) the -# todo list. This list is created by putting \todo commands in the -# documentation. -# The default value is: YES. - -GENERATE_TODOLIST = YES - -# The GENERATE_TESTLIST tag can be used to enable ( YES) or disable ( NO) the -# test list. This list is created by putting \test commands in the -# documentation. -# The default value is: YES. - -GENERATE_TESTLIST = YES - -# The GENERATE_BUGLIST tag can be used to enable ( YES) or disable ( NO) the bug -# list. This list is created by putting \bug commands in the documentation. -# The default value is: YES. - -GENERATE_BUGLIST = YES - -# The GENERATE_DEPRECATEDLIST tag can be used to enable ( YES) or disable ( NO) -# the deprecated list. This list is created by putting \deprecated commands in -# the documentation. -# The default value is: YES. - -GENERATE_DEPRECATEDLIST= YES - -# The ENABLED_SECTIONS tag can be used to enable conditional documentation -# sections, marked by \if ... \endif and \cond -# ... \endcond blocks. - -ENABLED_SECTIONS = - -# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the -# initial value of a variable or macro / define can have for it to appear in the -# documentation. If the initializer consists of more lines than specified here -# it will be hidden. Use a value of 0 to hide initializers completely. The -# appearance of the value of individual variables and macros / defines can be -# controlled using \showinitializer or \hideinitializer command in the -# documentation regardless of this setting. -# Minimum value: 0, maximum value: 10000, default value: 30. - -MAX_INITIALIZER_LINES = 30 - -# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at -# the bottom of the documentation of classes and structs. If set to YES the list -# will mention the files that were used to generate the documentation. -# The default value is: YES. - -SHOW_USED_FILES = YES - -# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This -# will remove the Files entry from the Quick Index and from the Folder Tree View -# (if specified). -# The default value is: YES. - -SHOW_FILES = YES - -# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces -# page. This will remove the Namespaces entry from the Quick Index and from the -# Folder Tree View (if specified). -# The default value is: YES. - -SHOW_NAMESPACES = YES - -# The FILE_VERSION_FILTER tag can be used to specify a program or script that -# doxygen should invoke to get the current version for each file (typically from -# the version control system). Doxygen will invoke the program by executing (via -# popen()) the command command input-file, where command is the value of the -# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided -# by doxygen. Whatever the program writes to standard output is used as the file -# version. For an example see the documentation. - -FILE_VERSION_FILTER = - -# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed -# by doxygen. The layout file controls the global structure of the generated -# output files in an output format independent way. To create the layout file -# that represents doxygen's defaults, run doxygen with the -l option. You can -# optionally specify a file name after the option, if omitted DoxygenLayout.xml -# will be used as the name of the layout file. -# -# Note that if you run doxygen from a directory containing a file called -# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE -# tag is left empty. - -LAYOUT_FILE = - -# The CITE_BIB_FILES tag can be used to specify one or more bib files containing -# the reference definitions. This must be a list of .bib files. The .bib -# extension is automatically appended if omitted. This requires the bibtex tool -# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info. -# For LaTeX the style of the bibliography can be controlled using -# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the -# search path. See also \cite for info how to create references. - -CITE_BIB_FILES = - -#--------------------------------------------------------------------------- -# Configuration options related to warning and progress messages -#--------------------------------------------------------------------------- - -# The QUIET tag can be used to turn on/off the messages that are generated to -# standard output by doxygen. If QUIET is set to YES this implies that the -# messages are off. -# The default value is: NO. - -QUIET = NO - -# The WARNINGS tag can be used to turn on/off the warning messages that are -# generated to standard error ( stderr) by doxygen. If WARNINGS is set to YES -# this implies that the warnings are on. -# -# Tip: Turn warnings on while writing the documentation. -# The default value is: YES. - -WARNINGS = YES - -# If the WARN_IF_UNDOCUMENTED tag is set to YES, then doxygen will generate -# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag -# will automatically be disabled. -# The default value is: YES. - -WARN_IF_UNDOCUMENTED = YES - -# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for -# potential errors in the documentation, such as not documenting some parameters -# in a documented function, or documenting parameters that don't exist or using -# markup commands wrongly. -# The default value is: YES. - -WARN_IF_DOC_ERROR = YES - -# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that -# are documented, but have no documentation for their parameters or return -# value. If set to NO doxygen will only warn about wrong or incomplete parameter -# documentation, but not about the absence of documentation. -# The default value is: NO. - -WARN_NO_PARAMDOC = NO - -# The WARN_FORMAT tag determines the format of the warning messages that doxygen -# can produce. The string should contain the $file, $line, and $text tags, which -# will be replaced by the file and line number from which the warning originated -# and the warning text. Optionally the format may contain $version, which will -# be replaced by the version of the file (if it could be obtained via -# FILE_VERSION_FILTER) -# The default value is: $file:$line: $text. - -WARN_FORMAT = "$file:$line: $text" - -# The WARN_LOGFILE tag can be used to specify a file to which warning and error -# messages should be written. If left blank the output is written to standard -# error (stderr). - -WARN_LOGFILE = - -#--------------------------------------------------------------------------- -# Configuration options related to the input files -#--------------------------------------------------------------------------- - -# The INPUT tag is used to specify the files and/or directories that contain -# documented source files. You may enter file names like myfile.cpp or -# directories like /usr/src/myproject. Separate the files or directories with -# spaces. -# Note: If this tag is empty the current directory is searched. - -INPUT = readme.md \ - changelog.md \ - roadmap.md \ - websocketpp \ - tutorials \ - docs - -# This tag can be used to specify the character encoding of the source files -# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses -# libiconv (or the iconv built into libc) for the transcoding. See the libiconv -# documentation (see: http://www.gnu.org/software/libiconv) for the list of -# possible encodings. -# The default value is: UTF-8. - -INPUT_ENCODING = UTF-8 - -# If the value of the INPUT tag contains directories, you can use the -# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and -# *.h) to filter out the source-files in the directories. If left blank the -# following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii, -# *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp, -# *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown, -# *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf, -# *.qsf, *.as and *.js. - -FILE_PATTERNS = - -# The RECURSIVE tag can be used to specify whether or not subdirectories should -# be searched for input files as well. -# The default value is: NO. - -RECURSIVE = YES - -# The EXCLUDE tag can be used to specify files and/or directories that should be -# excluded from the INPUT source files. This way you can easily exclude a -# subdirectory from a directory tree whose root is specified with the INPUT tag. -# -# Note that relative paths are relative to the directory from which doxygen is -# run. - -EXCLUDE = build - -# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or -# directories that are symbolic links (a Unix file system feature) are excluded -# from the input. -# The default value is: NO. - -EXCLUDE_SYMLINKS = NO - -# If the value of the INPUT tag contains directories, you can use the -# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude -# certain files from those directories. -# -# Note that the wildcards are matched against the file with absolute path, so to -# exclude all test directories for example use the pattern */test/* - -EXCLUDE_PATTERNS = - -# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names -# (namespaces, classes, functions, etc.) that should be excluded from the -# output. The symbol name can be a fully qualified name, a word, or if the -# wildcard * is used, a substring. Examples: ANamespace, AClass, -# AClass::ANamespace, ANamespace::*Test -# -# Note that the wildcards are matched against the file with absolute path, so to -# exclude all test directories use the pattern */test/* - -EXCLUDE_SYMBOLS = - -# The EXAMPLE_PATH tag can be used to specify one or more files or directories -# that contain example code fragments that are included (see the \include -# command). - -EXAMPLE_PATH = - -# If the value of the EXAMPLE_PATH tag contains directories, you can use the -# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and -# *.h) to filter out the source-files in the directories. If left blank all -# files are included. - -EXAMPLE_PATTERNS = - -# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be -# searched for input files to be used with the \include or \dontinclude commands -# irrespective of the value of the RECURSIVE tag. -# The default value is: NO. - -EXAMPLE_RECURSIVE = NO - -# The IMAGE_PATH tag can be used to specify one or more files or directories -# that contain images that are to be included in the documentation (see the -# \image command). - -IMAGE_PATH = - -# The INPUT_FILTER tag can be used to specify a program that doxygen should -# invoke to filter for each input file. Doxygen will invoke the filter program -# by executing (via popen()) the command: -# -# -# -# where is the value of the INPUT_FILTER tag, and is the -# name of an input file. Doxygen will then use the output that the filter -# program writes to standard output. If FILTER_PATTERNS is specified, this tag -# will be ignored. -# -# Note that the filter must not add or remove lines; it is applied before the -# code is scanned, but not when the output code is generated. If lines are added -# or removed, the anchors will not be placed correctly. - -INPUT_FILTER = - -# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern -# basis. Doxygen will compare the file name with each pattern and apply the -# filter if there is a match. The filters are a list of the form: pattern=filter -# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how -# filters are used. If the FILTER_PATTERNS tag is empty or if none of the -# patterns match the file name, INPUT_FILTER is applied. - -FILTER_PATTERNS = - -# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using -# INPUT_FILTER ) will also be used to filter the input files that are used for -# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). -# The default value is: NO. - -FILTER_SOURCE_FILES = NO - -# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file -# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and -# it is also possible to disable source filtering for a specific pattern using -# *.ext= (so without naming a filter). -# This tag requires that the tag FILTER_SOURCE_FILES is set to YES. - -FILTER_SOURCE_PATTERNS = - -# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that -# is part of the input, its contents will be placed on the main page -# (index.html). This can be useful if you have a project on for instance GitHub -# and want to reuse the introduction page also for the doxygen output. - -USE_MDFILE_AS_MAINPAGE = - -#--------------------------------------------------------------------------- -# Configuration options related to source browsing -#--------------------------------------------------------------------------- - -# If the SOURCE_BROWSER tag is set to YES then a list of source files will be -# generated. Documented entities will be cross-referenced with these sources. -# -# Note: To get rid of all source code in the generated output, make sure that -# also VERBATIM_HEADERS is set to NO. -# The default value is: NO. - -SOURCE_BROWSER = YES - -# Setting the INLINE_SOURCES tag to YES will include the body of functions, -# classes and enums directly into the documentation. -# The default value is: NO. - -INLINE_SOURCES = NO - -# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any -# special comment blocks from generated source code fragments. Normal C, C++ and -# Fortran comments will always remain visible. -# The default value is: YES. - -STRIP_CODE_COMMENTS = YES - -# If the REFERENCED_BY_RELATION tag is set to YES then for each documented -# function all documented functions referencing it will be listed. -# The default value is: NO. - -REFERENCED_BY_RELATION = NO - -# If the REFERENCES_RELATION tag is set to YES then for each documented function -# all documented entities called/used by that function will be listed. -# The default value is: NO. - -REFERENCES_RELATION = NO - -# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set -# to YES, then the hyperlinks from functions in REFERENCES_RELATION and -# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will -# link to the documentation. -# The default value is: YES. - -REFERENCES_LINK_SOURCE = YES - -# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the -# source code will show a tooltip with additional information such as prototype, -# brief description and links to the definition and documentation. Since this -# will make the HTML file larger and loading of large files a bit slower, you -# can opt to disable this feature. -# The default value is: YES. -# This tag requires that the tag SOURCE_BROWSER is set to YES. - -SOURCE_TOOLTIPS = YES - -# If the USE_HTAGS tag is set to YES then the references to source code will -# point to the HTML generated by the htags(1) tool instead of doxygen built-in -# source browser. The htags tool is part of GNU's global source tagging system -# (see http://www.gnu.org/software/global/global.html). You will need version -# 4.8.6 or higher. -# -# To use it do the following: -# - Install the latest version of global -# - Enable SOURCE_BROWSER and USE_HTAGS in the config file -# - Make sure the INPUT points to the root of the source tree -# - Run doxygen as normal -# -# Doxygen will invoke htags (and that will in turn invoke gtags), so these -# tools must be available from the command line (i.e. in the search path). -# -# The result: instead of the source browser generated by doxygen, the links to -# source code will now point to the output of htags. -# The default value is: NO. -# This tag requires that the tag SOURCE_BROWSER is set to YES. - -USE_HTAGS = NO - -# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a -# verbatim copy of the header file for each class for which an include is -# specified. Set to NO to disable this. -# See also: Section \class. -# The default value is: YES. - -VERBATIM_HEADERS = YES - -# If the CLANG_ASSISTED_PARSING tag is set to YES, then doxygen will use the -# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the -# cost of reduced performance. This can be particularly helpful with template -# rich C++ code for which doxygen's built-in parser lacks the necessary type -# information. -# Note: The availability of this option depends on whether or not doxygen was -# compiled with the --with-libclang option. -# The default value is: NO. - -CLANG_ASSISTED_PARSING = YES - -# If clang assisted parsing is enabled you can provide the compiler with command -# line options that you would normally use when invoking the compiler. Note that -# the include paths will already be set by doxygen for the files and directories -# specified with INPUT and INCLUDE_PATH. -# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. - -CLANG_OPTIONS = - -#--------------------------------------------------------------------------- -# Configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- - -# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all -# compounds will be generated. Enable this if the project contains a lot of -# classes, structs, unions or interfaces. -# The default value is: YES. - -ALPHABETICAL_INDEX = YES - -# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in -# which the alphabetical index list will be split. -# Minimum value: 1, maximum value: 20, default value: 5. -# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. - -COLS_IN_ALPHA_INDEX = 5 - -# In case all classes in a project start with a common prefix, all classes will -# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag -# can be used to specify a prefix (or a list of prefixes) that should be ignored -# while generating the index headers. -# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. - -IGNORE_PREFIX = - -#--------------------------------------------------------------------------- -# Configuration options related to the HTML output -#--------------------------------------------------------------------------- - -# If the GENERATE_HTML tag is set to YES doxygen will generate HTML output -# The default value is: YES. - -GENERATE_HTML = YES - -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a -# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of -# it. -# The default directory is: html. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_OUTPUT = html - -# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each -# generated HTML page (for example: .htm, .php, .asp). -# The default value is: .html. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_FILE_EXTENSION = .html - -# The HTML_HEADER tag can be used to specify a user-defined HTML header file for -# each generated HTML page. If the tag is left blank doxygen will generate a -# standard header. -# -# To get valid HTML the header file that includes any scripts and style sheets -# that doxygen needs, which is dependent on the configuration options used (e.g. -# the setting GENERATE_TREEVIEW). It is highly recommended to start with a -# default header using -# doxygen -w html new_header.html new_footer.html new_stylesheet.css -# YourConfigFile -# and then modify the file new_header.html. See also section "Doxygen usage" -# for information on how to generate the default header that doxygen normally -# uses. -# Note: The header is subject to change so you typically have to regenerate the -# default header when upgrading to a newer version of doxygen. For a description -# of the possible markers and block names see the documentation. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_HEADER = - -# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each -# generated HTML page. If the tag is left blank doxygen will generate a standard -# footer. See HTML_HEADER for more information on how to generate a default -# footer and what special commands can be used inside the footer. See also -# section "Doxygen usage" for information on how to generate the default footer -# that doxygen normally uses. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_FOOTER = - -# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style -# sheet that is used by each HTML page. It can be used to fine-tune the look of -# the HTML output. If left blank doxygen will generate a default style sheet. -# See also section "Doxygen usage" for information on how to generate the style -# sheet that doxygen normally uses. -# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as -# it is more robust and this tag (HTML_STYLESHEET) will in the future become -# obsolete. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_STYLESHEET = - -# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined -# cascading style sheets that are included after the standard style sheets -# created by doxygen. Using this option one can overrule certain style aspects. -# This is preferred over using HTML_STYLESHEET since it does not replace the -# standard style sheet and is therefor more robust against future updates. -# Doxygen will copy the style sheet files to the output directory. -# Note: The order of the extra stylesheet files is of importance (e.g. the last -# stylesheet in the list overrules the setting of the previous ones in the -# list). For an example see the documentation. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_EXTRA_STYLESHEET = docs/manual.css - -# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or -# other source files which should be copied to the HTML output directory. Note -# that these files will be copied to the base HTML output directory. Use the -# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these -# files. In the HTML_STYLESHEET file, use the file name only. Also note that the -# files will be copied as-is; there are no commands or markers available. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_EXTRA_FILES = - -# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen -# will adjust the colors in the stylesheet and background images according to -# this color. Hue is specified as an angle on a colorwheel, see -# http://en.wikipedia.org/wiki/Hue for more information. For instance the value -# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 -# purple, and 360 is red again. -# Minimum value: 0, maximum value: 359, default value: 220. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_HUE = 236 - -# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors -# in the HTML output. For a value of 0 the output will use grayscales only. A -# value of 255 will produce the most vivid colors. -# Minimum value: 0, maximum value: 255, default value: 100. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_SAT = 0 - -# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the -# luminance component of the colors in the HTML output. Values below 100 -# gradually make the output lighter, whereas values above 100 make the output -# darker. The value divided by 100 is the actual gamma applied, so 80 represents -# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not -# change the gamma. -# Minimum value: 40, maximum value: 240, default value: 80. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_GAMMA = 148 - -# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML -# page will contain the date and time when the page was generated. Setting this -# to NO can help when comparing the output of multiple runs. -# The default value is: YES. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_TIMESTAMP = NO - -# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML -# documentation will contain sections that can be hidden and shown after the -# page has loaded. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_DYNAMIC_SECTIONS = NO - -# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries -# shown in the various tree structured indices initially; the user can expand -# and collapse entries dynamically later on. Doxygen will expand the tree to -# such a level that at most the specified number of entries are visible (unless -# a fully collapsed tree already exceeds this amount). So setting the number of -# entries 1 will produce a full collapsed tree by default. 0 is a special value -# representing an infinite number of entries and will result in a full expanded -# tree by default. -# Minimum value: 0, maximum value: 9999, default value: 100. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_INDEX_NUM_ENTRIES = 100 - -# If the GENERATE_DOCSET tag is set to YES, additional index files will be -# generated that can be used as input for Apple's Xcode 3 integrated development -# environment (see: http://developer.apple.com/tools/xcode/), introduced with -# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a -# Makefile in the HTML output directory. Running make will produce the docset in -# that directory and running make install will install the docset in -# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at -# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html -# for more information. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_DOCSET = NO - -# This tag determines the name of the docset feed. A documentation feed provides -# an umbrella under which multiple documentation sets from a single provider -# (such as a company or product suite) can be grouped. -# The default value is: Doxygen generated docs. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_FEEDNAME = "Doxygen generated docs" - -# This tag specifies a string that should uniquely identify the documentation -# set bundle. This should be a reverse domain-name style string, e.g. -# com.mycompany.MyDocSet. Doxygen will append .docset to the name. -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_BUNDLE_ID = org.doxygen.Project - -# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify -# the documentation publisher. This should be a reverse domain-name style -# string, e.g. com.mycompany.MyDocSet.documentation. -# The default value is: org.doxygen.Publisher. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_PUBLISHER_ID = org.doxygen.Publisher - -# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. -# The default value is: Publisher. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_PUBLISHER_NAME = Publisher - -# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three -# additional HTML index files: index.hhp, index.hhc, and index.hhk. The -# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop -# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on -# Windows. -# -# The HTML Help Workshop contains a compiler that can convert all HTML output -# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML -# files are now used as the Windows 98 help format, and will replace the old -# Windows help format (.hlp) on all Windows platforms in the future. Compressed -# HTML files also contain an index, a table of contents, and you can search for -# words in the documentation. The HTML workshop also contains a viewer for -# compressed HTML files. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_HTMLHELP = NO - -# The CHM_FILE tag can be used to specify the file name of the resulting .chm -# file. You can add a path in front of the file if the result should not be -# written to the html output directory. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -CHM_FILE = - -# The HHC_LOCATION tag can be used to specify the location (absolute path -# including file name) of the HTML help compiler ( hhc.exe). If non-empty -# doxygen will try to run the HTML help compiler on the generated index.hhp. -# The file has to be specified with full path. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -HHC_LOCATION = - -# The GENERATE_CHI flag controls if a separate .chi index file is generated ( -# YES) or that it should be included in the master .chm file ( NO). -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -GENERATE_CHI = NO - -# The CHM_INDEX_ENCODING is used to encode HtmlHelp index ( hhk), content ( hhc) -# and project file content. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -CHM_INDEX_ENCODING = - -# The BINARY_TOC flag controls whether a binary table of contents is generated ( -# YES) or a normal table of contents ( NO) in the .chm file. Furthermore it -# enables the Previous and Next buttons. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -BINARY_TOC = NO - -# The TOC_EXPAND flag can be set to YES to add extra items for group members to -# the table of contents of the HTML help documentation and to the tree view. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -TOC_EXPAND = NO - -# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and -# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that -# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help -# (.qch) of the generated HTML documentation. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_QHP = NO - -# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify -# the file name of the resulting .qch file. The path specified is relative to -# the HTML output folder. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QCH_FILE = - -# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help -# Project output. For more information please see Qt Help Project / Namespace -# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace). -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_NAMESPACE = org.doxygen.Project - -# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt -# Help Project output. For more information please see Qt Help Project / Virtual -# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual- -# folders). -# The default value is: doc. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_VIRTUAL_FOLDER = doc - -# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom -# filter to add. For more information please see Qt Help Project / Custom -# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- -# filters). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_CUST_FILTER_NAME = - -# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the -# custom filter to add. For more information please see Qt Help Project / Custom -# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- -# filters). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_CUST_FILTER_ATTRS = - -# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this -# project's filter section matches. Qt Help Project / Filter Attributes (see: -# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_SECT_FILTER_ATTRS = - -# The QHG_LOCATION tag can be used to specify the location of Qt's -# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the -# generated .qhp file. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHG_LOCATION = - -# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be -# generated, together with the HTML files, they form an Eclipse help plugin. To -# install this plugin and make it available under the help contents menu in -# Eclipse, the contents of the directory containing the HTML and XML files needs -# to be copied into the plugins directory of eclipse. The name of the directory -# within the plugins directory should be the same as the ECLIPSE_DOC_ID value. -# After copying Eclipse needs to be restarted before the help appears. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_ECLIPSEHELP = NO - -# A unique identifier for the Eclipse help plugin. When installing the plugin -# the directory name containing the HTML and XML files should also have this -# name. Each documentation set should have its own identifier. -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. - -ECLIPSE_DOC_ID = org.doxygen.Project - -# If you want full control over the layout of the generated HTML pages it might -# be necessary to disable the index and replace it with your own. The -# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top -# of each HTML page. A value of NO enables the index and the value YES disables -# it. Since the tabs in the index contain the same information as the navigation -# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -DISABLE_INDEX = NO - -# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index -# structure should be generated to display hierarchical information. If the tag -# value is set to YES, a side panel will be generated containing a tree-like -# index structure (just like the one that is generated for HTML Help). For this -# to work a browser that supports JavaScript, DHTML, CSS and frames is required -# (i.e. any modern browser). Windows users are probably better off using the -# HTML help feature. Via custom stylesheets (see HTML_EXTRA_STYLESHEET) one can -# further fine-tune the look of the index. As an example, the default style -# sheet generated by doxygen has an example that shows how to put an image at -# the root of the tree instead of the PROJECT_NAME. Since the tree basically has -# the same information as the tab index, you could consider setting -# DISABLE_INDEX to YES when enabling this option. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_TREEVIEW = NO - -# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that -# doxygen will group on one line in the generated HTML documentation. -# -# Note that a value of 0 will completely suppress the enum values from appearing -# in the overview section. -# Minimum value: 0, maximum value: 20, default value: 4. -# This tag requires that the tag GENERATE_HTML is set to YES. - -ENUM_VALUES_PER_LINE = 4 - -# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used -# to set the initial width (in pixels) of the frame in which the tree is shown. -# Minimum value: 0, maximum value: 1500, default value: 250. -# This tag requires that the tag GENERATE_HTML is set to YES. - -TREEVIEW_WIDTH = 250 - -# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open links to -# external symbols imported via tag files in a separate window. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -EXT_LINKS_IN_WINDOW = NO - -# Use this tag to change the font size of LaTeX formulas included as images in -# the HTML documentation. When you change the font size after a successful -# doxygen run you need to manually remove any form_*.png images from the HTML -# output directory to force them to be regenerated. -# Minimum value: 8, maximum value: 50, default value: 10. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FORMULA_FONTSIZE = 10 - -# Use the FORMULA_TRANPARENT tag to determine whether or not the images -# generated for formulas are transparent PNGs. Transparent PNGs are not -# supported properly for IE 6.0, but are supported on all modern browsers. -# -# Note that when changing this option you need to delete any form_*.png files in -# the HTML output directory before the changes have effect. -# The default value is: YES. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FORMULA_TRANSPARENT = YES - -# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see -# http://www.mathjax.org) which uses client side Javascript for the rendering -# instead of using prerendered bitmaps. Use this if you do not have LaTeX -# installed or if you want to formulas look prettier in the HTML output. When -# enabled you may also need to install MathJax separately and configure the path -# to it using the MATHJAX_RELPATH option. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -USE_MATHJAX = NO - -# When MathJax is enabled you can set the default output format to be used for -# the MathJax output. See the MathJax site (see: -# http://docs.mathjax.org/en/latest/output.html) for more details. -# Possible values are: HTML-CSS (which is slower, but has the best -# compatibility), NativeMML (i.e. MathML) and SVG. -# The default value is: HTML-CSS. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_FORMAT = HTML-CSS - -# When MathJax is enabled you need to specify the location relative to the HTML -# output directory using the MATHJAX_RELPATH option. The destination directory -# should contain the MathJax.js script. For instance, if the mathjax directory -# is located at the same level as the HTML output directory, then -# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax -# Content Delivery Network so you can quickly see the result without installing -# MathJax. However, it is strongly recommended to install a local copy of -# MathJax from http://www.mathjax.org before deployment. -# The default value is: http://cdn.mathjax.org/mathjax/latest. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest - -# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax -# extension names that should be enabled during MathJax rendering. For example -# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_EXTENSIONS = - -# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces -# of code that will be used on startup of the MathJax code. See the MathJax site -# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an -# example see the documentation. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_CODEFILE = - -# When the SEARCHENGINE tag is enabled doxygen will generate a search box for -# the HTML output. The underlying search engine uses javascript and DHTML and -# should work on any modern browser. Note that when using HTML help -# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) -# there is already a search function so this one should typically be disabled. -# For large projects the javascript based search engine can be slow, then -# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to -# search using the keyboard; to jump to the search box use + S -# (what the is depends on the OS and browser, but it is typically -# , /