feat(build): automate Assets.car creation (#7)

This commit is contained in:
2025-10-18 21:54:57 +01:00
committed by GitHub
parent aaf66f25ea
commit 9e7c5ac3ae
22 changed files with 28 additions and 1006 deletions

View File

@@ -1,330 +0,0 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 77;
objects = {
/* Begin PBXFileReference section */
4AFAD98D2E1096EA0059D3E8 /* EmacsLG.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = EmacsLG.app; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
/* Begin PBXFileSystemSynchronizedRootGroup section */
4AFAD98F2E1096EA0059D3E8 /* EmacsLG */ = {
isa = PBXFileSystemSynchronizedRootGroup;
path = EmacsLG;
sourceTree = "<group>";
};
/* End PBXFileSystemSynchronizedRootGroup section */
/* Begin PBXFrameworksBuildPhase section */
4AFAD98A2E1096EA0059D3E8 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
4AFAD9842E1096EA0059D3E8 = {
isa = PBXGroup;
children = (
4AFAD98F2E1096EA0059D3E8 /* EmacsLG */,
4AFAD98E2E1096EA0059D3E8 /* Products */,
);
sourceTree = "<group>";
};
4AFAD98E2E1096EA0059D3E8 /* Products */ = {
isa = PBXGroup;
children = (
4AFAD98D2E1096EA0059D3E8 /* EmacsLG.app */,
);
name = Products;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
4AFAD98C2E1096EA0059D3E8 /* EmacsLG */ = {
isa = PBXNativeTarget;
buildConfigurationList = 4AFAD9982E1096EB0059D3E8 /* Build configuration list for PBXNativeTarget "EmacsLG" */;
buildPhases = (
4AFAD9892E1096EA0059D3E8 /* Sources */,
4AFAD98A2E1096EA0059D3E8 /* Frameworks */,
4AFAD98B2E1096EA0059D3E8 /* Resources */,
);
buildRules = (
);
dependencies = (
);
fileSystemSynchronizedGroups = (
4AFAD98F2E1096EA0059D3E8 /* EmacsLG */,
);
name = EmacsLG;
packageProductDependencies = (
);
productName = EmacsLG;
productReference = 4AFAD98D2E1096EA0059D3E8 /* EmacsLG.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
4AFAD9852E1096EA0059D3E8 /* Project object */ = {
isa = PBXProject;
attributes = {
BuildIndependentTargetsInParallel = 1;
LastSwiftUpdateCheck = 2600;
LastUpgradeCheck = 2600;
TargetAttributes = {
4AFAD98C2E1096EA0059D3E8 = {
CreatedOnToolsVersion = 26.0;
};
};
};
buildConfigurationList = 4AFAD9882E1096EA0059D3E8 /* Build configuration list for PBXProject "EmacsLG" */;
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
mainGroup = 4AFAD9842E1096EA0059D3E8;
minimizedProjectReferenceProxies = 1;
preferredProjectObjectVersion = 77;
productRefGroup = 4AFAD98E2E1096EA0059D3E8 /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
4AFAD98C2E1096EA0059D3E8 /* EmacsLG */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
4AFAD98B2E1096EA0059D3E8 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
4AFAD9892E1096EA0059D3E8 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin XCBuildConfiguration section */
4AFAD9962E1096EB0059D3E8 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
ENABLE_USER_SCRIPT_SANDBOXING = YES;
GCC_C_LANGUAGE_STANDARD = gnu17;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
MACOSX_DEPLOYMENT_TARGET = 15.5;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = macosx;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
};
name = Debug;
};
4AFAD9972E1096EB0059D3E8 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_USER_SCRIPT_SANDBOXING = YES;
GCC_C_LANGUAGE_STANDARD = gnu17;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
MACOSX_DEPLOYMENT_TARGET = 15.5;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
SDKROOT = macosx;
SWIFT_COMPILATION_MODE = wholemodule;
};
name = Release;
};
4AFAD9992E1096EB0059D3E8 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = EmacsLG1;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 1;
ENABLE_APP_SANDBOX = YES;
ENABLE_PREVIEWS = YES;
ENABLE_USER_SELECTED_FILES = readonly;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_KEY_NSHumanReadableCopyright = "";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/../Frameworks",
);
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = me.jimeh.EmacsLG;
PRODUCT_NAME = "$(TARGET_NAME)";
REGISTER_APP_GROUPS = YES;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES;
SWIFT_VERSION = 5.0;
};
name = Debug;
};
4AFAD99A2E1096EB0059D3E8 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = EmacsLG1;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 1;
ENABLE_APP_SANDBOX = YES;
ENABLE_PREVIEWS = YES;
ENABLE_USER_SELECTED_FILES = readonly;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_KEY_NSHumanReadableCopyright = "";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/../Frameworks",
);
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = me.jimeh.EmacsLG;
PRODUCT_NAME = "$(TARGET_NAME)";
REGISTER_APP_GROUPS = YES;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES;
SWIFT_VERSION = 5.0;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
4AFAD9882E1096EA0059D3E8 /* Build configuration list for PBXProject "EmacsLG" */ = {
isa = XCConfigurationList;
buildConfigurations = (
4AFAD9962E1096EB0059D3E8 /* Debug */,
4AFAD9972E1096EB0059D3E8 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
4AFAD9982E1096EB0059D3E8 /* Build configuration list for PBXNativeTarget "EmacsLG" */ = {
isa = XCConfigurationList;
buildConfigurations = (
4AFAD9992E1096EB0059D3E8 /* Debug */,
4AFAD99A2E1096EB0059D3E8 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 4AFAD9852E1096EA0059D3E8 /* Project object */;
}

View File

@@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:">
</FileRef>
</Workspace>

View File

@@ -1,14 +0,0 @@
<?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">
<plist version="1.0">
<dict>
<key>SchemeUserState</key>
<dict>
<key>EmacsLG.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>0</integer>
</dict>
</dict>
</dict>
</plist>

View File

@@ -1,11 +0,0 @@
{
"colors" : [
{
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

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

View File

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

View File

@@ -1,24 +0,0 @@
//
// ContentView.swift
// EmacsLG
//
// Created by jimeh on 28/06/2025.
//
import SwiftUI
struct ContentView: View {
var body: some View {
VStack {
Image(systemName: "globe")
.imageScale(.large)
.foregroundStyle(.tint)
Text("Hello, world!")
}
.padding()
}
}
#Preview {
ContentView()
}

View File

@@ -1,16 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 29.5.1, SVG Export Plug-In . SVG Version: 9.03 Build 0) -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 1024 1024" style="enable-background:new 0 0 1024 1024;" xml:space="preserve">
<g>
</g>
<g id="_x32___x2013__Layer">
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="1194.5898438" y1="-71.8482819" x2="2122.1315918" y2="-1267.6507568" gradientTransform="matrix(-4.480321e-11 1 -1 -4.480321e-11 0 -1024)">
<stop offset="0" style="stop-color:#8381C5"/>
<stop offset="0.5663939" style="stop-color:#7E55B3;stop-opacity:0.9960784"/>
<stop offset="1" style="stop-color:#A52ECB;stop-opacity:0.9921569"/>
</linearGradient>
<rect style="fill:url(#SVGID_1_);" width="1024" height="1024"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 882 B

View File

@@ -1,39 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 29.5.1, SVG Export Plug-In . SVG Version: 9.03 Build 0) -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 1024 1024" style="enable-background:new 0 0 1024 1024;" xml:space="preserve">
<g>
</g>
<g id="_x33___x2013__Layer">
<path id="path4237_00000016047026224631770190000001721247903746509970_" style="fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;" d="
M337.803009,871.6356812c0,0,42.914032,3.0358276,98.1210327-1.8297119
c22.3574219-1.9703979,107.2425842-10.3081055,170.7058411-24.2260132c0,0,77.3770142-16.5596924,118.7728271-31.8148193
c43.3140869-15.9621582,66.8840942-29.5095215,77.4931641-48.7058105
c-0.4626465-3.9331665,3.2664185-17.8807983-16.7081909-26.2588501
c-51.0674438-21.4194946-110.2935791-17.545166-227.4873047-20.0299072
c-129.9632874-4.4655151-173.1969299-26.2194214-196.2272644-43.7399902
c-22.0845947-17.7739258-10.9793701-66.9468994,83.6478577-110.2609253
c47.6664734-23.0652466,234.524353-65.6303406,234.524353-65.6303406
c-62.9303589-31.1058044-180.2757263-85.7887878-204.3972168-97.5971375
c-21.1560059-10.3564148-55.0119629-25.9502869-62.3507385-44.816803
c-8.3206177-18.1123962,19.6504211-33.7147827,35.2747803-38.1828308
c50.3197937-14.5145264,121.3559875-23.5357666,186.0071716-24.5485535
c32.4971313-0.5091248,37.7720337-2.5999451,37.7720337-2.5999451
c44.8398438-7.4380493,74.3582764-38.1162872,62.0595703-86.7015533
c-11.0408936-49.5928802-69.2714233-78.7331314-124.6075439-68.6450958
c-52.1099854,9.4999847-177.7084961,45.9829712-177.7084961,45.9829712
c155.2490845-1.3436584,181.2335815,1.247467,192.8386841,17.4729462
c6.8535156,9.5823059-3.1142578,22.7211151-44.5185547,29.4833374
c-45.0762329,7.3619537-138.7772827,16.2276917-138.7772827,16.2276917
c-89.8890991,5.3383484-153.2069092,5.6956482-172.1975098,45.9026947
c-12.4066467,26.2677307,13.2304688,49.4903564,24.4672241,64.0265503
c47.4844666,52.8075256,116.0728149,81.2880554,160.2219849,102.261322
c16.6114502,7.8912659,65.3512573,22.7937012,65.3512573,22.7937012
c-143.2276917-7.8776245-246.5468445,36.102478-307.1530762,86.739502
c-68.5476685,63.4031982-38.2242432,138.9779663,102.2110138,185.5114136
c82.9467163,27.484436,124.0829468,40.4104004,247.8103943,29.2687378
c72.87677-3.9280396,84.3651123-1.5904541,85.0917358,4.3894043c1.0228882,8.4191284-80.9452515,29.3325806-103.3232422,35.7874756
C487.7872925,838.3164673,338.5501099,871.4747925,337.803009,871.6356812z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -1,117 +0,0 @@
{
"fill-specializations" : [
{
"value" : {
"automatic-gradient" : "srgb:1.00000,1.00000,1.00000,1.00000"
}
},
{
"appearance" : "dark",
"value" : {
"solid" : "srgb:0.00000,0.00000,0.00000,1.00000"
}
}
],
"groups" : [
{
"blur-material" : null,
"layers" : [
{
"fill-specializations" : [
{
"appearance" : "dark",
"value" : "none"
}
],
"glass" : false,
"image-name" : "e.svg",
"name" : "e"
}
],
"shadow-specializations" : [
{
"value" : {
"kind" : "neutral",
"opacity" : 0.5
}
},
{
"appearance" : "dark",
"value" : {
"kind" : "neutral",
"opacity" : 0.6
}
}
],
"specular" : true,
"translucency" : {
"enabled" : false,
"value" : 0.5
}
},
{
"blur-material" : null,
"layers" : [
{
"fill-specializations" : [
{
"appearance" : "dark",
"value" : "none"
},
{
"appearance" : "tinted",
"value" : {
"automatic-gradient" : "srgb:0.26052,0.26052,0.26052,1.00000"
}
}
],
"image-name" : "bg.svg",
"name" : "bg",
"opacity-specializations" : [
{
"appearance" : "dark",
"value" : 0.8
}
],
"position-specializations" : [
{
"idiom" : "square",
"value" : {
"scale" : 1,
"translation-in-points" : [
0,
0
]
}
},
{
"idiom" : "watchOS",
"value" : {
"scale" : 1.07,
"translation-in-points" : [
0,
0
]
}
}
]
}
],
"name" : "Group",
"shadow" : {
"kind" : "layer-color",
"opacity" : 0.5
},
"translucency" : {
"enabled" : false,
"value" : 0.5
}
}
],
"supported-platforms" : {
"circles" : [
"watchOS"
],
"squares" : "shared"
}
}

View File

@@ -1,19 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 29.5.1, SVG Export Plug-In . SVG Version: 9.03 Build 0) -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 1024 1024" style="enable-background:new 0 0 1024 1024;" xml:space="preserve">
<g>
</g>
<g id="_x31___x2013__Layer">
<linearGradient id="path4235_00000179620876181378466450000017366190585664271519_" gradientUnits="userSpaceOnUse" x1="3493.6811523" y1="-16291.4404297" x2="10180.75" y2="-24912.5234375" gradientTransform="matrix(0.0819242 0 0 -0.0776419 24.1362591 -999.2763062)">
<stop offset="0" style="stop-color:#8381C5"/>
<stop offset="0.5663939" style="stop-color:#7E55B3;stop-opacity:0.9960784"/>
<stop offset="1" style="stop-color:#A52ECB;stop-opacity:0.9921569"/>
</linearGradient>
<path id="path4235_00000023998547291293386310000016428245643242376880_" style="fill:url(#path4235_00000179620876181378466450000017366190585664271519_);" d="
M922,512c0,226.4367065-183.5632324,410-409.9998779,410S102,738.4367065,102,512s183.5634155-410,410.0001221-410
S922,285.5632324,922,512z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -1,39 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 29.5.1, SVG Export Plug-In . SVG Version: 9.03 Build 0) -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 1024 1024" style="enable-background:new 0 0 1024 1024;" xml:space="preserve">
<g>
</g>
<g id="_x32___x2013__Layer">
<path id="path4237_00000026124683953864343750000016017961496750918028_" style="fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;" d="
M372.5063171,799.989502c0,0,34.3647461,2.4310303,78.5734558-1.4651489
c17.9034424-1.5778809,85.8778687-8.2545776,136.6980591-19.3997803c0,0,61.9620972-13.2606812,95.111084-25.4767456
c34.6850586-12.7821655,53.5595093-23.6306152,62.0550537-39.0026245
c-0.3704834-3.1496582,2.6156616-14.3186646-13.3795776-21.0276489
c-40.8939209-17.1522827-88.3210449-14.0498047-182.1676025-16.0396118
c-104.0721741-3.5758667-138.6928406-20.9959717-157.1351318-35.026123
c-17.684906-14.2330322-8.7920532-53.6098022,66.9836426-88.2948608
c38.1704407-18.4702148,187.8027344-52.5555725,187.8027344-52.5555725
C596.654541,476.79245,502.686615,433.0033569,483.370575,423.5474548
c-16.9413452-8.2932434-44.0525513-20.7805176-49.9293213-35.8884583
c-6.6629944-14.5040894,15.7356873-26.9981689,28.2473755-30.5761108
c40.295166-11.6229553,97.1795959-18.8469849,148.9510803-19.65802
c26.0230713-0.4076843,30.2471313-2.0819702,30.2471313-2.0819702
c35.9069214-5.9562378,59.5446777-30.5228271,49.696167-69.4289856
c-8.8413696-39.7130585-55.4712524-63.0480194-99.7834473-54.969696
c-41.7286987,7.6074066-142.305603,36.8222961-142.305603,36.8222961
c124.3205566-1.0759888,145.128479,0.9989471,154.4215698,13.9920044
c5.4881592,7.6733093-2.4938354,18.1946411-35.6495972,23.6097107
c-36.0961914,5.8952942-111.130249,12.994812-111.130249,12.994812
c-71.9815063,4.2748718-122.6852112,4.5609741-137.8925171,36.7580261
c-9.9350281,21.0346985,10.594696,39.6309509,19.592865,51.2712708
c38.0246887,42.287262,92.9489441,65.0939331,128.3027649,81.888916
c13.302124,6.3191833,52.3320312,18.2527771,52.3320312,18.2527771
c-114.6940308-6.3082581-197.4300537,28.9101868-245.9623718,69.4593811
c-54.8916931,50.7720947-30.6092529,111.2909546,81.8486633,148.5540161
c66.4221497,22.0090942,99.3632812,32.3599243,198.4419556,23.4379272
c58.3583374-3.1455078,67.5579834-1.2736206,68.1398315,3.5149536c0.8190918,6.7418823-64.819397,23.4889526-82.7393188,28.6578979
C492.6109314,773.3081055,373.1045837,799.8606567,372.5063171,799.989502z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -1,121 +0,0 @@
{
"fill-specializations" : [
{
"value" : {
"automatic-gradient" : "srgb:1.00000,1.00000,1.00000,1.00000"
}
},
{
"appearance" : "dark",
"value" : {
"automatic-gradient" : "srgb:0.00000,0.00000,0.00000,1.00000"
}
}
],
"groups" : [
{
"blur-material" : null,
"layers" : [
{
"fill" : "none",
"glass" : false,
"image-name" : "e.svg",
"name" : "e"
}
],
"shadow-specializations" : [
{
"value" : {
"kind" : "neutral",
"opacity" : 0.5
}
},
{
"appearance" : "dark",
"value" : {
"kind" : "neutral",
"opacity" : 0.6
}
}
],
"specular" : true,
"translucency-specializations" : [
{
"value" : {
"enabled" : false,
"value" : 0.5
}
},
{
"appearance" : "tinted",
"value" : {
"enabled" : false,
"value" : 0.5
}
}
]
},
{
"blur-material" : null,
"layers" : [
{
"fill-specializations" : [
{
"value" : "none"
},
{
"appearance" : "dark",
"value" : "none"
}
],
"image-name" : "base.svg",
"name" : "base"
}
],
"lighting" : "individual",
"shadow-specializations" : [
{
"value" : {
"kind" : "layer-color",
"opacity" : 0.5
}
},
{
"appearance" : "dark",
"value" : {
"kind" : "layer-color",
"opacity" : 0.5
}
}
],
"translucency-specializations" : [
{
"value" : {
"enabled" : false,
"value" : 0.5
}
},
{
"appearance" : "dark",
"value" : {
"enabled" : false,
"value" : 0.5
}
},
{
"appearance" : "tinted",
"value" : {
"enabled" : false,
"value" : 0.5
}
}
]
}
],
"supported-platforms" : {
"circles" : [
"watchOS"
],
"squares" : "shared"
}
}

View File

@@ -1,41 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 29.5.1, SVG Export Plug-In . SVG Version: 9.03 Build 0) -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 1024 1024" style="enable-background:new 0 0 1024 1024;" xml:space="preserve">
<g>
</g>
<g id="base-default">
<linearGradient id="base_00000081632730939396161110000012146261025207772563_" gradientUnits="userSpaceOnUse" x1="3493.6811523" y1="-16291.4404297" x2="10180.75" y2="-24912.5214844" gradientTransform="matrix(0.0819242 0 0 -0.0776419 24.1362591 -999.2763062)">
<stop offset="0" style="stop-color:#8381C5"/>
<stop offset="0.5663939" style="stop-color:#7E55B3;stop-opacity:0.9960784"/>
<stop offset="1" style="stop-color:#A52ECB;stop-opacity:0.9921569"/>
</linearGradient>
<path id="base" style="fill:url(#base_00000081632730939396161110000012146261025207772563_);" d="M512.0001221,102
C285.5634155,102,102,285.5632324,102,512s183.5634155,410,410.0001221,410S922,738.4367065,922,512
S738.4367676,102,512.0001221,102z M744.9439697,714.6451416c-8.4955444,15.3720093-27.3699951,26.22052-62.0550537,39.0026855
c-33.1489868,12.2160034-95.111084,25.4766846-95.111084,25.4766846
c-50.8201904,11.1452637-118.7946167,17.8218994-136.6980591,19.3997803
c-44.2087402,3.8962402-78.5734863,1.46521-78.5734863,1.46521c0.5982666-0.1288452,120.1046143-26.6813965,165.6932983-39.8312988
c17.9199219-5.1689453,83.5584106-21.9160767,82.7393188-28.6578979
c-0.5818481-4.7885742-9.7814941-6.6605225-68.1398315-3.5149536
c-99.0786743,8.9219971-132.0197754-1.428894-198.4419556-23.4379272
c-112.4579468-37.2631226-136.7403564-97.7819214-81.8486938-148.5540161
c48.5323486-40.5491943,131.2683716-75.7676392,245.9624023-69.4594116c0,0-39.0299072-11.9335938-52.3320312-18.2527466
c-35.3538208-16.7949829-90.2780762-39.6016846-128.3027344-81.888916
c-8.99823-11.6403198-29.5279541-30.2365723-19.5928955-51.2713013
c15.2072754-32.1970215,65.9110107-32.4831543,137.8925171-36.7579956c0,0,75.0340576-7.0995483,111.130249-12.994812
c33.1557617-5.4151001,41.1377563-15.9364014,35.6495972-23.6097412
c-9.2930908-12.993042-30.1010132-15.0679932-154.4215698-13.9920044c0,0,100.5769043-29.2149048,142.305603-36.8222656
c44.3121948-8.0783081,90.9420776,15.2566528,99.7834473,54.9696655
c9.8485107,38.906189-13.7892456,63.4727783-49.696167,69.4290161c0,0-4.2240601,1.6742554-30.2471313,2.0819702
c-51.7714844,0.8110352-108.6559448,8.0350342-148.9510498,19.65802
c-12.5117188,3.5779419-34.9104004,16.0720215-28.2473755,30.5761108
c5.876709,15.1079102,32.987915,27.5952148,49.9292603,35.8884277
c19.31604,9.4559326,113.2839966,53.2449951,163.6774902,78.1539307c0,0-149.6323242,34.0853271-187.8027344,52.555603
c-75.7756958,34.6849976-84.6685181,74.0618286-66.9836426,88.2948608
c18.4422607,14.0301514,53.0629883,31.4502563,157.1351318,35.026123
c93.8465576,1.9897461,141.2736816-1.1127319,182.1676025,16.0396118
C747.5596313,700.3265381,744.5734863,711.4955444,744.9439697,714.6451416z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.0 KiB

