premake projects now enable text shaping by default.

This commit is contained in:
Martín Lucas Golini
2026-01-08 19:23:22 -03:00
parent 056c9e022c
commit caebfc4d81
17 changed files with 30 additions and 30 deletions

View File

@@ -2,7 +2,7 @@
"ecode-linux": {
"build": [
{
"args": "--disable-static-build --with-text-shaper gmake",
"args": "--disable-static-build gmake",
"command": "premake4",
"working_dir": "${project_root}"
},
@@ -172,7 +172,7 @@
"eepp-linux": {
"build": [
{
"args": "--disable-static-build --with-text-shaper --with-mold-linker --with-debug-symbols --address-sanitizer gmake",
"args": "--disable-static-build --with-mold-linker --with-debug-symbols --address-sanitizer gmake",
"command": "premake4",
"working_dir": "${project_root}"
},
@@ -337,7 +337,7 @@
"eepp-linux-cmake": {
"build": [
{
"args": "--disable-static-build --with-text-shaper cmake",
"args": "--disable-static-build cmake",
"command": "premake5",
"working_dir": "${project_root}"
},
@@ -423,7 +423,7 @@
"eepp-linux-ninja": {
"build": [
{
"args": "--disable-static-build --with-text-shaper --with-debug-symbols ninja",
"args": "--disable-static-build --with-debug-symbols ninja",
"command": "premake5",
"working_dir": "${project_root}"
},

View File

@@ -24,7 +24,7 @@ jobs:
tar xvzf premake-5.0.0-beta6-linux.tar.gz
- name: Build
run: |
./premake5 --with-text-shaper --disable-static-build gmake
./premake5 --disable-static-build gmake
cd make/linux
make all -j$(nproc) -e config=release_x86_64
- name: Unit Tests

View File

@@ -19,7 +19,7 @@ jobs:
brew install wget SDL2 premake
- name: Build
run: |
premake5 --with-text-shaper --disable-static-build gmake
premake5 --disable-static-build gmake
make -C make/macosx/ -e config=release_arm64
- name: Unit Tests
run: |

View File

@@ -28,7 +28,7 @@ jobs:
- name: Create project
shell: powershell
run: |
./premake5.exe --windows-vc-build --with-text-shaper --disable-static-build vs2022
./premake5.exe --windows-vc-build --disable-static-build vs2022
- name: Build
shell: cmd
run: |

View File

@@ -394,7 +394,7 @@ Restart ecode to see the changes.</string>
<string name="go_to_line_in_current_document">Go To Line in Current Document</string>
<string name="gone">gone</string>
<string name="group">Group</string>
<string name="h_as_cpp">Treat .h files as C++ code.</string>
<string name="treat_h_files_as_ellipsis">Treat .h files as C++ code.</string>
<string name="help">Help</string>
<string name="hide">Hide</string>
<string name="hide_tabbar_on_single_tab">Hide tabbar on single tab</string>

View File

@@ -166,7 +166,7 @@ newoption { trigger = "thread-sanitizer", description ="Compile with ThreadSanit
newoption { trigger = "address-sanitizer", description = "Compile with AddressSanitizer." }
newoption { trigger = "time-trace", description = "Compile with time trace." }
newoption { trigger = "disable-static-build", description = "Disables eepp static build project, this is just a helper to avoid rebuilding twice eepp while developing the library." }
newoption { trigger = "with-text-shaper", description = "Enables text-shaping capabilities by relying on harfbuzz." }
newoption { trigger = "without-text-shaper", description = "Disables text-shaping capabilities." }
newoption {
trigger = "with-backend",
description = "Select the backend to use for window and input handling.\n\t\t\tIf no backend is selected or if the selected is not installed the script will search for a backend present in the system, and will use it.",
@@ -588,7 +588,7 @@ function build_link_configuration( package_name, use_ee_icon )
end
end
if _OPTIONS["with-text-shaper"] then
if not _OPTIONS["without-text-shaper"] then
defines { "EE_TEXT_SHAPER_ENABLED" }
end
@@ -746,7 +746,7 @@ function add_static_links()
links { "freetype-static" }
end
if _OPTIONS["with-text-shaper"] then
if not _OPTIONS["without-text-shaper"] then
links { "harfbuzz-static", "SheenBidi-static" }
includedirs { "src/thirdparty/SheenBidi/Headers" }
defines { "EE_TEXT_SHAPER_ENABLED" }
@@ -1259,7 +1259,7 @@ solution "eepp"
includedirs { "src/thirdparty/oniguruma" }
build_base_configuration( "oniguruma" )
if _OPTIONS["with-text-shaper"] then
if not _OPTIONS["without-text-shaper"] then
project "harfbuzz-static"
kind "StaticLib"
language "C++"

View File

@@ -18,7 +18,7 @@ newoption { trigger = "thread-sanitizer", description = "Compile with ThreadSani
newoption { trigger = "address-sanitizer", description = "Compile with AddressSanitizer." }
newoption { trigger = "time-trace", description = "Compile with time tracing." }
newoption { trigger = "disable-static-build", description = "Disables eepp static build project, this is just a helper to avoid rebuilding twice eepp while developing the library." }
newoption { trigger = "with-text-shaper", description = "Enables text-shaping capabilities by relying on harfbuzz." }
newoption { trigger = "without-text-shaper", description = "Disables text-shaping capabilities." }
newoption {
trigger = "with-backend",
description = "Select the backend to use for window and input handling.\n\t\t\tIf no backend is selected or if the selected is not installed the script will search for a backend present in the system, and will use it.",
@@ -386,7 +386,7 @@ function build_link_configuration( package_name, use_ee_icon )
end
end
if _OPTIONS["with-text-shaper"] then
if not _OPTIONS["without-text-shaper"] then
defines { "EE_TEXT_SHAPER_ENABLED" }
end
@@ -581,7 +581,7 @@ function add_static_links()
links { "freetype-static" }
end
if _OPTIONS["with-text-shaper"] then
if not _OPTIONS["without-text-shaper"] then
links { "harfbuzz-static", "SheenBidi-static" }
includedirs { "src/thirdparty/SheenBidi/Headers" }
defines { "EE_TEXT_SHAPER_ENABLED" }
@@ -1150,7 +1150,7 @@ workspace "eepp"
incdirs { "src/thirdparty/oniguruma" }
build_base_configuration( "oniguruma" )
if _OPTIONS["with-text-shaper"] then
if not _OPTIONS["without-text-shaper"] then
project "harfbuzz-static"
kind "StaticLib"
language "C++"

View File

@@ -34,11 +34,11 @@ done
CONFIG_NAME=
if command -v premake5 &> /dev/null
then
premake5 --with-text-shaper gmake || exit
premake5 gmake || exit
CONFIG_NAME=release_x86_64
elif command -v premake4 &> /dev/null
then
premake4 --with-text-shaper gmake || exit
premake4 gmake || exit
CONFIG_NAME=release
else
echo "Neither premake5 nor premake4 is available. Please install one."

View File

@@ -3,7 +3,7 @@ CANONPATH=$(readlink -f "$0")
DIRPATH="$(dirname "$CANONPATH")"
cd "$DIRPATH" || exit
cd ../../../ || exit
premake5 --with-text-shaper gmake
premake5 gmake
cd make/haiku || exit
make -j"$(nproc)" config=release_x86_64 ecode
cd "$DIRPATH" || exit

View File

@@ -43,11 +43,11 @@ fi
CONFIG_NAME=
if command -v premake4 &> /dev/null
then
premake4 $DEBUG_SYMBOLS --with-text-shaper $STATIC_CPP gmake || exit
premake4 $DEBUG_SYMBOLS $STATIC_CPP gmake || exit
CONFIG_NAME=release
elif command -v premake5 &> /dev/null
then
premake5 $DEBUG_SYMBOLS --with-text-shaper $STATIC_CPP gmake || exit
premake5 $DEBUG_SYMBOLS $STATIC_CPP gmake || exit
CONFIG_NAME=release_"$ARCH"
else
echo "Neither premake5 nor premake4 is available. Please install one."

View File

@@ -22,7 +22,7 @@ done
RESOURCES_PATH="ecode.app/Contents/Resources"
premake5 --file=../../../premake5.lua --disable-static-build --with-text-shaper --use-frameworks gmake || exit
premake5 --file=../../../premake5.lua --disable-static-build --use-frameworks gmake || exit
make -C ../../../make/macosx/ -j$(sysctl -n hw.ncpu) -e verbose=true -e config=release_x86_64 ecode || exit

View File

@@ -4,10 +4,10 @@ cd $(dirname "$0")
USE_ARCH=
if command -v premake4 &> /dev/null
then
premake4 --file=../../premake4.lua --use-frameworks --disable-static-build --with-text-shaper gmake
premake4 --file=../../premake4.lua --use-frameworks --disable-static-build gmake
elif command -v premake5 &> /dev/null
then
premake5 --file=../../premake5.lua --use-frameworks --disable-static-build --with-text-shaper gmake
premake5 --file=../../premake5.lua --use-frameworks --disable-static-build gmake
USE_ARCH=arm64/
else
echo "Neither premake5 nor premake4 is available. Please install one."

View File

@@ -4,10 +4,10 @@ cd $(dirname "$0")
USE_ARCH=
if command -v premake4 &> /dev/null
then
premake4 --file=../../premake4.lua --disable-static-build --with-text-shaper gmake
premake4 --file=../../premake4.lua --disable-static-build gmake
elif command -v premake5 &> /dev/null
then
premake5 --file=../../premake5.lua --disable-static-build --with-text-shaper gmake
premake5 --file=../../premake5.lua --disable-static-build gmake
USE_ARCH=arm64
else
echo "Neither premake5 nor premake4 is available. Please install one."

View File

@@ -52,7 +52,7 @@ elif [[ "$CONFIG" == *"arm64"* && "$(uname -m)" == "x86_64" ]]; then
fi
fi
PREMAKE5_ARGS="--file=../../premake5.lua --os=windows --cc=mingw --windows-mingw-build --with-text-shaper $PREMAKE5_ARCH gmake"
PREMAKE5_ARGS="--file=../../premake5.lua --os=windows --cc=mingw --windows-mingw-build $PREMAKE5_ARCH gmake"
if command -v premake5 &> /dev/null
then

View File

@@ -20,7 +20,7 @@ $archSuffix = if ($isArm64) { "arm64" } else { "x86_64" }
$premakeExtra = if ($isArm64) { "--arch=arm64" } else { "" }
$msbuildPlat = if ($isArm64) { "ARM64" } else { "x64" }
& $premakeCmd --windows-vc-build --with-text-shaper $(if ($premakeExtra) { $premakeExtra }) --disable-static-build vs2022
& $premakeCmd --windows-vc-build $(if ($premakeExtra) { $premakeExtra }) --disable-static-build vs2022
& "$env:MSBUILD_PATH/MSBuild.exe" .\make\windows\eepp.sln -m /t:ecode /p:Platform=$msbuildPlat /p:Configuration=release
.\projects\scripts\copy_ecode_assets.ps1 .\bin .\projects\windows\ecode\ecode

View File

@@ -1601,7 +1601,7 @@ bool FontTrueType::isIdentifiedAsMonospace() const {
}
bool FontTrueType::isScalable() const {
return FT_IS_SCALABLE( static_cast<FT_Face>( mFace ) );
return mFace ? FT_IS_SCALABLE( static_cast<FT_Face>( mFace ) ) : false;
}
bool FontTrueType::isEmojiFont() const {

View File

@@ -836,7 +836,7 @@ std::string Sys::getConfigPath( const std::string& appname ) {
}
std::string Sys::getTempPath() {
char path[EE_MAX_CFG_PATH_LEN];
char path[EE_MAX_CFG_PATH_LEN + 1];
#if EE_PLATFORM == EE_PLATFORM_WIN
DWORD dwRetVal = GetTempPathA( EE_MAX_CFG_PATH_LEN, path );