Skip to content
This repository was archived by the owner on Jul 4, 2025. It is now read-only.

Commit 1b23363

Browse files
authored
Merge pull request #1027 from janhq/feat/cortex-engine
feat: cortex engine
2 parents ab128f5 + 83eaf01 commit 1b23363

File tree

108 files changed

+3866
-134
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

108 files changed

+3866
-134
lines changed

.github/workflows/cortex-cpp-quality-gate.yml

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ on:
55
types: [opened, synchronize, reopened]
66
paths:
77
[
8-
"cortex-cpp/**",
8+
"engine/**",
99
]
1010
workflow_dispatch:
1111

@@ -16,33 +16,33 @@ env:
1616
jobs:
1717
build-and-test:
1818
runs-on: ${{ matrix.runs-on }}
19-
timeout-minutes: 40
19+
timeout-minutes: 60
2020
strategy:
2121
fail-fast: false
2222
matrix:
2323
include:
2424
- os: "linux"
2525
name: "amd64"
26-
runs-on: "ubuntu-20-04"
27-
cmake-flags: "-DCORTEX_CPP_VERSION=${{github.event.pull_request.head.sha}}"
26+
runs-on: "ubuntu-20-04-cuda-12-0"
27+
cmake-flags: "-DCORTEX_CPP_VERSION=${{github.event.pull_request.head.sha}} -DCMAKE_TOOLCHAIN_FILE=/home/runner/actions-runner/_work/cortex/cortex/engine/vcpkg/scripts/buildsystems/vcpkg.cmake"
2828
build-deps-cmake-flags: ""
2929
ccache-dir: ''
3030
- os: "mac"
3131
name: "amd64"
3232
runs-on: "macos-13"
33-
cmake-flags: "-DCORTEX_CPP_VERSION=${{github.event.pull_request.head.sha}}"
33+
cmake-flags: "-DCORTEX_CPP_VERSION=${{github.event.pull_request.head.sha}} -DCMAKE_TOOLCHAIN_FILE=/Users/runner/work/cortex/cortex/engine/vcpkg/scripts/buildsystems/vcpkg.cmake"
3434
build-deps-cmake-flags: ""
3535
ccache-dir: ''
3636
- os: "mac"
3737
name: "arm64"
38-
runs-on: "mac-silicon"
39-
cmake-flags: "-DCORTEX_CPP_VERSION=${{github.event.pull_request.head.sha}} -DMAC_ARM64=ON"
38+
runs-on: "macos-latest"
39+
cmake-flags: "-DCORTEX_CPP_VERSION=${{github.event.pull_request.head.sha}} -DMAC_ARM64=ON -DCMAKE_TOOLCHAIN_FILE=/Users/runner/work/cortex/cortex/engine/vcpkg/scripts/buildsystems/vcpkg.cmake"
4040
build-deps-cmake-flags: ""
4141
ccache-dir: ''
4242
- os: "windows"
4343
name: "amd64"
4444
runs-on: "windows-cuda-12-0"
45-
cmake-flags: "-DCORTEX_CPP_VERSION=${{github.event.pull_request.head.sha}} -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CUDA_COMPILER_LAUNCHER=ccache -GNinja"
45+
cmake-flags: "-DCORTEX_CPP_VERSION=${{github.event.pull_request.head.sha}} -DBUILD_SHARED_LIBS=OFF -DCMAKE_TOOLCHAIN_FILE=C:/w/cortex/cortex/engine/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows-static -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CUDA_COMPILER_LAUNCHER=ccache -GNinja"
4646
build-deps-cmake-flags: "-DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CUDA_COMPILER_LAUNCHER=ccache -GNinja"
4747
ccache-dir: 'C:\Users\ContainerAdministrator\AppData\Local\ccache'
4848
steps:
@@ -69,26 +69,31 @@ jobs:
6969
AWS_SECRET_ACCESS_KEY: "${{ secrets.MINIO_SECRET_ACCESS_KEY }}"
7070
AWS_DEFAULT_REGION: "${{ secrets.MINIO_REGION }}"
7171

72+
- name: Configure vcpkg
73+
run: |
74+
cd engine
75+
make configure-vcpkg
76+
7277
- name: Build
7378
run: |
74-
cd cortex-cpp
79+
cd engine
7580
make build CMAKE_EXTRA_FLAGS="${{ matrix.cmake-flags }}" BUILD_DEPS_CMAKE_EXTRA_FLAGS="${{ matrix.build-deps-cmake-flags }}"
7681
7782
- name: Pre-package
7883
run: |
79-
cd cortex-cpp
84+
cd engine
8085
make pre-package
8186
8287
- name: Package
8388
run: |
84-
cd cortex-cpp
89+
cd engine
8590
make package
8691
8792
- name: Upload Artifact
8893
uses: actions/upload-artifact@v2
8994
with:
9095
name: cortex-cpp-${{ matrix.os }}-${{ matrix.name }}
91-
path: ./cortex-cpp/cortex-cpp
96+
path: ./engine/cortex-cpp
9297

9398
- name: Upload ccache to s3
9499
continue-on-error: true

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
# cortex-js
2+
.DS_Store
23
cortex-js/cortex.db
34
dist
45
*.lock
@@ -18,3 +19,4 @@ cortex-js/package-lock.json
1819
.vscode
1920
cortex-js/command
2021
cortex-js/src/infrastructure/commanders/test/test_data
22+
**/vcpkg_installed

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[submodule "engine/vcpkg"]
2+
path = engine/vcpkg
3+
url = https://github.com/microsoft/vcpkg.git

cortex-cpp/controllers/processManager.cc

Lines changed: 0 additions & 11 deletions
This file was deleted.

cortex-cpp/main.cc

Lines changed: 0 additions & 81 deletions
This file was deleted.
File renamed without changes.

