mirror of
https://github.com/nomic-ai/gpt4all.git
synced 2025-06-25 23:13:06 +00:00
repo: organize sources, headers, and deps into subdirectories (#2917)
Signed-off-by: Jared Van Bortel <jared@nomic.ai>
This commit is contained in:
parent
ed8bd4ceda
commit
ca151f3519
4
.gitmodules
vendored
4
.gitmodules
vendored
@ -1,7 +1,7 @@
|
|||||||
[submodule "llama.cpp-mainline"]
|
[submodule "llama.cpp-mainline"]
|
||||||
path = gpt4all-backend/llama.cpp-mainline
|
path = gpt4all-backend/deps/llama.cpp-mainline
|
||||||
url = https://github.com/nomic-ai/llama.cpp.git
|
url = https://github.com/nomic-ai/llama.cpp.git
|
||||||
branch = master
|
branch = master
|
||||||
[submodule "gpt4all-chat/usearch"]
|
[submodule "gpt4all-chat/usearch"]
|
||||||
path = gpt4all-chat/usearch
|
path = gpt4all-chat/deps/usearch
|
||||||
url = https://github.com/nomic-ai/usearch.git
|
url = https://github.com/nomic-ai/usearch.git
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
cmake_minimum_required(VERSION 3.21) # for PROJECT_IS_TOP_LEVEL
|
cmake_minimum_required(VERSION 3.23) # for FILE_SET
|
||||||
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
|
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
|
||||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||||
|
|
||||||
@ -47,7 +47,7 @@ else()
|
|||||||
message(STATUS "Interprocedural optimization support detected")
|
message(STATUS "Interprocedural optimization support detected")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(DIRECTORY llama.cpp-mainline)
|
set(DIRECTORY deps/llama.cpp-mainline)
|
||||||
include(llama.cpp.cmake)
|
include(llama.cpp.cmake)
|
||||||
|
|
||||||
set(BUILD_VARIANTS)
|
set(BUILD_VARIANTS)
|
||||||
@ -146,9 +146,12 @@ foreach(BUILD_VARIANT IN LISTS BUILD_VARIANTS)
|
|||||||
|
|
||||||
# Add each individual implementations
|
# Add each individual implementations
|
||||||
add_library(llamamodel-mainline-${BUILD_VARIANT} SHARED
|
add_library(llamamodel-mainline-${BUILD_VARIANT} SHARED
|
||||||
llamamodel.cpp llmodel_shared.cpp)
|
src/llamamodel.cpp src/llmodel_shared.cpp)
|
||||||
target_compile_definitions(llamamodel-mainline-${BUILD_VARIANT} PRIVATE
|
target_compile_definitions(llamamodel-mainline-${BUILD_VARIANT} PRIVATE
|
||||||
LLAMA_VERSIONS=>=3 LLAMA_DATE=999999)
|
LLAMA_VERSIONS=>=3 LLAMA_DATE=999999)
|
||||||
|
target_include_directories(llamamodel-mainline-${BUILD_VARIANT} PRIVATE
|
||||||
|
src include/gpt4all-backend
|
||||||
|
)
|
||||||
prepare_target(llamamodel-mainline llama-mainline)
|
prepare_target(llamamodel-mainline llama-mainline)
|
||||||
|
|
||||||
if (NOT PROJECT_IS_TOP_LEVEL AND BUILD_VARIANT STREQUAL cuda)
|
if (NOT PROJECT_IS_TOP_LEVEL AND BUILD_VARIANT STREQUAL cuda)
|
||||||
@ -157,11 +160,19 @@ foreach(BUILD_VARIANT IN LISTS BUILD_VARIANTS)
|
|||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
add_library(llmodel
|
add_library(llmodel
|
||||||
llmodel.h llmodel.cpp llmodel_shared.cpp
|
src/dlhandle.cpp
|
||||||
llmodel_c.h llmodel_c.cpp
|
src/llmodel.cpp
|
||||||
dlhandle.cpp
|
src/llmodel_c.cpp
|
||||||
|
src/llmodel_shared.cpp
|
||||||
|
)
|
||||||
|
target_sources(llmodel PUBLIC
|
||||||
|
FILE_SET public_headers TYPE HEADERS BASE_DIRS include
|
||||||
|
FILES include/gpt4all-backend/llmodel.h
|
||||||
|
include/gpt4all-backend/llmodel_c.h
|
||||||
|
include/gpt4all-backend/sysinfo.h
|
||||||
)
|
)
|
||||||
target_compile_definitions(llmodel PRIVATE LIB_FILE_EXT="${CMAKE_SHARED_LIBRARY_SUFFIX}")
|
target_compile_definitions(llmodel PRIVATE LIB_FILE_EXT="${CMAKE_SHARED_LIBRARY_SUFFIX}")
|
||||||
|
target_include_directories(llmodel PRIVATE src include/gpt4all-backend)
|
||||||
|
|
||||||
set_target_properties(llmodel PROPERTIES
|
set_target_properties(llmodel PROPERTIES
|
||||||
VERSION ${PROJECT_VERSION}
|
VERSION ${PROJECT_VERSION}
|
||||||
|
@ -811,7 +811,8 @@ function(include_ggml SUFFIX)
|
|||||||
list(APPEND XC_FLAGS -std=${GGML_METAL_STD})
|
list(APPEND XC_FLAGS -std=${GGML_METAL_STD})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(GGML_METALLIB ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/default.metallib)
|
set(GGML_METALLIB "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/default.metallib")
|
||||||
|
set(GGML_METALLIB "${GGML_METALLIB}" PARENT_SCOPE)
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
OUTPUT ${GGML_METALLIB}
|
OUTPUT ${GGML_METALLIB}
|
||||||
COMMAND xcrun -sdk macosx metal ${XC_FLAGS} -c ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ggml-metal.metal -o ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ggml-metal.air
|
COMMAND xcrun -sdk macosx metal ${XC_FLAGS} -c ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ggml-metal.metal -o ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ggml-metal.air
|
||||||
@ -822,7 +823,6 @@ function(include_ggml SUFFIX)
|
|||||||
DEPENDS ${DIRECTORY}/ggml/src/ggml-metal.metal ${DIRECTORY}/ggml/src/ggml-common.h
|
DEPENDS ${DIRECTORY}/ggml/src/ggml-metal.metal ${DIRECTORY}/ggml/src/ggml-common.h
|
||||||
COMMENT "Compiling Metal kernels"
|
COMMENT "Compiling Metal kernels"
|
||||||
)
|
)
|
||||||
set_source_files_properties(${GGML_METALLIB} DIRECTORY ${CMAKE_SOURCE_DIR} PROPERTIES GENERATED ON)
|
|
||||||
|
|
||||||
add_custom_target(
|
add_custom_target(
|
||||||
ggml-metal ALL
|
ggml-metal ALL
|
||||||
|
@ -70,7 +70,7 @@ set(CHAT_EXE_RESOURCES)
|
|||||||
|
|
||||||
# Metal shader library
|
# Metal shader library
|
||||||
if (APPLE)
|
if (APPLE)
|
||||||
list(APPEND CHAT_EXE_RESOURCES "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/default.metallib")
|
list(APPEND CHAT_EXE_RESOURCES "${GGML_METALLIB}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# App icon
|
# App icon
|
||||||
@ -105,75 +105,11 @@ if (APPLE)
|
|||||||
list(APPEND CHAT_EXE_RESOURCES "${LOCAL_EMBEDDING_MODEL_PATH}")
|
list(APPEND CHAT_EXE_RESOURCES "${LOCAL_EMBEDDING_MODEL_PATH}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
qt_add_executable(chat
|
add_subdirectory(src)
|
||||||
main.cpp
|
|
||||||
chat.h chat.cpp
|
|
||||||
chatllm.h chatllm.cpp
|
|
||||||
chatmodel.h chatlistmodel.h chatlistmodel.cpp
|
|
||||||
chatapi.h chatapi.cpp
|
|
||||||
chatviewtextprocessor.h chatviewtextprocessor.cpp
|
|
||||||
database.h database.cpp
|
|
||||||
download.h download.cpp
|
|
||||||
embllm.cpp embllm.h
|
|
||||||
localdocs.h localdocs.cpp localdocsmodel.h localdocsmodel.cpp
|
|
||||||
llm.h llm.cpp
|
|
||||||
modellist.h modellist.cpp
|
|
||||||
mysettings.h mysettings.cpp
|
|
||||||
network.h network.cpp
|
|
||||||
server.h server.cpp
|
|
||||||
logger.h logger.cpp
|
|
||||||
${APP_ICON_RESOURCE}
|
|
||||||
${CHAT_EXE_RESOURCES}
|
|
||||||
)
|
|
||||||
|
|
||||||
qt_add_qml_module(chat
|
target_sources(chat PRIVATE ${APP_ICON_RESOURCE} ${CHAT_EXE_RESOURCES})
|
||||||
URI gpt4all
|
|
||||||
VERSION 1.0
|
qt_target_qml_sources(chat
|
||||||
NO_CACHEGEN
|
|
||||||
QML_FILES
|
|
||||||
main.qml
|
|
||||||
qml/AddCollectionView.qml
|
|
||||||
qml/AddModelView.qml
|
|
||||||
qml/ApplicationSettings.qml
|
|
||||||
qml/ChatDrawer.qml
|
|
||||||
qml/ChatView.qml
|
|
||||||
qml/CollectionsDrawer.qml
|
|
||||||
qml/HomeView.qml
|
|
||||||
qml/LocalDocsSettings.qml
|
|
||||||
qml/LocalDocsView.qml
|
|
||||||
qml/ModelSettings.qml
|
|
||||||
qml/ModelsView.qml
|
|
||||||
qml/NetworkDialog.qml
|
|
||||||
qml/NewVersionDialog.qml
|
|
||||||
qml/PopupDialog.qml
|
|
||||||
qml/SettingsView.qml
|
|
||||||
qml/StartupDialog.qml
|
|
||||||
qml/SwitchModelDialog.qml
|
|
||||||
qml/Theme.qml
|
|
||||||
qml/ThumbsDownDialog.qml
|
|
||||||
qml/Toast.qml
|
|
||||||
qml/ToastManager.qml
|
|
||||||
qml/MyBusyIndicator.qml
|
|
||||||
qml/MyButton.qml
|
|
||||||
qml/MyCheckBox.qml
|
|
||||||
qml/MyComboBox.qml
|
|
||||||
qml/MyDialog.qml
|
|
||||||
qml/MyDirectoryField.qml
|
|
||||||
qml/MyFancyLink.qml
|
|
||||||
qml/MyMenu.qml
|
|
||||||
qml/MyMenuItem.qml
|
|
||||||
qml/MyMiniButton.qml
|
|
||||||
qml/MySettingsButton.qml
|
|
||||||
qml/MySettingsDestructiveButton.qml
|
|
||||||
qml/MySettingsLabel.qml
|
|
||||||
qml/MySettingsStack.qml
|
|
||||||
qml/MySettingsTab.qml
|
|
||||||
qml/MySlug.qml
|
|
||||||
qml/MyTextArea.qml
|
|
||||||
qml/MyTextButton.qml
|
|
||||||
qml/MyTextField.qml
|
|
||||||
qml/MyToolButton.qml
|
|
||||||
qml/MyWelcomeButton.qml
|
|
||||||
RESOURCES
|
RESOURCES
|
||||||
icons/antenna_1.svg
|
icons/antenna_1.svg
|
||||||
icons/antenna_2.svg
|
icons/antenna_2.svg
|
||||||
@ -286,11 +222,13 @@ endif()
|
|||||||
target_compile_definitions(chat
|
target_compile_definitions(chat
|
||||||
PRIVATE $<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:QT_QML_DEBUG>)
|
PRIVATE $<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:QT_QML_DEBUG>)
|
||||||
|
|
||||||
|
target_include_directories(chat PRIVATE src)
|
||||||
|
|
||||||
# usearch uses the identifier 'slots' which conflicts with Qt's 'slots' keyword
|
# usearch uses the identifier 'slots' which conflicts with Qt's 'slots' keyword
|
||||||
target_compile_definitions(chat PRIVATE QT_NO_SIGNALS_SLOTS_KEYWORDS)
|
target_compile_definitions(chat PRIVATE QT_NO_SIGNALS_SLOTS_KEYWORDS)
|
||||||
|
|
||||||
target_include_directories(chat PRIVATE usearch/include
|
target_include_directories(chat PRIVATE deps/usearch/include
|
||||||
usearch/fp16/include)
|
deps/usearch/fp16/include)
|
||||||
|
|
||||||
if(LINUX)
|
if(LINUX)
|
||||||
target_link_libraries(chat
|
target_link_libraries(chat
|
||||||
|
72
gpt4all-chat/src/CMakeLists.txt
Normal file
72
gpt4all-chat/src/CMakeLists.txt
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
set_source_files_properties("${GGML_METALLIB}" PROPERTIES GENERATED ON)
|
||||||
|
|
||||||
|
qt_add_executable(chat
|
||||||
|
main.cpp
|
||||||
|
chat.cpp chat.h
|
||||||
|
chatapi.cpp chatapi.h
|
||||||
|
chatlistmodel.cpp chatlistmodel.h
|
||||||
|
chatllm.cpp chatllm.h
|
||||||
|
chatmodel.h
|
||||||
|
chatviewtextprocessor.cpp chatviewtextprocessor.h
|
||||||
|
database.cpp database.h
|
||||||
|
download.cpp download.h
|
||||||
|
embllm.cpp embllm.h
|
||||||
|
llm.cpp llm.h
|
||||||
|
localdocs.cpp localdocs.h
|
||||||
|
localdocsmodel.cpp localdocsmodel.h
|
||||||
|
logger.cpp logger.h
|
||||||
|
modellist.cpp modellist.h
|
||||||
|
mysettings.cpp mysettings.h
|
||||||
|
network.cpp network.h
|
||||||
|
server.cpp server.h
|
||||||
|
)
|
||||||
|
|
||||||
|
qt_add_qml_module(chat
|
||||||
|
URI gpt4all
|
||||||
|
VERSION 1.0
|
||||||
|
NO_CACHEGEN
|
||||||
|
QML_FILES
|
||||||
|
main.qml
|
||||||
|
qml/AddCollectionView.qml
|
||||||
|
qml/AddModelView.qml
|
||||||
|
qml/ApplicationSettings.qml
|
||||||
|
qml/ChatDrawer.qml
|
||||||
|
qml/ChatView.qml
|
||||||
|
qml/CollectionsDrawer.qml
|
||||||
|
qml/HomeView.qml
|
||||||
|
qml/LocalDocsSettings.qml
|
||||||
|
qml/LocalDocsView.qml
|
||||||
|
qml/ModelSettings.qml
|
||||||
|
qml/ModelsView.qml
|
||||||
|
qml/NetworkDialog.qml
|
||||||
|
qml/NewVersionDialog.qml
|
||||||
|
qml/PopupDialog.qml
|
||||||
|
qml/SettingsView.qml
|
||||||
|
qml/StartupDialog.qml
|
||||||
|
qml/SwitchModelDialog.qml
|
||||||
|
qml/Theme.qml
|
||||||
|
qml/ThumbsDownDialog.qml
|
||||||
|
qml/Toast.qml
|
||||||
|
qml/ToastManager.qml
|
||||||
|
qml/MyBusyIndicator.qml
|
||||||
|
qml/MyButton.qml
|
||||||
|
qml/MyCheckBox.qml
|
||||||
|
qml/MyComboBox.qml
|
||||||
|
qml/MyDialog.qml
|
||||||
|
qml/MyDirectoryField.qml
|
||||||
|
qml/MyFancyLink.qml
|
||||||
|
qml/MyMenu.qml
|
||||||
|
qml/MyMenuItem.qml
|
||||||
|
qml/MyMiniButton.qml
|
||||||
|
qml/MySettingsButton.qml
|
||||||
|
qml/MySettingsDestructiveButton.qml
|
||||||
|
qml/MySettingsLabel.qml
|
||||||
|
qml/MySettingsStack.qml
|
||||||
|
qml/MySettingsTab.qml
|
||||||
|
qml/MySlug.qml
|
||||||
|
qml/MyTextArea.qml
|
||||||
|
qml/MyTextButton.qml
|
||||||
|
qml/MyTextField.qml
|
||||||
|
qml/MyToolButton.qml
|
||||||
|
qml/MyWelcomeButton.qml
|
||||||
|
)
|
@ -1,6 +1,6 @@
|
|||||||
#include "chatapi.h"
|
#include "chatapi.h"
|
||||||
|
|
||||||
#include "../gpt4all-backend/llmodel.h"
|
#include <gpt4all-backend/llmodel.h>
|
||||||
|
|
||||||
#include <QCoreApplication>
|
#include <QCoreApplication>
|
||||||
#include <QGuiApplication>
|
#include <QGuiApplication>
|
@ -1,7 +1,7 @@
|
|||||||
#ifndef CHATAPI_H
|
#ifndef CHATAPI_H
|
||||||
#define CHATAPI_H
|
#define CHATAPI_H
|
||||||
|
|
||||||
#include "../gpt4all-backend/llmodel.h"
|
#include <gpt4all-backend/llmodel.h>
|
||||||
|
|
||||||
#include <QByteArray>
|
#include <QByteArray>
|
||||||
#include <QNetworkReply>
|
#include <QNetworkReply>
|
@ -4,7 +4,7 @@
|
|||||||
#include "database.h" // IWYU pragma: keep
|
#include "database.h" // IWYU pragma: keep
|
||||||
#include "modellist.h"
|
#include "modellist.h"
|
||||||
|
|
||||||
#include "../gpt4all-backend/llmodel.h"
|
#include <gpt4all-backend/llmodel.h>
|
||||||
|
|
||||||
#include <QByteArray>
|
#include <QByteArray>
|
||||||
#include <QElapsedTimer>
|
#include <QElapsedTimer>
|
@ -3,7 +3,7 @@
|
|||||||
#include "modellist.h"
|
#include "modellist.h"
|
||||||
#include "mysettings.h"
|
#include "mysettings.h"
|
||||||
|
|
||||||
#include "../gpt4all-backend/llmodel.h"
|
#include <gpt4all-backend/llmodel.h>
|
||||||
|
|
||||||
#include <QCoreApplication>
|
#include <QCoreApplication>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
@ -1,7 +1,7 @@
|
|||||||
#include "llm.h"
|
#include "llm.h"
|
||||||
|
|
||||||
#include "../gpt4all-backend/llmodel.h"
|
#include <gpt4all-backend/llmodel.h>
|
||||||
#include "../gpt4all-backend/sysinfo.h"
|
#include <gpt4all-backend/sysinfo.h>
|
||||||
|
|
||||||
#include <QCoreApplication>
|
#include <QCoreApplication>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
@ -8,7 +8,7 @@
|
|||||||
#include "mysettings.h"
|
#include "mysettings.h"
|
||||||
#include "network.h"
|
#include "network.h"
|
||||||
|
|
||||||
#include "../gpt4all-backend/llmodel.h"
|
#include <gpt4all-backend/llmodel.h>
|
||||||
|
|
||||||
#include <QCoreApplication>
|
#include <QCoreApplication>
|
||||||
#include <QGuiApplication>
|
#include <QGuiApplication>
|
@ -4,7 +4,7 @@
|
|||||||
#include "mysettings.h"
|
#include "mysettings.h"
|
||||||
#include "network.h"
|
#include "network.h"
|
||||||
|
|
||||||
#include "../gpt4all-backend/llmodel.h"
|
#include <gpt4all-backend/llmodel.h>
|
||||||
|
|
||||||
#include <QChar>
|
#include <QChar>
|
||||||
#include <QCoreApplication>
|
#include <QCoreApplication>
|
@ -1,6 +1,6 @@
|
|||||||
#include "mysettings.h"
|
#include "mysettings.h"
|
||||||
|
|
||||||
#include "../gpt4all-backend/llmodel.h"
|
#include <gpt4all-backend/llmodel.h>
|
||||||
|
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <QDir>
|
#include <QDir>
|
@ -9,7 +9,7 @@
|
|||||||
#include "modellist.h"
|
#include "modellist.h"
|
||||||
#include "mysettings.h"
|
#include "mysettings.h"
|
||||||
|
|
||||||
#include "../gpt4all-backend/llmodel.h"
|
#include <gpt4all-backend/llmodel.h>
|
||||||
|
|
||||||
#include <QCoreApplication>
|
#include <QCoreApplication>
|
||||||
#include <QDateTime>
|
#include <QDateTime>
|
Loading…
Reference in New Issue
Block a user