View File

@@ -1,16 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 29.5.1, SVG Export Plug-In . SVG Version: 9.03 Build 0) -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 1024 1024" style="enable-background:new 0 0 1024 1024;" xml:space="preserve">
<g>
</g>
<g id="bg">
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="1194.5898438" y1="-71.8482819" x2="2122.1315918" y2="-1267.6507568" gradientTransform="matrix(-4.480300e-11 1 -1 -4.480300e-11 0 -1024)">
<stop offset="0" style="stop-color:#8381C5"/>
<stop offset="0.5663939" style="stop-color:#7E55B3;stop-opacity:0.9960784"/>
<stop offset="1" style="stop-color:#A52ECB;stop-opacity:0.9921569"/>
</linearGradient>
<rect y="-0.0000012" style="fill:url(#SVGID_1_);" width="1024" height="1024"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 880 B

View File

@@ -1,117 +0,0 @@
{
"fill-specializations" : [
{
"value" : {
"automatic-gradient" : "srgb:1.00000,1.00000,1.00000,1.00000"
}
},
{
"appearance" : "dark",
"value" : {
"automatic-gradient" : "srgb:0.00000,0.00000,0.00000,1.00000"
}
}
],
"groups" : [
{
"blur-material" : null,
"layers" : [
{
"fill-specializations" : [
{
"value" : {
"solid" : "srgb:1.00000,1.00000,1.00000,1.00000"
}
},
{
"appearance" : "dark",
"value" : "none"
}
],
"image-name" : "base.svg",
"name" : "base"
}
],
"lighting" : "individual",
"shadow-specializations" : [
{
"value" : {
"kind" : "layer-color",
"opacity" : 0.5
}
},
{
"appearance" : "dark",
"value" : {
"kind" : "layer-color",
"opacity" : 0.5
}
}
],
"translucency-specializations" : [
{
"value" : {
"enabled" : true,
"value" : 0.5
}
},
{
"appearance" : "dark",
"value" : {
"enabled" : false,
"value" : 0.5
}
},
{
"appearance" : "tinted",
"value" : {
"enabled" : false,
"value" : 0.5
}
}
]
},
{
"layers" : [
{
"fill-specializations" : [
{
"appearance" : "dark",
"value" : {
"automatic-gradient" : "srgb:0.00000,0.00000,0.00000,1.00000"
}
}
],
"image-name" : "bg.svg",
"name" : "bg",
"position-specializations" : [
{
"idiom" : "watchOS",
"value" : {
"scale" : 1.07,
"translation-in-points" : [
0,
0
]
}
}
]
}
],
"shadow" : {
"kind" : "none",
"opacity" : 0.5
},
"translucency" : {
"enabled" : false,
"value" : 0.5
}
}
],
"supported-platforms" : {
"circles" : [
"watchOS"
],
"squares" : "shared"
}
}

