01 июля 2010

Иконка приложения в win среде.

Продолжаем тему. С изобретением иконок в дизайне их начали засовывать в самые труднодоступные места. Засунем и мы иконку в исполняемый в win среде файл, чтобы любой "проводник" показывал нам не синюю рамку с тремя пуговицами.

Для cmake >= 2.8.4 просто добавте *.rc файл к цели сборки. Например, так:

add_executable(${PROJECT_NAME} WIN32
${SOURCES}
share/images/logo.rc)

Для cmake < 2.8.4
В каталоге с исходным кодом проекта создаем ветку директорий share/images/application. В полученной ветке создаем будущую иконку (пример, logo.ico) и файл win-ресурсов (пример, logo.rc).
Файл win-ресурсов выглядит так:
IDI_ICON1 ICON DISCARDABLE "logo.ico"
В cmake проекте:
#create app icon
# Путь к объектному файлу иконки
set(WIN_RESOURCES)
# Если в win среде компилируем с помощью MINGW
if(MINGW AND WIN32)
# resource compilation for mingw
# Добавляем команду компиляции
ADD_CUSTOM_COMMAND(OUTPUT 
# Получаемый объектный файл win-ресурсов
${CMAKE_CURRENT_BINARY_DIR}/logo_rc.o
# Компилятор ресурсов
COMMAND windres.exe 
# Место, где лежит иконка
-I"${CMAKE_SOURCE_DIR}/share/images/application/"
# Файл win-ресурсов
-i "${CMAKE_SOURCE_DIR}/share/images/application/logo.rc"
# Получаемый объектный файл win-ресурсов
-o ${CMAKE_CURRENT_BINARY_DIR}/logo_rc.o)
# Путь к объектному файлу win-ресурсов
SET(WIN_RESOURCES ${CMAKE_CURRENT_BINARY_DIR}/logo_rc.o)
# Если не используем MINGW
elseif((NOT MINGW) AND WIN32)
SET(WIN_RESOURCES"${CMAKE_SOURCE_DIR}/share/images/application/logo.rc")
endif(MINGW AND WIN32)

#Компилируем вместе с иконкой
add_executable(${PROJECT_NAME} WIN32
${SOURCES}
${Q_SOURCES}
${MOC_SOURCES}
${QRC_SOURCES}
${HEADERS}
${Q_HEADERS}
${P_HEADERS}
${UI_HEADERS}
${QS_SOURCES}
${WIN_RESOURCES})
Исходная информация была взята отсюда.

Комментариев нет:

Отправить комментарий