-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathproject.yml
More file actions
96 lines (94 loc) · 3.19 KB
/
Copy pathproject.yml
File metadata and controls
96 lines (94 loc) · 3.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
name: Aevum
options:
bundleIdPrefix: com.aevum
deploymentTarget:
macOS: "14.0"
developmentLanguage: en
createIntermediateGroups: true
groupSortPosition: top
settings:
base:
SWIFT_VERSION: "5.9"
CLANG_CXX_LANGUAGE_STANDARD: "c++20"
CLANG_CXX_LIBRARY: "libc++"
GCC_C_LANGUAGE_STANDARD: "c11"
ENABLE_USER_SCRIPT_SANDBOXING: NO
CODE_SIGN_IDENTITY: "-"
CODE_SIGNING_REQUIRED: NO
CODE_SIGNING_ALLOWED: YES
SWIFT_OBJC_BRIDGING_HEADER: Aevum/Sources/AevumApp/Aevum-Bridging-Header.h
HEADER_SEARCH_PATHS:
- "$(SRCROOT)/build/engine/headers"
USER_HEADER_SEARCH_PATHS:
- "$(SRCROOT)/build/engine/headers"
LD_RUNPATH_SEARCH_PATHS:
- "@executable_path/../Frameworks"
- "@loader_path/Frameworks"
targets:
Aevum:
type: application
platform: macOS
deploymentTarget: "14.0"
sources:
- path: Aevum/Sources/AevumApp
- path: Aevum/Sources/Engine
- path: Aevum/Sources/Models
- path: Aevum/Sources/Storage
- path: Aevum/Sources/Import
- path: Aevum/Sources/Similarity
- path: Aevum/Sources/Utility
- path: Aevum/Sources/UI
- path: Aevum/Resources
optional: true
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: com.aevum.app
PRODUCT_NAME: Aevum
MARKETING_VERSION: "0.1.1"
CURRENT_PROJECT_VERSION: "1"
INFOPLIST_FILE: Aevum/Sources/AevumApp/Info.plist
CODE_SIGN_ENTITLEMENTS: Aevum/Sources/AevumApp/Aevum.entitlements
# Link the merged engine static lib + Metal/Accelerate frameworks.
# The bridge .mm is Obj-C++ so enable ARC for it.
CLANG_ENABLE_MODULES: YES
OTHER_LDFLAGS:
- "$(inherited)"
- "$(SRCROOT)/build/engine/libaevum_engine.a"
- "-framework Metal"
- "-framework Accelerate"
- "-framework Foundation"
- "-framework AppKit"
- "-framework AVFoundation"
- "-framework AudioToolbox"
- "-framework CoreAudio"
- "-framework CoreMIDI"
- "-framework UniformTypeIdentifiers"
- "-ObjC"
# Force the EngineBridge.mm to compile as Obj-C++ with ARC.
OTHER_CPLUSPLUSFLAGS:
- "$(inherited)"
- "-fobjc-arc"
# Copy mlx.metallib into the app bundle's MacOS directory so MLX
# finds its precompiled Metal shaders at runtime.
LD_RUNPATH_SEARCH_PATHS:
- "@executable_path"
dependencies: []
preBuildScripts:
- script: |
set -e
if [ ! -f "$PROJECT_DIR/build/engine/libaevum_engine.a" ]; then
echo "==> libaevum_engine.a not found — running build_engine.sh…"
bash "$PROJECT_DIR/scripts/build_engine.sh"
fi
name: Build Engine
inputFiles: []
outputFiles:
- $(SRCROOT)/build/engine/libaevum_engine.a
postBuildScripts:
- script: |
set -e
# Copy mlx.metallib next to the executable so MLX finds it.
if [ -f "$SRCROOT/build/engine/mlx.metallib" ]; then
cp "$SRCROOT/build/engine/mlx.metallib" "$BUILT_PRODUCTS_DIR/$PRODUCT_NAME.app/Contents/MacOS/mlx.metallib"
fi
name: Copy Metallib