View File

@@ -1,17 +0,0 @@
//
// EmacsLGApp.swift
// EmacsLG
//
// Created by jimeh on 28/06/2025.
//
import SwiftUI
@main
struct EmacsLGApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}

View File

@@ -1,13 +0,0 @@
# EmacsLG App
Currently it looks like only Xcode 26 is capable of producing the `Assets.car`
file which is required for applications on macOS to use the new Liquid Glass
icon format.
Hence, this is a blank macOS app Xcode project, with only the LG icons added.
We extract the `Assets.car` file by building the application and grabbing it
from `Contents/Resources` within the built EmacsLG application.
The `*.icon` Icon Composer documents within the Xcode project are duplicates of
those in the top-level Icons directory.

View File

@@ -1,5 +1,5 @@
# EmacsLG Icons
This directory holds the `*.icon` Icon Composer documents, sources for layers
used in them, and also export sources to creating `*.icns` files for macOS 15
used in them, and export sources to creating `*.icns` files for macOS 15
and earlier.

27
Makefile Normal file
View File

@@ -0,0 +1,27 @@
# Output directory
RESOURCES_DIR := Resources
ICON_FILES := $(shell find Icons/ -depth 1 -name '*.icon')
ICON_SOURCES := $(shell find $(ICON_FILES) -type f)
.PHONY: all
all: $(RESOURCES_DIR)/Assets.car
$(RESOURCES_DIR)/Assets.car: $(ICON_FILES) $(ICON_SOURCES)
mkdir -p "$(RESOURCES_DIR)"
xcrun actool \
$(ICON_FILES) \
--warnings --errors --notices \
--output-format human-readable-text \
--compile "$(RESOURCES_DIR)" \
--include-all-app-icons \
--enable-on-demand-resources NO \
--enable-icon-stack-fallback-generation NO \
--development-region en \
--target-device mac \
--platform macosx \
--minimum-deployment-target 11.0
.PHONY: clean
clean:
find "$(RESOURCES_DIR)" -type f -name 'Assets.car' -delete

Binary file not shown.