From 8fc6675a051ec80c4fdd0bd2403280b570bf0e52 Mon Sep 17 00:00:00 2001 From: wheremyfoodat <44909372+wheremyfoodat@users.noreply.github.com> Date: Sun, 3 Nov 2024 14:08:39 +0200 Subject: [PATCH] Sort out icons on desktop --- .github/mac-bundle-qt.sh | 20 ++++++++++---------- .github/mac-bundle.sh | 20 ++++++++++---------- CMakeLists.txt | 8 +++++++- docs/img/{alber-icon.ico => mac_icon.ico} | Bin docs/img/windows_icon.ico | Bin 0 -> 55502 bytes docs/img/windows_icon.rc | 1 + src/panda_qt/main_window.cpp | 2 ++ 7 files changed, 30 insertions(+), 21 deletions(-) rename docs/img/{alber-icon.ico => mac_icon.ico} (100%) create mode 100644 docs/img/windows_icon.ico create mode 100644 docs/img/windows_icon.rc diff --git a/.github/mac-bundle-qt.sh b/.github/mac-bundle-qt.sh index e18be8a5..f8083936 100644 --- a/.github/mac-bundle-qt.sh +++ b/.github/mac-bundle-qt.sh @@ -5,16 +5,16 @@ PATH="$PATH:/usr/libexec" # Construct the app iconset. mkdir alber.iconset -convert docs/img/alber-icon.ico -alpha on -background none -units PixelsPerInch -density 72 -resize 16x16 alber.iconset/icon_16x16.png -convert docs/img/alber-icon.ico -alpha on -background none -units PixelsPerInch -density 144 -resize 32x32 alber.iconset/icon_16x16@2x.png -convert docs/img/alber-icon.ico -alpha on -background none -units PixelsPerInch -density 72 -resize 32x32 alber.iconset/icon_32x32.png -convert docs/img/alber-icon.ico -alpha on -background none -units PixelsPerInch -density 144 -resize 64x64 alber.iconset/icon_32x32@2x.png -convert docs/img/alber-icon.ico -alpha on -background none -units PixelsPerInch -density 72 -resize 128x128 alber.iconset/icon_128x128.png -convert docs/img/alber-icon.ico -alpha on -background none -units PixelsPerInch -density 144 -resize 256x256 alber.iconset/icon_128x128@2x.png -convert docs/img/alber-icon.ico -alpha on -background none -units PixelsPerInch -density 72 -resize 256x256 alber.iconset/icon_256x256.png -convert docs/img/alber-icon.ico -alpha on -background none -units PixelsPerInch -density 144 -resize 512x512 alber.iconset/icon_256x256@2x.png -convert docs/img/alber-icon.ico -alpha on -background none -units PixelsPerInch -density 72 -resize 512x512 alber.iconset/icon_512x512.png -convert docs/img/alber-icon.ico -alpha on -background none -units PixelsPerInch -density 144 -resize 1024x1024 alber.iconset/icon_512x512@2x.png +convert docs/img/mac_icon.ico -alpha on -background none -units PixelsPerInch -density 72 -resize 16x16 alber.iconset/icon_16x16.png +convert docs/img/mac_icon.ico -alpha on -background none -units PixelsPerInch -density 144 -resize 32x32 alber.iconset/icon_16x16@2x.png +convert docs/img/mac_icon.ico -alpha on -background none -units PixelsPerInch -density 72 -resize 32x32 alber.iconset/icon_32x32.png +convert docs/img/mac_icon.ico -alpha on -background none -units PixelsPerInch -density 144 -resize 64x64 alber.iconset/icon_32x32@2x.png +convert docs/img/mac_icon.ico -alpha on -background none -units PixelsPerInch -density 72 -resize 128x128 alber.iconset/icon_128x128.png +convert docs/img/mac_icon.ico -alpha on -background none -units PixelsPerInch -density 144 -resize 256x256 alber.iconset/icon_128x128@2x.png +convert docs/img/mac_icon.ico -alpha on -background none -units PixelsPerInch -density 72 -resize 256x256 alber.iconset/icon_256x256.png +convert docs/img/mac_icon.ico -alpha on -background none -units PixelsPerInch -density 144 -resize 512x512 alber.iconset/icon_256x256@2x.png +convert docs/img/mac_icon.ico -alpha on -background none -units PixelsPerInch -density 72 -resize 512x512 alber.iconset/icon_512x512.png +convert docs/img/mac_icon.ico -alpha on -background none -units PixelsPerInch -density 144 -resize 1024x1024 alber.iconset/icon_512x512@2x.png iconutil --convert icns alber.iconset # Set up the .app directory diff --git a/.github/mac-bundle.sh b/.github/mac-bundle.sh index 314b30f7..3349d6d3 100755 --- a/.github/mac-bundle.sh +++ b/.github/mac-bundle.sh @@ -5,16 +5,16 @@ PATH="$PATH:/usr/libexec" # Construct the app iconset. mkdir alber.iconset -convert docs/img/alber-icon.ico -alpha on -background none -units PixelsPerInch -density 72 -resize 16x16 alber.iconset/icon_16x16.png -convert docs/img/alber-icon.ico -alpha on -background none -units PixelsPerInch -density 144 -resize 32x32 alber.iconset/icon_16x16@2x.png -convert docs/img/alber-icon.ico -alpha on -background none -units PixelsPerInch -density 72 -resize 32x32 alber.iconset/icon_32x32.png -convert docs/img/alber-icon.ico -alpha on -background none -units PixelsPerInch -density 144 -resize 64x64 alber.iconset/icon_32x32@2x.png -convert docs/img/alber-icon.ico -alpha on -background none -units PixelsPerInch -density 72 -resize 128x128 alber.iconset/icon_128x128.png -convert docs/img/alber-icon.ico -alpha on -background none -units PixelsPerInch -density 144 -resize 256x256 alber.iconset/icon_128x128@2x.png -convert docs/img/alber-icon.ico -alpha on -background none -units PixelsPerInch -density 72 -resize 256x256 alber.iconset/icon_256x256.png -convert docs/img/alber-icon.ico -alpha on -background none -units PixelsPerInch -density 144 -resize 512x512 alber.iconset/icon_256x256@2x.png -convert docs/img/alber-icon.ico -alpha on -background none -units PixelsPerInch -density 72 -resize 512x512 alber.iconset/icon_512x512.png -convert docs/img/alber-icon.ico -alpha on -background none -units PixelsPerInch -density 144 -resize 1024x1024 alber.iconset/icon_512x512@2x.png +convert docs/img/mac_icon.ico -alpha on -background none -units PixelsPerInch -density 72 -resize 16x16 alber.iconset/icon_16x16.png +convert docs/img/mac_icon.ico -alpha on -background none -units PixelsPerInch -density 144 -resize 32x32 alber.iconset/icon_16x16@2x.png +convert docs/img/mac_icon.ico -alpha on -background none -units PixelsPerInch -density 72 -resize 32x32 alber.iconset/icon_32x32.png +convert docs/img/mac_icon.ico -alpha on -background none -units PixelsPerInch -density 144 -resize 64x64 alber.iconset/icon_32x32@2x.png +convert docs/img/mac_icon.ico -alpha on -background none -units PixelsPerInch -density 72 -resize 128x128 alber.iconset/icon_128x128.png +convert docs/img/mac_icon.ico -alpha on -background none -units PixelsPerInch -density 144 -resize 256x256 alber.iconset/icon_128x128@2x.png +convert docs/img/mac_icon.ico -alpha on -background none -units PixelsPerInch -density 72 -resize 256x256 alber.iconset/icon_256x256.png +convert docs/img/mac_icon.ico -alpha on -background none -units PixelsPerInch -density 144 -resize 512x512 alber.iconset/icon_256x256@2x.png +convert docs/img/mac_icon.ico -alpha on -background none -units PixelsPerInch -density 72 -resize 512x512 alber.iconset/icon_512x512.png +convert docs/img/mac_icon.ico -alpha on -background none -units PixelsPerInch -density 144 -resize 1024x1024 alber.iconset/icon_512x512@2x.png iconutil --convert icns alber.iconset # Set up the .app directory diff --git a/CMakeLists.txt b/CMakeLists.txt index 33e4787a..2d615bf4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,6 +25,12 @@ if(APPLE) enable_language(OBJC) endif() +# Enable RC support in order to use resource files for application icons +if(WIN32) + enable_language(RC) + set(APP_RESOURCES docs/img/windows_icon.rc) +endif() + if(NOT CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-format-nonliteral -Wno-format-security -Wno-invalid-offsetof") endif() @@ -593,7 +599,7 @@ if(NOT BUILD_HYDRA_CORE AND NOT BUILD_LIBRETRO_CORE) endif() target_link_libraries(Alber PRIVATE AlberCore) - target_sources(Alber PRIVATE ${FRONTEND_SOURCE_FILES} ${FRONTEND_HEADER_FILES}) + target_sources(Alber PRIVATE ${FRONTEND_SOURCE_FILES} ${FRONTEND_HEADER_FILES} ${APP_RESOURCES}) elseif(BUILD_HYDRA_CORE) target_compile_definitions(AlberCore PRIVATE PANDA3DS_HYDRA_CORE=1) include_directories(third_party/hydra_core/include) diff --git a/docs/img/alber-icon.ico b/docs/img/mac_icon.ico similarity index 100% rename from docs/img/alber-icon.ico rename to docs/img/mac_icon.ico diff --git a/docs/img/windows_icon.ico b/docs/img/windows_icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..340f251e546b926a82d0d3dccf6be7e8c51557be GIT binary patch literal 55502 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