cortex-cpp/.gitignore renamed to engine/.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -563,4 +563,5 @@ build
563563
build-deps
564564
.DS_Store
565565

566-
uploads/**
566+
uploads/**
567+
CMakePresets.json

cortex-cpp/CMakeLists.txt renamed to engine/CMakeLists.txt

Lines changed: 35 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,17 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
3333
set(CMAKE_CXX_EXTENSIONS OFF)
3434
set(OPENSSL_USE_STATIC_LIBS TRUE)
3535
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
36-
set(CMAKE_PREFIX_PATH ${CMAKE_CURRENT_SOURCE_DIR}/build-deps/_install)
36+
# set(CMAKE_PREFIX_PATH ${CMAKE_CURRENT_SOURCE_DIR}/build-deps/_install)
3737
# This is the critical line for installing another package
3838

39+
if(MSVC)
40+
add_compile_options(
41+
$<$<CONFIG:>:/MT> #---------|
42+
$<$<CONFIG:Debug>:/MTd> #---|-- Statically link the runtime libraries
43+
$<$<CONFIG:Release>:/MT> #--|
44+
)
45+
endif()
46+
3947
if(LLAMA_CUDA)
4048
cmake_minimum_required(VERSION 3.17)
4149

@@ -73,7 +81,20 @@ endif()
7381

7482
add_compile_definitions(CORTEX_CPP_VERSION="${CORTEX_CPP_VERSION}")
7583

76-
# add_subdirectory(test)
84+
option(CMAKE_BUILD_TEST "Enable testing" OFF)
85+
if(CMAKE_BUILD_TEST)
86+
add_subdirectory(test)
87+
endif()
88+
89+
find_package(jsoncpp CONFIG REQUIRED)
90+
find_package(Drogon CONFIG REQUIRED)
91+
find_package(yaml-cpp CONFIG REQUIRED)
92+
find_package(jinja2cpp CONFIG REQUIRED)
93+
find_package(httplib CONFIG REQUIRED)
94+
find_package(nlohmann_json CONFIG REQUIRED)
95+
find_package(CLI11 CONFIG REQUIRED)
96+
find_package(unofficial-minizip CONFIG REQUIRED)
97+
find_package(LibArchive REQUIRED)
7798

7899
# Build using CMAKE-JS
79100
if(DEFINED CMAKE_JS_INC)
@@ -109,8 +130,12 @@ endif()
109130
#
110131
# and comment out the following lines
111132

112-
find_package(Drogon CONFIG REQUIRED)
113-
133+
target_link_libraries(${PROJECT_NAME} PRIVATE httplib::httplib)
134+
target_link_libraries(${PROJECT_NAME} PRIVATE nlohmann_json::nlohmann_json)
135+
target_link_libraries(${PROJECT_NAME} PRIVATE jinja2cpp)
136+
target_link_libraries(${PROJECT_NAME} PRIVATE CLI11::CLI11)
137+
target_link_libraries(${PROJECT_NAME} PRIVATE unofficial::minizip::minizip)
138+
target_link_libraries(${PROJECT_NAME} PRIVATE LibArchive::LibArchive)
114139

115140
# Build using CMAKE-JS
116141
if(DEFINED CMAKE_JS_INC)
@@ -124,7 +149,7 @@ if(DEFINED CMAKE_JS_INC)
124149
execute_process(COMMAND ${CMAKE_AR} /def:${CMAKE_JS_NODELIB_DEF} /out:${CMAKE_JS_NODELIB_TARGET} ${CMAKE_STATIC_LINKER_FLAGS})
125150
endif()
126151
else()
127-
target_link_libraries(${PROJECT_NAME} PRIVATE Drogon::Drogon
152+
target_link_libraries(${PROJECT_NAME} PRIVATE JsonCpp::JsonCpp Drogon::Drogon OpenSSL::SSL OpenSSL::Crypto yaml-cpp::yaml-cpp
128153
${CMAKE_THREAD_LIBS_INIT})
129154
endif()
130155
# ##############################################################################
@@ -141,21 +166,13 @@ else()
141166
endif()
142167

143168
aux_source_directory(controllers CTL_SRC)
169+
aux_source_directory(services SERVICES_SRC)
144170
aux_source_directory(common COMMON_SRC)
145171
aux_source_directory(models MODEL_SRC)
146172
aux_source_directory(cortex-common CORTEX_COMMON)
147-
# aux_source_directory(filters FILTER_SRC) aux_source_directory(plugins
148-
# PLUGIN_SRC)
149-
150-
# drogon_create_views(${PROJECT_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/views
151-
# ${CMAKE_CURRENT_BINARY_DIR}) use the following line to create views with
152-
# namespaces. drogon_create_views(${PROJECT_NAME}
153-
# ${CMAKE_CURRENT_SOURCE_DIR}/views ${CMAKE_CURRENT_BINARY_DIR} TRUE)
173+
aux_source_directory(config CONFIG_SRC)
174+
aux_source_directory(commands COMMANDS_SRC)
154175

155176
target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} )
156-
# ${CMAKE_CURRENT_SOURCE_DIR}/models)
157-
target_sources(${PROJECT_NAME} PRIVATE ${CTL_SRC} ${COMMON_SRC})
158-
# ${FILTER_SRC} ${PLUGIN_SRC} ${MODEL_SRC})
159-
# ##############################################################################
160-
# uncomment the following line for dynamically loading views set_property(TARGET
161-
# ${PROJECT_NAME} PROPERTY ENABLE_EXPORTS ON)
177+
178+
target_sources(${PROJECT_NAME} PRIVATE ${COMMANDS_SRC} ${CONFIG_SRC} ${CTL_SRC} ${COMMON_SRC} ${SERVICES_SRC})
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)