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

Commit 6abf575

Browse files
authored
feat: beta updater (#1197)
* feat: beta updater * fix: add --version * fix: more checks * fix: more * fix: no target name changes * fix: download binary to temp folder for cortex update * fix: rename should be in the same folder * fix: comment * fix: more * fix: use constants * fix: comments
1 parent 05d67be commit 6abf575

File tree

4 files changed

+215
-172
lines changed

4 files changed

+215
-172
lines changed

engine/CMakeLists.txt

Lines changed: 25 additions & 98 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,6 @@ cmake_minimum_required(VERSION 3.5)
22

33
project(cortex C CXX)
44

5-
# Build using CMAKE-JS
6-
if(DEFINED CMAKE_JS_INC)
7-
if(WIN32)
8-
add_definitions(
9-
-DV8_COMPRESS_POINTERS
10-
-DV8_REVERSE_JSARGS
11-
-DV8_COMPRESS_POINTERS_IN_ISOLATE_CAGE
12-
)
13-
endif()
14-
include_directories(${CMAKE_JS_INC})
15-
endif()
16-
175
include(CheckIncludeFileCXX)
186

197
check_include_file_cxx(any HAS_ANY)
@@ -33,8 +21,6 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
3321
set(CMAKE_CXX_EXTENSIONS OFF)
3422
set(OPENSSL_USE_STATIC_LIBS TRUE)
3523
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
36-
# set(CMAKE_PREFIX_PATH ${CMAKE_CURRENT_SOURCE_DIR}/build-deps/_install)
37-
# This is the critical line for installing another package
3824

3925
if(MSVC)
4026
add_compile_options(
@@ -43,16 +29,6 @@ if(MSVC)
4329
$<$<CONFIG:Release>:/MT> #--|
4430
)
4531
endif()
46-
47-
if(LLAMA_CUDA)
48-
cmake_minimum_required(VERSION 3.17)
49-
50-
find_package(CUDAToolkit)
51-
if(CUDAToolkit_FOUND)
52-
message(STATUS "cuBLAS found")
53-
add_compile_definitions(GGML_USE_CUDA)
54-
endif()
55-
endif()
5632

5733
if(DEBUG)
5834
message(STATUS "CORTEX-CPP DEBUG IS ON")
@@ -63,29 +39,24 @@ if(NOT DEFINED CORTEX_VARIANT)
6339
set(CORTEX_VARIANT "prod")
6440
endif()
6541

42+
set(TARGET_NAME ${PROJECT_NAME})
43+
if(RENAME_EXE)
44+
if(CORTEX_VARIANT STREQUAL "beta")
45+
set(TARGET_NAME "${PROJECT_NAME}-beta")
46+
elseif(CORTEX_VARIANT STREQUAL "nightly")
47+
set(TARGET_NAME "${PROJECT_NAME}-nightly")
48+
else()
49+
set(TARGET_NAME ${PROJECT_NAME})
50+
endif()
51+
endif()
52+
6653
if(NOT DEFINED CORTEX_CONFIG_FILE_PATH)
6754
set(CORTEX_CONFIG_FILE_PATH "user_home")
6855
endif()
6956

7057
if(NOT DEFINED CORTEX_CPP_VERSION)
7158
set(CORTEX_CPP_VERSION "default_version")
7259
endif()
73-
74-
if(APPLE)
75-
if(CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64|arm.*|ARM64)$")
76-
# MacOS silicon
77-
set(LLAMA_METAL_EMBED_LIBRARY ON)
78-
set(WHISPER_COREML 1)
79-
else()
80-
# MacOS amd64
81-
set(LLAMA_METAL OFF)
82-
endif()
83-
endif()
84-
85-
if(DEFINED CMAKE_JS_INC)
86-
# define NPI_VERSION
87-
add_compile_definitions(NAPI_VERSION=8)
88-
endif()
8960

9061
add_compile_definitions(CORTEX_VARIANT="${CORTEX_VARIANT}")
9162
add_compile_definitions(CORTEX_CPP_VERSION="${CORTEX_CPP_VERSION}")
@@ -108,73 +79,29 @@ find_package(LibArchive REQUIRED)
10879
find_package(tabulate CONFIG REQUIRED)
10980
find_package(CURL REQUIRED)
11081

111-
# Build using CMAKE-JS
112-
if(DEFINED CMAKE_JS_INC)
113-
if(("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") OR("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU"))
114-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
115-
endif()
116-
117-
add_library(${PROJECT_NAME} SHARED addon.cc
82+
add_executable(${TARGET_NAME} main.cc
11883
${CMAKE_CURRENT_SOURCE_DIR}/utils/cpuid/cpu_info.cc
11984
${CMAKE_CURRENT_SOURCE_DIR}/utils/file_logger.cc
120-
${CMAKE_JS_SRC}
12185
)
12286

123-
if(WIN32)
124-
target_link_libraries(${PROJECT_NAME}
125-
PRIVATE
126-
msvcprt.lib
127-
msvcrt.lib
128-
vcruntime.lib
129-
ucrt.lib
130-
${CMAKE_JS_LIB}
131-
)
132-
endif()
133-
else() # Official build
134-
add_executable(${PROJECT_NAME} main.cc
135-
${CMAKE_CURRENT_SOURCE_DIR}/utils/cpuid/cpu_info.cc
136-
${CMAKE_CURRENT_SOURCE_DIR}/utils/file_logger.cc
137-
)
138-
endif()
139-
140-
# ##############################################################################
141-
# If you include the drogon source code locally in your project, use this method
142-
# to add drogon add_subdirectory(cortex-cpp-deps)
143-
# target_link_libraries(${PROJECT_NAME} PRIVATE cortex-cpp-deps)
144-
#
145-
# and comment out the following lines
146-
147-
target_link_libraries(${PROJECT_NAME} PRIVATE httplib::httplib)
148-
target_link_libraries(${PROJECT_NAME} PRIVATE nlohmann_json::nlohmann_json)
149-
target_link_libraries(${PROJECT_NAME} PRIVATE jinja2cpp)
150-
target_link_libraries(${PROJECT_NAME} PRIVATE CLI11::CLI11)
151-
target_link_libraries(${PROJECT_NAME} PRIVATE unofficial::minizip::minizip)
152-
target_link_libraries(${PROJECT_NAME} PRIVATE LibArchive::LibArchive)
153-
target_link_libraries(${PROJECT_NAME} PRIVATE tabulate::tabulate)
154-
target_link_libraries(${PROJECT_NAME} PRIVATE CURL::libcurl)
155-
156-
# Build using CMAKE-JS
157-
if(DEFINED CMAKE_JS_INC)
158-
set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "" SUFFIX ".node")
159-
160-
target_link_libraries(${PROJECT_NAME} PRIVATE Drogon::Drogon
161-
${CMAKE_THREAD_LIBS_INIT} ${CMAKE_JS_LIB})
162-
163-
if(MSVC AND CMAKE_JS_NODELIB_DEF AND CMAKE_JS_NODELIB_TARGET)
164-
# Generate node.lib
165-
execute_process(COMMAND ${CMAKE_AR} /def:${CMAKE_JS_NODELIB_DEF} /out:${CMAKE_JS_NODELIB_TARGET} ${CMAKE_STATIC_LINKER_FLAGS})
166-
endif()
167-
else()
168-
target_link_libraries(${PROJECT_NAME} PRIVATE JsonCpp::JsonCpp Drogon::Drogon OpenSSL::SSL OpenSSL::Crypto yaml-cpp::yaml-cpp
87+
target_link_libraries(${TARGET_NAME} PRIVATE httplib::httplib)
88+
target_link_libraries(${TARGET_NAME} PRIVATE nlohmann_json::nlohmann_json)
89+
target_link_libraries(${TARGET_NAME} PRIVATE jinja2cpp)
90+
target_link_libraries(${TARGET_NAME} PRIVATE CLI11::CLI11)
91+
target_link_libraries(${TARGET_NAME} PRIVATE unofficial::minizip::minizip)
92+
target_link_libraries(${TARGET_NAME} PRIVATE LibArchive::LibArchive)
93+
target_link_libraries(${TARGET_NAME} PRIVATE tabulate::tabulate)
94+
target_link_libraries(${TARGET_NAME} PRIVATE CURL::libcurl)
95+
target_link_libraries(${TARGET_NAME} PRIVATE JsonCpp::JsonCpp Drogon::Drogon OpenSSL::SSL OpenSSL::Crypto yaml-cpp::yaml-cpp
16996
${CMAKE_THREAD_LIBS_INIT})
170-
endif()
97+
17198
# ##############################################################################
17299

173100
if(CMAKE_CXX_STANDARD LESS 17)
174101
# With C++14, use boost to support any and std::string_view
175102
message(STATUS "use c++14")
176103
find_package(Boost 1.61.0 REQUIRED)
177-
target_include_directories(${PROJECT_NAME} PRIVATE ${Boost_INCLUDE_DIRS})
104+
target_include_directories(${TARGET_NAME} PRIVATE ${Boost_INCLUDE_DIRS})
178105
elseif(CMAKE_CXX_STANDARD LESS 20)
179106
message(STATUS "use c++17")
180107
else()
@@ -189,6 +116,6 @@ aux_source_directory(cortex-common CORTEX_COMMON)
189116
aux_source_directory(config CONFIG_SRC)
190117
aux_source_directory(commands COMMANDS_SRC)
191118

192-
target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} )
119+
target_include_directories(${TARGET_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} )
193120

194-
target_sources(${PROJECT_NAME} PRIVATE ${COMMANDS_SRC} ${CONFIG_SRC} ${CTL_SRC} ${COMMON_SRC} ${SERVICES_SRC})
121+
target_sources(${TARGET_NAME} PRIVATE ${COMMANDS_SRC} ${CONFIG_SRC} ${CTL_SRC} ${COMMON_SRC} ${SERVICES_SRC})

0 commit comments

Comments
 (0)