Point Xcode projects, schemes, and includes at Graduately.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
pepaskopec-blip 2026-09-27 13:20:48 +02:00
commit 2568ee3126
39 changed files with 115 additions and 117 deletions

View file

@ -2,9 +2,9 @@
<Workspace
version = "1.0">
<FileRef
location = "group:ios/Maturita.xcodeproj">
location = "group:ios/Graduately.xcodeproj">
</FileRef>
<FileRef
location = "group:macos/Maturita.xcodeproj">
location = "group:macos/Graduately.xcodeproj">
</FileRef>
</Workspace>

View file

@ -105,7 +105,7 @@ cd Graduately
Na Macu:
```bash
open Maturita.xcworkspace # scheme Maturita z macos/Maturita.xcodeproj
open Graduately.xcworkspace # scheme Graduately z macos/Graduately.xcodeproj
# nebo: make bundle # zip v dist/graduately-macos-arm64.zip
```
@ -185,15 +185,14 @@ jednou odinstalujte a nainstalujte znovu.
iOS ze zdroje (Xcode 26, iOS 26+ / Liquid Glass):
```bash
open Maturita.xcworkspace # v kořeni repozitáře
open Graduately.xcworkspace # v kořeni repozitáře
# Simulátor: vyber iPhone a Run, nic dalšího není potřeba (obsah se
# vytáhne z C zdrojů při buildu). Na iPhone: v Signing vyber svůj Team.
# nebo: make ios # unsigned IPA v dist-ios/graduately-ios.ipa
```
Workspace odkazuje na `ios/Maturita.xcodeproj` a `macos/Maturita.xcodeproj`.
Projekty nepřesouvejte – build čte `../src` a `../scripts` a v kořeni by
`Maturita/` kolidovalo se zkompilovaným binárem `graduately`.
Workspace odkazuje na `ios/Graduately.xcodeproj` a `macos/Graduately.xcodeproj`.
Projekty nepřesouvejte – build čte `../src` a `../scripts`.
Licence: [GPL-3.0](LICENSE).
@ -299,7 +298,7 @@ cd Graduately
On a Mac:
```bash
open Maturita.xcworkspace # scheme Maturita from macos/Maturita.xcodeproj
open Graduately.xcworkspace # scheme Graduately from macos/Graduately.xcodeproj
# or: make bundle # zip at dist/graduately-macos-arm64.zip
```
@ -379,14 +378,13 @@ signature – uninstall once and install again.
iOS from source (Xcode 26, iOS 26+ / Liquid Glass):
```bash
open Maturita.xcworkspace # at the repo root
open Graduately.xcworkspace # at the repo root
# Simulator: pick an iPhone and Run, nothing else needed (content is
# extracted from the C sources during the build). Device: pick your Team.
# or: make ios # unsigned IPA at dist-ios/graduately-ios.ipa
```
The workspace points at `ios/Maturita.xcodeproj` and `macos/Maturita.xcodeproj`.
Do not move the projects – the build reads `../src` and `../scripts`, and at
the root `Maturita/` would collide with the compiled `maturita` binary.
The workspace points at `ios/Graduately.xcodeproj` and `macos/Graduately.xcodeproj`.
Do not move the projects – the build reads `../src` and `../scripts`.
License: [GPL-3.0](LICENSE).

View file

