diff --git a/Engine/source/CMakeLists.txt b/Engine/source/CMakeLists.txt index 342338160..6f204ba32 100644 --- a/Engine/source/CMakeLists.txt +++ b/Engine/source/CMakeLists.txt @@ -320,7 +320,7 @@ endif (WIN32) # Prepare OSX Plist if (APPLE) - set(MACOSX_RESOURCES "${CMAKE_SOURCE_DIR}/Tools/CMake/torque.icns" + set(MACOSX_RESOURCES "${TORQUE_APP_GAME_DIRECTORY}/data" "${TORQUE_APP_GAME_DIRECTORY}/core" "${TORQUE_APP_GAME_DIRECTORY}/tools" @@ -340,6 +340,8 @@ if (APPLE) set(EXECUTABLE_NAME "${TORQUE_APP_NAME}") 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) addDef(TORQUE_DEBUG Debug) @@ -381,12 +383,21 @@ else() endif (TORQUE_DYNAMIC_LIBRARY AND NOT TORQUE_TESTING) 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 - BUNDLE true + MACOSX_BUNDLE true 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_SKIP_INSTALL "No" + XCODE_ATTRIBUTE_ASSETCATALOG_COMPILER_APPICON_NAME "AppIcon" XCODE_ATTRIBUTE_LINKER_DISPLAYS_MANGLED_NAMES[variant=Debug] YES XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH[variant=Debug] YES XCODE_ATTRIBUTE_ENABLE_TESTABILITY[variant=Debug] YES @@ -507,7 +518,8 @@ if (UNIX) if ("${LINK_LIBRARY_TYPE}" STREQUAL "SHARED_LIBRARY") if (APPLE) 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() set_target_properties(${GAME_LINK_LIBRARY} PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${TORQUE_APP_GAME_DIRECTORY}") endif(APPLE) diff --git a/Tools/CMake/Info.plist.in b/Tools/CMake/Info.plist.in index cfe6d5943..b0716f708 100644 --- a/Tools/CMake/Info.plist.in +++ b/Tools/CMake/Info.plist.in @@ -1,22 +1,36 @@ - + CFBundleDevelopmentRegion English CFBundleExecutable ${EXECUTABLE_NAME} - CFBundleIconFile - torque + CFBundleGetInfoString + ${MACOSX_BUNDLE_INFO_STRING} + CFBundleIconName + AppIcon CFBundleIdentifier - com.torque3d.${EXECUTABLE_NAME} + $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 + CFBundleLongVersionString + ${MACOSX_BUNDLE_LONG_VERSION_STRING} + CFBundleName + ${MACOSX_BUNDLE_BUNDLE_NAME} CFBundlePackageType APPL + CFBundleShortVersionString + ${MACOSX_BUNDLE_SHORT_VERSION_STRING} + CFBundleSignature + ???? CFBundleVersion - 1.0 - SDL_FILESYSTEM_BASE_DIR_TYPE + ${MACOSX_BUNDLE_BUNDLE_VERSION} + CSResourcesFileMapped + + NSHumanReadableCopyright + ${MACOSX_BUNDLE_COPYRIGHT} + SDL_FILESYSTEM_BASE_DIR_TYPE $(SDL_FILE_DIR) - + \ No newline at end of file diff --git a/Tools/CMake/app_assets/apple/App.xcassets/AppIcon.appiconset/Contents.json b/Tools/CMake/app_assets/apple/App.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 000000000..a58cf678f --- /dev/null +++ b/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 + } +} diff --git a/Tools/CMake/app_assets/apple/App.xcassets/AppIcon.appiconset/torque_appIcon-1024.png b/Tools/CMake/app_assets/apple/App.xcassets/AppIcon.appiconset/torque_appIcon-1024.png new file mode 100644 index 000000000..7cce3ef97 Binary files /dev/null and b/Tools/CMake/app_assets/apple/App.xcassets/AppIcon.appiconset/torque_appIcon-1024.png differ diff --git a/Tools/CMake/app_assets/apple/App.xcassets/AppIcon.appiconset/torque_appIcon-128.png b/Tools/CMake/app_assets/apple/App.xcassets/AppIcon.appiconset/torque_appIcon-128.png new file mode 100644 index 000000000..6da69714a Binary files /dev/null and b/Tools/CMake/app_assets/apple/App.xcassets/AppIcon.appiconset/torque_appIcon-128.png differ diff --git a/Tools/CMake/app_assets/apple/App.xcassets/AppIcon.appiconset/torque_appIcon-16.png b/Tools/CMake/app_assets/apple/App.xcassets/AppIcon.appiconset/torque_appIcon-16.png new file mode 100644 index 000000000..be5f0c6a2 Binary files /dev/null and b/Tools/CMake/app_assets/apple/App.xcassets/AppIcon.appiconset/torque_appIcon-16.png differ diff --git a/Tools/CMake/app_assets/apple/App.xcassets/AppIcon.appiconset/torque_appIcon-256 1.png b/Tools/CMake/app_assets/apple/App.xcassets/AppIcon.appiconset/torque_appIcon-256 1.png new file mode 100644 index 000000000..dd1d9d38a Binary files /dev/null and b/Tools/CMake/app_assets/apple/App.xcassets/AppIcon.appiconset/torque_appIcon-256 1.png differ diff --git a/Tools/CMake/app_assets/apple/App.xcassets/AppIcon.appiconset/torque_appIcon-256.png b/Tools/CMake/app_assets/apple/App.xcassets/AppIcon.appiconset/torque_appIcon-256.png new file mode 100644 index 000000000..dd1d9d38a Binary files /dev/null and b/Tools/CMake/app_assets/apple/App.xcassets/AppIcon.appiconset/torque_appIcon-256.png differ diff --git a/Tools/CMake/app_assets/apple/App.xcassets/AppIcon.appiconset/torque_appIcon-32 1.png b/Tools/CMake/app_assets/apple/App.xcassets/AppIcon.appiconset/torque_appIcon-32 1.png new file mode 100644 index 000000000..8aed68433 Binary files /dev/null and b/Tools/CMake/app_assets/apple/App.xcassets/AppIcon.appiconset/torque_appIcon-32 1.png differ diff --git a/Tools/CMake/app_assets/apple/App.xcassets/AppIcon.appiconset/torque_appIcon-32.png b/Tools/CMake/app_assets/apple/App.xcassets/AppIcon.appiconset/torque_appIcon-32.png new file mode 100644 index 000000000..8aed68433 Binary files /dev/null and b/Tools/CMake/app_assets/apple/App.xcassets/AppIcon.appiconset/torque_appIcon-32.png differ diff --git a/Tools/CMake/app_assets/apple/App.xcassets/AppIcon.appiconset/torque_appIcon-512 1.png b/Tools/CMake/app_assets/apple/App.xcassets/AppIcon.appiconset/torque_appIcon-512 1.png new file mode 100644 index 000000000..3a85dde85 Binary files /dev/null and b/Tools/CMake/app_assets/apple/App.xcassets/AppIcon.appiconset/torque_appIcon-512 1.png differ diff --git a/Tools/CMake/app_assets/apple/App.xcassets/AppIcon.appiconset/torque_appIcon-512.png b/Tools/CMake/app_assets/apple/App.xcassets/AppIcon.appiconset/torque_appIcon-512.png new file mode 100644 index 000000000..3a85dde85 Binary files /dev/null and b/Tools/CMake/app_assets/apple/App.xcassets/AppIcon.appiconset/torque_appIcon-512.png differ diff --git a/Tools/CMake/app_assets/apple/App.xcassets/AppIcon.appiconset/torque_appIcon-64.png b/Tools/CMake/app_assets/apple/App.xcassets/AppIcon.appiconset/torque_appIcon-64.png new file mode 100644 index 000000000..4f7b19b5a Binary files /dev/null and b/Tools/CMake/app_assets/apple/App.xcassets/AppIcon.appiconset/torque_appIcon-64.png differ diff --git a/Tools/CMake/app_assets/apple/App.xcassets/Contents.json b/Tools/CMake/app_assets/apple/App.xcassets/Contents.json new file mode 100644 index 000000000..73c00596a --- /dev/null +++ b/Tools/CMake/app_assets/apple/App.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Tools/CMake/torque.icns b/Tools/CMake/torque.icns deleted file mode 100644 index 50aa70257..000000000 Binary files a/Tools/CMake/torque.icns and /dev/null differ diff --git a/Tools/CMake/torqueMacOSconfigs.cmake b/Tools/CMake/torqueMacOSconfigs.cmake index a0b3c42db..6fbb080e1 100644 --- a/Tools/CMake/torqueMacOSconfigs.cmake +++ b/Tools/CMake/torqueMacOSconfigs.cmake @@ -41,7 +41,9 @@ foreach(lang ${languages}) endforeach() 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_INSTALL_NAME_DIR "@rpath") set(CMAKE_FIND_FRAMEWORK FIRST) # minimum for multi arch build is 11. set(CMAKE_OSX_DEPLOYMENT_TARGET "11" CACHE STRING "" FORCE)