Xenith/CMakeLists.txt
2026-10-02 19:30:49 +07:00

52 lines
1.6 KiB
CMake

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)