Skip to content

Instantly share code, notes, and snippets.

@Niakr1s
Created November 23, 2019 19:55
Show Gist options
  • Select an option

  • Save Niakr1s/749a88643e154320768e5972c80347cb to your computer and use it in GitHub Desktop.

Select an option

Save Niakr1s/749a88643e154320768e5972c80347cb to your computer and use it in GitHub Desktop.
How to add icon to cmake app in windows
1. Put app.ico in directory.
2. Create app.rc in same directory with one line:
IDI_ICON1 ICON DISCARDABLE "app.ico"
3. Run command (Warning: it's app.o, not app.res, how it is mentioned in other manuals!)
windres app.rc -o app.o
4. add_executable(app
...
app.o
)
5. Proofit!
@IvessJohn

Copy link
Copy Markdown

Hi! I was using this method but actually discovered you can simply add the ".rc" file to the sources and it should just work...

Thank you for sharing, just including the .rc in sources allowed me to skip step 3 and 4.

@Sultan-papagani

Copy link
Copy Markdown

ImGui GLFW window add icon

stbi_load function
https://github.com/nothings/stb/blob/master/stb_image.h

GLFWimage images[1];
images[0].pixels = stbi_load("icon_should_be_same_folder_with_exe.png", &images[0].width, &images[0].height, 0, 4);
glfwSetWindowIcon(window, 1, images);
stbi_image_free(images[0].pixels);

@Dimferon

Dimferon commented Feb 9, 2025

Copy link
Copy Markdown

You can use magick to convert png to icon. The main thing is that the png sizes are the right size.
PNG dimensions: 16x16, 32x32, 256x256

In the console, we convert using magick:

magick.exe convert myIcon.png icon.ico

In CMakeLists.txt we specify the path to the rc file in add_executable, I had it like this:

add_executable(${PROJECT_NAME} WIN32
  ${ALL_HEADERS}
  ${ALL_SOURCES}
  qml.qrc
  resource/resource.qrc
  resource/app.rc
)

app.rc file:

IDI_ICON1 ICON DISCARDABLE "icon.ico"

@Sultan-papagani

Copy link
Copy Markdown

@florrika

florrika commented Aug 9, 2025

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment