Browse Source

Merge pull request #1240 from marauder2k9-torque/MACOSX-CompileFixes

MacOSX compile fixes and improvements
Brian Roberts 1 năm trước cách đây
mục cha
commit
36fa51da3a

+ 16 - 4
Engine/source/CMakeLists.txt

@@ -320,7 +320,7 @@ endif (WIN32)
 
 
 # Prepare OSX Plist
 # Prepare OSX Plist
 if (APPLE)
 if (APPLE)
-  set(MACOSX_RESOURCES "${CMAKE_SOURCE_DIR}/Tools/CMake/torque.icns" 
+  set(MACOSX_RESOURCES
   "${TORQUE_APP_GAME_DIRECTORY}/data"
   "${TORQUE_APP_GAME_DIRECTORY}/data"
   "${TORQUE_APP_GAME_DIRECTORY}/core"
   "${TORQUE_APP_GAME_DIRECTORY}/core"
   "${TORQUE_APP_GAME_DIRECTORY}/tools"
   "${TORQUE_APP_GAME_DIRECTORY}/tools"
@@ -340,6 +340,8 @@ if (APPLE)
 
 
 	set(EXECUTABLE_NAME "${TORQUE_APP_NAME}")
 	set(EXECUTABLE_NAME "${TORQUE_APP_NAME}")
 	configure_file("${CMAKE_SOURCE_DIR}/Tools/CMake/Info.plist.in" "${TORQUE_APP_ROOT_DIRECTORY}/source/Info.plist" COPYONLY)
 	configure_file("${CMAKE_SOURCE_DIR}/Tools/CMake/Info.plist.in" "${TORQUE_APP_ROOT_DIRECTORY}/source/Info.plist" COPYONLY)
+  file( COPY "${CMAKE_SOURCE_DIR}/Tools/CMake/app_assets/apple/App.xcassets" DESTINATION "${TORQUE_APP_ROOT_DIRECTORY}/source")
+  
 endif (APPLE)
 endif (APPLE)
 
 
 addDef(TORQUE_DEBUG Debug)
 addDef(TORQUE_DEBUG Debug)
@@ -381,12 +383,21 @@ else()
 endif (TORQUE_DYNAMIC_LIBRARY AND NOT TORQUE_TESTING)
 endif (TORQUE_DYNAMIC_LIBRARY AND NOT TORQUE_TESTING)
 
 
 if (APPLE)
 if (APPLE)
-	add_executable(${TORQUE_APP_NAME} MACOSX_BUNDLE ${TORQUE_SOURCE_FILES})
+	add_executable(${TORQUE_APP_NAME} MACOSX_BUNDLE 
+    ${TORQUE_SOURCE_FILES})
+
+  target_sources(${TORQUE_APP_NAME} PRIVATE "${TORQUE_APP_ROOT_DIRECTORY}/source/App.xcassets")
+
+  set_source_files_properties( "${TORQUE_APP_ROOT_DIRECTORY}/source/App.xcassets" PROPERTIES 
+        MACOSX_PACKAGE_LOCATION Resources)
+
 	set_target_properties(${TORQUE_APP_NAME} PROPERTIES 
 	set_target_properties(${TORQUE_APP_NAME} PROPERTIES 
-  BUNDLE true
+  MACOSX_BUNDLE true
   MACOSX_BUNDLE_INFO_PLIST "${TORQUE_APP_ROOT_DIRECTORY}/source/Info.plist"
   MACOSX_BUNDLE_INFO_PLIST "${TORQUE_APP_ROOT_DIRECTORY}/source/Info.plist"
+  XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "com.torque3d.${TORQUE_APP_NAME}"
   XCODE_ATTRIBUTE_INSTALL_PATH "/Applications"
   XCODE_ATTRIBUTE_INSTALL_PATH "/Applications"
   XCODE_ATTRIBUTE_SKIP_INSTALL "No"
   XCODE_ATTRIBUTE_SKIP_INSTALL "No"
+  XCODE_ATTRIBUTE_ASSETCATALOG_COMPILER_APPICON_NAME "AppIcon"
   XCODE_ATTRIBUTE_LINKER_DISPLAYS_MANGLED_NAMES[variant=Debug] YES
   XCODE_ATTRIBUTE_LINKER_DISPLAYS_MANGLED_NAMES[variant=Debug] YES
   XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH[variant=Debug] YES
   XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH[variant=Debug] YES
   XCODE_ATTRIBUTE_ENABLE_TESTABILITY[variant=Debug] YES
   XCODE_ATTRIBUTE_ENABLE_TESTABILITY[variant=Debug] YES
@@ -507,7 +518,8 @@ if (UNIX)
 		  if ("${LINK_LIBRARY_TYPE}" STREQUAL "SHARED_LIBRARY")
 		  if ("${LINK_LIBRARY_TYPE}" STREQUAL "SHARED_LIBRARY")
         if (APPLE)
         if (APPLE)
           set_target_properties(${GAME_LINK_LIBRARY} PROPERTIES 
           set_target_properties(${GAME_LINK_LIBRARY} PROPERTIES 
-          XCODE_ATTRIBUTE_INSTALL_PATH "@rpath")
+                  XCODE_ATTRIBUTE_INSTALL_PATH "@rpath"
+                  XCODE_ATTRIBUTE_SKIP_INSTALL[variant=Release] YES)
         else()
         else()
           set_target_properties(${GAME_LINK_LIBRARY} PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${TORQUE_APP_GAME_DIRECTORY}")
           set_target_properties(${GAME_LINK_LIBRARY} PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${TORQUE_APP_GAME_DIRECTORY}")
         endif(APPLE)
         endif(APPLE)

+ 21 - 7
Tools/CMake/Info.plist.in

@@ -1,22 +1,36 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 <plist version="1.0">
 <plist version="1.0">
 <dict>
 <dict>
 	<key>CFBundleDevelopmentRegion</key>
 	<key>CFBundleDevelopmentRegion</key>
 	<string>English</string>
 	<string>English</string>
 	<key>CFBundleExecutable</key>
 	<key>CFBundleExecutable</key>
 	<string>${EXECUTABLE_NAME}</string>
 	<string>${EXECUTABLE_NAME}</string>
-	<key>CFBundleIconFile</key>
-	<string>torque</string>
+	<key>CFBundleGetInfoString</key>
+	<string>${MACOSX_BUNDLE_INFO_STRING}</string>
+	<key>CFBundleIconName</key>
+	<string>AppIcon</string>
 	<key>CFBundleIdentifier</key>
 	<key>CFBundleIdentifier</key>
-	<string>com.torque3d.${EXECUTABLE_NAME}</string>
+	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
 	<key>CFBundleInfoDictionaryVersion</key>
 	<key>CFBundleInfoDictionaryVersion</key>
 	<string>6.0</string>
 	<string>6.0</string>
+	<key>CFBundleLongVersionString</key>
+	<string>${MACOSX_BUNDLE_LONG_VERSION_STRING}</string>
+	<key>CFBundleName</key>
+	<string>${MACOSX_BUNDLE_BUNDLE_NAME}</string>
 	<key>CFBundlePackageType</key>
 	<key>CFBundlePackageType</key>
 	<string>APPL</string>
 	<string>APPL</string>
+	<key>CFBundleShortVersionString</key>
+	<string>${MACOSX_BUNDLE_SHORT_VERSION_STRING}</string>
+	<key>CFBundleSignature</key>
+	<string>????</string>
 	<key>CFBundleVersion</key>
 	<key>CFBundleVersion</key>
-	<string>1.0</string>
-    <key>SDL_FILESYSTEM_BASE_DIR_TYPE</key>
+	<string>${MACOSX_BUNDLE_BUNDLE_VERSION}</string>
+	<key>CSResourcesFileMapped</key>
+	<true/>
+	<key>NSHumanReadableCopyright</key>
+	<string>${MACOSX_BUNDLE_COPYRIGHT}</string>
+	<key>SDL_FILESYSTEM_BASE_DIR_TYPE</key>
     <string>$(SDL_FILE_DIR)</string>
     <string>$(SDL_FILE_DIR)</string>
 </dict>
 </dict>
-</plist>
+</plist>

+ 68 - 0
Tools/CMake/app_assets/apple/App.xcassets/AppIcon.appiconset/Contents.json

@@ -0,0 +1,68 @@
+{
+  "images" : [
+    {
+      "filename" : "torque_appIcon-16.png",
+      "idiom" : "mac",
+      "scale" : "1x",
+      "size" : "16x16"
+    },
+    {
+      "filename" : "torque_appIcon-32.png",
+      "idiom" : "mac",
+      "scale" : "2x",
+      "size" : "16x16"
+    },
+    {
+      "filename" : "torque_appIcon-32 1.png",
+      "idiom" : "mac",
+      "scale" : "1x",
+      "size" : "32x32"
+    },
+    {
+      "filename" : "torque_appIcon-64.png",
+      "idiom" : "mac",
+      "scale" : "2x",
+      "size" : "32x32"
+    },
+    {
+      "filename" : "torque_appIcon-128.png",
+      "idiom" : "mac",
+      "scale" : "1x",
+      "size" : "128x128"
+    },
+    {
+      "filename" : "torque_appIcon-256.png",
+      "idiom" : "mac",
+      "scale" : "2x",
+      "size" : "128x128"
+    },
+    {
+      "filename" : "torque_appIcon-256 1.png",
+      "idiom" : "mac",
+      "scale" : "1x",
+      "size" : "256x256"
+    },
+    {
+      "filename" : "torque_appIcon-512.png",
+      "idiom" : "mac",
+      "scale" : "2x",
+      "size" : "256x256"
+    },
+    {
+      "filename" : "torque_appIcon-512 1.png",
+      "idiom" : "mac",
+      "scale" : "1x",
+      "size" : "512x512"
+    },
+    {
+      "filename" : "torque_appIcon-1024.png",
+      "idiom" : "mac",
+      "scale" : "2x",
+      "size" : "512x512"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Tools/CMake/app_assets/apple/App.xcassets/AppIcon.appiconset/torque_appIcon-1024.png


BIN
Tools/CMake/app_assets/apple/App.xcassets/AppIcon.appiconset/torque_appIcon-128.png


BIN
Tools/CMake/app_assets/apple/App.xcassets/AppIcon.appiconset/torque_appIcon-16.png


BIN
Tools/CMake/app_assets/apple/App.xcassets/AppIcon.appiconset/torque_appIcon-256 1.png


BIN
Tools/CMake/app_assets/apple/App.xcassets/AppIcon.appiconset/torque_appIcon-256.png


BIN
Tools/CMake/app_assets/apple/App.xcassets/AppIcon.appiconset/torque_appIcon-32 1.png


BIN
Tools/CMake/app_assets/apple/App.xcassets/AppIcon.appiconset/torque_appIcon-32.png


BIN
Tools/CMake/app_assets/apple/App.xcassets/AppIcon.appiconset/torque_appIcon-512 1.png


BIN
Tools/CMake/app_assets/apple/App.xcassets/AppIcon.appiconset/torque_appIcon-512.png


BIN
Tools/CMake/app_assets/apple/App.xcassets/AppIcon.appiconset/torque_appIcon-64.png


+ 6 - 0
Tools/CMake/app_assets/apple/App.xcassets/Contents.json

@@ -0,0 +1,6 @@
+{
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Tools/CMake/torque.icns


+ 2 - 0
Tools/CMake/torqueMacOSconfigs.cmake

@@ -41,7 +41,9 @@ foreach(lang ${languages})
 endforeach()
 endforeach()
 
 
 set(CMAKE_FRAMEWORK_PATH "/Applications/XCode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks")
 set(CMAKE_FRAMEWORK_PATH "/Applications/XCode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks")
+set(CMAKE_MODULE_LINKER_FLAGS "-rpath @executable_path/../Frameworks -rpath @loader_path/../Frameworks")
 set(CMAKE_SHARED_LINKER_FLAGS "-rpath @executable_path/../Frameworks -rpath @loader_path/../Frameworks")
 set(CMAKE_SHARED_LINKER_FLAGS "-rpath @executable_path/../Frameworks -rpath @loader_path/../Frameworks")
+set(CMAKE_INSTALL_NAME_DIR "@rpath")
 set(CMAKE_FIND_FRAMEWORK FIRST)
 set(CMAKE_FIND_FRAMEWORK FIRST)
 # minimum for multi arch build is 11.
 # minimum for multi arch build is 11.
 set(CMAKE_OSX_DEPLOYMENT_TARGET "11" CACHE STRING "" FORCE)
 set(CMAKE_OSX_DEPLOYMENT_TARGET "11" CACHE STRING "" FORCE)