From 688f2010118c77e691b9ab6acccc9236c9a44006 Mon Sep 17 00:00:00 2001 From: Robert MacGregor Date: Tue, 31 May 2022 07:27:54 -0400 Subject: [PATCH] * BugFix: Correct applications built on Windows or OSX not having icons. --- Engine/source/CMakeLists.txt | 30 +++++++++++++++++++++--------- Tools/CMake/torque-win.rc.in | 4 ++-- 2 files changed, 23 insertions(+), 11 deletions(-) diff --git a/Engine/source/CMakeLists.txt b/Engine/source/CMakeLists.txt index 951c68347..13199484d 100644 --- a/Engine/source/CMakeLists.txt +++ b/Engine/source/CMakeLists.txt @@ -209,6 +209,15 @@ if (UNIX AND NOT APPLE) set(TORQUE_LINK_LIBRARIES ${TORQUE_LINK_LIBRARIES} ${FREETYPE_LIBRARIES}) endif (UNIX AND NOT APPLE) +# Prepare Windows RC file +if (WIN32) + set(APPLICATION_ICON_PATH "${CMAKE_SOURCE_DIR}/Tools/CMake/torque.ico") + CONFIGURE_FILE("${CMAKE_SOURCE_DIR}/Tools/CMake/torque-win.rc.in" "${CMAKE_BINARY_DIR}/temp/torque.rc") + set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES} "${CMAKE_BINARY_DIR}/temp/torque.rc") +endif (WIN32) + + + # Search module directories set(TORQUE_MODULE_PATHS "${CMAKE_SOURCE_DIR}/Tools/CMake/modules") @@ -239,9 +248,20 @@ foreach (TORQUE_MODULE_PATH ${TORQUE_MODULE_PATHS}) endforeach() endforeach() +if (APPLE) + # Parameters used for the plist configuration + set(EXECUTABLE_NAME "${TORQUE_APP_NAME}") + + CONFIGURE_FILE("${CMAKE_SOURCE_DIR}/Tools/CMake/Info.plist.in" "${CMAKE_BINARY_DIR}/temp/Info.plist" COPYONLY) + set_target_properties(${TORQUE_APP_NAME} PROPERTIES MACOSX_BUNDLE_INFO_PLIST "${CMAKE_BINARY_DIR}/temp/Info.plist") + + # Next setup the icon for OSX + set_source_files_properties("${CMAKE_SOURCE_DIR}/Tools/CMake/torque.icns" PROPERTIES MACOSX_PACKAGE_LOCATION "Resources") +endif (APPLE) + # Final executable if (APPLE) - add_executable(${TORQUE_APP_NAME} MACOSX_BUNDLE ${TORQUE_SOURCE_FILES}) + add_executable(${TORQUE_APP_NAME} MACOSX_BUNDLE "${CMAKE_SOURCE_DIR}/Tools/CMake/torque.icns" ${TORQUE_SOURCE_FILES}) elseif (WIN32) add_executable(${TORQUE_APP_NAME} WIN32 ${TORQUE_SOURCE_FILES}) else() @@ -257,14 +277,6 @@ if (WIN32) set_target_properties(${TORQUE_APP_NAME} PROPERTIES COMPILE_FLAGS "-D_CRT_SECURE_NO_WARNINGS /MP /Zc:wchar_t-") endif (WIN32) -if (APPLE) - # Parameters used for the plist configuration - set(EXECUTABLE_NAME "${TORQUE_APP_NAME}") - - CONFIGURE_FILE("${CMAKE_SOURCE_DIR}/Tools/CMake/Info.plist.in" "${CMAKE_BINARY_DIR}/temp/Info.plist" COPYONLY) - set_target_properties(${TORQUE_APP_NAME} PROPERTIES MACOSX_BUNDLE_INFO_PLIST "${CMAKE_BINARY_DIR}/temp/Info.plist") -endif (APPLE) - if (UNIX AND NOT APPLE) set_target_properties(${TORQUE_APP_NAME} PROPERTIES LINK_FLAGS "-Wl,-rpath,./") endif (UNIX AND NOT APPLE) diff --git a/Tools/CMake/torque-win.rc.in b/Tools/CMake/torque-win.rc.in index 498d1e95e..b86185a4e 100644 --- a/Tools/CMake/torque-win.rc.in +++ b/Tools/CMake/torque-win.rc.in @@ -40,8 +40,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US // Icon with lowest ID value placed first to ensure application icon // remains consistent on all systems. -IDI_ICON1 ICON DISCARDABLE "torque.ico" -IDI_ICON2 ICON DISCARDABLE "torque.ico" +IDI_ICON1 ICON DISCARDABLE "@APPLICATION_ICON_PATH@" +IDI_ICON2 ICON DISCARDABLE "@APPLICATION_ICON_PATH@" #ifdef APSTUDIO_INVOKED /////////////////////////////////////////////////////////////////////////////