Skip to content

Commit 353afb8

Browse files
authored
MetalANGLE - Transmute OpenGL to Metal with ANGLE libraries (#442)
* MetalANGLE * Metal ANGLE Formulae. Transmute OpenGL ES to METAL * fetch in prepare
1 parent a599d70 commit 353afb8

File tree

15 files changed

+24184
-0
lines changed

15 files changed

+24184
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,4 @@ scripts/linuxarmv6l/master.zip
2222
scripts/linuxarmv6l/firmware-master
2323
scripts/status.txt
2424
*.log
25+
*.xcuserstate
Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
#!/usr/bin/env bash
2+
#
3+
# metalangle
4+
# https://github.com/kakashidinho/metalangle.git
5+
6+
FORMULA_TYPES=( "osx" "ios" "watchos" "catos" "xros" "tvos" )
7+
FORMULA_DEPENDS=( )
8+
9+
# define the version
10+
VER=1.0
11+
BUILD_ID=1
12+
DEFINES=""
13+
14+
# tools for git use
15+
GIT_URL=https://github.com/kakashidinho/metalangle.git
16+
GIT_ORIGIN=https://github.com/google/metalangle.git
17+
GIT_TAG=v$VER
18+
19+
SCHEME=MetalANGLE
20+
ARCHS=~/Library/Developer/Xcode/Archives
21+
22+
# download the source code and unpack it into LIB_NAME
23+
function download() {
24+
. "$DOWNLOADER_SCRIPT"
25+
git clone ${GIT_URL}
26+
27+
28+
}
29+
30+
# prepare the build environment, executed inside the lib src dir
31+
function prepare() {
32+
echo
33+
34+
echo "Fetch Subdependancies"
35+
./ios/xcode/fetchDependencies.sh
36+
37+
cp -r $FORMULA_DIR/metalangle/ ./
38+
39+
mkdir -p "src/id"
40+
./src/commit_id.sh gen /Users/one/SOURCE/apothecary/apothecary/build/metalangle/src ./src/id/commit.h
41+
42+
43+
# cp -r $FORMULA_DIR/metalangle/CMakeLists.txt metalangle/CMakeLists.txt
44+
}
45+
46+
# executed inside the lib src dir
47+
function build() {
48+
echo
49+
50+
LIBS_ROOT=$(realpath $LIBS_DIR)
51+
52+
DEFS="
53+
-DCMAKE_C_STANDARD=${C_STANDARD} \
54+
-DCMAKE_CXX_STANDARD=${CPP_STANDARD} \
55+
-DCMAKE_CXX_STANDARD_REQUIRED=ON \
56+
-DCMAKE_CXX_EXTENSIONS=OFF \
57+
-DCMAKE_PREFIX_PATH=${LIBS_ROOT} \
58+
-DBUILD_SHARED_LIBS=OFF"
59+
60+
if [[ "$TYPE" =~ ^(osx|ios|tvos|xros|catos|watchos)$ ]]; then
61+
mkdir -p "build_${TYPE}_${PLATFORM}"
62+
cd "build_${TYPE}_${PLATFORM}"
63+
rm -f CMakeCache.txt *.a *.o
64+
65+
cmake .. ${DEFS} \
66+
-DCMAKE_TOOLCHAIN_FILE=$APOTHECARY_DIR/toolchains/ios.toolchain.cmake \
67+
-DPLATFORM=$PLATFORM \
68+
-DCMAKE_INSTALL_PREFIX=Release \
69+
-DCMAKE_BUILD_TYPE=Release \
70+
-DDEPLOYMENT_TARGET=${MIN_SDK_VER} \
71+
-DCMAKE_CXX_FLAGS="-DUSE_PTHREADS=1 ${FLAG_RELEASE}" \
72+
-DCMAKE_C_FLAGS="-DUSE_PTHREADS=1 ${FLAG_RELEASE}" \
73+
-DENABLE_BITCODE=OFF \
74+
-DENABLE_ARC=ON \
75+
-DENABLE_VISIBILITY=OFF \
76+
-DCMAKE_VERBOSE_MAKEFILE=${VERBOSE_MAKEFILE} \
77+
-DCMAKE_POSITION_INDEPENDENT_CODE=TRUE
78+
cmake --build . --config Release --target install
79+
cd ..
80+
fi
81+
# if [ "$TYPE" == "ios" ] ; then
82+
# xcodebuild archive -scheme $SCHEME -archivePath $ARCHS/iOSDevice.xcarchive -sdk iphoneos SKIP_INSTALL=NO BUILD_LIBRARIES_FOR_DISTRIBUTION=YES -project OpenGLES.xcodeproj
83+
# elif [[ "$TYPE" =~ ^(osx|ios|tvos|xros|catos|watchos)$ ]]; then
84+
# echo
85+
# fi
86+
87+
}
88+
89+
# executed inside the lib src dir, first arg $1 is the dest libs dir root
90+
function copy() {
91+
echo
92+
# headers
93+
mkdir -p $1/include
94+
rm -rf $1/include/*
95+
cp -Rv include/* $1/include
96+
97+
. "$SECURE_SCRIPT"
98+
# libs
99+
mkdir -p $1/lib/$TYPE
100+
if [[ "$TYPE" =~ ^(osx|ios|tvos|xros|catos|watchos)$ ]]; then
101+
cp -v -r build_${TYPE}_${PLATFORM}/Release/include/* $1/include
102+
mkdir -p $1/lib/$TYPE/$PLATFORM/
103+
cp -Rv build_${TYPE}_${PLATFORM}/Release/lib/libmetalangle.a $1/lib/$TYPE/$PLATFORM/libmetalangle.a
104+
secure $1/lib/$TYPE/$PLATFORM/libmetalangle.a metalangle.pkl
105+
fi
106+
107+
# copy license files
108+
if [ -d "$1/license" ]; then
109+
rm -rf $1/license
110+
fi
111+
mkdir -p $1/license
112+
cp -v LICENSE $1/license/
113+
}
114+
115+
# executed inside the lib src dir
116+
function clean() {
117+
if [[ "$TYPE" =~ ^(osx|ios|tvos|xros|catos|watchos)$ ]]; then
118+
rm -f build_${TYPE}_${PLATFORM}
119+
rm -f CMakeCache.txt
120+
fi
121+
}
122+
123+
function load() {
124+
. "$LOAD_SCRIPT"
125+
LOAD_RESULT=$(loadsave ${TYPE} "metalangle" ${ARCH} ${VER} "$LIBS_DIR_REAL/$1/lib/$TYPE/$PLATFORM" ${PLATFORM} )
126+
PREBUILT=$(echo "$LOAD_RESULT" | tail -n 1)
127+
if [ "$PREBUILT" -eq 1 ]; then
128+
echo 1
129+
else
130+
echo 0
131+
fi
132+
}

0 commit comments

Comments
 (0)