From 1427ef7195d796402799891d7607e6d382c7d90c Mon Sep 17 00:00:00 2001 From: Jared Van Bortel Date: Thu, 9 May 2024 13:42:46 -0400 Subject: [PATCH] chat: fix window icon on Windows (#2321) * chat: fix window icon on Windows Signed-off-by: Jared Van Bortel * chat: remove redundant copy of macOS app icon This has been redundant since PR #2180. Signed-off-by: Jared Van Bortel --------- Signed-off-by: Jared Van Bortel --- gpt4all-chat/CMakeLists.txt | 29 ++++++++++++------ gpt4all-chat/cmake/deploy-qt-mac.cmake.in | 4 +-- gpt4all-chat/cmake/deploy-qt-windows.cmake.in | 2 +- gpt4all-chat/cmake/installerscript.qs | 4 +-- .../favicon.icns => resources/gpt4all.icns} | Bin .../favicon.ico => resources/gpt4all.ico} | Bin gpt4all-chat/resources/gpt4all.rc | 1 + 7 files changed, 24 insertions(+), 16 deletions(-) rename gpt4all-chat/{icons/favicon.icns => resources/gpt4all.icns} (100%) rename gpt4all-chat/{icons/favicon.ico => resources/gpt4all.ico} (100%) create mode 100644 gpt4all-chat/resources/gpt4all.rc diff --git a/gpt4all-chat/CMakeLists.txt b/gpt4all-chat/CMakeLists.txt index c5cbb483..27173862 100644 --- a/gpt4all-chat/CMakeLists.txt +++ b/gpt4all-chat/CMakeLists.txt @@ -68,9 +68,21 @@ if(${CMAKE_SYSTEM_NAME} MATCHES Darwin) set(METAL_SHADER_FILE ../gpt4all-backend/llama.cpp-mainline/ggml-metal.metal) endif() -set(APP_ICON_FILE "${CMAKE_CURRENT_SOURCE_DIR}/icons/favicon.icns") -set_source_files_properties(${APP_ICON_FILE} PROPERTIES - MACOSX_PACKAGE_LOCATION "Resources") +set(APP_ICON_RESOURCE) +if (WIN32) + set(APP_ICON_RESOURCE "${CMAKE_CURRENT_SOURCE_DIR}/resources/gpt4all.rc") +elseif (APPLE) + # The MACOSX_BUNDLE_ICON_FILE variable is added to the Info.plist + # generated by CMake. This variable contains the .icns file name, + # without the path. + set(MACOSX_BUNDLE_ICON_FILE gpt4all.icns) + + # And the following tells CMake where to find and install the file itself. + set(APP_ICON_RESOURCE "${CMAKE_CURRENT_SOURCE_DIR}/resources/gpt4all.icns") + set_source_files_properties(${APP_ICON_RESOURCE} PROPERTIES + MACOSX_PACKAGE_LOCATION "Resources") +endif() + qt_add_executable(chat main.cpp @@ -91,7 +103,7 @@ qt_add_executable(chat logger.h logger.cpp responsetext.h responsetext.cpp ${METAL_SHADER_FILE} - ${APP_ICON_FILE} + ${APP_ICON_RESOURCE} ) qt_add_qml_module(chat @@ -153,8 +165,6 @@ qt_add_qml_module(chat icons/logo.svg icons/logo-32.png icons/logo-48.png - icons/favicon.ico - icons/favicon.icns ) set_target_properties(chat PROPERTIES @@ -163,7 +173,6 @@ set_target_properties(chat PROPERTIES MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} MACOSX_BUNDLE TRUE WIN32_EXECUTABLE TRUE - MACOSX_BUNDLE_ICON_FILE "favicon.icns" ) if(${CMAKE_SYSTEM_NAME} MATCHES Darwin) @@ -230,7 +239,7 @@ elseif(${CMAKE_SYSTEM_NAME} MATCHES Windows) "${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.6") - set(CPACK_IFW_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/icons/favicon.ico") + set(CPACK_IFW_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/resources/gpt4all.ico") set(CPACK_PACKAGE_FILE_NAME "${COMPONENT_NAME_MAIN}-installer-win64") set(CPACK_IFW_TARGET_DIRECTORY "@HomeDir@\\${COMPONENT_NAME_MAIN}") elseif(${CMAKE_SYSTEM_NAME} MATCHES Darwin) @@ -239,11 +248,11 @@ elseif(${CMAKE_SYSTEM_NAME} MATCHES Darwin) "${CMAKE_BINARY_DIR}/cmake/deploy-qt-mac.cmake" @ONLY) set(CPACK_PRE_BUILD_SCRIPTS ${CMAKE_BINARY_DIR}/cmake/deploy-qt-mac.cmake) set(CPACK_IFW_ROOT "~/Qt/Tools/QtInstallerFramework/4.6") - set(CPACK_IFW_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/icons/favicon.icns") + set(CPACK_IFW_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/resources/gpt4all.icns") set(CPACK_PACKAGE_FILE_NAME "${COMPONENT_NAME_MAIN}-installer-darwin") set(CPACK_IFW_TARGET_DIRECTORY "@ApplicationsDir@/${COMPONENT_NAME_MAIN}") set(CPACK_BUNDLE_NAME ${COMPONENT_NAME_MAIN}) - set(CPACK_BUNDLE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/icons/favicon.icns") + set(CPACK_BUNDLE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/resources/gpt4all.icns") endif() set(CPACK_PACKAGE_INSTALL_DIRECTORY ${COMPONENT_NAME_MAIN}) diff --git a/gpt4all-chat/cmake/deploy-qt-mac.cmake.in b/gpt4all-chat/cmake/deploy-qt-mac.cmake.in index 9ea6e43e..89d6f42c 100644 --- a/gpt4all-chat/cmake/deploy-qt-mac.cmake.in +++ b/gpt4all-chat/cmake/deploy-qt-mac.cmake.in @@ -14,11 +14,9 @@ file(COPY ${MYBERTLLIBS} DESTINATION ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/packages/${COMPONENT_NAME_MAIN}/data/bin/gpt4all.app/Contents/Frameworks) file(COPY ${MYLLMODELLIBS} DESTINATION ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/packages/${COMPONENT_NAME_MAIN}/data/bin/gpt4all.app/Contents/Frameworks) -file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/icons/favicon.icns" - DESTINATION ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/packages/${COMPONENT_NAME_MAIN}/data/bin/gpt4all.app/Contents/Resources) file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/icons/logo-32.png" DESTINATION ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/packages/${COMPONENT_NAME_MAIN}/data) file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/icons/logo-48.png" DESTINATION ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/packages/${COMPONENT_NAME_MAIN}/data) -file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/icons/favicon.icns" +file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/resources/gpt4all.icns" DESTINATION ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/packages/${COMPONENT_NAME_MAIN}/data) diff --git a/gpt4all-chat/cmake/deploy-qt-windows.cmake.in b/gpt4all-chat/cmake/deploy-qt-windows.cmake.in index ff4ff6d8..df1f9b0c 100644 --- a/gpt4all-chat/cmake/deploy-qt-windows.cmake.in +++ b/gpt4all-chat/cmake/deploy-qt-windows.cmake.in @@ -9,5 +9,5 @@ file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/icons/logo-32.png" DESTINATION ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/packages/${COMPONENT_NAME_MAIN}/data) file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/icons/logo-48.png" DESTINATION ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/packages/${COMPONENT_NAME_MAIN}/data) -file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/icons/favicon.ico" +file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/resources/gpt4all.ico" DESTINATION ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/packages/${COMPONENT_NAME_MAIN}/data) diff --git a/gpt4all-chat/cmake/installerscript.qs b/gpt4all-chat/cmake/installerscript.qs index 841e1e52..51549a82 100644 --- a/gpt4all-chat/cmake/installerscript.qs +++ b/gpt4all-chat/cmake/installerscript.qs @@ -19,7 +19,7 @@ Component.prototype.createOperations = function() targetDirectory + "/bin/chat.exe", "@UserProfile@/Desktop/GPT4All.lnk", "workingDirectory=" + targetDirectory + "/bin", - "iconPath=" + targetDirectory + "/favicon.ico", + "iconPath=" + targetDirectory + "/gpt4all.ico", "iconId=0", "description=Open GPT4All"); } catch (e) { print("ERROR: creating desktop shortcut" + e); @@ -28,7 +28,7 @@ Component.prototype.createOperations = function() targetDirectory + "/bin/chat.exe", "@StartMenuDir@/GPT4All.lnk", "workingDirectory=" + targetDirectory + "/bin", - "iconPath=" + targetDirectory + "/favicon.ico", + "iconPath=" + targetDirectory + "/gpt4all.ico", "iconId=0", "description=Open GPT4All"); } else if (systemInfo.productType === "osx") { var gpt4allAppPath = targetDirectory + "/bin/gpt4all.app"; diff --git a/gpt4all-chat/icons/favicon.icns b/gpt4all-chat/resources/gpt4all.icns similarity index 100% rename from gpt4all-chat/icons/favicon.icns rename to gpt4all-chat/resources/gpt4all.icns diff --git a/gpt4all-chat/icons/favicon.ico b/gpt4all-chat/resources/gpt4all.ico similarity index 100% rename from gpt4all-chat/icons/favicon.ico rename to gpt4all-chat/resources/gpt4all.ico diff --git a/gpt4all-chat/resources/gpt4all.rc b/gpt4all-chat/resources/gpt4all.rc new file mode 100644 index 00000000..24865d7e --- /dev/null +++ b/gpt4all-chat/resources/gpt4all.rc @@ -0,0 +1 @@ +IDI_ICON1 ICON "gpt4all.ico"