Skip to content

Commit 19b5d4d

Browse files
Add Initial Dependency Support for Auto Compiling Packages Without Hardcoded Index
1 parent 484dd99 commit 19b5d4d

File tree

60 files changed

+115
-94
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

60 files changed

+115
-94
lines changed

build-all.sh

Lines changed: 54 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ setupPackage()
102102
{
103103
local package=$1
104104

105-
unset PKG_VER PKG_CATEGORY PKG_PRETTY_NAME PKG_OPTIONAL PKG_DEPENDENCIES
105+
unset PKG_VER PKG_CATEGORY PKG_PRETTY_NAME PKG_OPTIONAL
106106
unset SRC_URL GIT_URL GIT_COMMIT
107107
unset HOST_BUILD_FOLDER HOST_BUILD_MAKE HOST_BUILD_CONFIGURE_ARGS HOST_BUILD_CFLAGS HOST_BUILD_CXXFLAGS HOST_BUILD_LDFLAGS
108108
unset CONFIGURE_ARGS MESON_ARGS CMAKE_ARGS
@@ -282,15 +282,60 @@ setupPackage()
282282
if [ -n "$CI" ]; then
283283
rm -rf "$INIT_DIR/cache/$package"
284284
fi
285-
286-
echo $package >> index
287285
}
288286

