1+ cmake_minimum_required (VERSION 3.16 )
2+ project (EoS-Platform
3+ VERSION 0.1.0
4+ DESCRIPTION "EoS Embedded OS Platform — monorepo build"
5+ LANGUAGES C
6+ )
7+ set (CMAKE_C_STANDARD 11)
8+ set (CMAKE_C_STANDARD_REQUIRED ON )
9+
10+ # Platform options
11+ set (EOS_TARGET "x86_64" CACHE STRING "Target hardware (raspi4, stm32f4, etc.)" )
12+ option (EOS_BUILD_TESTS "Build unit tests" OFF )
13+
14+ # Layer options (optional components)
15+ option (EOS_WITH_EAI "Build EAI — AI layer (llama.cpp, Ebot server)" OFF )
16+ option (EOS_WITH_ENI "Build ENI — Neural interface (Neuralink adapter)" OFF )
17+ option (EOS_WITH_EIPC "Build EIPC — Secure IPC (C SDK)" OFF )
18+ option (EOS_WITH_EOSUITE "Build EoSuite — Dev tools (Ebot client)" OFF )
19+ option (EOS_WITH_ALL "Build all optional layers" OFF )
20+
21+ if (EOS_WITH_ALL)
22+ set (EOS_WITH_EAI ON )
23+ set (EOS_WITH_ENI ON )
24+ set (EOS_WITH_EIPC ON )
25+ set (EOS_WITH_EOSUITE ON )
26+ endif ()
27+
28+ if (MSVC )
29+ add_compile_definitions (_CRT_SECURE_NO_WARNINGS )
30+ add_compile_options (/W3 )
31+ elseif (CMAKE_C_COMPILER_ID MATCHES "GNU|Clang" )
32+ add_compile_options (-Wall -Wextra )
33+ endif ()
34+
35+ # ================================================================
36+ # Core: EoS (always built)
37+ # ================================================================
38+ message (STATUS "=== EoS Platform v${PROJECT_VERSION } ===" )
39+ message (STATUS " Target: ${EOS_TARGET} " )
40+ add_subdirectory (core/eos )
41+ message (STATUS " Core/EoS: ON" )
42+
43+ # ================================================================
44+ # Core: eBoot (always built)
45+ # ================================================================
46+ add_subdirectory (core/eboot )
47+ message (STATUS " Core/eBoot: ON" )
48+
49+ # ================================================================
50+ # Optional Layers
51+ # ================================================================
52+ if (EOS_WITH_EIPC)
53+ if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR } /layers/eipc/sdk/c/CMakeLists.txt" )
54+ add_subdirectory (layers/eipc/sdk/c )
55+ message (STATUS " Layer/EIPC: ON" )
56+ endif ()
57+ endif ()
58+
59+ if (EOS_WITH_EAI)
60+ if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR } /layers/eai/CMakeLists.txt" )
61+ add_subdirectory (layers/eai )
62+ message (STATUS " Layer/EAI: ON" )
63+ endif ()
64+ endif ()
65+
66+ if (EOS_WITH_ENI)
67+ if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR } /layers/eni/CMakeLists.txt" )
68+ add_subdirectory (layers/eni )
69+ message (STATUS " Layer/ENI: ON" )
70+ endif ()
71+ endif ()
72+
73+ if (EOS_WITH_EOSUITE AND NOT WIN32 )
74+ if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR } /layers/eosuite/CMakeLists.txt" )
75+ add_subdirectory (layers/eosuite )
76+ message (STATUS " Layer/EoSuite: ON" )
77+ endif ()
78+ endif ()
79+
80+ # ================================================================
81+ # Tests
82+ # ================================================================
83+ if (EOS_BUILD_TESTS)
84+ enable_testing ()
85+ message (STATUS " Tests: ON" )
86+ endif ()
87+
88+ message (STATUS "========================================" )
0 commit comments