Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
ppy
GitHub Repository: ppy/osu
Path: blob/master/UseLocalFramework.sh
2255 views
1
#!/bin/sh
2
3
# Run this script to use a local copy of osu-framework rather than fetching it from nuget.
4
# It expects the osu-framework directory to be at the same level as the osu directory
5
#
6
# https://github.com/ppy/osu-framework/wiki/Testing-local-framework-checkout-with-other-projects
7
8
GAME_CSPROJ="osu.Game/osu.Game.csproj"
9
ANDROID_PROPS="osu.Android.props"
10
IOS_PROPS="osu.iOS.props"
11
SLN="osu.sln"
12
13
dotnet remove $GAME_CSPROJ reference ppy.osu.Framework
14
dotnet remove $ANDROID_PROPS reference ppy.osu.Framework.Android
15
dotnet remove $IOS_PROPS reference ppy.osu.Framework.iOS
16
17
dotnet sln $SLN add ../osu-framework/osu.Framework/osu.Framework.csproj \
18
../osu-framework/osu.Framework.NativeLibs/osu.Framework.NativeLibs.csproj \
19
../osu-framework/osu.Framework.Android/osu.Framework.Android.csproj \
20
../osu-framework/osu.Framework.iOS/osu.Framework.iOS.csproj
21
22
dotnet add $GAME_CSPROJ reference ../osu-framework/osu.Framework/osu.Framework.csproj
23
dotnet add $ANDROID_PROPS reference ../osu-framework/osu.Framework.Android/osu.Framework.Android.csproj
24
dotnet add $IOS_PROPS reference ../osu-framework/osu.Framework.iOS/osu.Framework.iOS.csproj
25
26
# workaround for dotnet add not inserting $(MSBuildThisFileDirectory) on props files
27
sed -i.bak 's:"..\\osu-framework:"$(MSBuildThisFileDirectory)..\\osu-framework:g' ./osu.Android.props && rm osu.Android.props.bak
28
sed -i.bak 's:"..\\osu-framework:"$(MSBuildThisFileDirectory)..\\osu-framework:g' ./osu.iOS.props && rm osu.iOS.props.bak
29
30
# needed because iOS framework nupkg includes a set of properties to work around certain issues during building,
31
# and those get ignored when referencing framework via project, threfore we have to manually include it via props reference.
32
sed -i.bak '/<\/Project>/i\
33
<Import Project=\"$(MSBuildThisFileDirectory)../osu-framework/osu.Framework.iOS.props\"/>\
34
' ./osu.iOS.props && rm osu.iOS.props.bak
35
36
tmp=$(mktemp)
37
38
jq '.solution.projects += ["../osu-framework/osu.Framework/osu.Framework.csproj", "../osu-framework/osu.Framework.NativeLibs/osu.Framework.NativeLibs.csproj"]' osu.Desktop.slnf > $tmp
39
mv -f $tmp osu.Desktop.slnf
40
41
jq '.solution.projects += ["../osu-framework/osu.Framework/osu.Framework.csproj", "../osu-framework/osu.Framework.NativeLibs/osu.Framework.NativeLibs.csproj", "../osu-framework/osu.Framework.Android/osu.Framework.Android.csproj"]' osu.Android.slnf > $tmp
42
mv -f $tmp osu.Android.slnf
43
44
jq '.solution.projects += ["../osu-framework/osu.Framework/osu.Framework.csproj", "../osu-framework/osu.Framework.NativeLibs/osu.Framework.NativeLibs.csproj", "../osu-framework/osu.Framework.iOS/osu.Framework.iOS.csproj"]' osu.iOS.slnf > $tmp
45
mv -f $tmp osu.iOS.slnf
46
47