289287
setupPackages()
290288
{
291289
cd "$INIT_DIR/workdir"
292290

293-
for package in $PACKAGES; do
291+
# We need to build package list respecting dependencies order
292+
# First add packages that don't need extra dependencies
293+
294+
rm -f "$INIT_DIR/workdir/index"
295+
296+
export FILTERED_PACKAGES=""
297+
export TODO_PACKAGES=$PACKAGES
298+
299+
while [ -n "$TODO_PACKAGES" ]; do
300+
NEW_TODO=""
301+
302+
for package in $TODO_PACKAGES; do
303+
unset DEPENDENCIES
304+
305+
if [ ! -d "$INIT_DIR/packages/$package" ]; then
306+
echo "E: Package '$package' don't exists."
307+
exit 1
308+
fi
309+
310+
source "$INIT_DIR/packages/$package/build.sh"
311+
312+
if [ -z "$DEPENDENCIES" ]; then
313+
if ! echo " $FILTERED_PACKAGES " | grep -q " $package "; then
314+
FILTERED_PACKAGES+="$package "
315+
continue
316+
fi
317+
fi
318+
319+
for dep in $DEPENDENCIES; do
320+
if ! echo " $FILTERED_PACKAGES " | grep -q " $dep "; then
321+
NEW_TODO+="$package "
322+
break
323+
fi
324+
done
325+
326+
if ! echo " $NEW_TODO " | grep -q " $package "; then
327+
if ! echo " $FILTERED_PACKAGES " | grep -q " $package "; then
328+
FILTERED_PACKAGES+="$package "
329+
fi
330+
fi
331+
done
332+
333+
TODO_PACKAGES="$NEW_TODO"
334+
done
335+
336+
echo $FILTERED_PACKAGES > "$INIT_DIR/workdir/index"
337+
338+
for package in $FILTERED_PACKAGES; do
294339
packageFullPath=$(ls "$INIT_DIR/built-pkgs/$package-"*"$ARCH.rat" 2> /dev/zero)
295340
packageCommitFullPath=$(ls "$INIT_DIR/built-pkgs/$package-"*"$ARCH.commit" 2> /dev/zero)
296341

@@ -339,6 +384,10 @@ compileAll()
339384
local packageCount=$(cat "$INIT_DIR/workdir/index" | wc -l)
340385

341386
for package in $(cat "$INIT_DIR/workdir/index"); do
387+
if [ ! -d "$INIT_DIR/workdir/$package" ]; then
388+
continue
389+
fi
390+
342391
local packageBuildDir="$INIT_DIR/workdir/$package/build_dir"
343392
local packageDestDirPkg="$INIT_DIR/workdir/$package/destdir-pkg"
344393
mkdir -p "$packageBuildDir"
@@ -466,7 +515,7 @@ export NDK_FILENAME="${NDK_URL##*/}"
466515
export MINGW_URL="http://techer.pascal.free.fr/Red-Rose_MinGW-w64-Toolchain/Red-Rose-MinGW-w64-Posix-Urct-v12.0.0.r458.g03d8a40f5-Gcc-11.5.0.tar.xz"
467516
export MINGW_FILENAME="${MINGW_URL##*/}"
468517

469-
export PACKAGES="$(cat packages/index)"
518+
export PACKAGES="$(ls packages)"
470519
export INIT_DIR="$PWD"
471520
export INIT_PATH="$PATH"
472521

packages/FreeGLUT/build.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
PKG_VER=3.4.0
22
SRC_URL=https://downloads.sourceforge.net/freeglut/freeglut-$PKG_VER.tar.gz
3-
CMAKE_ARGS="-DANDROID=OFF -DCMAKE_LIBRARY_PATH=/data/data/com.micewine.emu/files/usr/lib"
3+
CMAKE_ARGS="-DANDROID=OFF -DCMAKE_LIBRARY_PATH=$PREFIX_DIR/lib"
44
CFLAGS="-I$PREFIX_DIR/include"
55
LDFLAGS="-L$PREFIX_DIR/lib -lGL"
6+
DEPENDENCIES="libX11 libXi libXrandr libXxf86vm GLU"

packages/GLU/build.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
PKG_VER=9.0.3
22
SRC_URL=https://mesa.freedesktop.org/archive/glu/glu-$PKG_VER.tar.xz
33
MESON_ARGS=" "
4+
DEPENDENCIES="libglvnd"

packages/Vulkan-Loader/build.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
PKG_VER=1.4.304
22
SRC_URL=https://github.com/KhronosGroup/Vulkan-Loader/archive/refs/tags/v$PKG_VER.tar.gz
33
CMAKE_ARGS="-DBUILD_TESTS=OFF -DCMAKE_SYSTEM_NAME=Linux -DENABLE_WERROR=OFF -DVULKAN_HEADERS_INSTALL_DIR=$PREFIX -DUSE_GAS=OFF"
4+
DEPENDENCIES="Vulkan-Headers libX11 libXrandr"

packages/Vulkan-Tools/build.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
PKG_VER=1.4.304
22
SRC_URL=https://github.com/KhronosGroup/Vulkan-Tools/archive/refs/tags/v$PKG_VER.tar.gz
33
CMAKE_ARGS="-DCMAKE_SYSTEM_NAME=Linux -DBUILD_CUBE=ON -DBUILD_ICD=OFF -DBUILD_WSI_WAYLAND_SUPPORT=OFF -DBUILD_WSI_XCB_SUPPORT=ON -DBUILD_WSI_XLIB_SUPPORT=ON -DVULKAN_HEADERS_INSTALL_DIR=$PREFIX"
4+
DEPENDENCIES="Vulkan-Loader Vulkan-Volk libX11 libXrandr libxcb"

packages/Vulkan-Volk/build.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
PKG_VER=1.4.304
22
SRC_URL=https://github.com/zeux/volk/archive/refs/tags/$PKG_VER.tar.gz
33
CMAKE_ARGS="-DVOLK_INSTALL=ON"
4+
DEPENDENCIES="Vulkan-Headers"

packages/freetype/build.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
PKG_VER=2.13.3
22
SRC_URL=https://downloads.sourceforge.net/freetype/freetype-$PKG_VER.tar.xz
33
CONFIGURE_ARGS="--host=$TOOLCHAIN_TRIPLE host_alias=$TOOLCHAIN_TRIPLE --without-bzip2 --without-harfbuzz"
4+
DEPENDENCIES="brotli libpng zlib"

packages/glib/build.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@ SRC_URL=https://download.gnome.org/sources/glib/${PKG_VER%.*}/glib-$PKG_VER.tar.
33
MESON_ARGS="-Dintrospection=disabled -Druntime_dir=$PREFIX/var/run -Dlibmount=disabled -Dman-pages=enabled -Dtests=false -Dselinux=disabled -Dlibelf=disabled"
44
CFLAGS="-I$PREFIX/include"
55
LDFLAGS="-L$PREFIX/lib -l:libiconv.a"
6+
DEPENDENCIES="zlib libiconv pcre2 libffi"

packages/gst-plugins-bad/build.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@ PKG_VER=1.24.11
22
SRC_URL=https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-$PKG_VER.tar.xz
33
MESON_ARGS="-Dandroidmedia=disabled -Dexamples=disabled -Drtmp=disabled -Dshm=disabled -Dtests=disabled -Dzbar=disabled -Dwebp=disabled -Dvulkan=disabled -Dhls-crypto=openssl"
44
LDFLAGS="-lm"
5+
DEPENDENCIES="glib gstreamer gst-plugins-base opus libsndfile libX11 libxml2 openssl"

packages/gst-plugins-base/build.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@ SRC_URL=https://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-
33
MESON_ARGS="-Dintrospection=disabled -Dtests=disabled -Dexamples=disabled -Dpango=disabled "
44
MESON_ARGS+="-Dtools=disabled -Dglib-asserts=disabled -Dglib-checks=disabled"
55
LDFLAGS="-L$PREFIX/lib -landroid-shmem"
6+
DEPENDENCIES="gstreamer glib android-shmem libogg opus libvorbis libX11 libxcb libXext libXi zlib"

0 commit comments

Comments
 (0)