diff --git a/Sources/Voxelotl/Assets.xcassets/AppIcon.appiconset/Contents.json b/Sources/Voxelotl/Assets.xcassets/AppIcon.appiconset/Contents.json
new file mode 100644
index 0000000..ec50825
--- /dev/null
+++ b/Sources/Voxelotl/Assets.xcassets/AppIcon.appiconset/Contents.json
@@ -0,0 +1,68 @@
+{
+ "images" : [
+ {
+ "filename" : "icon_16x16.png",
+ "idiom" : "mac",
+ "scale" : "1x",
+ "size" : "16x16"
+ },
+ {
+ "filename" : "icon_32x32.png",
+ "idiom" : "mac",
+ "scale" : "2x",
+ "size" : "16x16"
+ },
+ {
+ "filename" : "icon_32x32-1.png",
+ "idiom" : "mac",
+ "scale" : "1x",
+ "size" : "32x32"
+ },
+ {
+ "filename" : "icon_32x32@2x.png",
+ "idiom" : "mac",
+ "scale" : "2x",
+ "size" : "32x32"
+ },
+ {
+ "filename" : "icon_128x128.png",
+ "idiom" : "mac",
+ "scale" : "1x",
+ "size" : "128x128"
+ },
+ {
+ "filename" : "icon_128x128@2x.png",
+ "idiom" : "mac",
+ "scale" : "2x",
+ "size" : "128x128"
+ },
+ {
+ "filename" : "icon_256x256.png",
+ "idiom" : "mac",
+ "scale" : "1x",
+ "size" : "256x256"
+ },
+ {
+ "filename" : "icon_512x512-1.png",
+ "idiom" : "mac",
+ "scale" : "2x",
+ "size" : "256x256"
+ },
+ {
+ "filename" : "icon_512x512.png",
+ "idiom" : "mac",
+ "scale" : "1x",
+ "size" : "512x512"
+ },
+ {
+ "filename" : "icon_512x512@2x.png",
+ "idiom" : "mac",
+ "scale" : "2x",
+ "size" : "512x512"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Sources/Voxelotl/Assets.xcassets/AppIcon.appiconset/icon_128x128.png b/Sources/Voxelotl/Assets.xcassets/AppIcon.appiconset/icon_128x128.png
new file mode 100644
index 0000000..5fb8b09
Binary files /dev/null and b/Sources/Voxelotl/Assets.xcassets/AppIcon.appiconset/icon_128x128.png differ
diff --git a/Sources/Voxelotl/Assets.xcassets/AppIcon.appiconset/icon_128x128@2x.png b/Sources/Voxelotl/Assets.xcassets/AppIcon.appiconset/icon_128x128@2x.png
new file mode 100644
index 0000000..759d99f
Binary files /dev/null and b/Sources/Voxelotl/Assets.xcassets/AppIcon.appiconset/icon_128x128@2x.png differ
diff --git a/Sources/Voxelotl/Assets.xcassets/AppIcon.appiconset/icon_16x16.png b/Sources/Voxelotl/Assets.xcassets/AppIcon.appiconset/icon_16x16.png
new file mode 100644
index 0000000..986f959
Binary files /dev/null and b/Sources/Voxelotl/Assets.xcassets/AppIcon.appiconset/icon_16x16.png differ
diff --git a/Sources/Voxelotl/Assets.xcassets/AppIcon.appiconset/icon_256x256.png b/Sources/Voxelotl/Assets.xcassets/AppIcon.appiconset/icon_256x256.png
new file mode 100644
index 0000000..759d99f
Binary files /dev/null and b/Sources/Voxelotl/Assets.xcassets/AppIcon.appiconset/icon_256x256.png differ
diff --git a/Sources/Voxelotl/Assets.xcassets/AppIcon.appiconset/icon_32x32-1.png b/Sources/Voxelotl/Assets.xcassets/AppIcon.appiconset/icon_32x32-1.png
new file mode 100644
index 0000000..7858f5c
Binary files /dev/null and b/Sources/Voxelotl/Assets.xcassets/AppIcon.appiconset/icon_32x32-1.png differ
diff --git a/Sources/Voxelotl/Assets.xcassets/AppIcon.appiconset/icon_32x32.png b/Sources/Voxelotl/Assets.xcassets/AppIcon.appiconset/icon_32x32.png
new file mode 100644
index 0000000..7858f5c
Binary files /dev/null and b/Sources/Voxelotl/Assets.xcassets/AppIcon.appiconset/icon_32x32.png differ
diff --git a/Sources/Voxelotl/Assets.xcassets/AppIcon.appiconset/icon_32x32@2x.png b/Sources/Voxelotl/Assets.xcassets/AppIcon.appiconset/icon_32x32@2x.png
new file mode 100644
index 0000000..2657868
Binary files /dev/null and b/Sources/Voxelotl/Assets.xcassets/AppIcon.appiconset/icon_32x32@2x.png differ
diff --git a/Sources/Voxelotl/Assets.xcassets/AppIcon.appiconset/icon_512x512-1.png b/Sources/Voxelotl/Assets.xcassets/AppIcon.appiconset/icon_512x512-1.png
new file mode 100644
index 0000000..e8ed089
Binary files /dev/null and b/Sources/Voxelotl/Assets.xcassets/AppIcon.appiconset/icon_512x512-1.png differ
diff --git a/Sources/Voxelotl/Assets.xcassets/AppIcon.appiconset/icon_512x512.png b/Sources/Voxelotl/Assets.xcassets/AppIcon.appiconset/icon_512x512.png
new file mode 100644
index 0000000..e8ed089
Binary files /dev/null and b/Sources/Voxelotl/Assets.xcassets/AppIcon.appiconset/icon_512x512.png differ
diff --git a/Sources/Voxelotl/Voxelotl.icns b/Sources/Voxelotl/Assets.xcassets/AppIcon.appiconset/icon_512x512@2x.png
similarity index 77%
rename from Sources/Voxelotl/Voxelotl.icns
rename to Sources/Voxelotl/Assets.xcassets/AppIcon.appiconset/icon_512x512@2x.png
index 82551c6..85cbcab 100644
Binary files a/Sources/Voxelotl/Voxelotl.icns and b/Sources/Voxelotl/Assets.xcassets/AppIcon.appiconset/icon_512x512@2x.png differ
diff --git a/Sources/Voxelotl/Assets.xcassets/Contents.json b/Sources/Voxelotl/Assets.xcassets/Contents.json
new file mode 100644
index 0000000..73c0059
--- /dev/null
+++ b/Sources/Voxelotl/Assets.xcassets/Contents.json
@@ -0,0 +1,6 @@
+{
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Sources/Voxelotl/CMakeLists.txt b/Sources/Voxelotl/CMakeLists.txt
index 2090a5c..fba9054 100644
--- a/Sources/Voxelotl/CMakeLists.txt
+++ b/Sources/Voxelotl/CMakeLists.txt
@@ -1,5 +1,5 @@
add_executable(Voxelotl MACOSX_BUNDLE
- Voxelotl.icns
+ Assets.xcassets
Application.swift
main.swift)
@@ -14,8 +14,8 @@ set_target_properties(Voxelotl PROPERTIES
MACOSX_BUNDLE_BUNDLE_VERSION "${PROJECT_VERSION}"
MACOSX_BUNDLE_SHORT_VERSION_STRING "${PROJECT_VERSION}"
MACOSX_BUNDLE_GUI_IDENTIFIER "gay.pizza.voxelotl"
- MACOSX_BUNDLE_ICON_FILE "Voxelotl"
MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/Info.plist.in"
+ XCODE_ATTRIBUTE_ASSETCATALOG_COMPILER_APPICON_NAME "AppIcon"
BUILD_RPATH "@loader_path/../Frameworks"
XCODE_ATTRIBUTE_SKIP_INSTALL "NO"
XCODE_ATTRIBUTE_INSTALL_PATH "$(LOCAL_APPS_DIR)"
@@ -23,7 +23,7 @@ set_target_properties(Voxelotl PROPERTIES
XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE "Metal"
XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS "${CMAKE_CURRENT_SOURCE_DIR}/Voxelotl.entitlements"
MACOSX_BUNDLE_COPYRIGHT "© 2024 Gay Pizza Specifications")
-set_source_files_properties(Voxelotl.icns PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")
-source_group("Resources" FILES Voxelotl.icns)
+set_source_files_properties(Assets.xcassets PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")
+source_group("Resources" FILES Assets.xcassets)
source_group("Source Files" REGULAR_EXPRESSION "\\.(swift)$")
diff --git a/Sources/Voxelotl/Info.plist.in b/Sources/Voxelotl/Info.plist.in
index c538fd2..df23ffa 100644
--- a/Sources/Voxelotl/Info.plist.in
+++ b/Sources/Voxelotl/Info.plist.in
@@ -8,10 +8,8 @@
${MACOSX_BUNDLE_EXECUTABLE_NAME}
CFBundleGetInfoString
${MACOSX_BUNDLE_INFO_STRING}
- CFBundleIconFile
- ${MACOSX_BUNDLE_ICON_FILE}
CFBundleIconName
- ${MACOSX_BUNDLE_ICON_FILE}
+ AppIcon
CFBundleIdentifier
${MACOSX_BUNDLE_GUI_IDENTIFIER}
CFBundleInfoDictionaryVersion