diff --git a/.gitignore b/.gitignore index 01e00f3a..12920b19 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ CMakeLists.txt.user +models/* diff --git a/CMakeLists.txt b/CMakeLists.txt index 44a7549e..6e1108cc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -38,3 +38,37 @@ target_link_libraries(chat PRIVATE Qt6::Quick Qt6::Svg) target_link_libraries(chat PRIVATE ggml ggml_utils) + +set(COMPONENT_NAME_MAIN "gpt4all-chat") +set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/install) +install(TARGETS chat DESTINATION bin COMPONENT ${COMPONENT_NAME_MAIN}) + +set(CPACK_GENERATOR "IFW") + +if (WIN32) + find_program(WINDEPLOYQT windeployqt HINTS ${_qt_bin_dir}) + configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/deploy-qt-windows.cmake.in" + "${CMAKE_BINARY_DIR}/cmake/deploy-qt-windows.cmake" @ONLY) + set(CPACK_PRE_BUILD_SCRIPTS ${CMAKE_BINARY_DIR}/cmake/deploy-qt-windows.cmake) + set(CPACK_IFW_ROOT "C:/Qt/Tools/QtInstallerFramework/4.5") +endif (WIN32) + +set(CPACK_PACKAGE_VERSION_MAJOR "0") +set(CPACK_PACKAGE_VERSION_MINOR "1") +SET(CPACK_PACKAGE_VERSION_PATCH "0") +set(CPACK_IFW_PACKAGE_NAME "GPT4All Chat") +set(CPACK_IFW_PACKAGE_TITLE "GPT4All Chat Installer") +set(CPACK_IFW_PACKAGE_PUBLISHER "Adam Treat") +set(CPACK_IFW_PRODUCT_URL "https://github.com/manyoso/gpt4all-chat") +set(CPACK_IFW_PACKAGE_WIZARD_STYLE "Aero") +set(CPACK_IFW_PACKAGE_WIZARD_SHOW_PAGE_LIST OFF) +set(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE) +include(CPack) +include(CPackIFW) +cpack_add_component(${COMPONENT_NAME_MAIN} DOWNLOADED) +cpack_ifw_configure_component(${COMPONENT_NAME_MAIN} ESSENTIAL FORCED_INSTALLATION) +cpack_ifw_configure_component(${COMPONENT_NAME_MAIN} LICENSES "GPL-3.0 LICENSE" ${CPACK_RESOURCE_FILE_LICENSE}) + +if (WIN32) +cpack_ifw_add_repository("GPT4AllRepository" URL "/path/to/repo/gpt4all-chat/install/windows/") +endif (WIN32) diff --git a/cmake/deploy-qt-windows.cmake.in b/cmake/deploy-qt-windows.cmake.in new file mode 100644 index 00000000..512b9646 --- /dev/null +++ b/cmake/deploy-qt-windows.cmake.in @@ -0,0 +1,6 @@ +set(WINDEPLOYQT "@WINDEPLOYQT@") +set(COMPONENT_NAME_MAIN "@COMPONENT_NAME_MAIN@") +set(CMAKE_CURRENT_SOURCE_DIR "@CMAKE_CURRENT_SOURCE_DIR@") +execute_process(COMMAND ${WINDEPLOYQT} --qmldir ${CMAKE_CURRENT_SOURCE_DIR} ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/packages/${COMPONENT_NAME_MAIN}/data/bin) +file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/models/ggml-model-q4_0.bin + DESTINATION ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/packages/${COMPONENT_NAME_MAIN}/data/bin) diff --git a/main.qml b/main.qml index d294aa1a..55aca913 100644 --- a/main.qml +++ b/main.qml @@ -1,6 +1,6 @@ import QtQuick import QtQuick.Controls -import QtQuick.Controls.Fusion +import QtQuick.Controls.Basic import llm Window { @@ -235,7 +235,7 @@ Window { } onClicked: { - textInput.onAccepted() + textInput.accepted() } } }