From 15b9baf6b26b140c7d41b477e06b868ead692c4d Mon Sep 17 00:00:00 2001 From: Richard Loyer Date: Sun, 24 May 2026 21:58:00 +0200 Subject: [PATCH] JNI bridge complet: generate() prefill+decode, build arm64 OK (libkazeia_engine.so 209K) --- dist/CMakeLists.txt | 12 + dist/b/CMakeCache.txt | 407 ++++++++ .../b/CMakeFiles/3.31.11/CMakeCCompiler.cmake | 83 ++ .../CMakeFiles/3.31.11/CMakeCXXCompiler.cmake | 107 ++ .../3.31.11/CMakeDetermineCompilerABI_C.bin | Bin 0 -> 7976 bytes .../3.31.11/CMakeDetermineCompilerABI_CXX.bin | Bin 0 -> 8120 bytes dist/b/CMakeFiles/3.31.11/CMakeSystem.cmake | 15 + .../3.31.11/CompilerIdC/CMakeCCompilerId.c | 904 +++++++++++++++++ .../3.31.11/CompilerIdC/CMakeCCompilerId.o | Bin 0 -> 5984 bytes .../CompilerIdCXX/CMakeCXXCompilerId.cpp | 919 ++++++++++++++++++ .../CompilerIdCXX/CMakeCXXCompilerId.o | Bin 0 -> 6096 bytes dist/b/CMakeFiles/CMakeConfigureLog.yaml | 423 ++++++++ .../CMakeDirectoryInformation.cmake | 16 + dist/b/CMakeFiles/Makefile.cmake | 165 ++++ dist/b/CMakeFiles/Makefile2 | 122 +++ dist/b/CMakeFiles/TargetDirectories.txt | 3 + dist/b/CMakeFiles/cmake.check_cache | 1 + .../kazeia_engine.dir/DependInfo.cmake | 24 + .../b/CMakeFiles/kazeia_engine.dir/build.make | 117 +++ .../kazeia_engine.dir/cmake_clean.cmake | 12 + .../kazeia_engine.dir/compiler_depend.make | 2 + .../kazeia_engine.dir/compiler_depend.ts | 2 + .../CMakeFiles/kazeia_engine.dir/depend.make | 2 + .../b/CMakeFiles/kazeia_engine.dir/flags.make | 10 + .../jni/kazeia_engine_jni.cpp.o | Bin 0 -> 264384 bytes .../jni/kazeia_engine_jni.cpp.o.d | 820 ++++++++++++++++ dist/b/CMakeFiles/kazeia_engine.dir/link.d | 49 + dist/b/CMakeFiles/kazeia_engine.dir/link.txt | 1 + .../kazeia_engine.dir/progress.make | 3 + dist/b/CMakeFiles/progress.marks | 1 + dist/b/Makefile | 181 ++++ dist/b/cmake_install.cmake | 66 ++ dist/b/libkazeia_engine.so | Bin 0 -> 209504 bytes dist/include/ggml-alloc.h | 85 ++ dist/include/ggml-backend.h | 373 +++++++ dist/include/ggml-blas.h | 25 + dist/include/ggml-cann.h | 123 +++ dist/include/ggml-cpp.h | 39 + dist/include/ggml-cpu.h | 151 +++ dist/include/ggml-cuda.h | 47 + dist/include/ggml-hexagon.h | 62 ++ dist/include/ggml-metal.h | 61 ++ dist/include/ggml-opencl.h | 26 + dist/include/ggml-openvino.h | 37 + dist/include/ggml-opt.h | 256 +++++ dist/include/ggml-rpc.h | 35 + dist/include/ggml-sycl.h | 49 + dist/include/ggml-virtgpu.h | 14 + dist/include/ggml-vulkan.h | 29 + dist/include/ggml-webgpu.h | 19 + dist/include/ggml-zdnn.h | 17 + dist/include/ggml-zendnn.h | 22 + dist/include/gguf.h | 202 ++++ dist/jni/kazeia_engine_jni.cpp | 40 +- dist/lib/libkazeia_engine.so | Bin 0 -> 209504 bytes 55 files changed, 6166 insertions(+), 13 deletions(-) create mode 100644 dist/CMakeLists.txt create mode 100644 dist/b/CMakeCache.txt create mode 100644 dist/b/CMakeFiles/3.31.11/CMakeCCompiler.cmake create mode 100644 dist/b/CMakeFiles/3.31.11/CMakeCXXCompiler.cmake create mode 100755 dist/b/CMakeFiles/3.31.11/CMakeDetermineCompilerABI_C.bin create mode 100755 dist/b/CMakeFiles/3.31.11/CMakeDetermineCompilerABI_CXX.bin create mode 100644 dist/b/CMakeFiles/3.31.11/CMakeSystem.cmake create mode 100644 dist/b/CMakeFiles/3.31.11/CompilerIdC/CMakeCCompilerId.c create mode 100644 dist/b/CMakeFiles/3.31.11/CompilerIdC/CMakeCCompilerId.o create mode 100644 dist/b/CMakeFiles/3.31.11/CompilerIdCXX/CMakeCXXCompilerId.cpp create mode 100644 dist/b/CMakeFiles/3.31.11/CompilerIdCXX/CMakeCXXCompilerId.o create mode 100644 dist/b/CMakeFiles/CMakeConfigureLog.yaml create mode 100644 dist/b/CMakeFiles/CMakeDirectoryInformation.cmake create mode 100644 dist/b/CMakeFiles/Makefile.cmake create mode 100644 dist/b/CMakeFiles/Makefile2 create mode 100644 dist/b/CMakeFiles/TargetDirectories.txt create mode 100644 dist/b/CMakeFiles/cmake.check_cache create mode 100644 dist/b/CMakeFiles/kazeia_engine.dir/DependInfo.cmake create mode 100644 dist/b/CMakeFiles/kazeia_engine.dir/build.make create mode 100644 dist/b/CMakeFiles/kazeia_engine.dir/cmake_clean.cmake create mode 100644 dist/b/CMakeFiles/kazeia_engine.dir/compiler_depend.make create mode 100644 dist/b/CMakeFiles/kazeia_engine.dir/compiler_depend.ts create mode 100644 dist/b/CMakeFiles/kazeia_engine.dir/depend.make create mode 100644 dist/b/CMakeFiles/kazeia_engine.dir/flags.make create mode 100644 dist/b/CMakeFiles/kazeia_engine.dir/jni/kazeia_engine_jni.cpp.o create mode 100644 dist/b/CMakeFiles/kazeia_engine.dir/jni/kazeia_engine_jni.cpp.o.d create mode 100644 dist/b/CMakeFiles/kazeia_engine.dir/link.d create mode 100644 dist/b/CMakeFiles/kazeia_engine.dir/link.txt create mode 100644 dist/b/CMakeFiles/kazeia_engine.dir/progress.make create mode 100644 dist/b/CMakeFiles/progress.marks create mode 100644 dist/b/Makefile create mode 100644 dist/b/cmake_install.cmake create mode 100755 dist/b/libkazeia_engine.so create mode 100644 dist/include/ggml-alloc.h create mode 100644 dist/include/ggml-backend.h create mode 100644 dist/include/ggml-blas.h create mode 100644 dist/include/ggml-cann.h create mode 100644 dist/include/ggml-cpp.h create mode 100644 dist/include/ggml-cpu.h create mode 100644 dist/include/ggml-cuda.h create mode 100644 dist/include/ggml-hexagon.h create mode 100644 dist/include/ggml-metal.h create mode 100644 dist/include/ggml-opencl.h create mode 100644 dist/include/ggml-openvino.h create mode 100644 dist/include/ggml-opt.h create mode 100644 dist/include/ggml-rpc.h create mode 100644 dist/include/ggml-sycl.h create mode 100644 dist/include/ggml-virtgpu.h create mode 100644 dist/include/ggml-vulkan.h create mode 100644 dist/include/ggml-webgpu.h create mode 100644 dist/include/ggml-zdnn.h create mode 100644 dist/include/ggml-zendnn.h create mode 100644 dist/include/gguf.h create mode 100755 dist/lib/libkazeia_engine.so diff --git a/dist/CMakeLists.txt b/dist/CMakeLists.txt new file mode 100644 index 0000000..d592110 --- /dev/null +++ b/dist/CMakeLists.txt @@ -0,0 +1,12 @@ +cmake_minimum_required(VERSION 3.10) +project(kazeia_engine) +set(CMAKE_CXX_STANDARD 17) +add_library(kazeia_engine SHARED jni/kazeia_engine_jni.cpp) +target_include_directories(kazeia_engine PRIVATE include) +add_library(llama SHARED IMPORTED) +set_target_properties(llama PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/lib/libllama.so) +add_library(ggml SHARED IMPORTED) +set_target_properties(ggml PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/lib/libggml.so) +add_library(ggml-base SHARED IMPORTED) +set_target_properties(ggml-base PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/lib/libggml-base.so) +target_link_libraries(kazeia_engine llama ggml ggml-base log) diff --git a/dist/b/CMakeCache.txt b/dist/b/CMakeCache.txt new file mode 100644 index 0000000..d28f91d --- /dev/null +++ b/dist/b/CMakeCache.txt @@ -0,0 +1,407 @@ +# This is the CMakeCache file. +# For build in directory: /opt/Kazeia-engine/dist/b +# It was generated by CMake: /usr/bin/cmake +# 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 +######################## + +//No help, variable specified on the command line. +ANDROID_ABI:UNINITIALIZED=arm64-v8a + +//No help, variable specified on the command line. +ANDROID_PLATFORM:UNINITIALIZED=android-31 + +//Path to a program. +CMAKE_ADDR2LINE:FILEPATH=/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-addr2line + +//Archiver +CMAKE_AR:FILEPATH=/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar + +//Flags used by the compiler during all build types. +CMAKE_ASM_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_ASM_FLAGS_DEBUG:STRING= + +//Flags used by the compiler during release builds. +CMAKE_ASM_FLAGS_RELEASE:STRING= + +//Choose the type of build, options are: None Debug Release RelWithDebInfo +// MinSizeRel ... +CMAKE_BUILD_TYPE:STRING= + +//Enable/Disable color output during build. +CMAKE_COLOR_MAKEFILE:BOOL=ON + +//LLVM archiver +CMAKE_CXX_COMPILER_AR:FILEPATH=/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar + +//`clang-scan-deps` dependency scanner +CMAKE_CXX_COMPILER_CLANG_SCAN_DEPS:FILEPATH=/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/clang-scan-deps + +//Generate index for LLVM archive +CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib + +//Flags used by the compiler during all build types. +CMAKE_CXX_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_CXX_FLAGS_DEBUG:STRING= + +//Flags used by the CXX compiler during MINSIZEREL builds. +CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the compiler during release builds. +CMAKE_CXX_FLAGS_RELEASE:STRING= + +//Flags used by the CXX compiler during RELWITHDEBINFO builds. +CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Libraries linked by default with all C++ applications. +CMAKE_CXX_STANDARD_LIBRARIES:STRING=-latomic -lm + +//LLVM archiver +CMAKE_C_COMPILER_AR:FILEPATH=/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar + +//`clang-scan-deps` dependency scanner +CMAKE_C_COMPILER_CLANG_SCAN_DEPS:FILEPATH=/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/clang-scan-deps + +//Generate index for LLVM archive +CMAKE_C_COMPILER_RANLIB:FILEPATH=/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib + +//Flags used by the compiler during all build types. +CMAKE_C_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_C_FLAGS_DEBUG:STRING= + +//Flags used by the C compiler during MINSIZEREL builds. +CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the compiler during release builds. +CMAKE_C_FLAGS_RELEASE:STRING= + +//Flags used by the C compiler during RELWITHDEBINFO builds. +CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Libraries linked by default with all C applications. +CMAKE_C_STANDARD_LIBRARIES:STRING=-latomic -lm + +//Path to a program. +CMAKE_DLLTOOL:FILEPATH=/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-dlltool + +//Flags used by the linker. +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= + +//Enable/Disable output of compile commands during generation. +CMAKE_EXPORT_COMPILE_COMMANDS:BOOL= + +//Value Computed by CMake. +CMAKE_FIND_PACKAGE_REDIRECTS_DIR:STATIC=/opt/Kazeia-engine/dist/b/CMakeFiles/pkgRedirects + +//Install path prefix, prepended onto install directories. +CMAKE_INSTALL_PREFIX:PATH=/usr/local + +//Path to a program. +CMAKE_LINKER:FILEPATH=/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/ld.lld + +//Path to a program. +CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/gmake + +//Flags used by the linker during the creation of modules. +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=/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-nm + +//Path to a program. +CMAKE_OBJCOPY:FILEPATH=/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-objcopy + +//Path to a program. +CMAKE_OBJDUMP:FILEPATH=/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-objdump + +//No help, variable specified on the command line. +CMAKE_POLICY_VERSION_MINIMUM:UNINITIALIZED=3.5 + +//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=kazeia_engine + +//Ranlib +CMAKE_RANLIB:FILEPATH=/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib + +//Path to a program. +CMAKE_READELF:FILEPATH=/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-readelf + +//Flags used by the linker during the creation of dll's. +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= + +//Strip +CMAKE_STRIP:FILEPATH=/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip + +//Path to a program. +CMAKE_TAPI:FILEPATH=CMAKE_TAPI-NOTFOUND + +//The CMake toolchain file +CMAKE_TOOLCHAIN_FILE:FILEPATH=/opt/Kazeia/android-ndk-r27d/build/cmake/android.toolchain.cmake + +//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 + +//Value Computed by CMake +kazeia_engine_BINARY_DIR:STATIC=/opt/Kazeia-engine/dist/b + +//Value Computed by CMake +kazeia_engine_IS_TOP_LEVEL:STATIC=ON + +//Dependencies for the target +kazeia_engine_LIB_DEPENDS:STATIC=general;llama;general;ggml;general;ggml-base;general;log; + +//Value Computed by CMake +kazeia_engine_SOURCE_DIR:STATIC=/opt/Kazeia-engine/dist + + +######################## +# 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=/opt/Kazeia-engine/dist/b +//Major version of cmake used to create the current loaded cache +CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 +//Minor version of cmake used to create the current loaded cache +CMAKE_CACHE_MINOR_VERSION:INTERNAL=31 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=11 +//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE +CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=/usr/bin/cmake +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=/usr/bin/ctest +//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_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=/usr/bin/ccmake +//Executable file format +CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF +//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 +//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS +CMAKE_EXPORT_COMPILE_COMMANDS-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=/opt/Kazeia-engine/dist +//Install .so files without execute permission. +CMAKE_INSTALL_SO_NO_EXE:INTERNAL=0 +//ADVANCED property for variable: CMAKE_LINKER +CMAKE_LINKER-ADVANCED:INTERNAL=1 +//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_READELF +CMAKE_READELF-ADVANCED:INTERNAL=1 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=/usr/share/cmake +//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 +//uname command +CMAKE_UNAME:INTERNAL=/usr/bin/uname +//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE +CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 + diff --git a/dist/b/CMakeFiles/3.31.11/CMakeCCompiler.cmake b/dist/b/CMakeFiles/3.31.11/CMakeCCompiler.cmake new file mode 100644 index 0000000..55060ea --- /dev/null +++ b/dist/b/CMakeFiles/3.31.11/CMakeCCompiler.cmake @@ -0,0 +1,83 @@ +set(CMAKE_C_COMPILER "/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/clang") +set(CMAKE_C_COMPILER_ARG1 "") +set(CMAKE_C_COMPILER_ID "Clang") +set(CMAKE_C_COMPILER_VERSION "18.0.4") +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 "Linux") +set(CMAKE_C_SIMULATE_ID "") +set(CMAKE_C_COMPILER_FRONTEND_VARIANT "GNU") +set(CMAKE_C_SIMULATE_VERSION "") + + + + +set(CMAKE_AR "/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar") +set(CMAKE_C_COMPILER_AR "/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar") +set(CMAKE_RANLIB "/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib") +set(CMAKE_C_COMPILER_RANLIB "/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib") +set(CMAKE_LINKER "/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/ld.lld") +set(CMAKE_LINKER_LINK "") +set(CMAKE_LINKER_LLD "") +set(CMAKE_C_COMPILER_LINKER "/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/ld.lld") +set(CMAKE_C_COMPILER_LINKER_ID "LLD") +set(CMAKE_C_COMPILER_LINKER_VERSION 18.0.4) +set(CMAKE_C_COMPILER_LINKER_FRONTEND_VARIANT GNU) +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 TRUE) +set(CMAKE_LINKER_PUSHPOP_STATE_SUPPORTED TRUE) +set(CMAKE_C_LINKER_PUSHPOP_STATE_SUPPORTED TRUE) + +# Save compiler ABI information. +set(CMAKE_C_SIZEOF_DATA_PTR "8") +set(CMAKE_C_COMPILER_ABI "ELF") +set(CMAKE_C_BYTE_ORDER "LITTLE_ENDIAN") +set(CMAKE_C_LIBRARY_ARCHITECTURE "aarch64-linux-android") + +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 "aarch64-linux-android") +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 "/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include;/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/aarch64-linux-android;/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include") +set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "-l:libunwind.a;dl;c;-l:libunwind.a;dl") +set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/aarch64;/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31;/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android;/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib") +set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/dist/b/CMakeFiles/3.31.11/CMakeCXXCompiler.cmake b/dist/b/CMakeFiles/3.31.11/CMakeCXXCompiler.cmake new file mode 100644 index 0000000..4a71eab --- /dev/null +++ b/dist/b/CMakeFiles/3.31.11/CMakeCXXCompiler.cmake @@ -0,0 +1,107 @@ +set(CMAKE_CXX_COMPILER "/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++") +set(CMAKE_CXX_COMPILER_ARG1 "") +set(CMAKE_CXX_COMPILER_ID "Clang") +set(CMAKE_CXX_COMPILER_VERSION "18.0.4") +set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") +set(CMAKE_CXX_COMPILER_WRAPPER "") +set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "17") +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_decltype_incomplete_return_types;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_std_14;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_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_decltype_incomplete_return_types;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") +set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;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_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 "Linux") +set(CMAKE_CXX_SIMULATE_ID "") +set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "GNU") +set(CMAKE_CXX_SIMULATE_VERSION "") + + + + +set(CMAKE_AR "/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar") +set(CMAKE_CXX_COMPILER_AR "/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar") +set(CMAKE_RANLIB "/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib") +set(CMAKE_CXX_COMPILER_RANLIB "/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib") +set(CMAKE_LINKER "/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/ld.lld") +set(CMAKE_LINKER_LINK "") +set(CMAKE_LINKER_LLD "") +set(CMAKE_CXX_COMPILER_LINKER "/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/ld.lld") +set(CMAKE_CXX_COMPILER_LINKER_ID "LLD") +set(CMAKE_CXX_COMPILER_LINKER_VERSION 18.0.4) +set(CMAKE_CXX_COMPILER_LINKER_FRONTEND_VARIANT GNU) +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 TRUE) +set(CMAKE_LINKER_PUSHPOP_STATE_SUPPORTED TRUE) +set(CMAKE_CXX_LINKER_PUSHPOP_STATE_SUPPORTED TRUE) + +# Save compiler ABI information. +set(CMAKE_CXX_SIZEOF_DATA_PTR "8") +set(CMAKE_CXX_COMPILER_ABI "ELF") +set(CMAKE_CXX_BYTE_ORDER "LITTLE_ENDIAN") +set(CMAKE_CXX_LIBRARY_ARCHITECTURE "aarch64-linux-android") + +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 "aarch64-linux-android") +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 "/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1;/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include;/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/aarch64-linux-android;/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include") +set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "c++;m;-l:libunwind.a;dl;c;-l:libunwind.a;dl") +set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/aarch64;/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31;/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android;/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib") +set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") +set(CMAKE_CXX_COMPILER_CLANG_RESOURCE_DIR "/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18") + +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/dist/b/CMakeFiles/3.31.11/CMakeDetermineCompilerABI_C.bin b/dist/b/CMakeFiles/3.31.11/CMakeDetermineCompilerABI_C.bin new file mode 100755 index 0000000000000000000000000000000000000000..83acf813f4c89e7a2094678ebfa6418e70af2929 GIT binary patch literal 7976 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 literal 0 HcmV?d00001 diff --git a/dist/b/CMakeFiles/3.31.11/CMakeDetermineCompilerABI_CXX.bin b/dist/b/CMakeFiles/3.31.11/CMakeDetermineCompilerABI_CXX.bin new file mode 100755 index 0000000000000000000000000000000000000000..a358344b5be8199e6bf8cc2f3bc307a55c74cd1b GIT binary patch literal 8120 zcmdT}Yiu0V6}~g;wbxl^E!}s7))NwCW>4AfXCclBOjBRiZ6F8d?yQpfW8~sgSDBrd2Fzw&&bA z$GaZ9P|;t#*3P;2JJ0)=d+uC+H94|fRTRM`Abu*a_0p9d(oc-bYp4RGU-XCuc(#ZQ zq88dU67%@|9s#ab9#DeM!}w8g z7AQ`pJP*6yagC4i=kFhx5o4tHG7c&fKmCjc3#L40w}Ku`5lQ@a1oiQEnbwP+o+UF( z*2!6VDE9w;_+ftr@`htu2CQcxoc3-5$R{psTe>?F-R;uH zCozI?uZADKA2*MFPCWCzZ9TF+IiWT-4V`^=@SCUae*4Tv*~R{>T0&rX75u6yxDcxR zQ(%N{02z9XL}ocoxGK1V=nrE?inbONP0Ly7jArF6S7=&hTGw>foR$s8oUmYG96-ix z=b%8rSkV?EscnPUn8XH9BZn0s64!Z_1LzD2zqdVA@P0o|``1x=57~}O_%R=Tme%zF zvZI1u>?4k84K3b@nHE?hs-$wQGC2&z;ds$2N`q zPHLNW^Jp?PG&&%FD|ON{uBq9MVLJOqQhWD~B(>z|P-B0x*9KlK1(fsiM*^qjUlhmToqxI>e&TImht?(MS~n!;HYuUsv;@U_v-gRo zW&=k*`yhnV5)Hf>YE~LAgvA`p?bCk-dv66=p4b*m&OxjXYvAjE5YJo;h$n>F^4ht8 z_8MYuK^t{Nsnm${PwSLM7>m`&!*+(+7}xxfU!1zMOF1Re&x0-WU%F46FSUr% zv(4i4TM&0?g*g4!=A)<4@1|U-vEH(JF0AN39a8GU7bzdOX?gg7)_+ z+I`S|!E3W!ruNUmMpOma9D?_kXOuUn=4Dg6}q_1i|MGtYhJ{eiGI@7AXXD zTDF9M^&|_vCs^jl9&I0jk4;emc&`}t#N|GZ)nVE<_&s93oGYKB%_K~E?2r9?f#O?6 z{2fI9`GMEJe&S!G_|{VU18PU9T`G?US@_?`0SeSl!H+Cety5BtZfe`o)!WwD*?mLw z`oe?_&$OL$f#h6lOy&?v>qXOu+WDx{+1}pM)@`&#GdVp!5j|u&MGNq@o>(H*5#5w^ z-9oW19@o8;ADgi4iJV!qr<{x#%h;1~*S2$+td6IJ+@Z;pB|h*VQIOmgtkP=T#{Bgowp4g*q$)o}PG zsD?U#>FL4>Tp=Zw#lX#~+WxhH2y#+QTh|E@4hnSv5Tc=DQBx#g)qC?EQVf`hYZhkX z3~*lJ)Cj1$6@WpgC^hwgEG@bwSj>T40M_h>#}y)o8+mOJBtuHw50TWV{Qw<-pR&9@ z@DxO4oJ-+t4m956RWa}n)HmJuN!q8c@9wkNXG(3Yf z^@Bj_W%7zo6`go7t2<^qGpQdm<2!9*3f5J8a3{0|_w5_BCks~2bOyGiVwplgOy!H# zL>|^`F>5=nu=3-!R?hTV+M3YJykY5ij|EAdPpSWRFNAjcNPDlpgE`A}bLOHxRveB# zG#-n^C*k!J@RB+p=L+4KI3&6^{`gq1hr1{_S|X>aPb!=%wH?#Vd1o5{xaIx{qzo6W&Jy)z~{?~%T7njG`X zQyRd;rIq$4-xSO-7oAT#s;7Y>>>P}%=xXGC$!=60d36nxLc z@|YA?!TZa0c)k6Iaq614jvm@$(t&P<9JqI3#e)X*HSnbnI~Puc~^YqQmv2!5ik%Xm?s}Rx5&YFqbQejGoJBWwzL8#M<$(1s@&w=oB~u8qI*_ z%>dvD50|}?5-x0@Ldfne^i_KJq{2*s&;Y zLl4@P>@6_5kkO5g9(?rTqb(tyFs|D6-2*%2wG5mmkV8Waobo_=qrVu!VUg3Z_@2zW zBh#`l!f;~L?sW7*0mf+I>dYwG!~}B{mudw!>zKO1H)@*Zzhl#eZW|rgnHns=g`d0z zuP<)hkg2>fOBJTP?-N_favdptH`l?B^*PTn<$Q~>Sa^T)S_1y_uvnk-DASEBNYt;N z035%i**||@Gd)0hn0K(BoPRh2^Z*7Qur}-S_cT+MXTL1RGzt3n?al2d2`*6JV`2Yn z$3wk4vwv0S_mcoq&iAax@vuG~LGdWT{`vlZDc>KkJdQzS8HWbiW_`XNVLDC1e*Zjv z1=8O}a(q9+bhttvzJotB{)Yj>nA%B>&l^nBgfrndxqUBGD%Wqd|6i~?_k-J*-zxR_ z{K)hi3ljB@|F=n>kDZ)P`TthOd;{+H|F}L?1&OkM zhF^pVVjTbUbsmTRU-tlAJ+QoQI>al$sEnV#TUbBJibVbXUkAL>KYy>Bp!ogr{`Q-o zkN*ArWc`=PFB6WR>0d~n`AiMm6rp^}BMVQ~W8e~0{221)N#8p!v-A?Opp5$d__yOf zs-U#`URd_UG)(%Qbopto@ajJ)L$bzt46gye=R&eJ(E>e6FC2cSTn|4Ue_od@pwDZE cZ6ZBM2jVuLLtj(0R?+_hCC>G};Qadk0gr1@TmS$7 literal 0 HcmV?d00001 diff --git a/dist/b/CMakeFiles/3.31.11/CMakeSystem.cmake b/dist/b/CMakeFiles/3.31.11/CMakeSystem.cmake new file mode 100644 index 0000000..86fabb4 --- /dev/null +++ b/dist/b/CMakeFiles/3.31.11/CMakeSystem.cmake @@ -0,0 +1,15 @@ +set(CMAKE_HOST_SYSTEM "Linux-7.0.8-100.fc43.x86_64") +set(CMAKE_HOST_SYSTEM_NAME "Linux") +set(CMAKE_HOST_SYSTEM_VERSION "7.0.8-100.fc43.x86_64") +set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") + +include("/opt/Kazeia/android-ndk-r27d/build/cmake/android.toolchain.cmake") + +set(CMAKE_SYSTEM "Android-1") +set(CMAKE_SYSTEM_NAME "Android") +set(CMAKE_SYSTEM_VERSION "1") +set(CMAKE_SYSTEM_PROCESSOR "aarch64") + +set(CMAKE_CROSSCOMPILING "TRUE") + +set(CMAKE_SYSTEM_LOADED 1) diff --git a/dist/b/CMakeFiles/3.31.11/CompilerIdC/CMakeCCompilerId.c b/dist/b/CMakeFiles/3.31.11/CompilerIdC/CMakeCCompilerId.c new file mode 100644 index 0000000..50d95e5 --- /dev/null +++ b/dist/b/CMakeFiles/3.31.11/CompilerIdC/CMakeCCompilerId.c @@ -0,0 +1,904 @@ +#ifdef __cplusplus +# error "A C++ compiler has been selected for C." +#endif + +#if defined(__18CXX) +# define ID_VOID_MAIN +#endif +#if defined(__CLASSIC_C__) +/* cv-qualifiers did not exist in K&R C */ +# define const +# define volatile +#endif + +#if !defined(__has_include) +/* If the compiler does not have __has_include, pretend the answer is + always no. */ +# define __has_include(x) 0 +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# if defined(__GNUC__) +# define SIMULATE_ID "GNU" +# endif + /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later, + except that a few beta releases use the old format with V=2021. */ +# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111 +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE) + /* The third version component from --version is an update index, + but no macro is provided for it. */ +# define COMPILER_VERSION_PATCH DEC(0) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER) +# define COMPILER_ID "IntelLLVM" +#if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +#endif +#if defined(__GNUC__) +# define SIMULATE_ID "GNU" +#endif +/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and + * later. Look for 6 digit vs. 8 digit version number to decide encoding. + * VVVV is no smaller than the current year when a version is released. + */ +#if __INTEL_LLVM_COMPILER < 1000000L +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10) +#else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100) +#endif +#if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +#endif +#if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +#elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +#endif +#if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +#endif +#if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +#endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>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_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__) + + +#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__) +# 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 +#ifdef COMPILER_VERSION_INTERNAL + 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/dist/b/CMakeFiles/3.31.11/CompilerIdC/CMakeCCompilerId.o b/dist/b/CMakeFiles/3.31.11/CompilerIdC/CMakeCCompilerId.o new file mode 100644 index 0000000000000000000000000000000000000000..7e61b87b721bb07a8b14a975d665aa294a2bac18 GIT binary patch literal 5984 zcmdT|Z;V`36+drgXF9vHOxZ4l!j>{hl@{omKRf$Z1JkT6ZmHd-K%{QU@MhlI-LW(C zhBt3(ZHy4%LnUh34<;A_X#}H&FX#vDqA^YQK$V1m8l#`YPu7H(7(N&xp`3HyJ@f9| z_trGP7j856p7XoEd(OFk-`PHX;PAnOVE`8cehs0Q>mu0G!Jh)%X52@x;b(vpIWZYjq=I3}>%=j6Sjz*oE_-l+Cv>E{y;D zrDW|di$@MF%{Sb3x7l*M<%O2jSv>&)?6xd_#r4|Dhnt=C(-O42#@e!!d%o4NEzhpm z&Wg3(@|R09vd1~?JDpzB?ezM6OGi$G3yIQz-`Xk1Bl>btl+vsj2*n}`mBG;irUn#a z%=lbxJeAB{f73*6%-EI&NK{~Pd_MbyRAL7}(l8ds0fs(<*i056wHuPTd$L&+(|V zedj-)6q67`8{jC-|fv83V4Iay1DAQt1YMJu6qr~#Oqk_UANU(vznbkt97cquj{#A zcN%`)o-Gz9t;*E2U8-1BkDiy+!3xI)mP^;}fc5MIg z+5?MUJ5YP@_|XHk8ZUyEodVB!Y`y6@pWeN~W5%Buf7WWZrn83<8H|bjMcTWuYY6^xHPS)B;Xl2+AWTJZ z;w6J?J22$Cf-j!R0sPwn7jNeP-V=Cc03&5h;KLETA#nUuXyp-sU#Fn}#|6GMf)kL0 zu?YU4;79Q#fp3fO13NcF@aF_Sia#mv?GgTIf!`Ft1N-=q(@ILDu0OB%-vl16Gvf)gKL+7CGyV&~XAPi?I+cg;HwNMQGh?s7!}VvJS7sdj+(-sw z;d{4B!;7+?`06TEBu;!4KdkWCCP7CPzKYWqlnU8bSG60!uwBESk~r~ikuo)BrA+at z_yvg*e?rRCyeMVjt2k5WDhJ66BSFi!ev%lc7fLORPpcrxjPtti38DQLUuel^necEo z>8u5X@rzRDJtZ7-vVP$;VgBo~XP0a#p8jiz81FB~$%YoCz;=dk92K4iX)|1QbreJ8$pPJXP|q5a~0c}cS~EA8+)ksbBi{z0?D`}lXw&OvGC z9fhx+=MNN|;^BR#^GAi(;i%N}vZZ)z;E8OdnGupp3EYU`}LuPRlZF%ePFCn)UOnm_%w*ZX_p@E_=QganR5Gq%{#6xkjcN z#=%Kpz@nHZ6_`bGI0{V zRR^>8%{H~WZF7#QS*m8Jnx<-sstQ%5NvcIvDw8OxQc3jnCy7=uX%<)!cAqwja`!%Z zb1$BUxNPTQkp98XXH~nkRpc`R(`tIw$}9T@Oal-@Spv-$}+LEXEM_6#fX)*D%O$LVv`i!u|sd;Bgda zPE`hEyGN!X94Ez3Ys}*r|2bmhf8g$-{)7xvpBKlE6jAEn4%DUJd$NxTJasDq|qyPVI;{V|o{{-p&mp1W#`5OHn+Qff1#y@3?y8qiZ@&D#E z`lmc1ZvD^3_@_KZ_fKx5E0n_WR|!5FLPFBH&mpQ~MC{1}`75ncQ{frp#>Ia@#(zcH zq4Q6Wqr8j9Gd?E$vpsGvN&i1(K(-XCT1GeV ge<8*{<&V05%B%Fbll?XEe}e!QWGDHhz0${j2tA`_j{pDw literal 0 HcmV?d00001 diff --git a/dist/b/CMakeFiles/3.31.11/CompilerIdCXX/CMakeCXXCompilerId.cpp b/dist/b/CMakeFiles/3.31.11/CompilerIdCXX/CMakeCXXCompilerId.cpp new file mode 100644 index 0000000..3b6e114 --- /dev/null +++ b/dist/b/CMakeFiles/3.31.11/CompilerIdCXX/CMakeCXXCompilerId.cpp @@ -0,0 +1,919 @@ +/* This source file must have a .cpp extension so that all C++ compilers + recognize the extension without flags. Borland does not know .cxx for + example. */ +#ifndef __cplusplus +# error "A C compiler has been selected for C++." +#endif + +#if !defined(__has_include) +/* If the compiler does not have __has_include, pretend the answer is + always no. */ +# define __has_include(x) 0 +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# if defined(__GNUC__) +# define SIMULATE_ID "GNU" +# endif + /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later, + except that a few beta releases use the old format with V=2021. */ +# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111 +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE) + /* The third version component from --version is an update index, + but no macro is provided for it. */ +# define COMPILER_VERSION_PATCH DEC(0) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER) +# define COMPILER_ID "IntelLLVM" +#if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +#endif +#if defined(__GNUC__) +# define SIMULATE_ID "GNU" +#endif +/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and + * later. Look for 6 digit vs. 8 digit version number to decide encoding. + * VVVV is no smaller than the current year when a version is released. + */ +#if __INTEL_LLVM_COMPILER < 1000000L +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10) +#else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100) +#endif +#if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +#endif +#if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +#elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +#endif +#if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +#endif +#if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +#endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>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__) + + +#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__) +# 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 +#ifdef COMPILER_VERSION_INTERNAL + 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/dist/b/CMakeFiles/3.31.11/CompilerIdCXX/CMakeCXXCompilerId.o b/dist/b/CMakeFiles/3.31.11/CompilerIdCXX/CMakeCXXCompilerId.o new file mode 100644 index 0000000000000000000000000000000000000000..3300042fe75004c1228a8c4736b636d678c93f12 GIT binary patch literal 6096 zcmdT|O>7&-6@JSVWl5AN%c>J4G8_i63%jkBKcfEZz>(qFi5$l^TnBKX8tjr>QEVtK zy<7=SU?ff(piYqhb`Pl!J@^phKgbV))N)$DKrcowO?&8}D9{vW0k@YT2zoFI#CdOa z-tKU?Dg>mL4xpJg-}{}JH?xm=?$FW03Bv$x2K*AD8KVH7Zi(nQLC(Q;l)Up}`2C&x zVC}OpSo>=VZr>S#wLXALea77Fe~evN>#x^mZVkf>2B?m>N~?}X<`#0I&V?xgW9V6hQKuNC5Qi1T(!ql|p0_ zk*U;vB>Rd;&W}8F4{P@i3F(0V571^BAZ4N7t-W)jW|}}!0T@g|A_M?77dxi#F(z7% z*n>Wia`(sX$4x{N4`OG0X!M&bVm^XY&nfJ-LGm#iaG4mcu}KV@FjWA~;$MeSKPd&a zcAAl`NLWP^@00p2MK1C=2$7B|k@y?w{2*56UPVWhNQ~m*4KG$_yP~5?44@l0MS5Q( zqID1$#aIA5zo6a3!ElK-o;BYlE1 z6}n#;navr>W2>0iz2y6?_TFq3uM=6fYOY&rIBj>ut2h?k&8+XbjmnZ;Z)O{f)#dS) z=l;;C_?hZVE;nHpC#S0UqCHV{$}_piVx?-^lZDyE#qwgVP@OForV4xD;A8ev&cV~C z56X)^U$rW&7G&L)pMBJR#;M!mPP0~TI@xNy?Ptqbp>P=Agm!kqn#f!Ed^XZWLxACU zP%0fbdGf#$rSHu@d8l;ii4%uPC8#$S-4Z`2!Hi#$U`9_!K+$Hb*fpo5za$#F`#A{& zlz#yHIWnF(3C8&y#@OI}Kq)QK z8b?Zb_-;CrxPgxow%75m2Q2Ij!}w2nGYy!|^sO`2OABOU!Y9Olo%v<2k=!)!MKb+p za(nNOlIbJK)RAPm_Y-Y48uG?^e}#M$yN-jIzMdQpS)`T?X9Fl`_NI;``Y%vgJHlKyE}n#N7Xb>P1}+qm$}Av%ChTc`3tYUC9r#&+ zi}$MoZwOpGI~{mU;K3PoFmPfj@iVV17KTo`{`$VcbG_#S~r=fXJezzEvoyGSmWCO=FQo}&&M$*Zd?2C#@r#g9sy zv;V=gaX+F*qg(wljcw)F=m?+0**KOphC#L2#zZx^vmx{8o|Yy&~w(3Ql(T96y&h$1^YOe5uH*dALRLc|ZBw zcS)S>EXjF6kyrC`pC>61Fi_KyCw`oX+4%G5B2!MD%EPb zzGFRn?D27owDMF}Orn5Q9XGIWmQv1AY0*Vh?zmY#jK8dLH zAX({?di*^ljGBbQ@db(Ldw5O?vOl4Woj!jKvAFnK^2aR4N%7Mjvp(bhLX2GL{x59M z|36VT&i}<2|KwZuFMiC&_`kS8|5QiB`M(@be;l#6^M}F9W)+F|{eYhq7_&za`htiB0)WHJZMDA2G72KZsLg6x(k!hdkwx>Y+IO+p<_) z6IP;*^>{RqU^4r`JJHsqhDXF&-l3X x&-Qq{CH=q6fE@Mscdz4Ld>BxN{g8jECw2c+Pw8tXS69S8HUX|lCi#tv|0{EldEWp4 literal 0 HcmV?d00001 diff --git a/dist/b/CMakeFiles/CMakeConfigureLog.yaml b/dist/b/CMakeFiles/CMakeConfigureLog.yaml new file mode 100644 index 0000000..93d8f5f --- /dev/null +++ b/dist/b/CMakeFiles/CMakeConfigureLog.yaml @@ -0,0 +1,423 @@ + +--- +events: + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake/Modules/CMakeDetermineSystem.cmake:200 (message)" + - "CMakeLists.txt:2 (project)" + message: | + The target system is: Android - 1 - aarch64 + The host system is: Linux - 7.0.8-100.fc43.x86_64 - x86_64 + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake/Modules/CMakeDetermineCompilerId.cmake:17 (message)" + - "/usr/share/cmake/Modules/CMakeDetermineCompilerId.cmake:64 (__determine_compiler_id_test)" + - "/usr/share/cmake/Modules/CMakeDetermineCCompiler.cmake:123 (CMAKE_DETERMINE_COMPILER_ID)" + - "CMakeLists.txt:2 (project)" + message: | + Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded. + Compiler: /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/clang + Build flags: -g;-DANDROID;-fdata-sections;-ffunction-sections;-funwind-tables;-fstack-protector-strong;-no-canonical-prefixes;-D_FORTIFY_SOURCE=2;-Wformat;-Werror=format-security + Id flags: -c;--target=aarch64-none-linux-android31 + + The output was: + 0 + + + Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "CMakeCCompilerId.o" + + The C compiler identification is Clang, found in: + /opt/Kazeia-engine/dist/b/CMakeFiles/3.31.11/CompilerIdC/CMakeCCompilerId.o + + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake/Modules/CMakeDetermineCompilerId.cmake:17 (message)" + - "/usr/share/cmake/Modules/CMakeDetermineCompilerId.cmake:64 (__determine_compiler_id_test)" + - "/usr/share/cmake/Modules/CMakeDetermineCXXCompiler.cmake:126 (CMAKE_DETERMINE_COMPILER_ID)" + - "CMakeLists.txt:2 (project)" + message: | + Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded. + Compiler: /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ + Build flags: -g;-DANDROID;-fdata-sections;-ffunction-sections;-funwind-tables;-fstack-protector-strong;-no-canonical-prefixes;-D_FORTIFY_SOURCE=2;-Wformat;-Werror=format-security + Id flags: -c;--target=aarch64-none-linux-android31 + + The output was: + 0 + + + Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "CMakeCXXCompilerId.o" + + The CXX compiler identification is Clang, found in: + /opt/Kazeia-engine/dist/b/CMakeFiles/3.31.11/CompilerIdCXX/CMakeCXXCompilerId.o + + - + kind: "try_compile-v1" + backtrace: + - "/usr/share/cmake/Modules/CMakeDetermineCompilerABI.cmake:74 (try_compile)" + - "/usr/share/cmake/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:2 (project)" + checks: + - "Detecting C compiler ABI info" + directories: + source: "/opt/Kazeia-engine/dist/b/CMakeFiles/CMakeScratch/TryCompile-OO6xSA" + binary: "/opt/Kazeia-engine/dist/b/CMakeFiles/CMakeScratch/TryCompile-OO6xSA" + cmakeVariables: + ANDROID_ABI: "arm64-v8a" + ANDROID_ARM_MODE: "thumb" + ANDROID_PIE: "TRUE" + ANDROID_PLATFORM: "android-31" + ANDROID_STL: "c++_static" + ANDROID_TOOLCHAIN: "clang" + CMAKE_CXX_COMPILER_CLANG_SCAN_DEPS: "/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/clang-scan-deps" + CMAKE_CXX_COMPILER_TARGET: "aarch64-none-linux-android31" + CMAKE_C_COMPILER_TARGET: "aarch64-none-linux-android31" + CMAKE_C_FLAGS: "-g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat " + CMAKE_C_FLAGS_DEBUG: "-fno-limit-debug-info " + CMAKE_EXE_LINKER_FLAGS: "-static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-undefined-version -Wl,--fatal-warnings -Wl,--no-undefined -Qunused-arguments " + CMAKE_POSITION_INDEPENDENT_CODE: "TRUE" + CMAKE_SYSROOT: "/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot" + buildResult: + variable: "CMAKE_C_ABI_COMPILED" + cached: true + stdout: | + Change Dir: '/opt/Kazeia-engine/dist/b/CMakeFiles/CMakeScratch/TryCompile-OO6xSA' + + Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_bdfda/fast + /usr/bin/gmake -f CMakeFiles/cmTC_bdfda.dir/build.make CMakeFiles/cmTC_bdfda.dir/build + gmake[1]: Entering directory '/opt/Kazeia-engine/dist/b/CMakeFiles/CMakeScratch/TryCompile-OO6xSA' + Building C object CMakeFiles/cmTC_bdfda.dir/CMakeCCompilerABI.c.o + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --target=aarch64-none-linux-android31 --sysroot=/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -fPIE -v -MD -MT CMakeFiles/cmTC_bdfda.dir/CMakeCCompilerABI.c.o -MF CMakeFiles/cmTC_bdfda.dir/CMakeCCompilerABI.c.o.d -o CMakeFiles/cmTC_bdfda.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake/Modules/CMakeCCompilerABI.c + Android (13691557, +pgo, +bolt, +lto, +mlgo, based on r522817d) clang version 18.0.4 (https://android.googlesource.com/toolchain/llvm-project d8003a456d14a3deb8054cdaa529ffbf02d9b262) + Target: aarch64-none-linux-android31 + Thread model: posix + InstalledDir: /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin + (in-process) + "/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/clang" -cc1 -triple aarch64-none-linux-android31 -emit-obj -mrelax-all -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name CMakeCCompilerABI.c -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=non-leaf -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu generic -target-feature +neon -target-feature +v8a -target-feature +fix-cortex-a53-835769 -target-abi aapcs -debug-info-kind=constructor -dwarf-version=4 -debugger-tuning=gdb -fdebug-compilation-dir=/opt/Kazeia-engine/dist/b/CMakeFiles/CMakeScratch/TryCompile-OO6xSA -v -ffunction-sections -fdata-sections -fcoverage-compilation-dir=/opt/Kazeia-engine/dist/b/CMakeFiles/CMakeScratch/TryCompile-OO6xSA -resource-dir /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18 -dependency-file CMakeFiles/cmTC_bdfda.dir/CMakeCCompilerABI.c.o.d -MT CMakeFiles/cmTC_bdfda.dir/CMakeCCompilerABI.c.o -sys-header-deps -D ANDROID -D _FORTIFY_SOURCE=2 -isysroot /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot -internal-isystem /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include -internal-isystem /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/local/include -internal-externc-isystem /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/aarch64-linux-android -internal-externc-isystem /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/include -internal-externc-isystem /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include -Wformat -ferror-limit 19 -stack-protector 2 -fno-signed-char -fgnuc-version=4.2.1 -target-feature +outline-atomics -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o CMakeFiles/cmTC_bdfda.dir/CMakeCCompilerABI.c.o -x c /usr/share/cmake/Modules/CMakeCCompilerABI.c + clang -cc1 version 18.0.4 based upon LLVM 18.0.4 default target x86_64-unknown-linux-gnu + ignoring nonexistent directory "/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/local/include" + ignoring nonexistent directory "/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/include" + #include "..." search starts here: + #include <...> search starts here: + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/aarch64-linux-android + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include + End of search list. + Linking C executable cmTC_bdfda + /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_bdfda.dir/link.txt --verbose=1 + Android (13691557, +pgo, +bolt, +lto, +mlgo, based on r522817d) clang version 18.0.4 (https://android.googlesource.com/toolchain/llvm-project d8003a456d14a3deb8054cdaa529ffbf02d9b262) + Target: aarch64-none-linux-android31 + Thread model: posix + InstalledDir: /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin + "/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/ld.lld" --sysroot=/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot -EL --fix-cortex-a53-843419 -z now -z relro -z max-page-size=4096 --hash-style=gnu --eh-frame-hdr -m aarch64linux -pie -dynamic-linker /system/bin/linker64 -o cmTC_bdfda /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31/crtbegin_dynamic.o -L/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/aarch64 -L/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31 -L/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android -L/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib --build-id=sha1 --no-undefined-version --fatal-warnings --no-undefined CMakeFiles/cmTC_bdfda.dir/CMakeCCompilerABI.c.o /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-aarch64-android.a -l:libunwind.a -ldl -lc /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-aarch64-android.a -l:libunwind.a -ldl /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31/crtend_android.o + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --target=aarch64-none-linux-android31 --sysroot=/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-undefined-version -Wl,--fatal-warnings -Wl,--no-undefined -Qunused-arguments -v CMakeFiles/cmTC_bdfda.dir/CMakeCCompilerABI.c.o -o cmTC_bdfda + gmake[1]: Leaving directory '/opt/Kazeia-engine/dist/b/CMakeFiles/CMakeScratch/TryCompile-OO6xSA' + + exitCode: 0 + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake/Modules/CMakeDetermineCompilerABI.cmake:182 (message)" + - "/usr/share/cmake/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:2 (project)" + message: | + Parsed C implicit include dir info: rv=done + found start of include info + found start of implicit include info + add: [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include] + add: [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/aarch64-linux-android] + add: [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include] + end of search list found + collapse include dir [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include] ==> [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include] + collapse include dir [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/aarch64-linux-android] ==> [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/aarch64-linux-android] + collapse include dir [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include] ==> [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include] + implicit include dirs: [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include;/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/aarch64-linux-android;/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include] + + + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake/Modules/CMakeDetermineCompilerABI.cmake:218 (message)" + - "/usr/share/cmake/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:2 (project)" + message: | + Parsed C implicit link information: + link line regex: [^( *|.*[/\\])(ld[0-9]*(\\.[a-z]+)?|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)] + linker tool regex: [^[ ]*(->|")?[ ]*(([^"]*[/\\])?(ld[0-9]*(\\.[a-z]+)?))("|,| |$)] + ignore line: [Change Dir: '/opt/Kazeia-engine/dist/b/CMakeFiles/CMakeScratch/TryCompile-OO6xSA'] + ignore line: [] + ignore line: [Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_bdfda/fast] + ignore line: [/usr/bin/gmake -f CMakeFiles/cmTC_bdfda.dir/build.make CMakeFiles/cmTC_bdfda.dir/build] + ignore line: [gmake[1]: Entering directory '/opt/Kazeia-engine/dist/b/CMakeFiles/CMakeScratch/TryCompile-OO6xSA'] + ignore line: [Building C object CMakeFiles/cmTC_bdfda.dir/CMakeCCompilerABI.c.o] + ignore line: [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --target=aarch64-none-linux-android31 --sysroot=/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -fPIE -v -MD -MT CMakeFiles/cmTC_bdfda.dir/CMakeCCompilerABI.c.o -MF CMakeFiles/cmTC_bdfda.dir/CMakeCCompilerABI.c.o.d -o CMakeFiles/cmTC_bdfda.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake/Modules/CMakeCCompilerABI.c] + ignore line: [Android (13691557 +pgo +bolt +lto +mlgo based on r522817d) clang version 18.0.4 (https://android.googlesource.com/toolchain/llvm-project d8003a456d14a3deb8054cdaa529ffbf02d9b262)] + ignore line: [Target: aarch64-none-linux-android31] + ignore line: [Thread model: posix] + ignore line: [InstalledDir: /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin] + ignore line: [ (in-process)] + ignore line: [ "/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/clang" -cc1 -triple aarch64-none-linux-android31 -emit-obj -mrelax-all -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name CMakeCCompilerABI.c -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=non-leaf -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu generic -target-feature +neon -target-feature +v8a -target-feature +fix-cortex-a53-835769 -target-abi aapcs -debug-info-kind=constructor -dwarf-version=4 -debugger-tuning=gdb -fdebug-compilation-dir=/opt/Kazeia-engine/dist/b/CMakeFiles/CMakeScratch/TryCompile-OO6xSA -v -ffunction-sections -fdata-sections -fcoverage-compilation-dir=/opt/Kazeia-engine/dist/b/CMakeFiles/CMakeScratch/TryCompile-OO6xSA -resource-dir /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18 -dependency-file CMakeFiles/cmTC_bdfda.dir/CMakeCCompilerABI.c.o.d -MT CMakeFiles/cmTC_bdfda.dir/CMakeCCompilerABI.c.o -sys-header-deps -D ANDROID -D _FORTIFY_SOURCE=2 -isysroot /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot -internal-isystem /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include -internal-isystem /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/local/include -internal-externc-isystem /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/aarch64-linux-android -internal-externc-isystem /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/include -internal-externc-isystem /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include -Wformat -ferror-limit 19 -stack-protector 2 -fno-signed-char -fgnuc-version=4.2.1 -target-feature +outline-atomics -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o CMakeFiles/cmTC_bdfda.dir/CMakeCCompilerABI.c.o -x c /usr/share/cmake/Modules/CMakeCCompilerABI.c] + ignore line: [clang -cc1 version 18.0.4 based upon LLVM 18.0.4 default target x86_64-unknown-linux-gnu] + ignore line: [ignoring nonexistent directory "/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/local/include"] + ignore line: [ignoring nonexistent directory "/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/include"] + ignore line: [#include "..." search starts here:] + ignore line: [#include <...> search starts here:] + ignore line: [ /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include] + ignore line: [ /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/aarch64-linux-android] + ignore line: [ /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include] + ignore line: [End of search list.] + ignore line: [Linking C executable cmTC_bdfda] + ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_bdfda.dir/link.txt --verbose=1] + ignore line: [Android (13691557 +pgo +bolt +lto +mlgo based on r522817d) clang version 18.0.4 (https://android.googlesource.com/toolchain/llvm-project d8003a456d14a3deb8054cdaa529ffbf02d9b262)] + ignore line: [Target: aarch64-none-linux-android31] + ignore line: [Thread model: posix] + ignore line: [InstalledDir: /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin] + link line: [ "/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/ld.lld" --sysroot=/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot -EL --fix-cortex-a53-843419 -z now -z relro -z max-page-size=4096 --hash-style=gnu --eh-frame-hdr -m aarch64linux -pie -dynamic-linker /system/bin/linker64 -o cmTC_bdfda /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31/crtbegin_dynamic.o -L/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/aarch64 -L/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31 -L/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android -L/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib --build-id=sha1 --no-undefined-version --fatal-warnings --no-undefined CMakeFiles/cmTC_bdfda.dir/CMakeCCompilerABI.c.o /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-aarch64-android.a -l:libunwind.a -ldl -lc /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-aarch64-android.a -l:libunwind.a -ldl /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31/crtend_android.o] + arg [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/ld.lld] ==> ignore + arg [--sysroot=/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot] ==> ignore + arg [-EL] ==> ignore + arg [--fix-cortex-a53-843419] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-zmax-page-size=4096] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [aarch64linux] ==> ignore + arg [-pie] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/system/bin/linker64] ==> ignore + arg [-o] ==> ignore + arg [cmTC_bdfda] ==> ignore + arg [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31/crtbegin_dynamic.o] ==> obj [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31/crtbegin_dynamic.o] + arg [-L/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/aarch64] ==> dir [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/aarch64] + arg [-L/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31] ==> dir [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31] + arg [-L/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android] ==> dir [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android] + arg [-L/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] ==> dir [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + arg [--build-id=sha1] ==> ignore + arg [--no-undefined-version] ==> ignore + arg [--fatal-warnings] ==> ignore + arg [--no-undefined] ==> ignore + arg [CMakeFiles/cmTC_bdfda.dir/CMakeCCompilerABI.c.o] ==> ignore + arg [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-aarch64-android.a] ==> lib [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-aarch64-android.a] + arg [-l:libunwind.a] ==> lib [-l:libunwind.a] + arg [-ldl] ==> lib [dl] + arg [-lc] ==> lib [c] + arg [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-aarch64-android.a] ==> lib [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-aarch64-android.a] + arg [-l:libunwind.a] ==> lib [-l:libunwind.a] + arg [-ldl] ==> lib [dl] + arg [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31/crtend_android.o] ==> obj [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31/crtend_android.o] + linker tool for 'C': /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/ld.lld + remove lib [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-aarch64-android.a] + remove lib [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-aarch64-android.a] + collapse library dir [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/aarch64] ==> [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/aarch64] + collapse library dir [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31] ==> [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31] + collapse library dir [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android] ==> [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android] + collapse library dir [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] ==> [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + implicit libs: [-l:libunwind.a;dl;c;-l:libunwind.a;dl] + implicit objs: [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31/crtbegin_dynamic.o;/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31/crtend_android.o] + implicit dirs: [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/aarch64;/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31;/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android;/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + implicit fwks: [] + + + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake/Modules/Internal/CMakeDetermineLinkerId.cmake:40 (message)" + - "/usr/share/cmake/Modules/CMakeDetermineCompilerABI.cmake:255 (cmake_determine_linker_id)" + - "/usr/share/cmake/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:2 (project)" + message: | + Running the C compiler's linker: "/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/ld.lld" "-v" + LLD 18.0.4 (compatible with GNU linkers) + - + kind: "try_compile-v1" + backtrace: + - "/usr/share/cmake/Modules/CMakeDetermineCompilerABI.cmake:74 (try_compile)" + - "/usr/share/cmake/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:2 (project)" + checks: + - "Detecting CXX compiler ABI info" + directories: + source: "/opt/Kazeia-engine/dist/b/CMakeFiles/CMakeScratch/TryCompile-eCS9ye" + binary: "/opt/Kazeia-engine/dist/b/CMakeFiles/CMakeScratch/TryCompile-eCS9ye" + cmakeVariables: + ANDROID_ABI: "arm64-v8a" + ANDROID_ARM_MODE: "thumb" + ANDROID_PIE: "TRUE" + ANDROID_PLATFORM: "android-31" + ANDROID_STL: "c++_static" + ANDROID_TOOLCHAIN: "clang" + CMAKE_CXX_COMPILER_CLANG_SCAN_DEPS: "/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/clang-scan-deps" + CMAKE_CXX_COMPILER_TARGET: "aarch64-none-linux-android31" + CMAKE_CXX_FLAGS: "-g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat " + CMAKE_CXX_FLAGS_DEBUG: "-fno-limit-debug-info " + CMAKE_CXX_SCAN_FOR_MODULES: "OFF" + CMAKE_C_COMPILER_TARGET: "aarch64-none-linux-android31" + CMAKE_EXE_LINKER_FLAGS: "-static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-undefined-version -Wl,--fatal-warnings -Wl,--no-undefined -Qunused-arguments " + CMAKE_POSITION_INDEPENDENT_CODE: "TRUE" + CMAKE_SYSROOT: "/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot" + buildResult: + variable: "CMAKE_CXX_ABI_COMPILED" + cached: true + stdout: | + Change Dir: '/opt/Kazeia-engine/dist/b/CMakeFiles/CMakeScratch/TryCompile-eCS9ye' + + Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_af9fb/fast + /usr/bin/gmake -f CMakeFiles/cmTC_af9fb.dir/build.make CMakeFiles/cmTC_af9fb.dir/build + gmake[1]: Entering directory '/opt/Kazeia-engine/dist/b/CMakeFiles/CMakeScratch/TryCompile-eCS9ye' + Building CXX object CMakeFiles/cmTC_af9fb.dir/CMakeCXXCompilerABI.cpp.o + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=aarch64-none-linux-android31 --sysroot=/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -fPIE -v -MD -MT CMakeFiles/cmTC_af9fb.dir/CMakeCXXCompilerABI.cpp.o -MF CMakeFiles/cmTC_af9fb.dir/CMakeCXXCompilerABI.cpp.o.d -o CMakeFiles/cmTC_af9fb.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp + Android (13691557, +pgo, +bolt, +lto, +mlgo, based on r522817d) clang version 18.0.4 (https://android.googlesource.com/toolchain/llvm-project d8003a456d14a3deb8054cdaa529ffbf02d9b262) + Target: aarch64-none-linux-android31 + Thread model: posix + InstalledDir: /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin + (in-process) + "/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++" -cc1 -triple aarch64-none-linux-android31 -emit-obj -mrelax-all -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name CMakeCXXCompilerABI.cpp -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=non-leaf -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu generic -target-feature +neon -target-feature +v8a -target-feature +fix-cortex-a53-835769 -target-abi aapcs -debug-info-kind=constructor -dwarf-version=4 -debugger-tuning=gdb -fdebug-compilation-dir=/opt/Kazeia-engine/dist/b/CMakeFiles/CMakeScratch/TryCompile-eCS9ye -v -ffunction-sections -fdata-sections -fcoverage-compilation-dir=/opt/Kazeia-engine/dist/b/CMakeFiles/CMakeScratch/TryCompile-eCS9ye -resource-dir /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18 -dependency-file CMakeFiles/cmTC_af9fb.dir/CMakeCXXCompilerABI.cpp.o.d -MT CMakeFiles/cmTC_af9fb.dir/CMakeCXXCompilerABI.cpp.o -sys-header-deps -D ANDROID -D _FORTIFY_SOURCE=2 -isysroot /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot -internal-isystem /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1 -internal-isystem /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include -internal-isystem /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/local/include -internal-externc-isystem /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/aarch64-linux-android -internal-externc-isystem /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/include -internal-externc-isystem /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include -Wformat -fdeprecated-macro -ferror-limit 19 -stack-protector 2 -fno-signed-char -fgnuc-version=4.2.1 -fcxx-exceptions -fexceptions -target-feature +outline-atomics -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o CMakeFiles/cmTC_af9fb.dir/CMakeCXXCompilerABI.cpp.o -x c++ /usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp + clang -cc1 version 18.0.4 based upon LLVM 18.0.4 default target x86_64-unknown-linux-gnu + ignoring nonexistent directory "/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/local/include" + ignoring nonexistent directory "/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/include" + #include "..." search starts here: + #include <...> search starts here: + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1 + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/aarch64-linux-android + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include + End of search list. + Linking CXX executable cmTC_af9fb + /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_af9fb.dir/link.txt --verbose=1 + Android (13691557, +pgo, +bolt, +lto, +mlgo, based on r522817d) clang version 18.0.4 (https://android.googlesource.com/toolchain/llvm-project d8003a456d14a3deb8054cdaa529ffbf02d9b262) + Target: aarch64-none-linux-android31 + Thread model: posix + InstalledDir: /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin + "/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/ld.lld" --sysroot=/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot -EL --fix-cortex-a53-843419 -z now -z relro -z max-page-size=4096 --hash-style=gnu --eh-frame-hdr -m aarch64linux -pie -dynamic-linker /system/bin/linker64 -o cmTC_af9fb /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31/crtbegin_dynamic.o -L/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/aarch64 -L/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31 -L/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android -L/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib --build-id=sha1 --no-undefined-version --fatal-warnings --no-undefined CMakeFiles/cmTC_af9fb.dir/CMakeCXXCompilerABI.cpp.o -Bstatic -lc++ -Bdynamic -lm /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-aarch64-android.a -l:libunwind.a -ldl -lc /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-aarch64-android.a -l:libunwind.a -ldl /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31/crtend_android.o + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=aarch64-none-linux-android31 --sysroot=/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-undefined-version -Wl,--fatal-warnings -Wl,--no-undefined -Qunused-arguments -v CMakeFiles/cmTC_af9fb.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_af9fb + gmake[1]: Leaving directory '/opt/Kazeia-engine/dist/b/CMakeFiles/CMakeScratch/TryCompile-eCS9ye' + + exitCode: 0 + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake/Modules/CMakeDetermineCompilerABI.cmake:182 (message)" + - "/usr/share/cmake/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:2 (project)" + message: | + Parsed CXX implicit include dir info: rv=done + found start of include info + found start of implicit include info + add: [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1] + add: [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include] + add: [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/aarch64-linux-android] + add: [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include] + end of search list found + collapse include dir [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1] ==> [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1] + collapse include dir [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include] ==> [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include] + collapse include dir [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/aarch64-linux-android] ==> [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/aarch64-linux-android] + collapse include dir [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include] ==> [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include] + implicit include dirs: [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1;/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include;/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/aarch64-linux-android;/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include] + + + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake/Modules/CMakeDetermineCompilerABI.cmake:218 (message)" + - "/usr/share/cmake/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:2 (project)" + message: | + Parsed CXX implicit link information: + link line regex: [^( *|.*[/\\])(ld[0-9]*(\\.[a-z]+)?|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)] + linker tool regex: [^[ ]*(->|")?[ ]*(([^"]*[/\\])?(ld[0-9]*(\\.[a-z]+)?))("|,| |$)] + ignore line: [Change Dir: '/opt/Kazeia-engine/dist/b/CMakeFiles/CMakeScratch/TryCompile-eCS9ye'] + ignore line: [] + ignore line: [Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_af9fb/fast] + ignore line: [/usr/bin/gmake -f CMakeFiles/cmTC_af9fb.dir/build.make CMakeFiles/cmTC_af9fb.dir/build] + ignore line: [gmake[1]: Entering directory '/opt/Kazeia-engine/dist/b/CMakeFiles/CMakeScratch/TryCompile-eCS9ye'] + ignore line: [Building CXX object CMakeFiles/cmTC_af9fb.dir/CMakeCXXCompilerABI.cpp.o] + ignore line: [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=aarch64-none-linux-android31 --sysroot=/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -fPIE -v -MD -MT CMakeFiles/cmTC_af9fb.dir/CMakeCXXCompilerABI.cpp.o -MF CMakeFiles/cmTC_af9fb.dir/CMakeCXXCompilerABI.cpp.o.d -o CMakeFiles/cmTC_af9fb.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp] + ignore line: [Android (13691557 +pgo +bolt +lto +mlgo based on r522817d) clang version 18.0.4 (https://android.googlesource.com/toolchain/llvm-project d8003a456d14a3deb8054cdaa529ffbf02d9b262)] + ignore line: [Target: aarch64-none-linux-android31] + ignore line: [Thread model: posix] + ignore line: [InstalledDir: /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin] + ignore line: [ (in-process)] + ignore line: [ "/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++" -cc1 -triple aarch64-none-linux-android31 -emit-obj -mrelax-all -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name CMakeCXXCompilerABI.cpp -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=non-leaf -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu generic -target-feature +neon -target-feature +v8a -target-feature +fix-cortex-a53-835769 -target-abi aapcs -debug-info-kind=constructor -dwarf-version=4 -debugger-tuning=gdb -fdebug-compilation-dir=/opt/Kazeia-engine/dist/b/CMakeFiles/CMakeScratch/TryCompile-eCS9ye -v -ffunction-sections -fdata-sections -fcoverage-compilation-dir=/opt/Kazeia-engine/dist/b/CMakeFiles/CMakeScratch/TryCompile-eCS9ye -resource-dir /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18 -dependency-file CMakeFiles/cmTC_af9fb.dir/CMakeCXXCompilerABI.cpp.o.d -MT CMakeFiles/cmTC_af9fb.dir/CMakeCXXCompilerABI.cpp.o -sys-header-deps -D ANDROID -D _FORTIFY_SOURCE=2 -isysroot /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot -internal-isystem /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1 -internal-isystem /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include -internal-isystem /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/local/include -internal-externc-isystem /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/aarch64-linux-android -internal-externc-isystem /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/include -internal-externc-isystem /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include -Wformat -fdeprecated-macro -ferror-limit 19 -stack-protector 2 -fno-signed-char -fgnuc-version=4.2.1 -fcxx-exceptions -fexceptions -target-feature +outline-atomics -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o CMakeFiles/cmTC_af9fb.dir/CMakeCXXCompilerABI.cpp.o -x c++ /usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp] + ignore line: [clang -cc1 version 18.0.4 based upon LLVM 18.0.4 default target x86_64-unknown-linux-gnu] + ignore line: [ignoring nonexistent directory "/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/local/include"] + ignore line: [ignoring nonexistent directory "/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/include"] + ignore line: [#include "..." search starts here:] + ignore line: [#include <...> search starts here:] + ignore line: [ /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1] + ignore line: [ /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include] + ignore line: [ /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/aarch64-linux-android] + ignore line: [ /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include] + ignore line: [End of search list.] + ignore line: [Linking CXX executable cmTC_af9fb] + ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_af9fb.dir/link.txt --verbose=1] + ignore line: [Android (13691557 +pgo +bolt +lto +mlgo based on r522817d) clang version 18.0.4 (https://android.googlesource.com/toolchain/llvm-project d8003a456d14a3deb8054cdaa529ffbf02d9b262)] + ignore line: [Target: aarch64-none-linux-android31] + ignore line: [Thread model: posix] + ignore line: [InstalledDir: /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin] + link line: [ "/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/ld.lld" --sysroot=/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot -EL --fix-cortex-a53-843419 -z now -z relro -z max-page-size=4096 --hash-style=gnu --eh-frame-hdr -m aarch64linux -pie -dynamic-linker /system/bin/linker64 -o cmTC_af9fb /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31/crtbegin_dynamic.o -L/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/aarch64 -L/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31 -L/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android -L/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib --build-id=sha1 --no-undefined-version --fatal-warnings --no-undefined CMakeFiles/cmTC_af9fb.dir/CMakeCXXCompilerABI.cpp.o -Bstatic -lc++ -Bdynamic -lm /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-aarch64-android.a -l:libunwind.a -ldl -lc /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-aarch64-android.a -l:libunwind.a -ldl /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31/crtend_android.o] + arg [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/ld.lld] ==> ignore + arg [--sysroot=/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot] ==> ignore + arg [-EL] ==> ignore + arg [--fix-cortex-a53-843419] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-zmax-page-size=4096] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [aarch64linux] ==> ignore + arg [-pie] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/system/bin/linker64] ==> ignore + arg [-o] ==> ignore + arg [cmTC_af9fb] ==> ignore + arg [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31/crtbegin_dynamic.o] ==> obj [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31/crtbegin_dynamic.o] + arg [-L/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/aarch64] ==> dir [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/aarch64] + arg [-L/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31] ==> dir [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31] + arg [-L/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android] ==> dir [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android] + arg [-L/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] ==> dir [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + arg [--build-id=sha1] ==> ignore + arg [--no-undefined-version] ==> ignore + arg [--fatal-warnings] ==> ignore + arg [--no-undefined] ==> ignore + arg [CMakeFiles/cmTC_af9fb.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore + arg [-Bstatic] ==> search static + arg [-lc++] ==> lib [c++] + arg [-Bdynamic] ==> search dynamic + arg [-lm] ==> lib [m] + arg [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-aarch64-android.a] ==> lib [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-aarch64-android.a] + arg [-l:libunwind.a] ==> lib [-l:libunwind.a] + arg [-ldl] ==> lib [dl] + arg [-lc] ==> lib [c] + arg [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-aarch64-android.a] ==> lib [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-aarch64-android.a] + arg [-l:libunwind.a] ==> lib [-l:libunwind.a] + arg [-ldl] ==> lib [dl] + arg [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31/crtend_android.o] ==> obj [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31/crtend_android.o] + linker tool for 'CXX': /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/ld.lld + remove lib [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-aarch64-android.a] + remove lib [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-aarch64-android.a] + collapse library dir [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/aarch64] ==> [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/aarch64] + collapse library dir [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31] ==> [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31] + collapse library dir [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android] ==> [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android] + collapse library dir [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] ==> [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + implicit libs: [c++;m;-l:libunwind.a;dl;c;-l:libunwind.a;dl] + implicit objs: [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31/crtbegin_dynamic.o;/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31/crtend_android.o] + implicit dirs: [/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/aarch64;/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31;/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android;/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + implicit fwks: [] + + + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake/Modules/Internal/CMakeDetermineLinkerId.cmake:40 (message)" + - "/usr/share/cmake/Modules/CMakeDetermineCompilerABI.cmake:255 (cmake_determine_linker_id)" + - "/usr/share/cmake/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:2 (project)" + message: | + Running the CXX compiler's linker: "/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/ld.lld" "-v" + LLD 18.0.4 (compatible with GNU linkers) +... diff --git a/dist/b/CMakeFiles/CMakeDirectoryInformation.cmake b/dist/b/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000..ab62ddb --- /dev/null +++ b/dist/b/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.31 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/opt/Kazeia-engine/dist") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/opt/Kazeia-engine/dist/b") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/dist/b/CMakeFiles/Makefile.cmake b/dist/b/CMakeFiles/Makefile.cmake new file mode 100644 index 0000000..3a3dd9f --- /dev/null +++ b/dist/b/CMakeFiles/Makefile.cmake @@ -0,0 +1,165 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.31 + +# The generator used is: +set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles") + +# The top level Makefile was generated from the following files: +set(CMAKE_MAKEFILE_DEPENDS + "CMakeCache.txt" + "/opt/Kazeia-engine/dist/CMakeLists.txt" + "CMakeFiles/3.31.11/CMakeCCompiler.cmake" + "CMakeFiles/3.31.11/CMakeCXXCompiler.cmake" + "CMakeFiles/3.31.11/CMakeSystem.cmake" + "/opt/Kazeia/android-ndk-r27d/build/cmake/abis.cmake" + "/opt/Kazeia/android-ndk-r27d/build/cmake/android-legacy.toolchain.cmake" + "/opt/Kazeia/android-ndk-r27d/build/cmake/android.toolchain.cmake" + "/opt/Kazeia/android-ndk-r27d/build/cmake/flags.cmake" + "/opt/Kazeia/android-ndk-r27d/build/cmake/hooks/pre/Android-Clang.cmake" + "/opt/Kazeia/android-ndk-r27d/build/cmake/hooks/pre/Android-Determine.cmake" + "/opt/Kazeia/android-ndk-r27d/build/cmake/hooks/pre/Android-Initialize.cmake" + "/opt/Kazeia/android-ndk-r27d/build/cmake/hooks/pre/Android.cmake" + "/opt/Kazeia/android-ndk-r27d/build/cmake/hooks/pre/Determine-Compiler.cmake" + "/opt/Kazeia/android-ndk-r27d/build/cmake/platforms.cmake" + "/usr/share/cmake/Modules/CMakeCCompiler.cmake.in" + "/usr/share/cmake/Modules/CMakeCCompilerABI.c" + "/usr/share/cmake/Modules/CMakeCInformation.cmake" + "/usr/share/cmake/Modules/CMakeCXXCompiler.cmake.in" + "/usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp" + "/usr/share/cmake/Modules/CMakeCXXInformation.cmake" + "/usr/share/cmake/Modules/CMakeCommonLanguageInclude.cmake" + "/usr/share/cmake/Modules/CMakeCompilerIdDetection.cmake" + "/usr/share/cmake/Modules/CMakeDetermineCCompiler.cmake" + "/usr/share/cmake/Modules/CMakeDetermineCXXCompiler.cmake" + "/usr/share/cmake/Modules/CMakeDetermineCompiler.cmake" + "/usr/share/cmake/Modules/CMakeDetermineCompilerABI.cmake" + "/usr/share/cmake/Modules/CMakeDetermineCompilerId.cmake" + "/usr/share/cmake/Modules/CMakeDetermineCompilerSupport.cmake" + "/usr/share/cmake/Modules/CMakeDetermineSystem.cmake" + "/usr/share/cmake/Modules/CMakeFindBinUtils.cmake" + "/usr/share/cmake/Modules/CMakeGenericSystem.cmake" + "/usr/share/cmake/Modules/CMakeInitializeConfigs.cmake" + "/usr/share/cmake/Modules/CMakeLanguageInformation.cmake" + "/usr/share/cmake/Modules/CMakeParseImplicitIncludeInfo.cmake" + "/usr/share/cmake/Modules/CMakeParseImplicitLinkInfo.cmake" + "/usr/share/cmake/Modules/CMakeParseLibraryArchitecture.cmake" + "/usr/share/cmake/Modules/CMakeSystem.cmake.in" + "/usr/share/cmake/Modules/CMakeSystemSpecificInformation.cmake" + "/usr/share/cmake/Modules/CMakeSystemSpecificInitialize.cmake" + "/usr/share/cmake/Modules/CMakeTestCCompiler.cmake" + "/usr/share/cmake/Modules/CMakeTestCXXCompiler.cmake" + "/usr/share/cmake/Modules/CMakeTestCompilerCommon.cmake" + "/usr/share/cmake/Modules/CMakeUnixFindMake.cmake" + "/usr/share/cmake/Modules/Compiler/ADSP-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Compiler/ARMCC-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Compiler/ARMClang-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Compiler/AppleClang-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Compiler/Borland-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Compiler/Bruce-C-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Compiler/CMakeCommonCompilerMacros.cmake" + "/usr/share/cmake/Modules/Compiler/Clang-C.cmake" + "/usr/share/cmake/Modules/Compiler/Clang-CXX.cmake" + "/usr/share/cmake/Modules/Compiler/Clang-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" + "/usr/share/cmake/Modules/Compiler/Clang-FindBinUtils.cmake" + "/usr/share/cmake/Modules/Compiler/Clang.cmake" + "/usr/share/cmake/Modules/Compiler/Compaq-C-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Compiler/Cray-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Compiler/CrayClang-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Compiler/Embarcadero-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Compiler/Fujitsu-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Compiler/GHS-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Compiler/GNU-C-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Compiler/GNU.cmake" + "/usr/share/cmake/Modules/Compiler/HP-C-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Compiler/HP-CXX-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Compiler/IAR-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake" + "/usr/share/cmake/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake" + "/usr/share/cmake/Modules/Compiler/IBMClang-C-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Compiler/IBMClang-CXX-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Compiler/Intel-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Compiler/LCC-C-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Compiler/LCC-CXX-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Compiler/MSVC-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Compiler/NVHPC-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Compiler/NVIDIA-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Compiler/OrangeC-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Compiler/PGI-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Compiler/PathScale-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Compiler/SCO-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Compiler/SDCC-C-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Compiler/SunPro-C-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Compiler/TI-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Compiler/TIClang-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Compiler/Tasking-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Compiler/Watcom-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Compiler/XL-C-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Compiler/XL-CXX-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Compiler/XLClang-C-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Compiler/zOS-C-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake" + "/usr/share/cmake/Modules/Internal/CMakeCLinkerInformation.cmake" + "/usr/share/cmake/Modules/Internal/CMakeCXXLinkerInformation.cmake" + "/usr/share/cmake/Modules/Internal/CMakeCommonLinkerInformation.cmake" + "/usr/share/cmake/Modules/Internal/CMakeDetermineLinkerId.cmake" + "/usr/share/cmake/Modules/Internal/CMakeInspectCLinker.cmake" + "/usr/share/cmake/Modules/Internal/CMakeInspectCXXLinker.cmake" + "/usr/share/cmake/Modules/Internal/FeatureTesting.cmake" + "/usr/share/cmake/Modules/Linker/GNU.cmake" + "/usr/share/cmake/Modules/Linker/LLD-C.cmake" + "/usr/share/cmake/Modules/Linker/LLD-CXX.cmake" + "/usr/share/cmake/Modules/Linker/LLD.cmake" + "/usr/share/cmake/Modules/Platform/Android-Clang-C.cmake" + "/usr/share/cmake/Modules/Platform/Android-Clang-CXX.cmake" + "/usr/share/cmake/Modules/Platform/Android-Clang.cmake" + "/usr/share/cmake/Modules/Platform/Android-Determine-C.cmake" + "/usr/share/cmake/Modules/Platform/Android-Determine-CXX.cmake" + "/usr/share/cmake/Modules/Platform/Android-Determine.cmake" + "/usr/share/cmake/Modules/Platform/Android-Initialize.cmake" + "/usr/share/cmake/Modules/Platform/Android.cmake" + "/usr/share/cmake/Modules/Platform/Android/Determine-Compiler.cmake" + "/usr/share/cmake/Modules/Platform/Linker/Android-LLD-C.cmake" + "/usr/share/cmake/Modules/Platform/Linker/Android-LLD-CXX.cmake" + "/usr/share/cmake/Modules/Platform/Linker/GNU.cmake" + "/usr/share/cmake/Modules/Platform/Linker/Linux-GNU.cmake" + "/usr/share/cmake/Modules/Platform/Linker/Linux-LLD-C.cmake" + "/usr/share/cmake/Modules/Platform/Linker/Linux-LLD-CXX.cmake" + "/usr/share/cmake/Modules/Platform/Linker/Linux-LLD.cmake" + "/usr/share/cmake/Modules/Platform/Linux-Initialize.cmake" + "/usr/share/cmake/Modules/Platform/Linux.cmake" + "/usr/share/cmake/Modules/Platform/UnixPaths.cmake" + ) + +# The corresponding makefile is: +set(CMAKE_MAKEFILE_OUTPUTS + "Makefile" + "CMakeFiles/cmake.check_cache" + ) + +# Byproducts of CMake generate step: +set(CMAKE_MAKEFILE_PRODUCTS + "CMakeFiles/3.31.11/CMakeSystem.cmake" + "CMakeFiles/3.31.11/CMakeCCompiler.cmake" + "CMakeFiles/3.31.11/CMakeCXXCompiler.cmake" + "CMakeFiles/3.31.11/CMakeCCompiler.cmake" + "CMakeFiles/3.31.11/CMakeCCompiler.cmake" + "CMakeFiles/3.31.11/CMakeCXXCompiler.cmake" + "CMakeFiles/3.31.11/CMakeCXXCompiler.cmake" + "CMakeFiles/CMakeDirectoryInformation.cmake" + ) + +# Dependency information for all targets: +set(CMAKE_DEPEND_INFO_FILES + "CMakeFiles/kazeia_engine.dir/DependInfo.cmake" + ) diff --git a/dist/b/CMakeFiles/Makefile2 b/dist/b/CMakeFiles/Makefile2 new file mode 100644 index 0000000..a54c688 --- /dev/null +++ b/dist/b/CMakeFiles/Makefile2 @@ -0,0 +1,122 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.31 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /opt/Kazeia-engine/dist + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /opt/Kazeia-engine/dist/b + +#============================================================================= +# Directory level rules for the build root directory + +# The main recursive "all" target. +all: CMakeFiles/kazeia_engine.dir/all +.PHONY : all + +# The main recursive "codegen" target. +codegen: CMakeFiles/kazeia_engine.dir/codegen +.PHONY : codegen + +# The main recursive "preinstall" target. +preinstall: +.PHONY : preinstall + +# The main recursive "clean" target. +clean: CMakeFiles/kazeia_engine.dir/clean +.PHONY : clean + +#============================================================================= +# Target rules for target CMakeFiles/kazeia_engine.dir + +# All Build rule for target. +CMakeFiles/kazeia_engine.dir/all: + $(MAKE) $(MAKESILENT) -f CMakeFiles/kazeia_engine.dir/build.make CMakeFiles/kazeia_engine.dir/depend + $(MAKE) $(MAKESILENT) -f CMakeFiles/kazeia_engine.dir/build.make CMakeFiles/kazeia_engine.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/opt/Kazeia-engine/dist/b/CMakeFiles --progress-num=1,2 "Built target kazeia_engine" +.PHONY : CMakeFiles/kazeia_engine.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/kazeia_engine.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /opt/Kazeia-engine/dist/b/CMakeFiles 2 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/kazeia_engine.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /opt/Kazeia-engine/dist/b/CMakeFiles 0 +.PHONY : CMakeFiles/kazeia_engine.dir/rule + +# Convenience name for target. +kazeia_engine: CMakeFiles/kazeia_engine.dir/rule +.PHONY : kazeia_engine + +# codegen rule for target. +CMakeFiles/kazeia_engine.dir/codegen: + $(MAKE) $(MAKESILENT) -f CMakeFiles/kazeia_engine.dir/build.make CMakeFiles/kazeia_engine.dir/codegen + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/opt/Kazeia-engine/dist/b/CMakeFiles --progress-num=1,2 "Finished codegen for target kazeia_engine" +.PHONY : CMakeFiles/kazeia_engine.dir/codegen + +# clean rule for target. +CMakeFiles/kazeia_engine.dir/clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/kazeia_engine.dir/build.make CMakeFiles/kazeia_engine.dir/clean +.PHONY : CMakeFiles/kazeia_engine.dir/clean + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/dist/b/CMakeFiles/TargetDirectories.txt b/dist/b/CMakeFiles/TargetDirectories.txt new file mode 100644 index 0000000..6728432 --- /dev/null +++ b/dist/b/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,3 @@ +/opt/Kazeia-engine/dist/b/CMakeFiles/kazeia_engine.dir +/opt/Kazeia-engine/dist/b/CMakeFiles/edit_cache.dir +/opt/Kazeia-engine/dist/b/CMakeFiles/rebuild_cache.dir diff --git a/dist/b/CMakeFiles/cmake.check_cache b/dist/b/CMakeFiles/cmake.check_cache new file mode 100644 index 0000000..3dccd73 --- /dev/null +++ b/dist/b/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/dist/b/CMakeFiles/kazeia_engine.dir/DependInfo.cmake b/dist/b/CMakeFiles/kazeia_engine.dir/DependInfo.cmake new file mode 100644 index 0000000..762176b --- /dev/null +++ b/dist/b/CMakeFiles/kazeia_engine.dir/DependInfo.cmake @@ -0,0 +1,24 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/opt/Kazeia-engine/dist/jni/kazeia_engine_jni.cpp" "CMakeFiles/kazeia_engine.dir/jni/kazeia_engine_jni.cpp.o" "gcc" "CMakeFiles/kazeia_engine.dir/jni/kazeia_engine_jni.cpp.o.d" + "" "libkazeia_engine.so" "gcc" "CMakeFiles/kazeia_engine.dir/link.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_FORWARD_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/dist/b/CMakeFiles/kazeia_engine.dir/build.make b/dist/b/CMakeFiles/kazeia_engine.dir/build.make new file mode 100644 index 0000000..c69c48b --- /dev/null +++ b/dist/b/CMakeFiles/kazeia_engine.dir/build.make @@ -0,0 +1,117 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.31 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /opt/Kazeia-engine/dist + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /opt/Kazeia-engine/dist/b + +# Include any dependencies generated for this target. +include CMakeFiles/kazeia_engine.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include CMakeFiles/kazeia_engine.dir/compiler_depend.make + +# Include the progress variables for this target. +include CMakeFiles/kazeia_engine.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/kazeia_engine.dir/flags.make + +CMakeFiles/kazeia_engine.dir/codegen: +.PHONY : CMakeFiles/kazeia_engine.dir/codegen + +CMakeFiles/kazeia_engine.dir/jni/kazeia_engine_jni.cpp.o: CMakeFiles/kazeia_engine.dir/flags.make +CMakeFiles/kazeia_engine.dir/jni/kazeia_engine_jni.cpp.o: /opt/Kazeia-engine/dist/jni/kazeia_engine_jni.cpp +CMakeFiles/kazeia_engine.dir/jni/kazeia_engine_jni.cpp.o: CMakeFiles/kazeia_engine.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/opt/Kazeia-engine/dist/b/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/kazeia_engine.dir/jni/kazeia_engine_jni.cpp.o" + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=aarch64-none-linux-android31 --sysroot=/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/kazeia_engine.dir/jni/kazeia_engine_jni.cpp.o -MF CMakeFiles/kazeia_engine.dir/jni/kazeia_engine_jni.cpp.o.d -o CMakeFiles/kazeia_engine.dir/jni/kazeia_engine_jni.cpp.o -c /opt/Kazeia-engine/dist/jni/kazeia_engine_jni.cpp + +CMakeFiles/kazeia_engine.dir/jni/kazeia_engine_jni.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/kazeia_engine.dir/jni/kazeia_engine_jni.cpp.i" + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=aarch64-none-linux-android31 --sysroot=/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /opt/Kazeia-engine/dist/jni/kazeia_engine_jni.cpp > CMakeFiles/kazeia_engine.dir/jni/kazeia_engine_jni.cpp.i + +CMakeFiles/kazeia_engine.dir/jni/kazeia_engine_jni.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/kazeia_engine.dir/jni/kazeia_engine_jni.cpp.s" + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=aarch64-none-linux-android31 --sysroot=/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /opt/Kazeia-engine/dist/jni/kazeia_engine_jni.cpp -o CMakeFiles/kazeia_engine.dir/jni/kazeia_engine_jni.cpp.s + +# Object files for target kazeia_engine +kazeia_engine_OBJECTS = \ +"CMakeFiles/kazeia_engine.dir/jni/kazeia_engine_jni.cpp.o" + +# External object files for target kazeia_engine +kazeia_engine_EXTERNAL_OBJECTS = + +libkazeia_engine.so: CMakeFiles/kazeia_engine.dir/jni/kazeia_engine_jni.cpp.o +libkazeia_engine.so: CMakeFiles/kazeia_engine.dir/build.make +libkazeia_engine.so: CMakeFiles/kazeia_engine.dir/compiler_depend.ts +libkazeia_engine.so: /opt/Kazeia-engine/dist/lib/libllama.so +libkazeia_engine.so: /opt/Kazeia-engine/dist/lib/libggml.so +libkazeia_engine.so: /opt/Kazeia-engine/dist/lib/libggml-base.so +libkazeia_engine.so: CMakeFiles/kazeia_engine.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --bold --progress-dir=/opt/Kazeia-engine/dist/b/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX shared library libkazeia_engine.so" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/kazeia_engine.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/kazeia_engine.dir/build: libkazeia_engine.so +.PHONY : CMakeFiles/kazeia_engine.dir/build + +CMakeFiles/kazeia_engine.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/kazeia_engine.dir/cmake_clean.cmake +.PHONY : CMakeFiles/kazeia_engine.dir/clean + +CMakeFiles/kazeia_engine.dir/depend: + cd /opt/Kazeia-engine/dist/b && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /opt/Kazeia-engine/dist /opt/Kazeia-engine/dist /opt/Kazeia-engine/dist/b /opt/Kazeia-engine/dist/b /opt/Kazeia-engine/dist/b/CMakeFiles/kazeia_engine.dir/DependInfo.cmake "--color=$(COLOR)" +.PHONY : CMakeFiles/kazeia_engine.dir/depend + diff --git a/dist/b/CMakeFiles/kazeia_engine.dir/cmake_clean.cmake b/dist/b/CMakeFiles/kazeia_engine.dir/cmake_clean.cmake new file mode 100644 index 0000000..28de916 --- /dev/null +++ b/dist/b/CMakeFiles/kazeia_engine.dir/cmake_clean.cmake @@ -0,0 +1,12 @@ +file(REMOVE_RECURSE + "CMakeFiles/kazeia_engine.dir/link.d" + "CMakeFiles/kazeia_engine.dir/jni/kazeia_engine_jni.cpp.o" + "CMakeFiles/kazeia_engine.dir/jni/kazeia_engine_jni.cpp.o.d" + "libkazeia_engine.pdb" + "libkazeia_engine.so" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/kazeia_engine.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/dist/b/CMakeFiles/kazeia_engine.dir/compiler_depend.make b/dist/b/CMakeFiles/kazeia_engine.dir/compiler_depend.make new file mode 100644 index 0000000..7b27aa9 --- /dev/null +++ b/dist/b/CMakeFiles/kazeia_engine.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for kazeia_engine. +# This may be replaced when dependencies are built. diff --git a/dist/b/CMakeFiles/kazeia_engine.dir/compiler_depend.ts b/dist/b/CMakeFiles/kazeia_engine.dir/compiler_depend.ts new file mode 100644 index 0000000..ef41c84 --- /dev/null +++ b/dist/b/CMakeFiles/kazeia_engine.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for kazeia_engine. diff --git a/dist/b/CMakeFiles/kazeia_engine.dir/depend.make b/dist/b/CMakeFiles/kazeia_engine.dir/depend.make new file mode 100644 index 0000000..5dabeaa --- /dev/null +++ b/dist/b/CMakeFiles/kazeia_engine.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for kazeia_engine. +# This may be replaced when dependencies are built. diff --git a/dist/b/CMakeFiles/kazeia_engine.dir/flags.make b/dist/b/CMakeFiles/kazeia_engine.dir/flags.make new file mode 100644 index 0000000..119a400 --- /dev/null +++ b/dist/b/CMakeFiles/kazeia_engine.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.31 + +# compile CXX with /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ +CXX_DEFINES = -Dkazeia_engine_EXPORTS + +CXX_INCLUDES = -I/opt/Kazeia-engine/dist/include + +CXX_FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=gnu++17 -fPIC + diff --git a/dist/b/CMakeFiles/kazeia_engine.dir/jni/kazeia_engine_jni.cpp.o b/dist/b/CMakeFiles/kazeia_engine.dir/jni/kazeia_engine_jni.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..f17f65e77b565e897904b7790aa048b670ed7d8b GIT binary patch literal 264384 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 literal 0 HcmV?d00001 diff --git a/dist/b/CMakeFiles/kazeia_engine.dir/jni/kazeia_engine_jni.cpp.o.d b/dist/b/CMakeFiles/kazeia_engine.dir/jni/kazeia_engine_jni.cpp.o.d new file mode 100644 index 0000000..f39b869 --- /dev/null +++ b/dist/b/CMakeFiles/kazeia_engine.dir/jni/kazeia_engine_jni.cpp.o.d @@ -0,0 +1,820 @@ +CMakeFiles/kazeia_engine.dir/jni/kazeia_engine_jni.cpp.o: \ + /opt/Kazeia-engine/dist/jni/kazeia_engine_jni.cpp \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/jni.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include/stdarg.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include/__stdarg___gnuc_va_list.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include/__stdarg_va_list.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include/__stdarg_va_arg.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include/__stdarg___va_copy.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include/__stdarg_va_copy.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/stdint.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__config \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__config_site \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/features.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/versioning.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/api-level.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/ndk-version.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include/stdint.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdint.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/wchar_limits.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/stddef.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include/stddef.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include/__stddef_ptrdiff_t.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include/__stddef_size_t.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include/__stddef_wchar_t.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include/__stddef_null.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include/__stddef_nullptr_t.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include/__stddef_max_align_t.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include/__stddef_offsetof.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/string \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/max.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/comp.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/integral_constant.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/operation_traits.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/comp_ref_type.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__assert \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__verbose_abort \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__availability \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__utility/declval.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/max_element.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__iterator/iterator_traits.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__concepts/arithmetic.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_floating_point.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/remove_cv.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/remove_const.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/remove_volatile.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_integral.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_signed.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_arithmetic.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_signed_integer.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_unsigned_integer.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__concepts/constructible.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__concepts/convertible_to.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_convertible.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_array.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/cstddef \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/enable_if.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/version \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_function.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_const.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_reference.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_void.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_same.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/remove_reference.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__concepts/destructible.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_nothrow_destructible.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_destructible.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/remove_all_extents.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_scalar.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_enum.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_member_pointer.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_member_function_pointer.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_null_pointer.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_pointer.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_constructible.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__concepts/copyable.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__concepts/assignable.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__concepts/common_reference_with.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__concepts/same_as.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/common_reference.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/common_type.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/conditional.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/decay.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/add_pointer.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_referenceable.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/remove_extent.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/remove_cvref.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/void_t.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/copy_cv.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/add_const.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/add_cv.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/add_volatile.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/copy_cvref.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/add_lvalue_reference.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/add_rvalue_reference.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/make_const_lvalue_ref.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__utility/forward.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__concepts/movable.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__concepts/swappable.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__concepts/class_or_enum.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_class.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_union.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/extent.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_nothrow_move_assignable.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_nothrow_move_constructible.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_nothrow_constructible.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__utility/exchange.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_nothrow_assignable.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__utility/move.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_copy_constructible.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__undef_macros \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__utility/swap.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_move_assignable.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_move_constructible.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_swappable.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/nat.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_object.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__concepts/equality_comparable.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__concepts/boolean_testable.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__concepts/totally_ordered.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__fwd/pair.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__iterator/incrementable_traits.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_primary_template.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_valid_expansion.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/make_signed.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/apply_cv.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_volatile.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/type_list.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__iterator/readable_traits.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/disjunction.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/initializer_list \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/min.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/min_element.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__functional/identity.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__functional/reference_wrapper.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__functional/invoke.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/invoke.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_base_of.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_core_convertible.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_member_object_pointer.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_reference_wrapper.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__functional/weak_result_type.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__functional/binary_function.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__functional/unary_function.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__memory/addressof.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_callable.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/remove.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/find.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/find_segment_if.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__iterator/segmented_iterator.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/unwrap_iter.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__memory/pointer_traits.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/conjunction.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__bit/countr.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__bit/rotate.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/limits \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/type_traits \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__fwd/hash.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/aligned_storage.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/aligned_union.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/alignment_of.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/can_extract_key.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/remove_const_ref.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/dependent_type.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/has_unique_object_representation.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/has_virtual_destructor.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_abstract.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_aggregate.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_assignable.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_bounded_array.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_char_like_type.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_standard_layout.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_trivial.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_compound.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_fundamental.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_constant_evaluated.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_copy_assignable.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_default_constructible.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_empty.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_final.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_implicitly_default_constructible.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_literal_type.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_nothrow_convertible.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/lazy.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_nothrow_copy_assignable.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_nothrow_copy_constructible.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_nothrow_default_constructible.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_pod.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_polymorphic.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_scoped_enum.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/underlying_type.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_specialization.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_trivially_assignable.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_trivially_constructible.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_trivially_copy_assignable.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_trivially_copy_constructible.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_trivially_copyable.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/cstdint \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_trivially_default_constructible.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_trivially_destructible.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_trivially_move_assignable.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_trivially_move_constructible.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_unbounded_array.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_unsigned.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/make_unsigned.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/maybe_const.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/negation.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/rank.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/remove_pointer.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/result_of.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/type_identity.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/unwrap_ref.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__bit/invert_if.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__fwd/bit_reference.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__string/constexpr_c_functions.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__memory/construct_at.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__iterator/access.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__memory/voidify.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/new \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__exception/exception.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/cstdlib \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/stdlib.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdlib.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/alloca.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/wait.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/wait.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/malloc.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/stdio.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/types.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/aarch64-linux-android/asm/types.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/types.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/int-ll64.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/aarch64-linux-android/asm/bitsperlong.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/bitsperlong.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/posix_types.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/stddef.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/compiler_types.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/compiler.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/aarch64-linux-android/asm/posix_types.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/posix_types.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/pthread_types.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/seek_constants.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/fortify/stdio.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/xlocale.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/fortify/stdlib.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/legacy_stdlib_inlines.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/exception \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__exception/exception_ptr.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__exception/operations.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__exception/nested_exception.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__exception/terminate.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/datasizeof.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_always_bitcastable.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_equality_comparable.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_trivially_lexicographically_comparable.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__utility/is_pointer_in_range.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/cwchar \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/cwctype \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/cctype \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/ctype.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/ctype.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/wctype.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/wctype.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/wctype.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/wchar.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/wchar.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/time.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/time.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/time.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/timespec.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/time_types.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/select.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/aarch64-linux-android/asm/sigcontext.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/aarch64-linux-android/asm/sve_context.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/signal_types.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include/limits.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/limits.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/float.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include/float.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/limits.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/posix_limits.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/signal.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/aarch64-linux-android/asm/signal.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/signal.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/signal-defs.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/aarch64-linux-android/asm/siginfo.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/siginfo.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/ucontext.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/user.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/page_size.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/bionic_multibyte_result.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/mbstate_t.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/find_if.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/remove_if.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__format/enable_insertable.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__functional/hash.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__tuple/sfinae_helpers.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__fwd/tuple.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__tuple/make_tuple_types.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__fwd/array.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__tuple/tuple_element.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__tuple/tuple_indices.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__utility/integer_sequence.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__tuple/tuple_types.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__tuple/tuple_size.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__tuple/tuple_like_ext.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__utility/pair.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__compare/common_comparison_category.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__compare/ordering.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__compare/synth_three_way.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__compare/three_way_comparable.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__concepts/different_from.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__fwd/get.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__fwd/subrange.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__tuple/pair_like.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__tuple/tuple_like.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__utility/piecewise_construct.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/cstring \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/string.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/strcasecmp.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/strings.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/fortify/strings.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/fortify/string.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__fwd/string.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__fwd/memory_resource.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__ios/fpos.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__fwd/ios.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__iterator/distance.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__iterator/concepts.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__concepts/derived_from.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__concepts/invocable.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__concepts/predicate.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__concepts/regular.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__concepts/semiregular.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__concepts/relation.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__iterator/iter_move.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__ranges/access.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__ranges/enable_borrowed_range.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__utility/auto_cast.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__ranges/concepts.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__ranges/data.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__ranges/enable_view.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__ranges/size.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__iterator/reverse_iterator.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__compare/compare_three_way_result.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__iterator/advance.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__utility/convert_to_integral.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__utility/unreachable.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__iterator/iter_swap.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__iterator/iterator.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__iterator/next.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__iterator/prev.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__ranges/subrange.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__ranges/dangling.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__ranges/view_interface.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__ranges/empty.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__iterator/wrap_iter.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__memory/allocate_at_least.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__memory/allocator_traits.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__memory/allocator.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__memory/compressed_pair.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__memory/swap_allocator.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__memory_resource/polymorphic_allocator.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__memory_resource/memory_resource.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__utility/exception_guard.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/tuple \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__memory/allocator_arg_t.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__memory/uses_allocator.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/compare \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__compare/compare_partial_order_fallback.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__compare/partial_order.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__compare/compare_three_way.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__compare/weak_order.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__compare/strong_order.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__bit/bit_cast.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__utility/priority_tag.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/cmath \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/promote.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/math.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/math.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__math/abs.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__math/copysign.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__math/error_functions.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__math/exponential_functions.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__math/fdim.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__math/fma.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__math/gamma.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__math/hyperbolic_functions.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__math/hypot.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__math/inverse_hyperbolic_functions.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__math/inverse_trigonometric_functions.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__math/logarithms.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__math/min_max.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__math/modulo.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__math/remainder.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__math/roots.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__math/rounding_functions.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__math/traits.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__math/trigonometric_functions.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__compare/compare_strong_order_fallback.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__compare/compare_weak_order_fallback.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__compare/is_eq.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/iosfwd \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__fwd/fstream.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__fwd/istream.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__fwd/ostream.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__fwd/sstream.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__fwd/streambuf.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__std_mbstate_t.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__mbstate_t.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/typeinfo \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/utility \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__utility/as_const.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__utility/as_lvalue.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__utility/cmp.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__utility/forward_like.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__utility/in_place.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__utility/rel_ops.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__utility/to_underlying.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__ranges/container_compatible_range.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__ranges/from_range.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__string/char_traits.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/copy_n.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/copy.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/copy_move_common.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/iterator_operations.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/iter_swap.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_iterator_concept.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/unwrap_range.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/for_each_segment.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/fill_n.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/find_end.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/search.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/find_first_of.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/cstdio \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__string/extern_template_lists.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_allocator.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/noexcept_move_assign_container.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/climits \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/stdexcept \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/string_view \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__fwd/string_view.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__iterator/bounded_iter.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__iterator/data.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__iterator/empty.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__iterator/reverse_access.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__iterator/size.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/algorithm \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/adjacent_find.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/all_of.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/any_of.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/binary_search.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/lower_bound.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/half_positive.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/clamp.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/copy_backward.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/copy_if.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/count.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__bit/popcount.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/count_if.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/equal.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/equal_range.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/upper_bound.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/fill.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/find_if_not.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/fold.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/for_each.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__ranges/movable_box.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/optional \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/atomic \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__atomic/aliases.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__atomic/atomic.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__atomic/atomic_base.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__atomic/atomic_sync.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__atomic/contention_t.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__atomic/cxx_atomic_impl.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__atomic/is_always_lock_free.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__atomic/memory_order.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__chrono/duration.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/ratio \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__thread/poll_with_backoff.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__chrono/high_resolution_clock.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__chrono/steady_clock.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__chrono/time_point.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__chrono/system_clock.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/ctime \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__threading_support \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__chrono/convert_to_timespec.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/errno.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/errno.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/errno.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/aarch64-linux-android/asm/errno.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/errno.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/errno-base.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sched.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/sched.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__atomic/check_memory_order.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__functional/operations.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__atomic/atomic_lock_free.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__atomic/atomic_flag.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__atomic/atomic_init.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__atomic/fence.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__atomic/kill_dependency.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/concepts \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__concepts/common_with.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/iterator \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__iterator/back_insert_iterator.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__iterator/common_iterator.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/variant \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__variant/monostate.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__iterator/counted_iterator.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__iterator/default_sentinel.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__iterator/erase_if_container.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__iterator/front_insert_iterator.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__iterator/indirectly_comparable.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__iterator/projected.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__iterator/insert_iterator.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__iterator/istream_iterator.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__iterator/istreambuf_iterator.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__iterator/mergeable.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__functional/ranges_operations.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__iterator/move_iterator.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__iterator/move_sentinel.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__iterator/ostream_iterator.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__iterator/ostreambuf_iterator.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__iterator/permutable.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__iterator/sortable.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__iterator/unreachable_sentinel.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__memory/align.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__memory/allocation_guard.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__memory/assume_aligned.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__memory/auto_ptr.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__memory/concepts.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__memory/ranges_construct_at.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__memory/ranges_uninitialized_algorithms.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/in_out_result.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__memory/uninitialized_algorithms.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/move.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__memory/raw_storage_iterator.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__memory/shared_ptr.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__memory/allocator_destructor.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__memory/unique_ptr.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__memory/temporary_buffer.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__memory/uses_allocator_construction.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/for_each_n.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/generate.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/generate_n.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/in_found_result.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/in_fun_result.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/in_in_out_result.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/in_in_result.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/in_out_out_result.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/includes.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/inplace_merge.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/rotate.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/move_backward.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/swap_ranges.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__memory/destruct_n.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/is_heap.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/is_heap_until.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/is_partitioned.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/is_permutation.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/is_sorted.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/is_sorted_until.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/lexicographical_compare.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/lexicographical_compare_three_way.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/three_way_comp_ref_type.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/make_heap.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/sift_down.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/merge.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/min_max_result.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/minmax.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/minmax_element.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/mismatch.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/next_permutation.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/reverse.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/none_of.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/nth_element.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/sort.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/partial_sort.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/sort_heap.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/pop_heap.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/push_heap.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__debug_utils/strict_weak_ordering_check.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__debug_utils/randomize_range.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__bit/blsr.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__bit/countl.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/partial_sort_copy.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/make_projected.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/partition.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/partition_copy.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/partition_point.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/prev_permutation.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/pstl_any_all_none_of.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/pstl_find.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/pstl_backend.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/pstl_backends/cpu_backend.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/pstl_backends/cpu_backends/any_of.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/pstl_backends/cpu_backends/backend.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/pstl_backends/cpu_backends/thread.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__utility/empty.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/is_execution_policy.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/pstl_backends/cpu_backends/fill.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/pstl_backends/cpu_backends/find_if.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/pstl_backends/cpu_backends/for_each.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/pstl_backends/cpu_backends/merge.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/pstl_backends/cpu_backends/stable_sort.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/stable_sort.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/pstl_backends/cpu_backends/transform.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/transform.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/pstl_backends/cpu_backends/transform_reduce.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__numeric/transform_reduce.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/execution \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/pstl_frontend_dispatch.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__iterator/cpp17_iterator_concepts.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/pstl_copy.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/pstl_transform.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/pstl_count.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/pstl_for_each.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__numeric/pstl_transform_reduce.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/pstl_equal.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/pstl_fill.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/pstl_generate.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/pstl_is_partitioned.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/pstl_merge.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/pstl_move.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/pstl_replace.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/pstl_rotate_copy.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/pstl_sort.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/pstl_stable_sort.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_adjacent_find.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_all_of.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_any_of.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_binary_search.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_clamp.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_contains.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_find.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_find_if.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_copy.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_copy_backward.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_copy_if.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_copy_n.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_count.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_count_if.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_ends_with.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_equal.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_starts_with.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_mismatch.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_equal_range.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_fill.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_fill_n.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_find_end.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_find_first_of.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_find_if_not.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_for_each.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_for_each_n.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_generate.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_generate_n.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_includes.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_inplace_merge.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_is_heap.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_is_heap_until.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_is_partitioned.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_is_permutation.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_is_sorted.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_is_sorted_until.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_lexicographical_compare.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_lower_bound.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_make_heap.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_max.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_min_element.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_max_element.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_merge.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_min.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_minmax.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_minmax_element.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_move.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_move_backward.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_next_permutation.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_none_of.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_nth_element.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_partial_sort.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_partial_sort_copy.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_partition.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_partition_copy.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_partition_point.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_pop_heap.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_prev_permutation.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_push_heap.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_remove.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_remove_if.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_remove_copy.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_remove_copy_if.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/remove_copy_if.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_replace.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_replace_if.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_replace_copy.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_replace_copy_if.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_reverse.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_reverse_copy.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_rotate.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_rotate_copy.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_sample.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/sample.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__random/uniform_int_distribution.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__random/is_valid.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__random/log2.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/uniform_random_bit_generator_adaptor.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__random/uniform_random_bit_generator.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_search.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_search_n.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/search_n.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_set_difference.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/set_difference.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_set_intersection.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/set_intersection.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_set_symmetric_difference.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/set_symmetric_difference.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_set_union.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/set_union.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_shuffle.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/shuffle.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_sort.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_sort_heap.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_stable_partition.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/stable_partition.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_stable_sort.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_swap_ranges.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_transform.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_unique.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/unique.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_unique_copy.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/unique_copy.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/ranges_upper_bound.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/remove_copy.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/replace.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/replace_copy.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/replace_copy_if.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/replace_if.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/reverse_copy.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/rotate_copy.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/shift_left.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__algorithm/shift_right.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/bit \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__bit/bit_ceil.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__bit/bit_floor.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__bit/bit_log2.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__bit/bit_width.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__bit/byteswap.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__bit/endian.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__bit/has_single_bit.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/vector \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__bit_reference \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__format/formatter.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__format/format_fwd.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__format/formatter_bool.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__format/concepts.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__format/format_parse_context.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__format/format_error.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__format/formatter_integral.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__charconv/to_chars_integral.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__charconv/tables.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__charconv/to_chars_base_10.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__charconv/to_chars_result.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__system_error/errc.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/cerrno \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__charconv/traits.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/make_32_64_or_128_bit.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__format/formatter_output.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__format/buffer.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__format/format_to_n_result.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__format/parser_std_format_spec.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__format/format_arg.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__format/format_string.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__format/unicode.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__format/extended_grapheme_cluster_table.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__format/width_estimation_table.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/array \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/locale \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__locale \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__mutex/once_flag.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__utility/no_destroy.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/clocale \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/locale.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/locale.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__support/android/locale_bionic.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/ios \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__system_error/error_category.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__system_error/error_code.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__system_error/error_condition.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__system_error/system_error.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/mutex \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__condition_variable/condition_variable.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__mutex/mutex.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__mutex/unique_lock.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__mutex/tag_types.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__mutex/lock_guard.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__thread/id.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/system_error \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/streambuf \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__locale_dir/locale_base_api/bsd_locale_fallbacks.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__locale_dir/locale_base_api/locale_guard.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/cstdarg \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__memory/temp_value.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__split_buffer \ + /opt/Kazeia-engine/dist/include/llama.h \ + /opt/Kazeia-engine/dist/include/ggml.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/stdbool.h \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include/stdbool.h \ + /opt/Kazeia-engine/dist/include/ggml-cpu.h \ + /opt/Kazeia-engine/dist/include/ggml-backend.h \ + /opt/Kazeia-engine/dist/include/ggml-alloc.h \ + /opt/Kazeia-engine/dist/include/ggml-opt.h \ + /opt/Kazeia-engine/dist/include/gguf.h diff --git a/dist/b/CMakeFiles/kazeia_engine.dir/link.d b/dist/b/CMakeFiles/kazeia_engine.dir/link.d new file mode 100644 index 0000000..31859bd --- /dev/null +++ b/dist/b/CMakeFiles/kazeia_engine.dir/link.d @@ -0,0 +1,49 @@ +libkazeia_engine.so: \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31/crtbegin_so.o \ + CMakeFiles/kazeia_engine.dir/jni/kazeia_engine_jni.cpp.o \ + /opt/Kazeia-engine/dist/lib/libllama.so \ + /opt/Kazeia-engine/dist/lib/libggml.so \ + /opt/Kazeia-engine/dist/lib/libggml-base.so \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31/liblog.so \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/aarch64/libatomic.a \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31/libm.so \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31/libc++.a \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/libc++_static.a \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/libc++abi.a \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-aarch64-android.a \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/aarch64/libunwind.a \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31/libdl.so \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31/libc.so \ + /opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31/crtend_so.o + +/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31/crtbegin_so.o: + +CMakeFiles/kazeia_engine.dir/jni/kazeia_engine_jni.cpp.o: + +/opt/Kazeia-engine/dist/lib/libllama.so: + +/opt/Kazeia-engine/dist/lib/libggml.so: + +/opt/Kazeia-engine/dist/lib/libggml-base.so: + +/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31/liblog.so: + +/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/aarch64/libatomic.a: + +/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31/libm.so: + +/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31/libc++.a: + +/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/libc++_static.a: + +/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/libc++abi.a: + +/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-aarch64-android.a: + +/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/aarch64/libunwind.a: + +/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31/libdl.so: + +/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31/libc.so: + +/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/31/crtend_so.o: diff --git a/dist/b/CMakeFiles/kazeia_engine.dir/link.txt b/dist/b/CMakeFiles/kazeia_engine.dir/link.txt new file mode 100644 index 0000000..857a1a3 --- /dev/null +++ b/dist/b/CMakeFiles/kazeia_engine.dir/link.txt @@ -0,0 +1 @@ +/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=aarch64-none-linux-android31 --sysroot=/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot -fPIC -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -Xlinker --dependency-file=CMakeFiles/kazeia_engine.dir/link.d -static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-undefined-version -Wl,--fatal-warnings -Wl,--no-undefined -Qunused-arguments -shared -Wl,-soname,libkazeia_engine.so -o libkazeia_engine.so CMakeFiles/kazeia_engine.dir/jni/kazeia_engine_jni.cpp.o /opt/Kazeia-engine/dist/lib/libllama.so /opt/Kazeia-engine/dist/lib/libggml.so /opt/Kazeia-engine/dist/lib/libggml-base.so -llog -latomic -lm diff --git a/dist/b/CMakeFiles/kazeia_engine.dir/progress.make b/dist/b/CMakeFiles/kazeia_engine.dir/progress.make new file mode 100644 index 0000000..abadeb0 --- /dev/null +++ b/dist/b/CMakeFiles/kazeia_engine.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 + diff --git a/dist/b/CMakeFiles/progress.marks b/dist/b/CMakeFiles/progress.marks new file mode 100644 index 0000000..0cfbf08 --- /dev/null +++ b/dist/b/CMakeFiles/progress.marks @@ -0,0 +1 @@ +2 diff --git a/dist/b/Makefile b/dist/b/Makefile new file mode 100644 index 0000000..4b15f62 --- /dev/null +++ b/dist/b/Makefile @@ -0,0 +1,181 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.31 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /opt/Kazeia-engine/dist + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /opt/Kazeia-engine/dist/b + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake cache editor..." + /usr/bin/ccmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# The main all target +all: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /opt/Kazeia-engine/dist/b/CMakeFiles /opt/Kazeia-engine/dist/b//CMakeFiles/progress.marks + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 all + $(CMAKE_COMMAND) -E cmake_progress_start /opt/Kazeia-engine/dist/b/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +#============================================================================= +# Target rules for targets named kazeia_engine + +# Build rule for target. +kazeia_engine: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 kazeia_engine +.PHONY : kazeia_engine + +# fast build rule for target. +kazeia_engine/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/kazeia_engine.dir/build.make CMakeFiles/kazeia_engine.dir/build +.PHONY : kazeia_engine/fast + +jni/kazeia_engine_jni.o: jni/kazeia_engine_jni.cpp.o +.PHONY : jni/kazeia_engine_jni.o + +# target to build an object file +jni/kazeia_engine_jni.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/kazeia_engine.dir/build.make CMakeFiles/kazeia_engine.dir/jni/kazeia_engine_jni.cpp.o +.PHONY : jni/kazeia_engine_jni.cpp.o + +jni/kazeia_engine_jni.i: jni/kazeia_engine_jni.cpp.i +.PHONY : jni/kazeia_engine_jni.i + +# target to preprocess a source file +jni/kazeia_engine_jni.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/kazeia_engine.dir/build.make CMakeFiles/kazeia_engine.dir/jni/kazeia_engine_jni.cpp.i +.PHONY : jni/kazeia_engine_jni.cpp.i + +jni/kazeia_engine_jni.s: jni/kazeia_engine_jni.cpp.s +.PHONY : jni/kazeia_engine_jni.s + +# target to generate assembly for a file +jni/kazeia_engine_jni.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/kazeia_engine.dir/build.make CMakeFiles/kazeia_engine.dir/jni/kazeia_engine_jni.cpp.s +.PHONY : jni/kazeia_engine_jni.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... rebuild_cache" + @echo "... kazeia_engine" + @echo "... jni/kazeia_engine_jni.o" + @echo "... jni/kazeia_engine_jni.i" + @echo "... jni/kazeia_engine_jni.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/dist/b/cmake_install.cmake b/dist/b/cmake_install.cmake new file mode 100644 index 0000000..b955fad --- /dev/null +++ b/dist/b/cmake_install.cmake @@ -0,0 +1,66 @@ +# Install script for directory: /opt/Kazeia-engine/dist + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "0") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "TRUE") +endif() + +# Set path to fallback-tool for dependency-resolution. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/opt/Kazeia/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-objdump") +endif() + +string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT + "${CMAKE_INSTALL_MANIFEST_FILES}") +if(CMAKE_INSTALL_LOCAL_ONLY) + file(WRITE "/opt/Kazeia-engine/dist/b/install_local_manifest.txt" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") +endif() +if(CMAKE_INSTALL_COMPONENT) + if(CMAKE_INSTALL_COMPONENT MATCHES "^[a-zA-Z0-9_.+-]+$") + set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") + else() + string(MD5 CMAKE_INST_COMP_HASH "${CMAKE_INSTALL_COMPONENT}") + set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INST_COMP_HASH}.txt") + unset(CMAKE_INST_COMP_HASH) + endif() +else() + set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + file(WRITE "/opt/Kazeia-engine/dist/b/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") +endif() diff --git a/dist/b/libkazeia_engine.so b/dist/b/libkazeia_engine.so new file mode 100755 index 0000000000000000000000000000000000000000..6ab50759be8c9b30e24229bdccab9c6f0e919b26 GIT binary patch literal 209504 zcmeFa3w%}8weUOF-U;lT1PBlyJhQ{2hJcvxjzZZX0TYRe7%N)ZBqV`E@+Q0#B|Q2S z4aX82t3_J^dfFtFmbQ2b*47|xKPdO zar^DuP?+ShG92i!>7)$d>+PDHW#u?fMO$g%3+Hz5lb6|aHhgQ9m3E-cC%Q%-wDP0h z=nfCs%AD(K;Y0b3zG&f(zS|up*yKe{#cVyL+EU(ryS)8&c@8{o8`*&l`;xb-3q+M` z)zk6SVw>;aWJ{q?7$ZjGa-d`TJKz&N|Erhq%UxmnHx%0DQVw*=lX`CB7QIu;3aZMB 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 literal 0 HcmV?d00001 diff --git a/dist/include/ggml-alloc.h b/dist/include/ggml-alloc.h new file mode 100644 index 0000000..78aa059 --- /dev/null +++ b/dist/include/ggml-alloc.h @@ -0,0 +1,85 @@ +#pragma once + +#include "ggml.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct ggml_backend_buffer_type * ggml_backend_buffer_type_t; +typedef struct ggml_backend_buffer * ggml_backend_buffer_t; +typedef struct ggml_backend * ggml_backend_t; + +// Tensor allocator +struct ggml_tallocr { + ggml_backend_buffer_t buffer; + void * base; + size_t alignment; + size_t offset; +}; + +GGML_API struct ggml_tallocr ggml_tallocr_new(ggml_backend_buffer_t buffer); +GGML_API enum ggml_status ggml_tallocr_alloc(struct ggml_tallocr * talloc, struct ggml_tensor * tensor); + +// Graph allocator +/* + Example usage: + ggml_gallocr_t galloc = ggml_gallocr_new(ggml_backend_cpu_buffer_type()); + + // optional: create a worst-case graph and reserve the buffers to avoid reallocations + ggml_gallocr_reserve(galloc, build_graph(max_batch)); + + // allocate the graph + struct ggml_cgraph * graph = build_graph(batch); + ggml_gallocr_alloc_graph(galloc, graph); + + printf("compute buffer size: %zu bytes\n", ggml_gallocr_get_buffer_size(galloc, 0)); + + // evaluate the graph + ggml_backend_graph_compute(backend, graph); +*/ + +// special tensor flags for use with the graph allocator: +// ggml_set_input(): all input tensors are allocated at the beginning of the graph in non-overlapping addresses +// ggml_set_output(): output tensors are never freed and never overwritten + +typedef struct ggml_gallocr * ggml_gallocr_t; + +GGML_API ggml_gallocr_t ggml_gallocr_new(ggml_backend_buffer_type_t buft); +GGML_API ggml_gallocr_t ggml_gallocr_new_n(ggml_backend_buffer_type_t * bufts, int n_bufs); +GGML_API void ggml_gallocr_free(ggml_gallocr_t galloc); + +// pre-allocate buffers from a measure graph - does not allocate or modify the graph +// call with a worst-case graph to avoid buffer reallocations +// not strictly required for single buffer usage: ggml_gallocr_alloc_graph will reallocate the buffers automatically if needed +// returns false if the buffer allocation failed +// ggml_gallocr_resrve_n_size writes the buffer sizes per galloc buffer that would be allocated by ggml_gallocr_reserve_n to sizes +GGML_API bool ggml_gallocr_reserve(ggml_gallocr_t galloc, struct ggml_cgraph * graph); +GGML_API void ggml_gallocr_reserve_n_size( + ggml_gallocr_t galloc, + struct ggml_cgraph * graph, + const int * node_buffer_ids, + const int * leaf_buffer_ids, + size_t * sizes); +GGML_API bool ggml_gallocr_reserve_n( + ggml_gallocr_t galloc, + struct ggml_cgraph * graph, + const int * node_buffer_ids, + const int * leaf_buffer_ids); + +// automatic reallocation if the topology changes when using a single buffer +// returns false if using multiple buffers and a re-allocation is needed (call ggml_gallocr_reserve_n first to set the node buffers) +GGML_API bool ggml_gallocr_alloc_graph(ggml_gallocr_t galloc, struct ggml_cgraph * graph); + +GGML_API size_t ggml_gallocr_get_buffer_size(ggml_gallocr_t galloc, int buffer_id); + +// Utils +// Create a buffer and allocate all the tensors in a ggml_context +// ggml_backend_alloc_ctx_tensors_from_buft_size returns the size of the buffer that would be allocated by ggml_backend_alloc_ctx_tensors_from_buft +GGML_API size_t ggml_backend_alloc_ctx_tensors_from_buft_size(struct ggml_context * ctx, ggml_backend_buffer_type_t buft); +GGML_API struct ggml_backend_buffer * ggml_backend_alloc_ctx_tensors_from_buft(struct ggml_context * ctx, ggml_backend_buffer_type_t buft); +GGML_API struct ggml_backend_buffer * ggml_backend_alloc_ctx_tensors(struct ggml_context * ctx, ggml_backend_t backend); + +#ifdef __cplusplus +} +#endif diff --git a/dist/include/ggml-backend.h b/dist/include/ggml-backend.h new file mode 100644 index 0000000..9fd3f7f --- /dev/null +++ b/dist/include/ggml-backend.h @@ -0,0 +1,373 @@ +#pragma once + +#include "ggml.h" +#include "ggml-alloc.h" + +#ifdef GGML_BACKEND_SHARED +# if defined(_WIN32) && !defined(__MINGW32__) +# ifdef GGML_BACKEND_BUILD +# define GGML_BACKEND_API __declspec(dllexport) extern +# else +# define GGML_BACKEND_API __declspec(dllimport) extern +# endif +# else +# define GGML_BACKEND_API __attribute__ ((visibility ("default"))) extern +# endif +#else +# define GGML_BACKEND_API extern +#endif + +#ifdef __cplusplus +extern "C" { +#endif + + typedef struct ggml_backend_buffer_type * ggml_backend_buffer_type_t; + typedef struct ggml_backend_buffer * ggml_backend_buffer_t; + typedef struct ggml_backend_event * ggml_backend_event_t; + typedef struct ggml_backend * ggml_backend_t; + typedef void * ggml_backend_graph_plan_t; + typedef struct ggml_backend_reg * ggml_backend_reg_t; + typedef struct ggml_backend_device * ggml_backend_dev_t; + + + // + // Backend buffer type + // + + GGML_API const char * ggml_backend_buft_name (ggml_backend_buffer_type_t buft); + GGML_API ggml_backend_buffer_t ggml_backend_buft_alloc_buffer (ggml_backend_buffer_type_t buft, size_t size); + GGML_API size_t ggml_backend_buft_get_alignment (ggml_backend_buffer_type_t buft); + GGML_API size_t ggml_backend_buft_get_max_size (ggml_backend_buffer_type_t buft); + GGML_API size_t ggml_backend_buft_get_alloc_size(ggml_backend_buffer_type_t buft, const struct ggml_tensor * tensor); + GGML_API bool ggml_backend_buft_is_host (ggml_backend_buffer_type_t buft); + GGML_API ggml_backend_dev_t ggml_backend_buft_get_device (ggml_backend_buffer_type_t buft); + + // + // Backend buffer + // + + enum ggml_backend_buffer_usage { + GGML_BACKEND_BUFFER_USAGE_ANY = 0, + GGML_BACKEND_BUFFER_USAGE_WEIGHTS = 1, + GGML_BACKEND_BUFFER_USAGE_COMPUTE = 2, + }; + + GGML_API const char * ggml_backend_buffer_name (ggml_backend_buffer_t buffer); + GGML_API void ggml_backend_buffer_free (ggml_backend_buffer_t buffer); + GGML_API void * ggml_backend_buffer_get_base (ggml_backend_buffer_t buffer); + GGML_API size_t ggml_backend_buffer_get_size (ggml_backend_buffer_t buffer); + GGML_API enum ggml_status ggml_backend_buffer_init_tensor (ggml_backend_buffer_t buffer, struct ggml_tensor * tensor); + GGML_API size_t ggml_backend_buffer_get_alignment (ggml_backend_buffer_t buffer); + GGML_API size_t ggml_backend_buffer_get_max_size (ggml_backend_buffer_t buffer); + GGML_API size_t ggml_backend_buffer_get_alloc_size(ggml_backend_buffer_t buffer, const struct ggml_tensor * tensor); + GGML_API void ggml_backend_buffer_clear (ggml_backend_buffer_t buffer, uint8_t value); + GGML_API bool ggml_backend_buffer_is_host (ggml_backend_buffer_t buffer); + GGML_API void ggml_backend_buffer_set_usage (ggml_backend_buffer_t buffer, enum ggml_backend_buffer_usage usage); + GGML_API enum ggml_backend_buffer_usage ggml_backend_buffer_get_usage (ggml_backend_buffer_t buffer); + GGML_API ggml_backend_buffer_type_t ggml_backend_buffer_get_type (ggml_backend_buffer_t buffer); + GGML_API void ggml_backend_buffer_reset (ggml_backend_buffer_t buffer); + + // tensor copy between different backends + GGML_API void ggml_backend_tensor_copy(struct ggml_tensor * src, struct ggml_tensor * dst); + + // + // Backend (stream) + // + + GGML_API ggml_guid_t ggml_backend_guid(ggml_backend_t backend); + GGML_API const char * ggml_backend_name(ggml_backend_t backend); + GGML_API void ggml_backend_free(ggml_backend_t backend); + + GGML_API ggml_backend_buffer_type_t ggml_backend_get_default_buffer_type(ggml_backend_t backend); + GGML_API ggml_backend_buffer_t ggml_backend_alloc_buffer(ggml_backend_t backend, size_t size); + GGML_API size_t ggml_backend_get_alignment(ggml_backend_t backend); + GGML_API size_t ggml_backend_get_max_size(ggml_backend_t backend); + + GGML_API void ggml_backend_tensor_set_async(ggml_backend_t backend, struct ggml_tensor * tensor, const void * data, size_t offset, size_t size); + GGML_API void ggml_backend_tensor_get_async(ggml_backend_t backend, const struct ggml_tensor * tensor, void * data, size_t offset, size_t size); + + // "offset" refers to the offset in tensor->data for setting/getting data + GGML_API void ggml_backend_tensor_set( struct ggml_tensor * tensor, const void * data, size_t offset, size_t size); + GGML_API void ggml_backend_tensor_get(const struct ggml_tensor * tensor, void * data, size_t offset, size_t size); + GGML_API void ggml_backend_tensor_memset( struct ggml_tensor * tensor, uint8_t value, size_t offset, size_t size); + + GGML_API void ggml_backend_synchronize(ggml_backend_t backend); + + GGML_API ggml_backend_graph_plan_t ggml_backend_graph_plan_create(ggml_backend_t backend, struct ggml_cgraph * cgraph); + GGML_API void ggml_backend_graph_plan_free (ggml_backend_t backend, ggml_backend_graph_plan_t plan); + + GGML_API enum ggml_status ggml_backend_graph_plan_compute (ggml_backend_t backend, ggml_backend_graph_plan_t plan); + GGML_API enum ggml_status ggml_backend_graph_compute (ggml_backend_t backend, struct ggml_cgraph * cgraph); + GGML_API enum ggml_status ggml_backend_graph_compute_async(ggml_backend_t backend, struct ggml_cgraph * cgraph); + + // NOTE: will be removed, use device version instead + GGML_API bool ggml_backend_supports_op(ggml_backend_t backend, const struct ggml_tensor * op); + GGML_API bool ggml_backend_supports_buft(ggml_backend_t backend, ggml_backend_buffer_type_t buft); + GGML_API bool ggml_backend_offload_op(ggml_backend_t backend, const struct ggml_tensor * op); + + // asynchronous copy + // the copy is performed after all the currently queued operations in backend_src + // backend_dst will wait for the copy to complete before performing other operations + // automatic fallback to sync copy if async is not supported + GGML_API void ggml_backend_tensor_copy_async(ggml_backend_t backend_src, ggml_backend_t backend_dst, struct ggml_tensor * src, struct ggml_tensor * dst); + + GGML_API ggml_backend_dev_t ggml_backend_get_device(ggml_backend_t backend); + + // + // Events + // + + GGML_API ggml_backend_event_t ggml_backend_event_new(ggml_backend_dev_t device); + GGML_API void ggml_backend_event_free(ggml_backend_event_t event); + GGML_API void ggml_backend_event_record(ggml_backend_event_t event, ggml_backend_t backend); + GGML_API void ggml_backend_event_synchronize(ggml_backend_event_t event); + GGML_API void ggml_backend_event_wait(ggml_backend_t backend, ggml_backend_event_t event); + + // + // Backend device + // + + enum ggml_backend_dev_type { + // CPU device using system memory + GGML_BACKEND_DEVICE_TYPE_CPU, + // GPU device using dedicated memory + GGML_BACKEND_DEVICE_TYPE_GPU, + // integrated GPU device using host memory + GGML_BACKEND_DEVICE_TYPE_IGPU, + // accelerator devices intended to be used together with the CPU backend (e.g. BLAS or AMX) + GGML_BACKEND_DEVICE_TYPE_ACCEL + }; + + // functionality supported by the device + struct ggml_backend_dev_caps { + // asynchronous operations + bool async; + // pinned host buffer + bool host_buffer; + // creating buffers from host ptr + bool buffer_from_host_ptr; + // event synchronization + bool events; + }; + + // all the device properties + struct ggml_backend_dev_props { + // device name + const char * name; + // device description + const char * description; + // device free memory in bytes + size_t memory_free; + // device total memory in bytes + size_t memory_total; + // device type + enum ggml_backend_dev_type type; + // device id + // for PCI devices, this should be the PCI bus id formatted as "domain:bus:device.function" (e.g. "0000:01:00.0") + // if the id is unknown, this should be NULL + const char * device_id; + // device capabilities + struct ggml_backend_dev_caps caps; + }; + + GGML_API const char * ggml_backend_dev_name(ggml_backend_dev_t device); + GGML_API const char * ggml_backend_dev_description(ggml_backend_dev_t device); + GGML_API void ggml_backend_dev_memory(ggml_backend_dev_t device, size_t * free, size_t * total); + GGML_API enum ggml_backend_dev_type ggml_backend_dev_type(ggml_backend_dev_t device); + GGML_API void ggml_backend_dev_get_props(ggml_backend_dev_t device, struct ggml_backend_dev_props * props); + GGML_API ggml_backend_reg_t ggml_backend_dev_backend_reg(ggml_backend_dev_t device); + GGML_API ggml_backend_t ggml_backend_dev_init(ggml_backend_dev_t device, const char * params); + GGML_API ggml_backend_buffer_type_t ggml_backend_dev_buffer_type(ggml_backend_dev_t device); + GGML_API ggml_backend_buffer_type_t ggml_backend_dev_host_buffer_type(ggml_backend_dev_t device); + GGML_API ggml_backend_buffer_t ggml_backend_dev_buffer_from_host_ptr(ggml_backend_dev_t device, void * ptr, size_t size, size_t max_tensor_size); + + GGML_API bool ggml_backend_dev_supports_op(ggml_backend_dev_t device, const struct ggml_tensor * op); + GGML_API bool ggml_backend_dev_supports_buft(ggml_backend_dev_t device, ggml_backend_buffer_type_t buft); + GGML_API bool ggml_backend_dev_offload_op(ggml_backend_dev_t device, const struct ggml_tensor * op); + + // + // Backend (reg) + // + + GGML_API const char * ggml_backend_reg_name(ggml_backend_reg_t reg); + GGML_API size_t ggml_backend_reg_dev_count(ggml_backend_reg_t reg); + GGML_API ggml_backend_dev_t ggml_backend_reg_dev_get(ggml_backend_reg_t reg, size_t index); + GGML_API void * ggml_backend_reg_get_proc_address(ggml_backend_reg_t reg, const char * name); + + // Common functions that may be obtained using ggml_backend_reg_get_proc_address + + // Split buffer type for tensor parallelism + typedef ggml_backend_buffer_type_t (*ggml_backend_split_buffer_type_t)(int main_device, const float * tensor_split); + // Set the number of threads for the backend + typedef void (*ggml_backend_set_n_threads_t)(ggml_backend_t backend, int n_threads); + // Get additional buffer types provided by the device (returns a NULL-terminated array) + typedef ggml_backend_buffer_type_t * (*ggml_backend_dev_get_extra_bufts_t)(ggml_backend_dev_t device); + // Set the abort callback for the backend + typedef void (*ggml_backend_set_abort_callback_t)(ggml_backend_t backend, ggml_abort_callback abort_callback, void * abort_callback_data); + // Get a list of feature flags supported by the backend (returns a NULL-terminated array) + struct ggml_backend_feature { + const char * name; + const char * value; + }; + typedef struct ggml_backend_feature * (*ggml_backend_get_features_t)(ggml_backend_reg_t reg); + + // + // Backend registry + // + + GGML_API void ggml_backend_register(ggml_backend_reg_t reg); + + GGML_API void ggml_backend_device_register(ggml_backend_dev_t device); + + // Backend (reg) enumeration + GGML_API size_t ggml_backend_reg_count(void); + GGML_API ggml_backend_reg_t ggml_backend_reg_get(size_t index); + GGML_API ggml_backend_reg_t ggml_backend_reg_by_name(const char * name); + + // Device enumeration + GGML_API size_t ggml_backend_dev_count(void); + GGML_API ggml_backend_dev_t ggml_backend_dev_get(size_t index); + GGML_API ggml_backend_dev_t ggml_backend_dev_by_name(const char * name); + GGML_API ggml_backend_dev_t ggml_backend_dev_by_type(enum ggml_backend_dev_type type); + + // Direct backend (stream) initialization + // = ggml_backend_dev_init(ggml_backend_dev_by_name(name), params) + GGML_API ggml_backend_t ggml_backend_init_by_name(const char * name, const char * params); + // = ggml_backend_dev_init(ggml_backend_dev_by_type(type), params) + GGML_API ggml_backend_t ggml_backend_init_by_type(enum ggml_backend_dev_type type, const char * params); + // = ggml_backend_dev_init(ggml_backend_dev_by_type(GPU) OR ggml_backend_dev_by_type(CPU), NULL) + GGML_API ggml_backend_t ggml_backend_init_best(void); + + // Load a backend from a dynamic library and register it + GGML_API ggml_backend_reg_t ggml_backend_load(const char * path); + // Unload a backend if loaded dynamically and unregister it + GGML_API void ggml_backend_unload(ggml_backend_reg_t reg); + // Load all known backends from dynamic libraries + GGML_API void ggml_backend_load_all(void); + GGML_API void ggml_backend_load_all_from_path(const char * dir_path); + + // + // Backend scheduler + // + + // The backend scheduler allows for multiple backend devices to be used together + // Handles compute buffer allocation, assignment of tensors to backends, and copying of tensors between backends + // The backends are selected based on: + // - the backend that supports the operation + // - the location of the pre-allocated tensors (e.g. the weights) + /* + Example usage: + + // operations that use tensors allocated in a buffer with USAGE_WEIGHTS will be assigned + // preferably to run on the same backend as the buffer + ggml_backend_buffer_set_usage(buf_weights, GGML_BACKEND_BUFFER_USAGE_WEIGHTS); + + sched = ggml_backend_sched_new({backend_gpu, backend_gpu2, backend_cpu}, NULL, num_backends, GGML_DEFAULT_GRAPH_SIZE, false, true); + + // initialize buffers from a max size graph (optional) + reserve_graph = build_graph(sched, max_batch_size); + + // manually assign nodes to a backend (optional, should not be needed in most cases) + struct ggml_tensor * node = ggml_mul_mat(ctx, ...); + ggml_backend_sched_set_tensor_backend(sched, node, backend_gpu); + + ggml_backend_sched_reserve(sched, reserve_graph); + + // compute + graph = build_graph(sched); // the graph and its tensors are single-use in terms of allocation, multi-use in terms of computation + for (int i = 0; i < 10; ++i) { + ggml_backend_sched_graph_compute(sched, graph); // on the first iteration the graph is allocated automatically + } + + // if there are graph inputs: + graph = build_graph(sched); // get a new graph that is not allocated (the metadata for the old graph is freed once ggml_free is called) + ggml_backend_sched_reset(sched); // clear the allocation of the previous graph + ggml_backend_sched_alloc_graph(sched, graph); // explicitly allocate the new graph but do not execute it + ggml_backend_tensor_set(input_tensor, ...); // copy data to the newly allocated graph tensors + ggml_backend_sched_graph_compute(sched, graph); // execute the graph + + // as an alternative to the above it is also possible to assign the inputs to a dedicated context and + // allocate them statically via ggml_backend_alloc_ctx_tensors + } + */ + + typedef struct ggml_backend_sched * ggml_backend_sched_t; + + // Evaluation callback for each node in the graph (set with ggml_backend_sched_set_eval_callback) + // when ask == true, the scheduler wants to know if the user wants to observe this node + // this allows the scheduler to batch nodes together in order to evaluate them in a single call + // + // when ask == false, the scheduler is passing the node tensor to the user for observation + // if the user returns false, the scheduler will cancel the graph compute + // + typedef bool (*ggml_backend_sched_eval_callback)(struct ggml_tensor * t, bool ask, void * user_data); + + // Initialize a backend scheduler, backends with low index are given priority over backends with high index + GGML_API ggml_backend_sched_t ggml_backend_sched_new(ggml_backend_t * backends, ggml_backend_buffer_type_t * bufts, int n_backends, size_t graph_size, bool parallel, bool op_offload); + GGML_API void ggml_backend_sched_free(ggml_backend_sched_t sched); + + // Initialize backend buffers from a measure graph + GGML_API void ggml_backend_sched_reserve_size(ggml_backend_sched_t sched, struct ggml_cgraph * measure_graph, size_t * sizes); + GGML_API bool ggml_backend_sched_reserve(ggml_backend_sched_t sched, struct ggml_cgraph * measure_graph); // returns success + + GGML_API int ggml_backend_sched_get_n_backends(ggml_backend_sched_t sched); + GGML_API ggml_backend_t ggml_backend_sched_get_backend(ggml_backend_sched_t sched, int i); + + // Get the number of splits of the last graph + GGML_API int ggml_backend_sched_get_n_splits(ggml_backend_sched_t sched); + GGML_API int ggml_backend_sched_get_n_copies(ggml_backend_sched_t sched); + + GGML_API ggml_backend_buffer_type_t ggml_backend_sched_get_buffer_type(ggml_backend_sched_t sched, ggml_backend_t backend); + GGML_API size_t ggml_backend_sched_get_buffer_size(ggml_backend_sched_t sched, ggml_backend_t backend); + + GGML_API void ggml_backend_sched_set_tensor_backend(ggml_backend_sched_t sched, struct ggml_tensor * node, ggml_backend_t backend); + GGML_API ggml_backend_t ggml_backend_sched_get_tensor_backend(ggml_backend_sched_t sched, struct ggml_tensor * node); + + // Split graph without allocating it + GGML_API void ggml_backend_sched_split_graph(ggml_backend_sched_t sched, struct ggml_cgraph * graph); + + // Allocate and compute graph on the backend scheduler + GGML_API bool ggml_backend_sched_alloc_graph(ggml_backend_sched_t sched, struct ggml_cgraph * graph); // returns success + GGML_API enum ggml_status ggml_backend_sched_graph_compute(ggml_backend_sched_t sched, struct ggml_cgraph * graph); + GGML_API enum ggml_status ggml_backend_sched_graph_compute_async(ggml_backend_sched_t sched, struct ggml_cgraph * graph); + GGML_API void ggml_backend_sched_synchronize(ggml_backend_sched_t sched); + + // Reset all assignments and allocators - must be called before changing the node backends or allocating a new graph. + // This in effect deallocates all tensors that were previously allocated and leaves them with dangling pointers. + // The correct way to use this API is to discard the deallocated tensors and create new ones. + GGML_API void ggml_backend_sched_reset(ggml_backend_sched_t sched); + + // Set a callback to be called for each resulting node during graph compute + GGML_API void ggml_backend_sched_set_eval_callback(ggml_backend_sched_t sched, ggml_backend_sched_eval_callback callback, void * user_data); + + // + // Utils + // + + struct ggml_backend_graph_copy { + ggml_backend_buffer_t buffer; + struct ggml_context * ctx_allocated; + struct ggml_context * ctx_unallocated; + struct ggml_cgraph * graph; + }; + + // Copy a graph to a different backend + GGML_API struct ggml_backend_graph_copy ggml_backend_graph_copy(ggml_backend_t backend, struct ggml_cgraph * graph); + GGML_API void ggml_backend_graph_copy_free(struct ggml_backend_graph_copy copy); + + typedef bool (*ggml_backend_eval_callback)(int node_index, struct ggml_tensor * t1, struct ggml_tensor * t2, void * user_data); + + // Compare the output of two backends + GGML_API bool ggml_backend_compare_graph_backend(ggml_backend_t backend1, ggml_backend_t backend2, struct ggml_cgraph * graph, ggml_backend_eval_callback callback, void * user_data, struct ggml_tensor const * const * test_nodes, size_t num_test_nodes); + + // Tensor initialization + GGML_API enum ggml_status ggml_backend_tensor_alloc(ggml_backend_buffer_t buffer, struct ggml_tensor * tensor, void * addr); + GGML_API enum ggml_status ggml_backend_view_init(struct ggml_tensor * tensor); + + // CPU buffer types are always available + GGML_API ggml_backend_buffer_t ggml_backend_cpu_buffer_from_ptr(void * ptr, size_t size); + GGML_API ggml_backend_buffer_type_t ggml_backend_cpu_buffer_type(void); + +#ifdef __cplusplus +} +#endif diff --git a/dist/include/ggml-blas.h b/dist/include/ggml-blas.h new file mode 100644 index 0000000..87a81b3 --- /dev/null +++ b/dist/include/ggml-blas.h @@ -0,0 +1,25 @@ +#pragma once + +#include "ggml.h" +#include "ggml-backend.h" + + +#ifdef __cplusplus +extern "C" { +#endif + +// backend API +GGML_BACKEND_API ggml_backend_t ggml_backend_blas_init(void); + +GGML_BACKEND_API bool ggml_backend_is_blas(ggml_backend_t backend); + +// number of threads used for conversion to float +// for openblas and blis, this will also set the number of threads used for blas operations +GGML_BACKEND_API void ggml_backend_blas_set_n_threads(ggml_backend_t backend_blas, int n_threads); + +GGML_BACKEND_API ggml_backend_reg_t ggml_backend_blas_reg(void); + + +#ifdef __cplusplus +} +#endif diff --git a/dist/include/ggml-cann.h b/dist/include/ggml-cann.h new file mode 100644 index 0000000..74af465 --- /dev/null +++ b/dist/include/ggml-cann.h @@ -0,0 +1,123 @@ +/* + * Copyright (c) 2023-2026 The ggml authors + * + * 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. + */ + +#pragma once + +#include "ggml-backend.h" +#include "ggml.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @brief Maximum number of CANN devices supported. + */ +#define GGML_CANN_MAX_DEVICES 16 + +GGML_BACKEND_API ggml_backend_reg_t ggml_backend_cann_reg(void); + +/** + * @brief Initializes the CANN backend for a specified device. + * + * This function initializes the CANN backend for the given device. + * It verifies the device index, allocates a context, and creates a backend + * instance. + * + * @param device The index of the device to initialize. + * @return A pointer to the initialized backend instance, or nullptr on failure. + */ +GGML_BACKEND_API ggml_backend_t ggml_backend_cann_init(int32_t device); + +/** + * @brief Checks if a given backend is a CANN backend. + * + * This function verifies if the provided backend is a CANN backend by comparing + * its GUID with the CANN backend's GUID. + * + * @param backend The backend instance to check. + * @return True if the backend is a CANN backend, false otherwise. + */ +GGML_BACKEND_API bool ggml_backend_is_cann(ggml_backend_t backend); + +/** + * @brief Retrieves the CANN buffer type for a specified device. + * + * This function initializes and returns the buffer type interface associated + * with the given device. It ensures thread-safe access using a mutex. + * + * @param device The device index for which to retrieve the buffer type. + * @return A pointer to the buffer type interface for the specified device, or + * nullptr if the device index is out of range. + */ +GGML_BACKEND_API ggml_backend_buffer_type_t +ggml_backend_cann_buffer_type(int32_t device); + +/** + * @brief Retrieves the number of CANN devices available. + * + * This function returns the number of CANN devices available based on + * information obtained from `ggml_cann_info()`. + * + * @return The number of CANN devices available. + */ +GGML_BACKEND_API int32_t ggml_backend_cann_get_device_count(void); + +/** + * @brief pinned host buffer for use with the CPU backend for faster copies between CPU and NPU. + * + * @return A pointer to the host buffer type interface. + */ +GGML_BACKEND_API ggml_backend_buffer_type_t ggml_backend_cann_host_buffer_type(void); + +/** + * @brief Retrieves the description of a specific CANN device. + * + * This function sets the specified device, retrieves the SoC name, + * and writes it into the provided description buffer. + * + * @param device The device index to retrieve the description for. + * @param description Pointer to a buffer where the description will be written. + * @param description_size Size of the description buffer. + */ +GGML_BACKEND_API void ggml_backend_cann_get_device_description( + int32_t device, char* description, size_t description_size); + +/** + * @brief Retrieves the memory information of a specific CANN device. + * + * This function sets the specified device, retrieves the free and total + * memory information of the specified type (ACL_HBM_MEM), and stores them + * in the provided pointers. + * + * @param device The device index to retrieve memory information for. + * @param free Pointer to a variable where the free memory size will be stored. + * @param total Pointer to a variable where the total memory size will be + * stored. + */ +GGML_BACKEND_API void ggml_backend_cann_get_device_memory(int32_t device, + size_t* free, + size_t* total); + +#ifdef __cplusplus +} +#endif diff --git a/dist/include/ggml-cpp.h b/dist/include/ggml-cpp.h new file mode 100644 index 0000000..48aa796 --- /dev/null +++ b/dist/include/ggml-cpp.h @@ -0,0 +1,39 @@ +#pragma once + +#ifndef __cplusplus +#error "This header is for C++ only" +#endif + +#include "ggml.h" +#include "ggml-alloc.h" +#include "ggml-backend.h" +#include "gguf.h" +#include + +// Smart pointers for ggml types + +// ggml + +struct ggml_context_deleter { void operator()(ggml_context * ctx) { ggml_free(ctx); } }; +struct gguf_context_deleter { void operator()(gguf_context * ctx) { gguf_free(ctx); } }; + +typedef std::unique_ptr ggml_context_ptr; +typedef std::unique_ptr gguf_context_ptr; + +// ggml-alloc + +struct ggml_gallocr_deleter { void operator()(ggml_gallocr_t galloc) { ggml_gallocr_free(galloc); } }; + +typedef std::unique_ptr ggml_gallocr_ptr; + +// ggml-backend + +struct ggml_backend_deleter { void operator()(ggml_backend_t backend) { ggml_backend_free(backend); } }; +struct ggml_backend_buffer_deleter { void operator()(ggml_backend_buffer_t buffer) { ggml_backend_buffer_free(buffer); } }; +struct ggml_backend_event_deleter { void operator()(ggml_backend_event_t event) { ggml_backend_event_free(event); } }; +struct ggml_backend_sched_deleter { void operator()(ggml_backend_sched_t sched) { ggml_backend_sched_free(sched); } }; + +typedef std::unique_ptr ggml_backend_ptr; +typedef std::unique_ptr ggml_backend_buffer_ptr; +typedef std::unique_ptr ggml_backend_event_ptr; +typedef std::unique_ptr ggml_backend_sched_ptr; diff --git a/dist/include/ggml-cpu.h b/dist/include/ggml-cpu.h new file mode 100644 index 0000000..e3e067c --- /dev/null +++ b/dist/include/ggml-cpu.h @@ -0,0 +1,151 @@ +#pragma once + +#include "ggml.h" +#include "ggml-backend.h" + +#ifdef __cplusplus +extern "C" { +#endif + + // the compute plan that needs to be prepared for ggml_graph_compute() + // since https://github.com/ggml-org/ggml/issues/287 + struct ggml_cplan { + size_t work_size; // size of work buffer, calculated by `ggml_graph_plan()` + uint8_t * work_data; // work buffer, to be allocated by caller before calling to `ggml_graph_compute()` + + int n_threads; + struct ggml_threadpool * threadpool; + + // abort ggml_graph_compute when true + ggml_abort_callback abort_callback; + void * abort_callback_data; + + // use only reference implementations + bool use_ref; + }; + + // numa strategies + enum ggml_numa_strategy { + GGML_NUMA_STRATEGY_DISABLED = 0, + GGML_NUMA_STRATEGY_DISTRIBUTE = 1, + GGML_NUMA_STRATEGY_ISOLATE = 2, + GGML_NUMA_STRATEGY_NUMACTL = 3, + GGML_NUMA_STRATEGY_MIRROR = 4, + GGML_NUMA_STRATEGY_COUNT + }; + + GGML_BACKEND_API void ggml_numa_init(enum ggml_numa_strategy numa); // call once for better performance on NUMA systems + GGML_BACKEND_API bool ggml_is_numa(void); // true if init detected that system has >1 NUMA node + + GGML_BACKEND_API struct ggml_tensor * ggml_new_i32(struct ggml_context * ctx, int32_t value); + GGML_BACKEND_API struct ggml_tensor * ggml_new_f32(struct ggml_context * ctx, float value); + + GGML_BACKEND_API struct ggml_tensor * ggml_set_i32 (struct ggml_tensor * tensor, int32_t value); + GGML_BACKEND_API struct ggml_tensor * ggml_set_f32 (struct ggml_tensor * tensor, float value); + + GGML_BACKEND_API int32_t ggml_get_i32_1d(const struct ggml_tensor * tensor, int i); + GGML_BACKEND_API void ggml_set_i32_1d(const struct ggml_tensor * tensor, int i, int32_t value); + + GGML_BACKEND_API int32_t ggml_get_i32_nd(const struct ggml_tensor * tensor, int i0, int i1, int i2, int i3); + GGML_BACKEND_API void ggml_set_i32_nd(const struct ggml_tensor * tensor, int i0, int i1, int i2, int i3, int32_t value); + + GGML_BACKEND_API float ggml_get_f32_1d(const struct ggml_tensor * tensor, int i); + GGML_BACKEND_API void ggml_set_f32_1d(const struct ggml_tensor * tensor, int i, float value); + + GGML_BACKEND_API float ggml_get_f32_nd(const struct ggml_tensor * tensor, int i0, int i1, int i2, int i3); + GGML_BACKEND_API void ggml_set_f32_nd(const struct ggml_tensor * tensor, int i0, int i1, int i2, int i3, float value); + + GGML_BACKEND_API struct ggml_threadpool * ggml_threadpool_new (struct ggml_threadpool_params * params); + GGML_BACKEND_API void ggml_threadpool_free (struct ggml_threadpool * threadpool); + GGML_BACKEND_API int ggml_threadpool_get_n_threads (struct ggml_threadpool * threadpool); + GGML_BACKEND_API void ggml_threadpool_pause (struct ggml_threadpool * threadpool); + GGML_BACKEND_API void ggml_threadpool_resume (struct ggml_threadpool * threadpool); + + // ggml_graph_plan() has to be called before ggml_graph_compute() + // when plan.work_size > 0, caller must allocate memory for plan.work_data + GGML_BACKEND_API struct ggml_cplan ggml_graph_plan( + const struct ggml_cgraph * cgraph, + int n_threads, /* = GGML_DEFAULT_N_THREADS */ + struct ggml_threadpool * threadpool /* = NULL */ ); + GGML_BACKEND_API enum ggml_status ggml_graph_compute(struct ggml_cgraph * cgraph, struct ggml_cplan * cplan); + + // same as ggml_graph_compute() but the work data is allocated as a part of the context + // note: the drawback of this API is that you must have ensured that the context has enough memory for the work data + GGML_BACKEND_API enum ggml_status ggml_graph_compute_with_ctx(struct ggml_context * ctx, struct ggml_cgraph * cgraph, int n_threads); + + // + // system info + // + + // x86 + GGML_BACKEND_API int ggml_cpu_has_sse3 (void); + GGML_BACKEND_API int ggml_cpu_has_ssse3 (void); + GGML_BACKEND_API int ggml_cpu_has_avx (void); + GGML_BACKEND_API int ggml_cpu_has_avx_vnni (void); + GGML_BACKEND_API int ggml_cpu_has_avx2 (void); + GGML_BACKEND_API int ggml_cpu_has_bmi2 (void); + GGML_BACKEND_API int ggml_cpu_has_f16c (void); + GGML_BACKEND_API int ggml_cpu_has_fma (void); + GGML_BACKEND_API int ggml_cpu_has_avx512 (void); + GGML_BACKEND_API int ggml_cpu_has_avx512_vbmi(void); + GGML_BACKEND_API int ggml_cpu_has_avx512_vnni(void); + GGML_BACKEND_API int ggml_cpu_has_avx512_bf16(void); + GGML_BACKEND_API int ggml_cpu_has_amx_int8 (void); + // ARM + GGML_BACKEND_API int ggml_cpu_has_neon (void); + GGML_BACKEND_API int ggml_cpu_has_arm_fma (void); + GGML_BACKEND_API int ggml_cpu_has_fp16_va (void); + GGML_BACKEND_API int ggml_cpu_has_dotprod (void); + GGML_BACKEND_API int ggml_cpu_has_matmul_int8(void); + GGML_BACKEND_API int ggml_cpu_has_sve (void); + GGML_BACKEND_API int ggml_cpu_get_sve_cnt (void); // sve vector length in bytes + GGML_BACKEND_API int ggml_cpu_has_sme (void); + // other + GGML_BACKEND_API int ggml_cpu_has_riscv_v (void); + GGML_BACKEND_API int ggml_cpu_get_rvv_vlen (void); // risc-v vector length in bytes + GGML_BACKEND_API int ggml_cpu_has_vsx (void); + GGML_BACKEND_API int ggml_cpu_has_vxe (void); + GGML_BACKEND_API int ggml_cpu_has_wasm_simd (void); + GGML_BACKEND_API int ggml_cpu_has_llamafile (void); + + // Internal types and functions exposed for tests and benchmarks + + typedef void (*ggml_vec_dot_t) (int n, float * GGML_RESTRICT s, size_t bs, const void * GGML_RESTRICT x, size_t bx, + const void * GGML_RESTRICT y, size_t by, int nrc); + + struct ggml_type_traits_cpu { + ggml_from_float_t from_float; + ggml_vec_dot_t vec_dot; + enum ggml_type vec_dot_type; + int64_t nrows; // number of rows to process simultaneously + }; + + GGML_BACKEND_API const struct ggml_type_traits_cpu * ggml_get_type_traits_cpu(enum ggml_type type); + + GGML_BACKEND_API void ggml_cpu_init(void); + + // + // CPU backend + // + + GGML_BACKEND_API ggml_backend_t ggml_backend_cpu_init(void); + + GGML_BACKEND_API bool ggml_backend_is_cpu (ggml_backend_t backend); + GGML_BACKEND_API void ggml_backend_cpu_set_n_threads (ggml_backend_t backend_cpu, int n_threads); + GGML_BACKEND_API void ggml_backend_cpu_set_threadpool (ggml_backend_t backend_cpu, ggml_threadpool_t threadpool); + GGML_BACKEND_API void ggml_backend_cpu_set_abort_callback(ggml_backend_t backend_cpu, ggml_abort_callback abort_callback, void * abort_callback_data); + + GGML_BACKEND_API void ggml_backend_cpu_set_use_ref(ggml_backend_t backend_cpu, bool use_ref); + + GGML_BACKEND_API ggml_backend_reg_t ggml_backend_cpu_reg(void); + + GGML_BACKEND_API void ggml_cpu_fp32_to_fp32(const float *, float *, int64_t); + GGML_BACKEND_API void ggml_cpu_fp32_to_i32 (const float *, int32_t *, int64_t); + GGML_BACKEND_API void ggml_cpu_fp32_to_fp16(const float *, ggml_fp16_t *, int64_t); + GGML_BACKEND_API void ggml_cpu_fp16_to_fp32(const ggml_fp16_t *, float *, int64_t); + GGML_BACKEND_API void ggml_cpu_fp32_to_bf16(const float *, ggml_bf16_t *, int64_t); + GGML_BACKEND_API void ggml_cpu_bf16_to_fp32(const ggml_bf16_t *, float *, int64_t); + +#ifdef __cplusplus +} +#endif diff --git a/dist/include/ggml-cuda.h b/dist/include/ggml-cuda.h new file mode 100644 index 0000000..22ad2c0 --- /dev/null +++ b/dist/include/ggml-cuda.h @@ -0,0 +1,47 @@ +#pragma once + +#include "ggml.h" +#include "ggml-backend.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef GGML_USE_HIP +#define GGML_CUDA_NAME "ROCm" +#define GGML_CUBLAS_NAME "hipBLAS" +#elif defined(GGML_USE_MUSA) +#define GGML_CUDA_NAME "MUSA" +#define GGML_CUBLAS_NAME "muBLAS" +#else +#define GGML_CUDA_NAME "CUDA" +#define GGML_CUBLAS_NAME "cuBLAS" +#endif +#define GGML_CUDA_MAX_DEVICES 16 + +// backend API +GGML_BACKEND_API ggml_backend_t ggml_backend_cuda_init(int device); + +GGML_BACKEND_API bool ggml_backend_is_cuda(ggml_backend_t backend); + +// device buffer +GGML_BACKEND_API ggml_backend_buffer_type_t ggml_backend_cuda_buffer_type(int device); + +// split tensor buffer that splits matrices by rows across multiple devices +GGML_BACKEND_API ggml_backend_buffer_type_t ggml_backend_cuda_split_buffer_type(int main_device, const float * tensor_split); + +// pinned host buffer for use with the CPU backend for faster copies between CPU and GPU +GGML_BACKEND_API ggml_backend_buffer_type_t ggml_backend_cuda_host_buffer_type(void); + +GGML_BACKEND_API int ggml_backend_cuda_get_device_count(void); +GGML_BACKEND_API void ggml_backend_cuda_get_device_description(int device, char * description, size_t description_size); +GGML_BACKEND_API void ggml_backend_cuda_get_device_memory(int device, size_t * free, size_t * total); + +GGML_BACKEND_API bool ggml_backend_cuda_register_host_buffer(void * buffer, size_t size); +GGML_BACKEND_API void ggml_backend_cuda_unregister_host_buffer(void * buffer); + +GGML_BACKEND_API ggml_backend_reg_t ggml_backend_cuda_reg(void); + +#ifdef __cplusplus +} +#endif diff --git a/dist/include/ggml-hexagon.h b/dist/include/ggml-hexagon.h new file mode 100644 index 0000000..6a3a337 --- /dev/null +++ b/dist/include/ggml-hexagon.h @@ -0,0 +1,62 @@ +#pragma once + +#include "ggml.h" +#include "ggml-backend.h" + +#ifdef __cplusplus +extern "C" { +#endif + +// backend API +GGML_BACKEND_API ggml_backend_t ggml_backend_hexagon_init(void); + +GGML_BACKEND_API bool ggml_backend_is_hexagon(ggml_backend_t backend); + +GGML_BACKEND_API ggml_backend_reg_t ggml_backend_hexagon_reg(void); + +// Mega-kernel transport self-test. Allocates 3 small FastRPC buffers +// (descriptor, ack, logits), ships a minimal-but-valid htp_mega_descriptor +// to the DSP via HTP_OP_QWEN35_COMPILE, invokes HTP_OP_QWEN35_STEP, reads +// back the stub-produced logits (should be all zeros), and verifies. +// +// Returns 0 on success, negative on failure. Logs diagnostic to stderr. +// Scope: proves the host↔DSP transport for the mega-kernel entry points +// with the skeleton stubs from qwen35-forward-ops.c. No real inference. +GGML_BACKEND_API int ggml_backend_hexagon_qwen35_selftest(ggml_backend_t backend); + +// Mega-kernel graph compiler. Walks the given ggml_cgraph, emits an +// htp_mega_descriptor (ops + tensor table + buffer table), registers every +// distinct ggml_backend_buffer_t the graph touches as a persistent FastRPC +// buffer, ships everything to the DSP in a single HTP_OP_QWEN35_COMPILE +// message, and stores the descriptor in the DSP's static slot. +// +// Tensor table entries carry (buffer_id, offset_in_bytes) so the DSP +// interpreter can resolve any tensor id to a pointer in O(1). Op entries +// reference src/dst tensor ids; unsupported GGML ops are emitted as +// HTP_MEGA_NOP (the interpreter will skip them). +// +// logits_tensor identifies which tensor's data should be copied back to the +// host when a subsequent step call completes. For a real Qwen3.5 model this +// is the lm_head output tensor; for a test graph it can be any intermediate +// node. Pass NULL to default to the last cgraph node. +// +// Returns 0 on success, negative on failure. +GGML_BACKEND_API int ggml_backend_hexagon_qwen35_compile( + ggml_backend_t backend, + struct ggml_cgraph * cgraph, + struct ggml_tensor * logits_tensor); + +// Invokes one forward-pass step of the compiled mega-kernel on the DSP. +// The descriptor must have been shipped via ggml_backend_hexagon_qwen35_compile. +// input_token_id + position identify the current decode input; logits_out +// receives n_logits floats (must be ≥ descriptor vocab_size). +GGML_BACKEND_API int ggml_backend_hexagon_qwen35_step( + ggml_backend_t backend, + uint32_t input_token_id, + int32_t position, + float * logits_out, + size_t n_logits); + +#ifdef __cplusplus +} +#endif diff --git a/dist/include/ggml-metal.h b/dist/include/ggml-metal.h new file mode 100644 index 0000000..433838f --- /dev/null +++ b/dist/include/ggml-metal.h @@ -0,0 +1,61 @@ +// Note: this description is outdated +// +// An interface allowing to compute ggml_cgraph with Metal +// +// This is a fully functional interface that extends ggml with GPU support for Apple devices. +// A similar interface can be created for other GPU backends (e.g. Vulkan, CUDA, etc.) +// +// How it works? +// +// As long as your program can create and evaluate a ggml_cgraph on the CPU, you can use this +// interface to evaluate the same graph on the GPU. Instead of using ggml_graph_compute(), you +// use ggml_metal_graph_compute() (or ggml_vulkan_graph_compute(), etc.) +// +// You only need to make sure that all memory buffers that you used during the graph creation +// are mapped to the device memory with the ggml_metal_add_buffer() function. This mapping is +// used during the graph evaluation to determine the arguments of the compute kernels. +// +// Synchronization between device and host memory (for example for input and output tensors) +// is done with the ggml_metal_set_tensor() and ggml_metal_get_tensor() functions. +// + +#pragma once + +#include "ggml.h" +#include "ggml-backend.h" + +#include +#include + +struct ggml_tensor; +struct ggml_cgraph; + +#ifdef __cplusplus +extern "C" { +#endif + +// +// backend API +// user-code should use only these functions +// + +// TODO: remove in the future +GGML_BACKEND_API ggml_backend_t ggml_backend_metal_init(void); + +GGML_BACKEND_API bool ggml_backend_is_metal(ggml_backend_t backend); + +GGML_BACKEND_API void ggml_backend_metal_set_abort_callback(ggml_backend_t backend, ggml_abort_callback abort_callback, void * user_data); + +// helper to check if the device supports a specific family +// ideally, the user code should be doing these checks +// ref: https://developer.apple.com/metal/Metal-Feature-Set-Tables.pdf +GGML_BACKEND_API bool ggml_backend_metal_supports_family(ggml_backend_t backend, int family); + +// capture all command buffers committed the next time `ggml_backend_graph_compute` is called +GGML_BACKEND_API void ggml_backend_metal_capture_next_compute(ggml_backend_t backend); + +GGML_BACKEND_API ggml_backend_reg_t ggml_backend_metal_reg(void); + +#ifdef __cplusplus +} +#endif diff --git a/dist/include/ggml-opencl.h b/dist/include/ggml-opencl.h new file mode 100644 index 0000000..6b61771 --- /dev/null +++ b/dist/include/ggml-opencl.h @@ -0,0 +1,26 @@ +#ifndef GGML_OPENCL_H +#define GGML_OPENCL_H + +#include "ggml.h" +#include "ggml-backend.h" + +#ifdef __cplusplus +extern "C" { +#endif + +// +// backend API +// +GGML_BACKEND_API ggml_backend_t ggml_backend_opencl_init(void); +GGML_BACKEND_API bool ggml_backend_is_opencl(ggml_backend_t backend); + +GGML_BACKEND_API ggml_backend_buffer_type_t ggml_backend_opencl_buffer_type(void); +GGML_BACKEND_API ggml_backend_buffer_type_t ggml_backend_opencl_host_buffer_type(void); + +GGML_BACKEND_API ggml_backend_reg_t ggml_backend_opencl_reg(void); + +#ifdef __cplusplus +} +#endif + +#endif // GGML_OPENCL_H diff --git a/dist/include/ggml-openvino.h b/dist/include/ggml-openvino.h new file mode 100644 index 0000000..c43beb0 --- /dev/null +++ b/dist/include/ggml-openvino.h @@ -0,0 +1,37 @@ +#pragma once + +#include "ggml-backend.h" + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#define GGML_OPENVINO_NAME "OPENVINO" + +// backend API +GGML_BACKEND_API ggml_backend_t ggml_backend_openvino_init(int device); + +GGML_BACKEND_API bool ggml_backend_is_openvino(ggml_backend_t backend); + +GGML_BACKEND_API bool ggml_backend_buffer_is_openvino(ggml_backend_buffer_t buffer); + +GGML_BACKEND_API bool ggml_backend_buft_is_openvino(ggml_backend_buffer_type_t buft); + +GGML_BACKEND_API bool ggml_backend_buft_is_openvino_host(ggml_backend_buffer_type_t buft); + +GGML_BACKEND_API size_t ggml_backend_openvino_buffer_get_ctx_id(ggml_backend_buffer_t buffer); + +// device buffer +GGML_BACKEND_API ggml_backend_buffer_type_t ggml_backend_openvino_buffer_type(int device); + +GGML_BACKEND_API ggml_backend_buffer_type_t ggml_backend_openvino_host_buffer_type(int device); + +GGML_BACKEND_API int ggml_backend_openvino_get_device_count(void); + +GGML_BACKEND_API ggml_backend_reg_t ggml_backend_openvino_reg(void); + +#ifdef __cplusplus +} +#endif diff --git a/dist/include/ggml-opt.h b/dist/include/ggml-opt.h new file mode 100644 index 0000000..1c2ed79 --- /dev/null +++ b/dist/include/ggml-opt.h @@ -0,0 +1,256 @@ +// This file contains functionality for training models using GGML. +// It is not strictly needed vs. just vanilla GGML but it provides a more high-level interface for common needs such as datasets. +// At the bottom of this file especially there are relatively high-level functions that are suitable use or adaptation in user code. +// +// Module maintainer: Johannes Gäßler (@JohannesGaessler, johannesg@5d6.de) + +#pragma once + +#include "ggml.h" +#include "ggml-backend.h" + +#include + +#ifdef __cplusplus +extern "C" { +#endif + + struct ggml_opt_dataset; + struct ggml_opt_context; + struct ggml_opt_result; + + typedef struct ggml_opt_dataset * ggml_opt_dataset_t; + typedef struct ggml_opt_context * ggml_opt_context_t; + typedef struct ggml_opt_result * ggml_opt_result_t; + + // ====== Loss ====== + + // built-in loss types, i.e. the built-in quantities minimized by the optimizer + // custom loss types can be defined via mean or sum which simply reduce the outputs for all datapoints to a single value + enum ggml_opt_loss_type { + GGML_OPT_LOSS_TYPE_MEAN, + GGML_OPT_LOSS_TYPE_SUM, + GGML_OPT_LOSS_TYPE_CROSS_ENTROPY, + GGML_OPT_LOSS_TYPE_MEAN_SQUARED_ERROR, + }; + + // ====== Dataset ====== + + GGML_API ggml_opt_dataset_t ggml_opt_dataset_init( + enum ggml_type type_data, // the type for the internal data tensor + enum ggml_type type_label, // the type for the internal labels tensor + int64_t ne_datapoint, // number of elements per datapoint + int64_t ne_label, // number of elements per label + int64_t ndata, // total number of datapoints/labels + int64_t ndata_shard); // number of datapoints/labels per shard (unit at which the dataset is shuffled/copied) + GGML_API void ggml_opt_dataset_free(ggml_opt_dataset_t dataset); + + // get underlying tensors that store the data + GGML_API int64_t ggml_opt_dataset_ndata (ggml_opt_dataset_t dataset); + GGML_API struct ggml_tensor * ggml_opt_dataset_data (ggml_opt_dataset_t dataset); // shape = [ne_datapoint, ndata] + GGML_API struct ggml_tensor * ggml_opt_dataset_labels(ggml_opt_dataset_t dataset); // shape = [nd_label, ndata] + + // shuffle idata first datapoints from dataset with RNG from opt_ctx, shuffle all datapoints if idata is negative + GGML_API void ggml_opt_dataset_shuffle(ggml_opt_context_t opt_ctx, ggml_opt_dataset_t dataset, int64_t idata); + + // get batch at position ibatch from dataset and copy the data to data_batch and labels_batch + GGML_API void ggml_opt_dataset_get_batch( + ggml_opt_dataset_t dataset, + struct ggml_tensor * data_batch, // shape = [ne_datapoint, ndata_batch] + struct ggml_tensor * labels_batch, // shape = [ne_label, ndata_batch] + int64_t ibatch); + GGML_API void ggml_opt_dataset_get_batch_host( + ggml_opt_dataset_t dataset, + void * data_batch, + size_t nb_data_batch, + void * labels_batch, + int64_t ibatch); + + // ====== Model / Context ====== + + enum ggml_opt_build_type { + GGML_OPT_BUILD_TYPE_FORWARD = 10, + GGML_OPT_BUILD_TYPE_GRAD = 20, + GGML_OPT_BUILD_TYPE_OPT = 30, + }; + + enum ggml_opt_optimizer_type { + GGML_OPT_OPTIMIZER_TYPE_ADAMW, + GGML_OPT_OPTIMIZER_TYPE_SGD, + + GGML_OPT_OPTIMIZER_TYPE_COUNT + }; + + // parameters that control which optimizer is used and how said optimizer tries to find the minimal loss + struct ggml_opt_optimizer_params { + struct { + float alpha; // learning rate + float beta1; // first AdamW momentum + float beta2; // second AdamW momentum + float eps; // epsilon for numerical stability + float wd; // weight decay - 0.0f to disable + } adamw; + struct { + float alpha; // learning rate + float wd; // weight decay + } sgd; + }; + + // callback to calculate optimizer parameters prior to a backward pass + // userdata can be used to pass arbitrary data + typedef struct ggml_opt_optimizer_params (*ggml_opt_get_optimizer_params)(void * userdata); + + // returns the default optimizer params (constant, hard-coded values) + // userdata is not used + GGML_API struct ggml_opt_optimizer_params ggml_opt_get_default_optimizer_params(void * userdata); + + // casts userdata to ggml_opt_optimizer_params and returns it + GGML_API struct ggml_opt_optimizer_params ggml_opt_get_constant_optimizer_params(void * userdata); + + // parameters for initializing a new optimization context + struct ggml_opt_params { + ggml_backend_sched_t backend_sched; // defines which backends are used to construct the compute graphs + + // by default the forward graph needs to be reconstructed for each eval + // if ctx_compute, inputs, and outputs are set the graphs are instead allocated statically + struct ggml_context * ctx_compute; + struct ggml_tensor * inputs; + struct ggml_tensor * outputs; + + enum ggml_opt_loss_type loss_type; + enum ggml_opt_build_type build_type; + + int32_t opt_period; // after how many gradient accumulation steps an optimizer step should be done + + ggml_opt_get_optimizer_params get_opt_pars; // callback for calculating optimizer parameters + void * get_opt_pars_ud; // userdata for calculating optimizer parameters + + // only GGML_OPT_OPTIMIZER_TYPE_ADAMW needs m, v momenta per parameter tensor + enum ggml_opt_optimizer_type optimizer; + }; + + // get parameters for an optimization context with defaults set where possible + // parameters for which no sensible defaults exist are supplied as arguments to this function + GGML_API struct ggml_opt_params ggml_opt_default_params( + ggml_backend_sched_t backend_sched, + enum ggml_opt_loss_type loss_type); + + GGML_API ggml_opt_context_t ggml_opt_init(struct ggml_opt_params params); + GGML_API void ggml_opt_free(ggml_opt_context_t opt_ctx); + + // set gradients to zero, initialize loss, and optionally reset the optimizer + GGML_API void ggml_opt_reset(ggml_opt_context_t opt_ctx, bool optimizer); + + GGML_API bool ggml_opt_static_graphs(ggml_opt_context_t opt_ctx); // whether the graphs are allocated_statically + + // get underlying tensors that store data + // if not using static graphs these pointers become invalid with the next call to ggml_opt_alloc + GGML_API struct ggml_tensor * ggml_opt_inputs( ggml_opt_context_t opt_ctx); // forward graph input tensor + GGML_API struct ggml_tensor * ggml_opt_outputs( ggml_opt_context_t opt_ctx); // forward graph output tensor + GGML_API struct ggml_tensor * ggml_opt_labels( ggml_opt_context_t opt_ctx); // labels to compare outputs against + GGML_API struct ggml_tensor * ggml_opt_loss( ggml_opt_context_t opt_ctx); // scalar tensor that contains the loss + GGML_API struct ggml_tensor * ggml_opt_pred( ggml_opt_context_t opt_ctx); // predictions made by outputs + GGML_API struct ggml_tensor * ggml_opt_ncorrect(ggml_opt_context_t opt_ctx); // number of matching predictions between outputs and labels + + // get the gradient accumulator for a node from the forward graph + GGML_API struct ggml_tensor * ggml_opt_grad_acc(ggml_opt_context_t opt_ctx, struct ggml_tensor * node); + + GGML_API enum ggml_opt_optimizer_type ggml_opt_context_optimizer_type(ggml_opt_context_t); //TODO consistent naming scheme + + GGML_API const char * ggml_opt_optimizer_name(enum ggml_opt_optimizer_type); + + // ====== Optimization Result ====== + + GGML_API ggml_opt_result_t ggml_opt_result_init(void); + GGML_API void ggml_opt_result_free(ggml_opt_result_t result); + GGML_API void ggml_opt_result_reset(ggml_opt_result_t result); + + // get data from result, uncertainties are optional and can be ignored by passing NULL + GGML_API void ggml_opt_result_ndata( ggml_opt_result_t result, int64_t * ndata); // writes 1 value, number of datapoints + GGML_API void ggml_opt_result_loss( ggml_opt_result_t result, double * loss, double * unc); // writes 1 value + GGML_API void ggml_opt_result_pred( ggml_opt_result_t result, int32_t * pred); // writes ndata values + GGML_API void ggml_opt_result_accuracy(ggml_opt_result_t result, double * accuracy, double * unc); // writes 1 value + + // ====== Computation ====== + + // if not using static graphs, this function must be called prior to ggml_opt_alloc + GGML_API void ggml_opt_prepare_alloc( + ggml_opt_context_t opt_ctx, + struct ggml_context * ctx_compute, + struct ggml_cgraph * gf, + struct ggml_tensor * inputs, + struct ggml_tensor * outputs); + + // allocate the next graph for evaluation, either forward or forward + backward + // must be called exactly once prior to calling ggml_opt_eval + GGML_API void ggml_opt_alloc(ggml_opt_context_t opt_ctx, bool backward); + + // do forward pass, increment result if not NULL, do backward pass if allocated + GGML_API void ggml_opt_eval(ggml_opt_context_t opt_ctx, ggml_opt_result_t result); + + // ############################################################################ + // ## The high-level functions start here. They do not depend on any private ## + // ## functions or structs and can be copied to and adapted for user code. ## + // ############################################################################ + + // ====== Intended Usage ====== + // + // 1. Select the appropriate loss for your problem. + // 2. Create a dataset and set the data for the "data" tensor. Also set the "labels" tensor if your loss needs them. + // Setting the shard size to 1 will be fine, it's the granularity with which data is shuffled/loaded (bigger values are faster). + // 3. Create a GGML graph for your model with no_alloc == true. Use two separate contexts for the tensors. + // The first context should contain the model parameters and inputs and be allocated statically in user code. + // The second context should contain all other tensors and will be (re)allocated automatically. + // Due to this automated allocation the data of the second context is not defined when accessed in user code. + // Note that the second dimension of the inputs/outputs are interpreted as the number of datapoints in those tensors. + // 4. Call ggml_opt_fit. If you need more control you can use ggml_opt_epoch instead. + + // signature for a callback while evaluating opt_ctx on dataset, called after an evaluation + typedef void (*ggml_opt_epoch_callback)( + bool train, // true after training evaluation, false after validation evaluation + ggml_opt_context_t opt_ctx, + ggml_opt_dataset_t dataset, + ggml_opt_result_t result, // result associated with the dataset subsection + int64_t ibatch, // number of batches that have been evaluated so far + int64_t ibatch_max, // total number of batches in this dataset subsection + int64_t t_start_us); // time at which the evaluation on the dataset subsection was started + + // do training on front of dataset, do evaluation only on back of dataset + GGML_API void ggml_opt_epoch( + ggml_opt_context_t opt_ctx, + ggml_opt_dataset_t dataset, + ggml_opt_result_t result_train, // result to increment during training, ignored if NULL + ggml_opt_result_t result_eval, // result to increment during evaluation, ignored if NULL + int64_t idata_split, // data index at which to split training and evaluation + ggml_opt_epoch_callback callback_train, + ggml_opt_epoch_callback callback_eval); + + // callback that prints a progress bar on stderr + GGML_API void ggml_opt_epoch_callback_progress_bar( + bool train, + ggml_opt_context_t opt_ctx, + ggml_opt_dataset_t dataset, + ggml_opt_result_t result, + int64_t ibatch, + int64_t ibatch_max, + int64_t t_start_us); + + // fit model defined by inputs and outputs to dataset + GGML_API void ggml_opt_fit( + ggml_backend_sched_t backend_sched, // backend scheduler for constructing the compute graphs + struct ggml_context * ctx_compute, // context with temporarily allocated tensors to calculate the outputs + struct ggml_tensor * inputs, // input tensor with shape [ne_datapoint, ndata_batch] + struct ggml_tensor * outputs, // output tensor, must have shape [ne_label, ndata_batch] if labels are used + ggml_opt_dataset_t dataset, // dataset with data and optionally also labels + enum ggml_opt_loss_type loss_type, // loss to minimize + enum ggml_opt_optimizer_type optimizer, // sgd or adamw + ggml_opt_get_optimizer_params get_opt_pars, // callback to get optimizer params, userdata is pointer to epoch (of type int64_t) + int64_t nepoch, // how many times the dataset should be iterated over + int64_t nbatch_logical, // datapoints optimizer step, must be a multiple of ndata_batch in inputs/outputs + float val_split, // fraction of the dataset to use for validation, must be in [0.0f, 1.0f) + bool silent); // whether or not info prints to stderr should be suppressed + + +#ifdef __cplusplus +} +#endif diff --git a/dist/include/ggml-rpc.h b/dist/include/ggml-rpc.h new file mode 100644 index 0000000..1c11495 --- /dev/null +++ b/dist/include/ggml-rpc.h @@ -0,0 +1,35 @@ +#pragma once + +#include "ggml-backend.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define RPC_PROTO_MAJOR_VERSION 3 +#define RPC_PROTO_MINOR_VERSION 6 +#define RPC_PROTO_PATCH_VERSION 1 + +#ifdef __cplusplus +static_assert(GGML_OP_COUNT == 96, "GGML_OP_COUNT has changed - update RPC_PROTO_PATCH_VERSION"); +#endif + +#define GGML_RPC_MAX_SERVERS 16 + +// backend API +GGML_BACKEND_API ggml_backend_t ggml_backend_rpc_init(const char * endpoint, uint32_t device); +GGML_BACKEND_API bool ggml_backend_is_rpc(ggml_backend_t backend); + +GGML_BACKEND_API ggml_backend_buffer_type_t ggml_backend_rpc_buffer_type(const char * endpoint, uint32_t device); + +GGML_BACKEND_API void ggml_backend_rpc_get_device_memory(const char * endpoint, uint32_t device, size_t * free, size_t * total); + +GGML_BACKEND_API void ggml_backend_rpc_start_server(const char * endpoint, const char * cache_dir, + size_t n_threads, size_t n_devices, ggml_backend_dev_t * devices); + +GGML_BACKEND_API ggml_backend_reg_t ggml_backend_rpc_reg(void); +GGML_BACKEND_API ggml_backend_reg_t ggml_backend_rpc_add_server(const char * endpoint); + +#ifdef __cplusplus +} +#endif diff --git a/dist/include/ggml-sycl.h b/dist/include/ggml-sycl.h new file mode 100644 index 0000000..5ce349a --- /dev/null +++ b/dist/include/ggml-sycl.h @@ -0,0 +1,49 @@ +// +// MIT license +// Copyright (C) 2024 Intel Corporation +// SPDX-License-Identifier: MIT +// + +#pragma once + +#include "ggml.h" +#include "ggml-backend.h" + +#define GGML_SYCL_NAME "SYCL" +#define GGML_SYCL_MAX_DEVICES 48 + +#ifdef __cplusplus +extern "C" { +#endif + +// backend API +GGML_BACKEND_API ggml_backend_t ggml_backend_sycl_init(int device); + +GGML_BACKEND_API bool ggml_backend_is_sycl(ggml_backend_t backend); + +// devide buffer +GGML_BACKEND_API ggml_backend_buffer_type_t ggml_backend_sycl_buffer_type(int device); + +// split tensor buffer that splits matrices by rows across multiple devices +GGML_BACKEND_API ggml_backend_buffer_type_t ggml_backend_sycl_split_buffer_type(const float * tensor_split); + +// pinned host buffer for use with the CPU backend for faster copies between CPU and GPU +GGML_BACKEND_API ggml_backend_buffer_type_t ggml_backend_sycl_host_buffer_type(void); + +GGML_BACKEND_API void ggml_backend_sycl_print_sycl_devices(void); +GGML_BACKEND_API void ggml_backend_sycl_get_gpu_list(int *id_list, int max_len); +GGML_BACKEND_API void ggml_backend_sycl_get_device_description(int device, + char *description, + size_t description_size); +GGML_BACKEND_API int ggml_backend_sycl_get_device_count(); +GGML_BACKEND_API void ggml_backend_sycl_get_device_memory(int device, size_t *free, size_t *total); + +// SYCL doesn't support registering host memory, keep here for reference +// GGML_BACKEND_API bool ggml_backend_sycl_register_host_buffer(void * buffer, size_t size); +// GGML_BACKEND_API void ggml_backend_sycl_unregister_host_buffer(void * buffer); + +GGML_BACKEND_API ggml_backend_reg_t ggml_backend_sycl_reg(void); + +#ifdef __cplusplus +} +#endif diff --git a/dist/include/ggml-virtgpu.h b/dist/include/ggml-virtgpu.h new file mode 100644 index 0000000..faaba8f --- /dev/null +++ b/dist/include/ggml-virtgpu.h @@ -0,0 +1,14 @@ +#pragma once + +#include "ggml.h" +#include "ggml-backend.h" + +#ifdef __cplusplus +extern "C" { +#endif + +GGML_BACKEND_API ggml_backend_reg_t ggml_backend_virtgpu_reg(); + +#ifdef __cplusplus +} +#endif diff --git a/dist/include/ggml-vulkan.h b/dist/include/ggml-vulkan.h new file mode 100644 index 0000000..ed5ea5f --- /dev/null +++ b/dist/include/ggml-vulkan.h @@ -0,0 +1,29 @@ +#pragma once + +#include "ggml.h" +#include "ggml-backend.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define GGML_VK_NAME "Vulkan" +#define GGML_VK_MAX_DEVICES 16 + +// backend API +GGML_BACKEND_API ggml_backend_t ggml_backend_vk_init(size_t dev_num); + +GGML_BACKEND_API bool ggml_backend_is_vk(ggml_backend_t backend); +GGML_BACKEND_API int ggml_backend_vk_get_device_count(void); +GGML_BACKEND_API void ggml_backend_vk_get_device_description(int device, char * description, size_t description_size); +GGML_BACKEND_API void ggml_backend_vk_get_device_memory(int device, size_t * free, size_t * total); + +GGML_BACKEND_API ggml_backend_buffer_type_t ggml_backend_vk_buffer_type(size_t dev_num); +// pinned host buffer for use with the CPU backend for faster copies between CPU and GPU +GGML_BACKEND_API ggml_backend_buffer_type_t ggml_backend_vk_host_buffer_type(void); + +GGML_BACKEND_API ggml_backend_reg_t ggml_backend_vk_reg(void); + +#ifdef __cplusplus +} +#endif diff --git a/dist/include/ggml-webgpu.h b/dist/include/ggml-webgpu.h new file mode 100644 index 0000000..65b8ed9 --- /dev/null +++ b/dist/include/ggml-webgpu.h @@ -0,0 +1,19 @@ +#pragma once + +#include "ggml.h" +#include "ggml-backend.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define GGML_WEBGPU_NAME "WebGPU" + +// Needed for examples in ggml +GGML_BACKEND_API ggml_backend_t ggml_backend_webgpu_init(void); + +GGML_BACKEND_API ggml_backend_reg_t ggml_backend_webgpu_reg(void); + +#ifdef __cplusplus +} +#endif diff --git a/dist/include/ggml-zdnn.h b/dist/include/ggml-zdnn.h new file mode 100644 index 0000000..fbf45b6 --- /dev/null +++ b/dist/include/ggml-zdnn.h @@ -0,0 +1,17 @@ +#pragma once + +#include "ggml.h" +#include "ggml-backend.h" + +#ifdef __cplusplus +extern "C" { +#endif + +// device buffer +GGML_BACKEND_API ggml_backend_buffer_type_t ggml_backend_zdnn_buffer_type(void); + +GGML_BACKEND_API ggml_backend_reg_t ggml_backend_zdnn_reg(void); + +#ifdef __cplusplus +} +#endif diff --git a/dist/include/ggml-zendnn.h b/dist/include/ggml-zendnn.h new file mode 100644 index 0000000..a30a3a9 --- /dev/null +++ b/dist/include/ggml-zendnn.h @@ -0,0 +1,22 @@ +#pragma once + +#include "ggml-backend.h" +#include "ggml.h" + +#ifdef __cplusplus +extern "C" { +#endif + +// backend API +GGML_BACKEND_API ggml_backend_t ggml_backend_zendnn_init(void); + +GGML_BACKEND_API bool ggml_backend_is_zendnn(ggml_backend_t backend); + +// number of threads used for zendnn operations +GGML_BACKEND_API void ggml_backend_zendnn_set_n_threads(ggml_backend_t backend_zendnn, int n_threads); + +GGML_BACKEND_API ggml_backend_reg_t ggml_backend_zendnn_reg(void); + +#ifdef __cplusplus +} +#endif diff --git a/dist/include/gguf.h b/dist/include/gguf.h new file mode 100644 index 0000000..79ee202 --- /dev/null +++ b/dist/include/gguf.h @@ -0,0 +1,202 @@ +// This file contains functionality related to "GGUF" files, the binary file format used by ggml. +// GGUF files have the following structure: +// +// 1. File magic "GGUF" (4 bytes). +// 2. File version (uint32_t). +// 3. Number of ggml tensors in file (int64_t). +// 4. Number of key-value-pairs in file (int64_t). +// 5. For each KV pair: +// 1. The key (string). +// 2. The value type (gguf_type). +// 3a. If the value type is GGUF_TYPE_ARRAY: +// 1. The type of the array (gguf_type). +// 2. The number of elements in the array (uint64_t). +// 3. The binary representation of each element in the array. +// 3b. Otherwise: +// 1. The binary representation of the value. +// 6. For each ggml tensor: +// 1. The tensor name (string). +// 2. The number of dimensions of the tensor (uint32_t). +// 3. For each dimension: +// 1. The size of the tensor in the dimension (int64_t). +// 4. The tensor data type (ggml_type). +// 5. The tensor data offset in the tensor data binary blob (uint64_t). +// 7. The tensor data binary blob (optional, aligned). +// +// Strings are serialized as the string length (uint64_t) followed by the C string without the null terminator. +// All enums are stored as int32_t. +// All bool values are stored as int8_t. +// If the special key "general.alignment" (uint32_t) is defined it is used for alignment, +// otherwise GGUF_DEFAULT_ALIGNMENT is used. +// +// Module maintainer: Johannes Gäßler (@JohannesGaessler, johannesg@5d6.de) + +#pragma once + +#include "ggml.h" + +#include +#include + +#define GGUF_MAGIC "GGUF" +#define GGUF_VERSION 3 + +#define GGUF_KEY_GENERAL_ALIGNMENT "general.alignment" + +#define GGUF_DEFAULT_ALIGNMENT 32 + +#ifdef __cplusplus +extern "C" { +#endif + + // types that can be stored as GGUF KV data + enum gguf_type { + GGUF_TYPE_UINT8 = 0, + GGUF_TYPE_INT8 = 1, + GGUF_TYPE_UINT16 = 2, + GGUF_TYPE_INT16 = 3, + GGUF_TYPE_UINT32 = 4, + GGUF_TYPE_INT32 = 5, + GGUF_TYPE_FLOAT32 = 6, + GGUF_TYPE_BOOL = 7, + GGUF_TYPE_STRING = 8, + GGUF_TYPE_ARRAY = 9, + GGUF_TYPE_UINT64 = 10, + GGUF_TYPE_INT64 = 11, + GGUF_TYPE_FLOAT64 = 12, + GGUF_TYPE_COUNT, // marks the end of the enum + }; + + struct gguf_context; + + struct gguf_init_params { + bool no_alloc; + + // if not NULL, create a ggml_context and allocate the tensor data in it + struct ggml_context ** ctx; + }; + + GGML_API struct gguf_context * gguf_init_empty(void); + GGML_API struct gguf_context * gguf_init_from_file(const char * fname, struct gguf_init_params params); + //GGML_API struct gguf_context * gguf_init_from_buffer(..); + + GGML_API void gguf_free(struct gguf_context * ctx); + + GGML_API const char * gguf_type_name(enum gguf_type type); + + GGML_API uint32_t gguf_get_version (const struct gguf_context * ctx); + GGML_API size_t gguf_get_alignment (const struct gguf_context * ctx); + GGML_API size_t gguf_get_data_offset(const struct gguf_context * ctx); + + GGML_API int64_t gguf_get_n_kv(const struct gguf_context * ctx); + GGML_API int64_t gguf_find_key(const struct gguf_context * ctx, const char * key); // returns -1 if key is not found + GGML_API const char * gguf_get_key (const struct gguf_context * ctx, int64_t key_id); + + GGML_API enum gguf_type gguf_get_kv_type (const struct gguf_context * ctx, int64_t key_id); + GGML_API enum gguf_type gguf_get_arr_type(const struct gguf_context * ctx, int64_t key_id); + + // will abort if the wrong type is used for the key + GGML_API uint8_t gguf_get_val_u8 (const struct gguf_context * ctx, int64_t key_id); + GGML_API int8_t gguf_get_val_i8 (const struct gguf_context * ctx, int64_t key_id); + GGML_API uint16_t gguf_get_val_u16 (const struct gguf_context * ctx, int64_t key_id); + GGML_API int16_t gguf_get_val_i16 (const struct gguf_context * ctx, int64_t key_id); + GGML_API uint32_t gguf_get_val_u32 (const struct gguf_context * ctx, int64_t key_id); + GGML_API int32_t gguf_get_val_i32 (const struct gguf_context * ctx, int64_t key_id); + GGML_API float gguf_get_val_f32 (const struct gguf_context * ctx, int64_t key_id); + GGML_API uint64_t gguf_get_val_u64 (const struct gguf_context * ctx, int64_t key_id); + GGML_API int64_t gguf_get_val_i64 (const struct gguf_context * ctx, int64_t key_id); + GGML_API double gguf_get_val_f64 (const struct gguf_context * ctx, int64_t key_id); + GGML_API bool gguf_get_val_bool(const struct gguf_context * ctx, int64_t key_id); + GGML_API const char * gguf_get_val_str (const struct gguf_context * ctx, int64_t key_id); + GGML_API const void * gguf_get_val_data(const struct gguf_context * ctx, int64_t key_id); + GGML_API size_t gguf_get_arr_n (const struct gguf_context * ctx, int64_t key_id); + + // get raw pointer to the first element of the array with the given key_id + // for bool arrays, note that they are always stored as int8 on all platforms (usually this makes no difference) + GGML_API const void * gguf_get_arr_data(const struct gguf_context * ctx, int64_t key_id); + + // get ith C string from array with given key_id + GGML_API const char * gguf_get_arr_str (const struct gguf_context * ctx, int64_t key_id, size_t i); + + GGML_API int64_t gguf_get_n_tensors (const struct gguf_context * ctx); + GGML_API int64_t gguf_find_tensor (const struct gguf_context * ctx, const char * name); // returns -1 if the tensor is not found + GGML_API size_t gguf_get_tensor_offset(const struct gguf_context * ctx, int64_t tensor_id); + GGML_API const char * gguf_get_tensor_name (const struct gguf_context * ctx, int64_t tensor_id); + GGML_API enum ggml_type gguf_get_tensor_type (const struct gguf_context * ctx, int64_t tensor_id); + GGML_API size_t gguf_get_tensor_size (const struct gguf_context * ctx, int64_t tensor_id); + + // removes key if it exists, returns id that the key had prior to removal (-1 if it didn't exist) + GGML_API int64_t gguf_remove_key(struct gguf_context * ctx, const char * key); + + // overrides an existing KV pair or adds a new one, the new KV pair is always at the back + GGML_API void gguf_set_val_u8 (struct gguf_context * ctx, const char * key, uint8_t val); + GGML_API void gguf_set_val_i8 (struct gguf_context * ctx, const char * key, int8_t val); + GGML_API void gguf_set_val_u16 (struct gguf_context * ctx, const char * key, uint16_t val); + GGML_API void gguf_set_val_i16 (struct gguf_context * ctx, const char * key, int16_t val); + GGML_API void gguf_set_val_u32 (struct gguf_context * ctx, const char * key, uint32_t val); + GGML_API void gguf_set_val_i32 (struct gguf_context * ctx, const char * key, int32_t val); + GGML_API void gguf_set_val_f32 (struct gguf_context * ctx, const char * key, float val); + GGML_API void gguf_set_val_u64 (struct gguf_context * ctx, const char * key, uint64_t val); + GGML_API void gguf_set_val_i64 (struct gguf_context * ctx, const char * key, int64_t val); + GGML_API void gguf_set_val_f64 (struct gguf_context * ctx, const char * key, double val); + GGML_API void gguf_set_val_bool(struct gguf_context * ctx, const char * key, bool val); + GGML_API void gguf_set_val_str (struct gguf_context * ctx, const char * key, const char * val); + + // creates a new array with n elements of the given type and copies the corresponding number of bytes from data + GGML_API void gguf_set_arr_data(struct gguf_context * ctx, const char * key, enum gguf_type type, const void * data, size_t n); + + // creates a new array with n strings and copies the corresponding strings from data + GGML_API void gguf_set_arr_str (struct gguf_context * ctx, const char * key, const char ** data, size_t n); + + // set or add KV pairs from another context + GGML_API void gguf_set_kv(struct gguf_context * ctx, const struct gguf_context * src); + + // add tensor to GGUF context, tensor name must be unique + GGML_API void gguf_add_tensor(struct gguf_context * ctx, const struct ggml_tensor * tensor); + + // after changing a tensor's type, the offsets of all tensors with higher indices are immediately recalculated + // in such a way that the tensor data remains as one contiguous block (except for padding) + GGML_API void gguf_set_tensor_type(struct gguf_context * ctx, const char * name, enum ggml_type type); + + // assumes that at least gguf_get_tensor_size bytes can be read from data + GGML_API void gguf_set_tensor_data(struct gguf_context * ctx, const char * name, const void * data); + + // writing gguf files can be done in 3 ways: + // + // - write the entire gguf_context to a binary file in a single pass: + // + // gguf_write_to_file(ctx, fname, /*only_meta =*/ false); + // + // - write only the meta data to a file, then re-open the file and append the tensor data: + // + // gguf_write_to_file(ctx, fname, /*only_meta =*/ true); + // FILE * f = fopen(fname, "ab"); + // fwrite(f, ...); // write tensor data + // fclose(f); + // + // - first prepare a file with a placeholder for the meta data, write the tensor data, then write the meta data: + // + // FILE * f = fopen(fname, "wb"); + // const size_t size_meta = gguf_get_meta_size(ctx); + // fseek(f, size_meta, SEEK_SET); + // fwrite(f, ...); // write tensor data + // void * data = malloc(size_meta); + // gguf_get_meta_data(ctx, data); + // rewind(f); + // fwrite(data, 1, data, f); + // free(data); + // fclose(f); + // + + // write the entire context to a binary file + GGML_API bool gguf_write_to_file(const struct gguf_context * ctx, const char * fname, bool only_meta); + + // get the size in bytes of the meta data (header, kv pairs, tensor info) including padding + GGML_API size_t gguf_get_meta_size(const struct gguf_context * ctx); + + // writes the meta data to pointer "data" + GGML_API void gguf_get_meta_data(const struct gguf_context * ctx, void * data); + +#ifdef __cplusplus +} +#endif diff --git a/dist/jni/kazeia_engine_jni.cpp b/dist/jni/kazeia_engine_jni.cpp index 66bb4e5..c1b8ab8 100644 --- a/dist/jni/kazeia_engine_jni.cpp +++ b/dist/jni/kazeia_engine_jni.cpp @@ -1,32 +1,46 @@ -// kazeia_engine_jni.cpp — bridge LLM Kazeia-Engine (llama.cpp upstream + Hexagon) -// Split prefill NPU / decode CPU. Speaker + Thinker partagent ce moteur. -// Lib: libllama.so + libggml*.so + libggml-htp-v79.so (sel. auto). STT reste ORT-QAIRT. +// kazeia_engine_jni.cpp — bridge LLM Kazeia-Engine (llama.cpp upstream + Hexagon). +// Speaker+Thinker, GGUF, prefill NPU (ngl99/HTP0) + decode CPU (8 threads). +// thinking off via template applique cote Kotlin (/no_think) OU enable_thinking=false. +// STT reste ORT-QAIRT. Build: link libllama+libcommon+ggml*; jniLibs htp auto-V79. #include #include +#include #include "llama.h" -// Couper le reasoning (sinon ramble anglais): equivaut --reasoning-budget 0. -// Speaker decode CPU (15/8.4 t/s); prefill HTP via -dev HTP0 -ngl 99 cote modele. -struct KEngine { llama_model* m; llama_context* c; const llama_vocab* v; }; +struct KEngine { llama_model* m; llama_context* c; const llama_vocab* v; llama_sampler* s; }; extern "C" JNIEXPORT jlong JNICALL Java_com_kazeia_llm_EngineJni_load(JNIEnv* e, jobject, jstring path, jint nctx) { const char* p = e->GetStringUTFChars(path, 0); llama_backend_init(); - auto mp = llama_model_default_params(); mp.n_gpu_layers = 99; // prefill HTP + auto mp = llama_model_default_params(); mp.n_gpu_layers = 99; // prefill HTP auto m = llama_model_load_from_file(p, mp); e->ReleaseStringUTFChars(path, p); if (!m) return 0; - auto cp = llama_context_default_params(); cp.n_ctx = nctx; cp.n_threads = 8; // decode CPU - auto* k = new KEngine{m, llama_init_from_model(m, cp), llama_model_get_vocab(m)}; + auto cp = llama_context_default_params(); cp.n_ctx = nctx; cp.n_threads = 8; cp.n_batch = 512; + auto* k = new KEngine{m, llama_init_from_model(m, cp), llama_model_get_vocab(m), + llama_sampler_init_greedy()}; return (jlong)k; } + extern "C" JNIEXPORT jstring JNICALL Java_com_kazeia_llm_EngineJni_generate(JNIEnv* e, jobject, jlong h, jstring prompt, jint maxTok) { - auto* k = (KEngine*)h; std::string out; // prefill+greedy, enable_thinking=false dans le template - // tokenize -> llama_decode (prefill HTP batch) -> sample greedy -> decode (CPU) jusqu'a EOS/maxTok - return e->NewStringUTF(out.c_str()); // squelette: voir INTEGRATION.md pour boucle complete + auto* k = (KEngine*)h; const char* pr = e->GetStringUTFChars(prompt, 0); + int n = -llama_tokenize(k->v, pr, strlen(pr), nullptr, 0, true, true); + std::vector t(n); llama_tokenize(k->v, pr, strlen(pr), t.data(), n, true, true); + e->ReleaseStringUTFChars(prompt, pr); + llama_batch b = llama_batch_get_one(t.data(), n); // prefill batch -> HTP + std::string out; char buf[256]; + for (int i = 0; i < maxTok && llama_decode(k->c, b) == 0; ++i) { + llama_token id = llama_sampler_sample(k->s, k->c, -1); // decode -> CPU + if (llama_vocab_is_eog(k->v, id)) break; + int l = llama_token_to_piece(k->v, id, buf, sizeof buf, 0, true); + if (l > 0) out.append(buf, l); + b = llama_batch_get_one(&id, 1); + } + return e->NewStringUTF(out.c_str()); } + extern "C" JNIEXPORT void JNICALL Java_com_kazeia_llm_EngineJni_reset(JNIEnv*, jobject, jlong h){ llama_memory_clear(llama_get_memory(((KEngine*)h)->c), true); } extern "C" JNIEXPORT void JNICALL -Java_com_kazeia_llm_EngineJni_free(JNIEnv*, jobject, jlong h){ auto*k=(KEngine*)h; llama_free(k->c); llama_model_free(k->m); delete k; } +Java_com_kazeia_llm_EngineJni_free(JNIEnv*, jobject, jlong h){ auto*k=(KEngine*)h; llama_sampler_free(k->s); llama_free(k->c); llama_model_free(k->m); delete k; } diff --git a/dist/lib/libkazeia_engine.so b/dist/lib/libkazeia_engine.so new file mode 100755 index 0000000000000000000000000000000000000000..6ab50759be8c9b30e24229bdccab9c6f0e919b26 GIT binary patch literal 209504 zcmeFa3w%}8weUOF-U;lT1PBlyJhQ{2hJcvxjzZZX0TYRe7%N)ZBqV`E@+Q0#B|Q2S z4aX82t3_J^dfFtFmbQ2b*47|xKPdO zar^DuP?+ShG92i!>7)$d>+PDHW#u?fMO$g%3+Hz5lb6|aHhgQ9m3E-cC%Q%-wDP0h z=nfCs%AD(K;Y0b3zG&f(zS|up*yKe{#cVyL+EU(ryS)8&c@8{o8`*&l`;xb-3q+M` z)zk6SVw>;aWJ{q?7$ZjGa-d`TJKz&N|Erhq%UxmnHx%0DQVw*=lX`CB7QIu;3aZMB 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 literal 0 HcmV?d00001