Переглянути джерело

* BugFix: Correct applications built on Windows or OSX not having icons.

Robert MacGregor 3 роки тому
батько
коміт
688f201011
2 змінених файлів з 23 додано та 11 видалено
  1. 21 9
      Engine/source/CMakeLists.txt
  2. 2 2
      Tools/CMake/torque-win.rc.in

+ 21 - 9
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)

+ 2 - 2
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
 /////////////////////////////////////////////////////////////////////////////