@ -7,7 +7,7 @@
objects = {
/* Begin PBXBuildFile section */
A101000000000000000001 /* MaturitaApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = A201000000000000000001 /* MaturitaApp.swift */; };
A101000000000000000001 /* GraduatelyApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = A201000000000000000001 /* GraduatelyApp.swift */; };
A101000000000000000002 /* AppModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A201000000000000000002 /* AppModel.swift */; };
A101000000000000000003 /* Route.swift in Sources */ = {isa = PBXBuildFile; fileRef = A201000000000000000003 /* Route.swift */; };
A101000000000000000004 /* JSON.swift in Sources */ = {isa = PBXBuildFile; fileRef = A201000000000000000004 /* JSON.swift */; };
@ -26,7 +26,7 @@
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
A201000000000000000001 /* MaturitaApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MaturitaApp.swift; sourceTree = "<group>"; };
A201000000000000000001 /* GraduatelyApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GraduatelyApp.swift; sourceTree = "<group>"; };
A201000000000000000002 /* AppModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppModel.swift; sourceTree = "<group>"; };
A201000000000000000003 /* Route.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Route.swift; sourceTree = "<group>"; };
A201000000000000000004 /* JSON.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JSON.swift; sourceTree = "<group>"; };
@ -60,15 +60,15 @@
A501000000000000000001 = {
isa = PBXGroup;
children = (
A501000000000000000002 /* Maturita */,
A501000000000000000002 /* Graduately */,
A501000000000000000006 /* Products */,
);
sourceTree = "<group>";
};
A501000000000000000002 /* Maturita */ = {
A501000000000000000002 /* Graduately */ = {
isa = PBXGroup;
children = (
A201000000000000000001 /* MaturitaApp.swift */,
A201000000000000000001 /* GraduatelyApp.swift */,
A201000000000000000002 /* AppModel.swift */,
A201000000000000000003 /* Route.swift */,
A501000000000000000003 /* Data */,
@ -77,7 +77,7 @@
A201000000000000000016 /* Assets.xcassets */,
A201000000000000000018 /* Info.plist */,
);
path = Maturita;
path = Graduately;
sourceTree = "<group>";
};
A501000000000000000003 /* Data */ = {
@ -124,9 +124,9 @@
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
A601000000000000000001 /* Maturita */ = {
A601000000000000000001 /* Graduately */ = {
isa = PBXNativeTarget;
buildConfigurationList = A801000000000000000002 /* Build configuration list for PBXNativeTarget "Maturita" */;
buildConfigurationList = A801000000000000000002 /* Build configuration list for PBXNativeTarget "Graduately" */;
buildPhases = (
A701000000000000000001 /* Sources */,
A401000000000000000001 /* Frameworks */,
@ -137,7 +137,7 @@
);
dependencies = (
);
name = Maturita;
name = Graduately;
productName = Graduately;
productReference = A301000000000000000001 /* Graduately.app */;
productType = "com.apple.product-type.application";
@ -157,7 +157,7 @@
};
};
};
buildConfigurationList = A801000000000000000001 /* Build configuration list for PBXProject "Maturita" */;
buildConfigurationList = A801000000000000000001 /* Build configuration list for PBXProject "Graduately" */;
compatibilityVersion = "Xcode 14.0";
developmentRegion = cs;
hasScannedForEncodings = 0;
@ -171,7 +171,7 @@
projectDirPath = "";
projectRoot = "";
targets = (
A601000000000000000001 /* Maturita */,
A601000000000000000001 /* Graduately */,
);
};
/* End PBXProject section */
@ -216,7 +216,7 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
A101000000000000000001 /* MaturitaApp.swift in Sources */,
A101000000000000000001 /* GraduatelyApp.swift in Sources */,
A101000000000000000002 /* AppModel.swift in Sources */,
A101000000000000000003 /* Route.swift in Sources */,
A101000000000000000004 /* JSON.swift in Sources */,
@ -346,7 +346,7 @@
DEVELOPMENT_TEAM = C2U9S337H8;
ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = Maturita/Info.plist;
INFOPLIST_FILE = Graduately/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = Graduately;
INFOPLIST_KEY_ITSAppUsesNonExemptEncryption = NO;
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.education";
@ -359,7 +359,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 0.1;
MARKETING_VERSION = 0.2;
PRODUCT_BUNDLE_IDENTIFIER = com.bukovinafilip.maturita;
PRODUCT_NAME = Graduately;
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
@ -384,7 +384,7 @@
DEVELOPMENT_TEAM = C2U9S337H8;
ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = Maturita/Info.plist;
INFOPLIST_FILE = Graduately/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = Graduately;
INFOPLIST_KEY_ITSAppUsesNonExemptEncryption = NO;
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.education";
@ -397,7 +397,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 0.1;
MARKETING_VERSION = 0.2;
PRODUCT_BUNDLE_IDENTIFIER = com.bukovinafilip.maturita;
PRODUCT_NAME = Graduately;
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
@ -413,7 +413,7 @@
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
A801000000000000000001 /* Build configuration list for PBXProject "Maturita" */ = {
A801000000000000000001 /* Build configuration list for PBXProject "Graduately" */ = {
isa = XCConfigurationList;
buildConfigurations = (
A901000000000000000001 /* Debug */,
@ -422,7 +422,7 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
A801000000000000000002 /* Build configuration list for PBXNativeTarget "Maturita" */ = {
A801000000000000000002 /* Build configuration list for PBXNativeTarget "Graduately" */ = {
isa = XCConfigurationList;
buildConfigurations = (
A901000000000000000003 /* Debug */,

View file

@ -16,8 +16,8 @@
BuildableIdentifier = "primary"
BlueprintIdentifier = "A601000000000000000001"
BuildableName = "Graduately.app"
BlueprintName = "Maturita"
ReferencedContainer = "container:Maturita.xcodeproj">
BlueprintName = "Graduately"
ReferencedContainer = "container:Graduately.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
@ -46,8 +46,8 @@
BuildableIdentifier = "primary"
BlueprintIdentifier = "A601000000000000000001"
BuildableName = "Graduately.app"
BlueprintName = "Maturita"
ReferencedContainer = "container:Maturita.xcodeproj">
BlueprintName = "Graduately"
ReferencedContainer = "container:Graduately.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</LaunchAction>
@ -64,8 +64,8 @@
BuildableIdentifier = "primary"
BlueprintIdentifier = "A601000000000000000001"
BuildableName = "Graduately.app"
BlueprintName = "Maturita"
ReferencedContainer = "container:Maturita.xcodeproj">
BlueprintName = "Graduately"
ReferencedContainer = "container:Graduately.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>

View file

@ -22,7 +22,7 @@ final class AppModel: ObservableObject {
lang = progress.lang
showChangelog = !content.changelog.isEmpty && !sameBuild(AppConfig.commit, progress.seenCommit)
#if DEBUG
// `xcrun simctl launch <udid> org.maturita.maturita -route u1e3` opens a page for screenshots.
// `xcrun simctl launch <udid> com.bukovinafilip.maturita -route u1e3` opens a page for screenshots.
if let page = UserDefaults.standard.string(forKey: "route"), let r = routeFromPage(page) {
openFromSearch(r.page)
}

View file

@ -1,7 +1,7 @@
import SwiftUI
@main
struct MaturitaApp: App {
struct GraduatelyApp: App {
@StateObject private var vm = AppModel()
var body: some Scene {

View file

@ -7,7 +7,7 @@
objects = {
/* Begin PBXBuildFile section */
B101000000000000000001 /* MaturitaApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = B201000000000000000001 /* MaturitaApp.swift */; };
B101000000000000000001 /* GraduatelyApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = B201000000000000000001 /* GraduatelyApp.swift */; };
B101000000000000000002 /* Platform.swift in Sources */ = {isa = PBXBuildFile; fileRef = B201000000000000000002 /* Platform.swift */; };
B101000000000000000003 /* Updater.swift in Sources */ = {isa = PBXBuildFile; fileRef = B201000000000000000003 /* Updater.swift */; };
B101000000000000000004 /* AppModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B201000000000000000004 /* AppModel.swift */; };
@ -27,25 +27,25 @@
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
B201000000000000000001 /* MaturitaApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MaturitaApp.swift; sourceTree = "<group>"; };
B201000000000000000001 /* GraduatelyApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GraduatelyApp.swift; sourceTree = "<group>"; };
B201000000000000000002 /* Platform.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Platform.swift; sourceTree = "<group>"; };
B201000000000000000003 /* Updater.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Updater.swift; sourceTree = "<group>"; };
B201000000000000000004 /* AppModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = AppModel.swift; path = ../ios/Maturita/AppModel.swift; sourceTree = SOURCE_ROOT; };
B201000000000000000005 /* Route.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Route.swift; path = ../ios/Maturita/Route.swift; sourceTree = SOURCE_ROOT; };
B201000000000000000006 /* JSON.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = JSON.swift; path = ../ios/Maturita/Data/JSON.swift; sourceTree = SOURCE_ROOT; };
B201000000000000000007 /* Content.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Content.swift; path = ../ios/Maturita/Data/Content.swift; sourceTree = SOURCE_ROOT; };
B201000000000000000008 /* Theme.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Theme.swift; path = ../ios/Maturita/Data/Theme.swift; sourceTree = SOURCE_ROOT; };
B201000000000000000009 /* Answers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Answers.swift; path = ../ios/Maturita/Data/Answers.swift; sourceTree = SOURCE_ROOT; };
B201000000000000000010 /* ProgressStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ProgressStore.swift; path = ../ios/Maturita/Data/ProgressStore.swift; sourceTree = SOURCE_ROOT; };
B201000000000000000011 /* Components.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Components.swift; path = ../ios/Maturita/UI/Components.swift; sourceTree = SOURCE_ROOT; };
B201000000000000000012 /* Icons.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Icons.swift; path = ../ios/Maturita/UI/Icons.swift; sourceTree = SOURCE_ROOT; };
B201000000000000000013 /* Screens.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Screens.swift; path = ../ios/Maturita/UI/Screens.swift; sourceTree = SOURCE_ROOT; };
B201000000000000000014 /* Exercises.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Exercises.swift; path = ../ios/Maturita/UI/Exercises.swift; sourceTree = SOURCE_ROOT; };
B201000000000000000015 /* ExercisesMore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ExercisesMore.swift; path = ../ios/Maturita/UI/ExercisesMore.swift; sourceTree = SOURCE_ROOT; };
B201000000000000000004 /* AppModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = AppModel.swift; path = ../ios/Graduately/AppModel.swift; sourceTree = SOURCE_ROOT; };
B201000000000000000005 /* Route.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Route.swift; path = ../ios/Graduately/Route.swift; sourceTree = SOURCE_ROOT; };
B201000000000000000006 /* JSON.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = JSON.swift; path = ../ios/Graduately/Data/JSON.swift; sourceTree = SOURCE_ROOT; };
B201000000000000000007 /* Content.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Content.swift; path = ../ios/Graduately/Data/Content.swift; sourceTree = SOURCE_ROOT; };
B201000000000000000008 /* Theme.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Theme.swift; path = ../ios/Graduately/Data/Theme.swift; sourceTree = SOURCE_ROOT; };
B201000000000000000009 /* Answers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Answers.swift; path = ../ios/Graduately/Data/Answers.swift; sourceTree = SOURCE_ROOT; };
B201000000000000000010 /* ProgressStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ProgressStore.swift; path = ../ios/Graduately/Data/ProgressStore.swift; sourceTree = SOURCE_ROOT; };
B201000000000000000011 /* Components.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Components.swift; path = ../ios/Graduately/UI/Components.swift; sourceTree = SOURCE_ROOT; };
B201000000000000000012 /* Icons.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Icons.swift; path = ../ios/Graduately/UI/Icons.swift; sourceTree = SOURCE_ROOT; };
B201000000000000000013 /* Screens.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Screens.swift; path = ../ios/Graduately/UI/Screens.swift; sourceTree = SOURCE_ROOT; };
B201000000000000000014 /* Exercises.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Exercises.swift; path = ../ios/Graduately/UI/Exercises.swift; sourceTree = SOURCE_ROOT; };
B201000000000000000015 /* ExercisesMore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ExercisesMore.swift; path = ../ios/Graduately/UI/ExercisesMore.swift; sourceTree = SOURCE_ROOT; };
B201000000000000000016 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
B201000000000000000017 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
B201000000000000000018 /* Maturita.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Maturita.entitlements; sourceTree = "<group>"; };
B201000000000000000019 /* PathMap.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = PathMap.swift; path = ../ios/Maturita/UI/PathMap.swift; sourceTree = SOURCE_ROOT; };
B201000000000000000018 /* Graduately.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Graduately.entitlements; sourceTree = "<group>"; };
B201000000000000000019 /* PathMap.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = PathMap.swift; path = ../ios/Graduately/UI/PathMap.swift; sourceTree = SOURCE_ROOT; };
B301000000000000000001 /* Graduately.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Graduately.app; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
@ -63,15 +63,15 @@
B501000000000000000001 = {
isa = PBXGroup;
children = (
B501000000000000000002 /* Maturita */,
B501000000000000000002 /* Graduately */,
B501000000000000000006 /* Products */,
);
sourceTree = "<group>";
};
B501000000000000000002 /* Maturita */ = {
B501000000000000000002 /* Graduately */ = {
isa = PBXGroup;
children = (
B201000000000000000001 /* MaturitaApp.swift */,
B201000000000000000001 /* GraduatelyApp.swift */,
B201000000000000000002 /* Platform.swift */,
B201000000000000000004 /* AppModel.swift */,
B201000000000000000005 /* Route.swift */,
@ -80,9 +80,9 @@
B501000000000000000005 /* UI */,
B201000000000000000016 /* Assets.xcassets */,
B201000000000000000017 /* Info.plist */,
B201000000000000000018 /* Maturita.entitlements */,
B201000000000000000018 /* Graduately.entitlements */,
);
path = Maturita;
path = Graduately;
sourceTree = "<group>";
};
B501000000000000000003 /* Data */ = {
@ -129,9 +129,9 @@
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
B601000000000000000001 /* Maturita */ = {
B601000000000000000001 /* Graduately */ = {
isa = PBXNativeTarget;
buildConfigurationList = B801000000000000000002 /* Build configuration list for PBXNativeTarget "Maturita" */;
buildConfigurationList = B801000000000000000002 /* Build configuration list for PBXNativeTarget "Graduately" */;
buildPhases = (
B701000000000000000001 /* Sources */,
B401000000000000000001 /* Frameworks */,
@ -142,7 +142,7 @@
);
dependencies = (
);
name = Maturita;
name = Graduately;
productName = Graduately;
productReference = B301000000000000000001 /* Graduately.app */;
productType = "com.apple.product-type.application";
@ -162,7 +162,7 @@
};
};
};
buildConfigurationList = B801000000000000000001 /* Build configuration list for PBXProject "Maturita" */;
buildConfigurationList = B801000000000000000001 /* Build configuration list for PBXProject "Graduately" */;
compatibilityVersion = "Xcode 14.0";
developmentRegion = cs;
hasScannedForEncodings = 0;
@ -176,7 +176,7 @@
projectDirPath = "";
projectRoot = "";
targets = (
B601000000000000000001 /* Maturita */,
B601000000000000000001 /* Graduately */,
);
};
/* End PBXProject section */
@ -221,7 +221,7 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
B101000000000000000001 /* MaturitaApp.swift in Sources */,
B101000000000000000001 /* GraduatelyApp.swift in Sources */,
B101000000000000000002 /* Platform.swift in Sources */,
B101000000000000000003 /* Updater.swift in Sources */,
B101000000000000000004 /* AppModel.swift in Sources */,
@ -343,7 +343,7 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_ENTITLEMENTS = Maturita/Maturita.entitlements;
CODE_SIGN_ENTITLEMENTS = Graduately/Graduately.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
COMMIT = dev;
@ -352,7 +352,7 @@
ENABLE_HARDENED_RUNTIME = YES;
ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = Maturita/Info.plist;
INFOPLIST_FILE = Graduately/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = Graduately;
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.education";
INFOPLIST_KEY_NSHighResolutionCapable = YES;
@ -362,7 +362,7 @@
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 26.0;
MARKETING_VERSION = 0.1;
MARKETING_VERSION = 0.2;
PRODUCT_BUNDLE_IDENTIFIER = com.bukovinafilip.maturita.macos;
PRODUCT_NAME = Graduately;
SDKROOT = macosx;
@ -377,7 +377,7 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_ENTITLEMENTS = Maturita/Maturita.entitlements;
CODE_SIGN_ENTITLEMENTS = Graduately/Graduately.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
COMMIT = dev;
@ -386,7 +386,7 @@
ENABLE_HARDENED_RUNTIME = YES;
ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = Maturita/Info.plist;
INFOPLIST_FILE = Graduately/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = Graduately;
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.education";
INFOPLIST_KEY_NSHighResolutionCapable = YES;
@ -396,7 +396,7 @@
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 26.0;
MARKETING_VERSION = 0.1;
MARKETING_VERSION = 0.2;
PRODUCT_BUNDLE_IDENTIFIER = com.bukovinafilip.maturita.macos;
PRODUCT_NAME = Graduately;
SDKROOT = macosx;
@ -409,7 +409,7 @@
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
B801000000000000000001 /* Build configuration list for PBXProject "Maturita" */ = {
B801000000000000000001 /* Build configuration list for PBXProject "Graduately" */ = {
isa = XCConfigurationList;
buildConfigurations = (
B901000000000000000001 /* Debug */,
@ -418,7 +418,7 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
B801000000000000000002 /* Build configuration list for PBXNativeTarget "Maturita" */ = {
B801000000000000000002 /* Build configuration list for PBXNativeTarget "Graduately" */ = {
isa = XCConfigurationList;
buildConfigurations = (
B901000000000000000003 /* Debug */,

View file

@ -16,8 +16,8 @@
BuildableIdentifier = "primary"
BlueprintIdentifier = "B601000000000000000001"
BuildableName = "Graduately.app"
BlueprintName = "Maturita"
ReferencedContainer = "container:Maturita.xcodeproj">
BlueprintName = "Graduately"
ReferencedContainer = "container:Graduately.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
@ -46,8 +46,8 @@
BuildableIdentifier = "primary"
BlueprintIdentifier = "B601000000000000000001"
BuildableName = "Graduately.app"
BlueprintName = "Maturita"
ReferencedContainer = "container:Maturita.xcodeproj">
BlueprintName = "Graduately"
ReferencedContainer = "container:Graduately.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</LaunchAction>
@ -64,8 +64,8 @@
BuildableIdentifier = "primary"
BlueprintIdentifier = "B601000000000000000001"
BuildableName = "Graduately.app"
BlueprintName = "Maturita"
ReferencedContainer = "container:Maturita.xcodeproj">
BlueprintName = "Graduately"
ReferencedContainer = "container:Graduately.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>

View file

@ -1,7 +1,7 @@
import SwiftUI
@main
struct MaturitaApp: App {
struct GraduatelyApp: App {
@StateObject private var vm = AppModel()
var body: some Scene {

View file

@ -15,8 +15,8 @@ rm -rf "$root/ios/Payload"
mkdir -p "$dd" "$root/dist-ios"
xcodebuild \
-project ios/Maturita.xcodeproj \
-scheme Maturita \
-project ios/Graduately.xcodeproj \
-scheme Graduately \
-configuration Release \
-sdk iphoneos \
-destination 'generic/platform=iOS' \

View file

@ -31,8 +31,8 @@ out_zip="graduately-macos-${arch_tag}.zip"
mkdir -p "$dd" "$root/dist"
xcodebuild \
-project macos/Maturita.xcodeproj \
-scheme Maturita \
-project macos/Graduately.xcodeproj \
-scheme Graduately \
-configuration Release \
-destination "generic/platform=macOS" \
-derivedDataPath "$dd" \
@ -50,7 +50,7 @@ dest="$root/dist/Graduately.app"
rm -rf "$dest"
cp -R "$app" "$dest"
ENTITLEMENTS="$root/macos/Maturita/Maturita.entitlements"
ENTITLEMENTS="$root/macos/Graduately/Graduately.entitlements"
pick_sign_identity() {
if [ -n "${MACOS_SIGN_IDENTITY:-}" ]; then

View file

@ -1389,7 +1389,7 @@ def main() -> int:
# Quiz + plot packs for the GTK stub pages (shared by every catalog book).
ex_lines = [
"/* Generated from data/cetba JSON packs – do not edit by hand. */",
"/* Requires LitQ (cetba.c) and AssemblyItem (maturita.h). */",
"/* Requires LitQ (cetba.c) and AssemblyItem (graduately.h). */",
"",
"typedef struct {",
" const LitQ *qs;",

View file

@ -1,4 +1,4 @@
#include "maturita.h"
#include "graduately.h"
/* ------------------------------------------------------------------ */
/* Maturitní četba: George Orwell – 1984 */

View file

@ -1,4 +1,4 @@
#include "maturita.h"
#include "graduately.h"
#include <string.h>

View file

@ -1,4 +1,4 @@
#include "maturita.h"
#include "graduately.h"
/* ---- Czech language and literature (Český jazyk a literatura) ----- */

View file

@ -1,4 +1,4 @@
#include "maturita.h"
#include "graduately.h"
/* ------------------------------------------------------------------ */
/* Exercise page shell */

View file

@ -1,4 +1,4 @@
#include "maturita.h"
#include "graduately.h"
/* ------------------------------------------------------------------ */
/* Choice exercises (3 + 9) */

View file

@ -1,4 +1,4 @@
#include "maturita.h"
#include "graduately.h"
/* ------------------------------------------------------------------ */
/* Unit 2 exercises ("Aus aller Welt") */

View file

@ -1,4 +1,4 @@
#include "maturita.h"
#include "graduately.h"
/* ------------------------------------------------------------------ */
/* Unit 3 exercises ("Bei uns zu Hause") */

View file

@ -1,4 +1,4 @@
#include "maturita.h"
#include "graduately.h"
GtkStack *main_stack;

View file

@ -1,5 +1,5 @@
#ifndef MATURITA_H
#define MATURITA_H
#ifndef GRADUATELY_H
#define GRADUATELY_H
#include <gtk/gtk.h>
#include <gdk/gdkkeysyms.h>
@ -1314,4 +1314,4 @@ void macos_set_dock_icon(const char *path);
void activate(GtkApplication *app, gpointer user_data);
int main(int argc, char **argv);
#endif /* MATURITA_H */
#endif /* GRADUATELY_H */

View file

@ -1,4 +1,4 @@
#include "maturita.h"
#include "graduately.h"
/* ---- Technical equipment (Technické vybavení) --------------------- */

View file

@ -1,4 +1,4 @@
#include "maturita.h"
#include "graduately.h"
/* ------------------------------------------------------------------ */
/* i18n */

View file

@ -1,4 +1,4 @@
#include "maturita.h"
#include "graduately.h"
/* Vector icons drawn with cairo so they never depend on the system
* icon theme (which is missing on some installs). */

View file

@ -1,4 +1,4 @@
#include "maturita.h"
#include "graduately.h"
#ifdef __APPLE__
#include <objc/message.h>

View file

@ -1,4 +1,4 @@
#include "maturita.h"
#include "graduately.h"
/* ------------------------------------------------------------------ */
/* Activate */

View file

@ -1,4 +1,4 @@
#include "maturita.h"
#include "graduately.h"
#define MLUV_N_EX 20
#define MLUV_MAX_BLANK 5

View file

@ -1,4 +1,4 @@
#include "maturita.h"
#include "graduately.h"
/* ------------------------------------------------------------------ */
/* Navigation */

View file

@ -1,4 +1,4 @@
#include "maturita.h"
#include "graduately.h"
/* ---- Computer networks: subject path, lesson & exercise ------------ */

View file

@ -1,4 +1,4 @@
#include "maturita.h"
#include "graduately.h"
/* ------------------------------------------------------------------ */
/* Progress */

View file

@ -1,4 +1,4 @@
#include "maturita.h"
#include "graduately.h"
/* ------------------------------------------------------------------ */
/* Roadmap page */

View file

@ -1,4 +1,4 @@
#include "maturita.h"
#include "graduately.h"
#include <stdlib.h>
#include <string.h>

View file

@ -1,4 +1,4 @@
#include "maturita.h"
#include "graduately.h"
/* ------------------------------------------------------------------ */
/* Settings */

View file

@ -1,4 +1,4 @@
#include "maturita.h"
#include "graduately.h"
/* ------------------------------------------------------------------ */
/* Statistics */

View file

@ -1,4 +1,4 @@
#include "maturita.h"
#include "graduately.h"
/* ------------------------------------------------------------------ */
/* Subjects page — icon grid, one tile per subject */

View file

@ -1,4 +1,4 @@
#include "maturita.h"
#include "graduately.h"
Rgb color_from_hex(unsigned int hex) {
Rgb c;

View file

@ -1,4 +1,4 @@
#include "maturita.h"
#include "graduately.h"
/* ------------------------------------------------------------------ */
/* Unit 1 exercise path (roadmap-style serpentine) */

View file

@ -1,4 +1,4 @@
#include "maturita.h"
#include "graduately.h"
#include <string.h>
@ -196,7 +196,7 @@ static gboolean same_commit(const char *a, const char *b) {
return ok;
}
/* Packaged builds carry a source commit; see APP_COMMIT in maturita.h. */
/* Packaged builds carry a source commit; see APP_COMMIT in graduately.h. */
static gboolean is_published_build(void) {
return g_ascii_isxdigit(APP_COMMIT[0]) && strlen(APP_COMMIT) >= 7;
}

View file

@ -1,4 +1,4 @@
#include "maturita.h"
#include "graduately.h"
#ifdef _WIN32
#include <windows.h>
@ -123,7 +123,7 @@ static char *macos_resources_dir(const char *exe) {
return resources;
}
/* Directory next to Foo.app when exe is .../Foo.app/Contents/MacOS/maturita. */
/* Directory next to Foo.app when exe is .../Foo.app/Contents/MacOS/Graduately. */
static char *macos_app_parent_dir(const char *exe) {
char *macos_dir;
char *contents;