cmake_minimum_required(VERSION 3.20) project(Xenith) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) if(CMAKE_BUILD_TYPE STREQUAL "Debug") set(CMAKE_CXX_FLAGS_DEBUG "-O1 -g -fsanitize=address,undefined") set(CMAKE_EXE_LINKER_FLAGS_DEBUG "-fsanitize=address,undefined") else() set(CMAKE_CXX_FLAGS_RELEASE "-O3 -ffast-math -funroll-loops") endif() add_compile_options(-Wall -Wextra -Wno-unused-parameter) set(SOURCES main.cpp xenith/core/model.cpp xenith/core/backward.cpp xenith/core/trainer.cpp xenith/core/checkpoint.cpp xenith/core/generate.cpp xenith/core/gradcheck.cpp # Файлы, которые уже были в твоем старом CMakeLists.txt xenith/preprocessing/tokenizer.cpp xenith/ollama_api/test.cpp xenith/converter.cpp help.h xenith/ollama_api/handler.cpp xenith/ollama_api/handler.hpp xenith/ollama_api/server.hpp xenith/ollama_api/server.cpp xenith/ui/tui/tui.cpp xenith/ui/tui.hpp xenith/ui/tui/mouse.cpp xenith/ui/tui/message.cpp ) # Заголовочные файлы (для удобства в IDE) file(GLOB_RECURSE HEADER_FILES "*.h" "*.hpp") set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin) add_executable(Xenith ${SOURCES} ${HEADER_FILES}) target_include_directories(Xenith SYSTEM PRIVATE ./xenith/libs/cpp-httplib-0.57.1) target_include_directories(Xenith PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) find_package(Threads REQUIRED) target_link_libraries(Xenith PRIVATE Threads::Threads)