Source identity
| Field | Recorded value |
|---|---|
| Source type | GitHub source |
| Original record | Janady13/AI_Brain / the_tired_agi/core/CMakeLists.txt |
| Date | Not specified in source |
| Repository | Janady13/AI_Brain |
| Revision | d6c309d3fa439714ca46b9d3bb94caf478ea5376 |
| Branch | main |
| Path or archive member | the_tired_agi/core/CMakeLists.txt |
| Original SHA-256 | 79e723a4482ec11c5eb6c0b953618d2d5eed90c456fcdf9b22423e14100ed76b |
| Git blob SHA | 64b142a0ee7dbd2c2323a589dc7354dc6dd81be9 |
| Reading-copy SHA-256 | 79e723a4482ec11c5eb6c0b953618d2d5eed90c456fcdf9b22423e14100ed76b |
Every recorded occurrence
These 2 records contain identical original source bytes. Their paths and revisions remain part of the archive.
| Original record | Branch or archive | Revision / identifier | Original location |
|---|---|---|---|
| Janady13/AI_Brain / the_tired_agi/core/CMakeLists.txt | main | d6c309d3fa439714ca46b9d3bb94caf478ea5376 | Open original |
| Janady13/AI_Brain / the_tired_agi/core/CMakeLists.txt | claude/binary-helix-fibonacci-hive-011CUj7dx1WWJLVYcWCjBbYv | 527d4882c71eb041393f9d8945996177c5ac9e86 | Open original |
Recovered source transcript
Download complete source text ↓430 lines · 14.1 KB
# ==============================================================================
# The-Tired-AGI Core - CMake Build System
# Production Build Configuration
# ==============================================================================
cmake_minimum_required(VERSION 3.20)
project(tired_agi_core VERSION 1.0.0 LANGUAGES CXX C)
# ==============================================================================
# Build Options
# ==============================================================================
option(BUILD_SHARED_LIBS "Build shared libraries" ON)
option(BUILD_DNA_CORE "Build legacy dna_core executable" OFF)
option(BUILD_DNA_CORE_RT "Build standalone dna_core_rt runtime" ON)
option(BUILD_TESTS "Build test suite" OFF)
option(ENABLE_LTO "Enable Link-Time Optimization" ON)
option(ENABLE_AVX2 "Enable AVX2 optimizations" ON)
option(ENABLE_FPGA "Enable FPGA-related builds" OFF)
# ==============================================================================
# C++20 Standard
# ==============================================================================
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED ON)
# ==============================================================================
# Compiler Flags
# ==============================================================================
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wpedantic")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native -mtune=native")
if(ENABLE_AVX2)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mavx2 -mfma")
endif()
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 -DNDEBUG")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -g3 -fsanitize=address")
if(ENABLE_LTO)
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ON)
endif()
endif()
# ==============================================================================
# Installation Paths (matches architecture document)
# ==============================================================================
set(CMAKE_INSTALL_PREFIX "/opt/the-tired-agi" CACHE PATH "Install prefix")
set(INSTALL_BIN_DIR "${CMAKE_INSTALL_PREFIX}/bin")
set(INSTALL_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib")
set(INSTALL_INCLUDE_DIR "${CMAKE_INSTALL_PREFIX}/include")
set(INSTALL_TMP_DIR "${CMAKE_INSTALL_PREFIX}/tmp")
set(INSTALL_LOG_DIR "${CMAKE_INSTALL_PREFIX}/logs")
# ==============================================================================
# Find Dependencies
# ==============================================================================
find_package(Threads REQUIRED)
# Optional dependencies
find_package(OpenMP)
if(OpenMP_CXX_FOUND)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
endif()
# Try to find CURL (optional for agi_chat)
find_package(CURL QUIET)
if(CURL_FOUND)
message(STATUS " CURL: ${CURL_LIBRARIES}")
else()
message(STATUS " CURL: Not found (agi_chat will use simplified HTTP)")
endif()
# ==============================================================================
# Include Directories
# ==============================================================================
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}/include
${CMAKE_CURRENT_SOURCE_DIR}/src
)
# ==============================================================================
# Source Files
# ==============================================================================
set(HELIX_SOURCES
src/helix.cpp
)
set(FGTP_SOURCES
src/fgtp_engine.cpp
)
set(INGEST_SOURCES
src/ingest_pipeline.cpp
)
set(DNA_API_SOURCES
src/dna_api.cpp
)
set(DNA_CORE_REAL_SOURCES
src/dna_core_real.cpp
)
set(AGENT_SOURCES
src/agent_arrays.cpp
)
set(AGI_MIGRATE_SOURCES
src/agi_migrate.c
)
set(AGI_CHAT_SOURCES
src/agi_chat.c
)
# ==============================================================================
# Library: helix (static)
# ==============================================================================
add_library(helix STATIC ${HELIX_SOURCES})
target_include_directories(helix PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include>
)
target_compile_features(helix PUBLIC cxx_std_20)
target_link_libraries(helix PUBLIC Threads::Threads)
set_target_properties(helix PROPERTIES POSITION_INDEPENDENT_CODE ON)
if(OpenMP_CXX_FOUND)
target_link_libraries(helix PUBLIC OpenMP::OpenMP_CXX)
endif()
# ==============================================================================
# Library: fgtp_engine (static)
# ==============================================================================
add_library(fgtp_engine STATIC ${FGTP_SOURCES})
target_include_directories(fgtp_engine PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include>
)
target_link_libraries(fgtp_engine PUBLIC helix Threads::Threads)
set_target_properties(fgtp_engine PROPERTIES POSITION_INDEPENDENT_CODE ON)
# ==============================================================================
# Library: ingest_pipeline (static)
# ==============================================================================
add_library(ingest_pipeline STATIC ${INGEST_SOURCES})
target_include_directories(ingest_pipeline PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include>
)
target_link_libraries(ingest_pipeline PUBLIC helix Threads::Threads)
set_target_properties(ingest_pipeline PROPERTIES POSITION_INDEPENDENT_CODE ON)
# ==============================================================================
# Library: agent_arrays (static)
# ==============================================================================
add_library(agent_arrays STATIC ${AGENT_SOURCES})
target_include_directories(agent_arrays PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include>
)
target_link_libraries(agent_arrays PUBLIC helix fgtp_engine)
set_target_properties(agent_arrays PROPERTIES POSITION_INDEPENDENT_CODE ON)
# ==============================================================================
# Library: agi_migrate (static, pure C)
# ==============================================================================
add_library(agi_migrate STATIC ${AGI_MIGRATE_SOURCES})
target_include_directories(agi_migrate PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include>
)
target_link_libraries(agi_migrate PUBLIC Threads::Threads)
set_target_properties(agi_migrate PROPERTIES
POSITION_INDEPENDENT_CODE ON
C_STANDARD 11
C_STANDARD_REQUIRED ON
)
# ==============================================================================
# Library: dna_core_real (static)
# ==============================================================================
add_library(dna_core_real STATIC ${DNA_CORE_REAL_SOURCES})
target_include_directories(dna_core_real PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include>
)
target_link_libraries(dna_core_real PUBLIC
helix
fgtp_engine
ingest_pipeline
agent_arrays
Threads::Threads
)
set_target_properties(dna_core_real PROPERTIES POSITION_INDEPENDENT_CODE ON)
# ==============================================================================
# Shared Library: dna_core_api (for CGo)
# ==============================================================================
add_library(dna_core_api SHARED
${DNA_API_SOURCES}
${DNA_CORE_REAL_SOURCES}
)
target_include_directories(dna_core_api PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include>
)
target_link_libraries(dna_core_api PUBLIC
helix
fgtp_engine
ingest_pipeline
agent_arrays
agi_migrate
Threads::Threads
)
set_target_properties(dna_core_api PROPERTIES
OUTPUT_NAME "dna_core_api"
VERSION ${PROJECT_VERSION}
SOVERSION 1
C_VISIBILITY_PRESET hidden
CXX_VISIBILITY_PRESET hidden
)
# ==============================================================================
# Executable: dna_core (legacy)
# ==============================================================================
if(BUILD_DNA_CORE)
add_executable(dna_core src/dna_core_main.cpp)
target_link_libraries(dna_core PRIVATE
dna_core_api
helix
fgtp_engine
ingest_pipeline
agent_arrays
Threads::Threads
)
set_target_properties(dna_core PROPERTIES
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
)
endif()
# ==============================================================================
# Executable: dna_core_rt (standalone real-time runtime)
# ==============================================================================
if(BUILD_DNA_CORE_RT)
add_executable(dna_core_rt src/dna_core_rt_main.cpp)
target_link_libraries(dna_core_rt PRIVATE
dna_core_real
helix
fgtp_engine
ingest_pipeline
agent_arrays
Threads::Threads
)
target_compile_definitions(dna_core_rt PRIVATE
REALTIME_MODE=1
TARGET_TICK_RATE_HZ=1000
)
set_target_properties(dna_core_rt PROPERTIES
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
)
# Real-time scheduling (Linux)
if(UNIX AND NOT APPLE)
target_link_libraries(dna_core_rt PRIVATE rt)
endif()
endif()
# ==============================================================================
# Executable: agi_chat (conversational interface)
# ==============================================================================
add_executable(agi_chat ${AGI_CHAT_SOURCES})
target_link_libraries(agi_chat PRIVATE Threads::Threads)
if(CURL_FOUND)
target_link_libraries(agi_chat PRIVATE CURL::libcurl)
target_compile_definitions(agi_chat PRIVATE HAVE_CURL=1)
endif()
set_target_properties(agi_chat PROPERTIES
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
C_STANDARD 11
C_STANDARD_REQUIRED ON
)
# ==============================================================================
# FPGA Support (optional)
# ==============================================================================
if(ENABLE_FPGA)
add_custom_target(fpga_build
COMMAND ${CMAKE_MAKE_PROGRAM} -f ${CMAKE_CURRENT_SOURCE_DIR}/fpga_build.mk ecp5
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
COMMENT "Building FPGA bitstream for ECP5"
)
add_custom_target(fpga_build_artix7
COMMAND ${CMAKE_MAKE_PROGRAM} -f ${CMAKE_CURRENT_SOURCE_DIR}/fpga_build.mk artix7
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
COMMENT "Building FPGA bitstream for Artix-7"
)
endif()
# ==============================================================================
# Tests
# ==============================================================================
if(BUILD_TESTS)
enable_testing()
add_subdirectory(tests)
endif()
# ==============================================================================
# Installation
# ==============================================================================
# Libraries
install(TARGETS helix fgtp_engine ingest_pipeline agent_arrays agi_migrate dna_core_real dna_core_api
EXPORT tired_agi_targets
LIBRARY DESTINATION ${INSTALL_LIB_DIR}
ARCHIVE DESTINATION ${INSTALL_LIB_DIR}
RUNTIME DESTINATION ${INSTALL_BIN_DIR}
)
# Executables
if(BUILD_DNA_CORE)
install(TARGETS dna_core RUNTIME DESTINATION ${INSTALL_BIN_DIR})
endif()
if(BUILD_DNA_CORE_RT)
install(TARGETS dna_core_rt RUNTIME DESTINATION ${INSTALL_BIN_DIR})
endif()
install(TARGETS agi_chat RUNTIME DESTINATION ${INSTALL_BIN_DIR})
# Headers
install(DIRECTORY include/
DESTINATION ${INSTALL_INCLUDE_DIR}
FILES_MATCHING PATTERN "*.h" PATTERN "*.hpp"
)
# Create runtime directories
install(DIRECTORY DESTINATION ${INSTALL_TMP_DIR})
install(DIRECTORY DESTINATION ${INSTALL_TMP_DIR}/ltm)
install(DIRECTORY DESTINATION ${INSTALL_TMP_DIR}/peers)
install(DIRECTORY DESTINATION ${INSTALL_LOG_DIR})
# Export targets
install(EXPORT tired_agi_targets
FILE tired_agi_targets.cmake
NAMESPACE tired_agi::
DESTINATION ${INSTALL_LIB_DIR}/cmake/tired_agi
)
# CMake config
include(CMakePackageConfigHelpers)
write_basic_package_version_file(
"${CMAKE_CURRENT_BINARY_DIR}/tired_agi_config_version.cmake"
VERSION ${PROJECT_VERSION}
COMPATIBILITY SameMajorVersion
)
install(FILES
"${CMAKE_CURRENT_BINARY_DIR}/tired_agi_config_version.cmake"
DESTINATION ${INSTALL_LIB_DIR}/cmake/tired_agi
)
# ==============================================================================
# Print Configuration Summary
# ==============================================================================
message(STATUS "==============================================================")
message(STATUS "The-Tired-AGI Core Configuration Summary")
message(STATUS "==============================================================")
message(STATUS "Version: ${PROJECT_VERSION}")
message(STATUS "Build type: ${CMAKE_BUILD_TYPE}")
message(STATUS "C++ Compiler: ${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION}")
message(STATUS "C++ Standard: C++${CMAKE_CXX_STANDARD}")
message(STATUS "Install prefix: ${CMAKE_INSTALL_PREFIX}")
message(STATUS "")
message(STATUS "Options:")
message(STATUS " BUILD_DNA_CORE: ${BUILD_DNA_CORE}")
message(STATUS " BUILD_DNA_CORE_RT: ${BUILD_DNA_CORE_RT}")
message(STATUS " BUILD_TESTS: ${BUILD_TESTS}")
message(STATUS " ENABLE_LTO: ${ENABLE_LTO}")
message(STATUS " ENABLE_AVX2: ${ENABLE_AVX2}")
message(STATUS " ENABLE_FPGA: ${ENABLE_FPGA}")
message(STATUS "")
message(STATUS "Dependencies:")
message(STATUS " Threads: ${CMAKE_THREAD_LIBS_INIT}")
message(STATUS " OpenMP: ${OpenMP_CXX_FOUND}")
message(STATUS "==============================================================")
# ==============================================================================
# Uninstall Target
# ==============================================================================
if(NOT TARGET uninstall)
configure_file(
"${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
IMMEDIATE @ONLY
)
add_custom_target(uninstall
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake
)
endif()