mirror of https://gitlab.com/nakst/essence
update freetype and nasm to use scripts
This commit is contained in:
parent
c06a2cf70d
commit
9f8571dff9
|
@ -0,0 +1,47 @@
|
||||||
|
#import "util/get_source.script" get_source;
|
||||||
|
|
||||||
|
str targetName #option;
|
||||||
|
str toolchainPrefix #option;
|
||||||
|
int processorCount #option;
|
||||||
|
|
||||||
|
void Start() {
|
||||||
|
if processorCount == 0 processorCount = SystemGetProcessorCount();
|
||||||
|
|
||||||
|
if !PathExists("bin/freetype") {
|
||||||
|
get_source.Get("https://download.savannah.gnu.org/releases/freetype/freetype-2.9.tar.gz", "freetype-2.9",
|
||||||
|
"bf380e4d7c4f3b5b1c1a7b2bf3abb967bda5e9ab480d0df656e0e08c5019c5e6");
|
||||||
|
assert PathMove("bin/source", "bin/freetype");
|
||||||
|
assert FileCopy("ports/freetype/patch-ftoption.h", "bin/freetype/include/freetype/config/ftoption.h");
|
||||||
|
assert FileCopy("ports/freetype/patch-ftstdlib.h", "bin/freetype/include/freetype/config/ftstdlib.h");
|
||||||
|
assert FileCopy("ports/freetype/patch-modules.cfg", "bin/freetype/modules.cfg");
|
||||||
|
}
|
||||||
|
|
||||||
|
if !PathExists("root/Applications/POSIX/include/ft2build.h") {
|
||||||
|
assert SystemShellExecute("cp -p bin/freetype/include/ft2build.h root/Applications/POSIX/include");
|
||||||
|
assert SystemShellExecute("cp -p -r bin/freetype/include/freetype root/Applications/POSIX/include");
|
||||||
|
}
|
||||||
|
|
||||||
|
if !PathExists("bin/freetype/libfreetype_%targetName%.a") {
|
||||||
|
PathDelete("bin/freetype/objs/.libs/libfreetype.a");
|
||||||
|
|
||||||
|
if targetName == "x86_64" {
|
||||||
|
assert SystemShellExecuteWithWorkingDirectory("bin/freetype",
|
||||||
|
"./configure --without-zlib --without-bzip2 --without-png --without-harfbuzz "
|
||||||
|
+ "CC=%toolchainPrefix%-gcc CFLAGS=\"-g -ffreestanding -Wno-unused-function -O3\" --host=%toolchainPrefix%");
|
||||||
|
} else if targetName == "x86_32" {
|
||||||
|
assert SystemShellExecuteWithWorkingDirectory("bin/freetype",
|
||||||
|
"./configure --without-zlib --without-bzip2 --without-png --without-harfbuzz "
|
||||||
|
+ "CFLAGS=\"-g -ffreestanding -Wno-unused-function -O3 -I../../root/Applications/POSIX/include\" "
|
||||||
|
+ "LDFLAGS=\"-nostdlib -lgcc\" CC=%toolchainPrefix%-gcc --host=%toolchainPrefix%");
|
||||||
|
assert SystemShellExecuteWithWorkingDirectory("bin/freetype",
|
||||||
|
"sed -i '/define FT_USE_AUTOCONF_SIZEOF_TYPES/d' builds/unix/ftconfig.h");
|
||||||
|
} else {
|
||||||
|
assert false;
|
||||||
|
}
|
||||||
|
|
||||||
|
assert SystemShellExecuteWithWorkingDirectory("bin/freetype", "make -j %processorCount%");
|
||||||
|
assert FileCopy("bin/freetype/objs/.libs/libfreetype.a", "bin/freetype/libfreetype_%targetName%.a");
|
||||||
|
}
|
||||||
|
|
||||||
|
assert FileCopy("bin/freetype/libfreetype_%targetName%.a", "root/Applications/POSIX/lib/libfreetype.a");
|
||||||
|
}
|
|
@ -1,49 +0,0 @@
|
||||||
set -e
|
|
||||||
|
|
||||||
if [ ! -d "bin/freetype" ]; then
|
|
||||||
echo "Downloading FreeType..."
|
|
||||||
|
|
||||||
bin/script util/get_source.script checksum=bf380e4d7c4f3b5b1c1a7b2bf3abb967bda5e9ab480d0df656e0e08c5019c5e6 directoryName=freetype-2.9 url=https://download.savannah.gnu.org/releases/freetype/freetype-2.9.tar.gz
|
|
||||||
mv bin/source bin/freetype
|
|
||||||
|
|
||||||
cp ports/freetype/patch-ftoption.h bin/freetype/include/freetype/config/ftoption.h
|
|
||||||
cp ports/freetype/patch-ftstdlib.h bin/freetype/include/freetype/config/ftstdlib.h
|
|
||||||
cp ports/freetype/patch-modules.cfg bin/freetype/modules.cfg
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$1" = "x86_64" ]; then
|
|
||||||
if [ ! -f "bin/freetype/libfreetype_x86_64.a" ]; then
|
|
||||||
echo "Building FreeType for x86_64..."
|
|
||||||
cd bin/freetype
|
|
||||||
rm -f objs/.libs/libfreetype.a
|
|
||||||
./configure --without-zlib --without-bzip2 --without-png --without-harfbuzz \
|
|
||||||
CC=x86_64-essence-gcc CFLAGS="-g -ffreestanding -Wno-unused-function -O3" \
|
|
||||||
--host=x86_64-essence > ../Logs/freetype_configure.txt 2>&1
|
|
||||||
make -j`nproc` > /dev/null
|
|
||||||
cp objs/.libs/libfreetype.a libfreetype_x86_64.a
|
|
||||||
cd ../..
|
|
||||||
fi
|
|
||||||
|
|
||||||
cp -p bin/freetype/libfreetype_x86_64.a root/Applications/POSIX/lib/libfreetype.a
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$1" = "x86_32" ]; then
|
|
||||||
if [ ! -f "bin/freetype/libfreetype_x86_32.a" ]; then
|
|
||||||
echo "Building FreeType for x86_32..."
|
|
||||||
INC=`realpath root/Applications/POSIX/include`
|
|
||||||
cd bin/freetype
|
|
||||||
rm -f objs/.libs/libfreetype.a
|
|
||||||
./configure --without-zlib --without-bzip2 --without-png --without-harfbuzz \
|
|
||||||
CC=i686-elf-gcc CFLAGS="-g -ffreestanding -Wno-unused-function -O3 -I$INC" \
|
|
||||||
LDFLAGS="-nostdlib -lgcc" --host=i686-elf > ../Logs/freetype_configure.txt 2>&1
|
|
||||||
sed -i '/define FT_USE_AUTOCONF_SIZEOF_TYPES/d' builds/unix/ftconfig.h
|
|
||||||
make -j`nproc` > /dev/null
|
|
||||||
cp objs/.libs/libfreetype.a libfreetype_x86_32.a
|
|
||||||
cd ../..
|
|
||||||
fi
|
|
||||||
|
|
||||||
cp -p bin/freetype/libfreetype_x86_32.a root/Applications/POSIX/lib/libfreetype.a
|
|
||||||
fi
|
|
||||||
|
|
||||||
cp -p bin/freetype/include/ft2build.h root/Applications/POSIX/include
|
|
||||||
cp -p -r bin/freetype/include/freetype root/Applications/POSIX/include
|
|
|
@ -24,7 +24,9 @@ void Start() {
|
||||||
assert SystemShellExecuteWithWorkingDirectory("bin/harfbuzz/src",
|
assert SystemShellExecuteWithWorkingDirectory("bin/harfbuzz/src",
|
||||||
"find . -type f -exec %sed% -i 's/#include <%headers[i]%.h>/#include <essence.h>/g' {} \\;");
|
"find . -type f -exec %sed% -i 's/#include <%headers[i]%.h>/#include <essence.h>/g' {} \\;");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if !PathExists("root/Applications/POSIX/include/harfbuzz") {
|
||||||
assert PathCreateLeadingDirectories("root/Applications/POSIX/include/harfbuzz");
|
assert PathCreateLeadingDirectories("root/Applications/POSIX/include/harfbuzz");
|
||||||
assert SystemShellExecute("cp -p bin/harfbuzz/src/*.h root/Applications/POSIX/include/harfbuzz");
|
assert SystemShellExecute("cp -p bin/harfbuzz/src/*.h root/Applications/POSIX/include/harfbuzz");
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
#import "util/get_source.script" get_source;
|
||||||
|
|
||||||
|
str targetName #option;
|
||||||
|
str toolchainPrefix #option;
|
||||||
|
int processorCount #option;
|
||||||
|
|
||||||
|
void Start() {
|
||||||
|
str rootDirectory = PathGetDefaultPrefix() + "/root";
|
||||||
|
str version = "2.15.05";
|
||||||
|
if processorCount == 0 processorCount = SystemGetProcessorCount();
|
||||||
|
|
||||||
|
get_source.Get("https://www.nasm.us/pub/nasm/releasebuilds/%version%/nasm-%version%.tar.xz", "nasm-%version%",
|
||||||
|
"3caf6729c1073bf96629b57cee31eeb54f4f8129b01902c73428836550b30a3f");
|
||||||
|
assert SystemShellExecuteWithWorkingDirectory("bin/source", "./configure --host=%toolchainPrefix% CC=%toolchainPrefix%-gcc CXX=%toolchainPrefix%-g++ --prefix=/Applications/POSIX");
|
||||||
|
assert SystemShellExecuteWithWorkingDirectory("bin/source", "make -j %processorCount%");
|
||||||
|
assert SystemShellExecuteWithWorkingDirectory("bin/source", "make install DESTDIR=%rootDirectory%");
|
||||||
|
assert FileCopy("bin/source/LICENSE", "bin/Nasm License.txt");
|
||||||
|
|
||||||
|
PathDeleteRecursively("bin/source");
|
||||||
|
}
|
|
@ -1,11 +0,0 @@
|
||||||
set -e
|
|
||||||
SYSROOT=`realpath root`
|
|
||||||
VERSION=2.15.05
|
|
||||||
bin/script util/get_source.script checksum=3caf6729c1073bf96629b57cee31eeb54f4f8129b01902c73428836550b30a3f directoryName=nasm-$VERSION url=https://www.nasm.us/pub/nasm/releasebuilds/$VERSION/nasm-$VERSION.tar.xz
|
|
||||||
cd bin/source
|
|
||||||
./configure --host=x86_64-essence CC=x86_64-essence-gcc CXX=x86_64-essence-g++ --prefix=/Applications/POSIX
|
|
||||||
make -j `nproc`
|
|
||||||
DESTDIR=$SYSROOT make install
|
|
||||||
mv LICENSE ../Nasm\ License.txt
|
|
||||||
cd ../..
|
|
||||||
rm -r bin/source
|
|
|
@ -174,7 +174,7 @@ bool BuildAPIDependencies() {
|
||||||
if (CallSystem(TOOLCHAIN_PREFIX "-gcc -c desktop/crtglue.c -o cross/lib/gcc/" TOOLCHAIN_PREFIX "/" GCC_VERSION "/crtglue.o")) return false;
|
if (CallSystem(TOOLCHAIN_PREFIX "-gcc -c desktop/crtglue.c -o cross/lib/gcc/" TOOLCHAIN_PREFIX "/" GCC_VERSION "/crtglue.o")) return false;
|
||||||
|
|
||||||
if (IsOptionEnabled("Dependency.FreeTypeAndHarfBuzz")) {
|
if (IsOptionEnabled("Dependency.FreeTypeAndHarfBuzz")) {
|
||||||
if (CallSystem("ports/freetype/build.sh " TARGET_NAME)) return false;
|
if (CallSystem("bin/script ports/freetype/build.script targetName=" TARGET_NAME " toolchainPrefix=" TOOLCHAIN_PREFIX)) return false;
|
||||||
if (CallSystem("bin/script ports/harfbuzz/build.script targetName=" TARGET_NAME " toolchainPrefix=" TOOLCHAIN_PREFIX)) return false;
|
if (CallSystem("bin/script ports/harfbuzz/build.script targetName=" TARGET_NAME " toolchainPrefix=" TOOLCHAIN_PREFIX)) return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue