mirror of
https://github.com/yann64/haikuports.git
synced 2026-04-09 05:10:05 +02:00
Fix detection for freetype Since we pretend to be regular tk, rename the library names in the config files
226 lines
6.4 KiB
Plaintext
226 lines
6.4 KiB
Plaintext
From 0a9f983ba0dcb10cac6559810e0f8f70f30f26aa Mon Sep 17 00:00:00 2001
|
||
From: Augustin Cavalier <waddlesplash@gmail.com>
|
||
Date: Wed, 17 Nov 2021 17:42:17 -0500
|
||
Subject: Fixes for Haiku.
|
||
|
||
|
||
diff --git a/sdl/SdlTkX.c b/sdl/SdlTkX.c
|
||
index 4ac99ba..78f102d 100644
|
||
--- a/sdl/SdlTkX.c
|
||
+++ b/sdl/SdlTkX.c
|
||
@@ -106,7 +106,7 @@ struct EventThreadStartup {
|
||
int init_done;
|
||
int *root_width;
|
||
int *root_height;
|
||
-#ifdef __APPLE__
|
||
+#if defined(__APPLE__) || defined(__HAIKU__)
|
||
int want_startup_script;
|
||
char *startup_script;
|
||
#endif
|
||
@@ -128,7 +128,7 @@ static Tcl_Condition xlib_cond;
|
||
static Tcl_Condition time_cond;
|
||
static SDL_atomic_t timer_enabled;
|
||
static int num_displays = 0;
|
||
-#ifdef __APPLE__
|
||
+#if defined(__APPLE__) || defined(__HAIKU__)
|
||
struct EventThreadStartup evt_startup = { 0, NULL, NULL, 0, NULL };
|
||
#endif
|
||
|
||
@@ -155,6 +155,12 @@ static void SdlTkLostFocusWindow(void);
|
||
void
|
||
SdlTkLock(Display *display)
|
||
{
|
||
+#ifdef __HAIKU__
|
||
+ // We may get called before things are fully initialized.
|
||
+ while (!tclStubsPtr)
|
||
+ sched_yield();
|
||
+#endif
|
||
+
|
||
Tcl_MutexLock(&xlib_lock);
|
||
if (display != NULL) {
|
||
while ((xlib_grab != NULL) && (xlib_grab != display)) {
|
||
@@ -5752,6 +5758,15 @@ fatal:
|
||
}
|
||
#endif
|
||
|
||
+#ifdef __HAIKU__
|
||
+ // Set defaults so that things work better.
|
||
+ SdlTkX.arg_nogl = 1;
|
||
+ SdlTkX.arg_resizable = 1;
|
||
+ SdlTkX.arg_swcursor = 1;
|
||
+ width = 800;
|
||
+ height = 600;
|
||
+#endif
|
||
+
|
||
/* Preset some defaults. */
|
||
SdlTkX.dec_frame_width = 6;
|
||
SdlTkX.dec_title_height = 20;
|
||
@@ -5785,8 +5800,10 @@ fatal:
|
||
if (SdlTkX.arg_noborder) {
|
||
videoFlags |= SDL_WINDOW_BORDERLESS;
|
||
}
|
||
+#ifndef __HAIKU__
|
||
width = 1024;
|
||
height = 768;
|
||
+#endif
|
||
/*
|
||
* Start the root window hidden since font init
|
||
* may take some time. At end of font init in
|
||
@@ -6523,7 +6540,7 @@ ctxRetry:
|
||
*----------------------------------------------------------------------
|
||
*/
|
||
|
||
-#ifdef __APPLE__
|
||
+#if defined(__APPLE__) || defined(__HAIKU__)
|
||
void
|
||
SdlTkEventThread(void)
|
||
#else
|
||
@@ -6543,7 +6560,7 @@ EventThread(ClientData clientData)
|
||
Uint16 rate, Uint16 delay);
|
||
extern int SDL_SendKeyboardText(const char *text);
|
||
#endif
|
||
-#ifdef __APPLE__
|
||
+#if defined(__APPLE__) || defined(__HAIKU__)
|
||
struct EventThreadStartup *evs = &evt_startup;
|
||
#else
|
||
struct EventThreadStartup *evs = (struct EventThreadStartup *) clientData;
|
||
@@ -6554,13 +6571,13 @@ EventThread(ClientData clientData)
|
||
Android_JNI_SetupThread();
|
||
#endif
|
||
SdlTkLock(NULL);
|
||
-#ifdef __APPLE__
|
||
+#if defined(__APPLE__) || defined(__HAIKU__)
|
||
while (evs->root_width == NULL && evs->root_height == NULL) {
|
||
SdlTkWaitLock();
|
||
}
|
||
#endif
|
||
initSuccess = PerformSDLInit(evs->root_width, evs->root_height);
|
||
-#ifdef __APPLE__
|
||
+#if defined(__APPLE__) || defined(__HAIKU__)
|
||
evs->root_width = evs->root_height = NULL;
|
||
SDL_PumpEvents();
|
||
if (evs->want_startup_script) {
|
||
@@ -6774,7 +6791,7 @@ EventThread(ClientData clientData)
|
||
}
|
||
|
||
eventThreadEnd:
|
||
-#ifdef __APPLE__
|
||
+#if defined(__APPLE__) || defined(__HAIKU__)
|
||
exit(3);
|
||
#else
|
||
Tcl_ExitThread(0);
|
||
@@ -6782,7 +6799,7 @@ eventThreadEnd:
|
||
#endif
|
||
}
|
||
|
||
-#ifndef __APPLE__
|
||
+#if !defined(__APPLE__) && !defined(__HAIKU__)
|
||
static void
|
||
EventThreadExitHandler(ClientData clientData)
|
||
{
|
||
@@ -6802,7 +6819,7 @@ EventThreadExitHandler(ClientData clientData)
|
||
static void
|
||
OpenVeryFirstDisplay(int *root_width, int *root_height)
|
||
{
|
||
-#ifdef __APPLE__
|
||
+#if defined(__APPLE__) || defined(__HAIKU__)
|
||
struct EventThreadStartup *evs = &evt_startup;
|
||
#else
|
||
extern void TclCreateLateExitHandler(Tcl_ExitProc *, ClientData);
|
||
@@ -6812,7 +6829,7 @@ OpenVeryFirstDisplay(int *root_width, int *root_height)
|
||
evs->init_done = 0;
|
||
evs->root_width = root_width;
|
||
evs->root_height = root_height;
|
||
-#ifdef __APPLE__
|
||
+#if defined(__APPLE__) || defined(__HAIKU__)
|
||
/*
|
||
* Rendezvous with already running event thread, which
|
||
* in MacOSX must be the main thread.
|
||
diff --git a/sdl/tkAppInit.c b/sdl/tkAppInit.c
|
||
index e40eab2..e2ae821 100644
|
||
--- a/sdl/tkAppInit.c
|
||
+++ b/sdl/tkAppInit.c
|
||
@@ -68,7 +68,7 @@ MODULE_SCOPE int TK_LOCAL_MAIN_HOOK(int *argc, char ***argv);
|
||
#undef Tcl_ObjSetVar2
|
||
#undef Tcl_NewStringObj
|
||
|
||
-#ifdef __APPLE__
|
||
+#if defined(__APPLE__) || defined(__HAIKU__)
|
||
struct ThreadStartup {
|
||
int argc;
|
||
char **argv;
|
||
@@ -308,7 +308,7 @@ GetOBBDir(void)
|
||
}
|
||
#endif
|
||
|
||
-#ifdef __APPLE__
|
||
+#if defined(__APPLE__) || defined(__HAIKU__)
|
||
/*
|
||
*----------------------------------------------------------------------
|
||
*
|
||
@@ -356,7 +356,7 @@ main(
|
||
const char *path, *temp, *pcpath;
|
||
char *ldpath = NULL, *end;
|
||
#endif
|
||
-#ifdef __APPLE__
|
||
+#if defined(__APPLE__) || defined(__HAIKU__)
|
||
Tcl_ThreadId thrId;
|
||
struct ThreadStartup startup;
|
||
extern void SdlTkEventThread(void);
|
||
@@ -438,7 +438,7 @@ main(
|
||
free(ldpath);
|
||
ldpath = NULL;
|
||
}
|
||
- }
|
||
+ }
|
||
}
|
||
/* now enhance LD_LIBRARY_PATH and PATH */
|
||
if (ldpath != NULL) {
|
||
@@ -504,7 +504,7 @@ main(
|
||
#else
|
||
Tcl_FindExecutable(argv[0]);
|
||
#endif
|
||
-#ifdef __APPLE__
|
||
+#if defined(__APPLE__) || defined(__HAIKU__)
|
||
/*
|
||
* We need the SDL event handling run in the main thread,
|
||
* which seems to be a Cocoa requirement. Therefore Tk_MainEx()
|
||
--
|
||
2.36.1
|
||
|
||
|
||
From e52458cf0424ef1318143c41cc816101ff6678b7 Mon Sep 17 00:00:00 2001
|
||
From: begasus <begasus@gmail.com>
|
||
Date: Thu, 12 May 2022 14:20:59 +0200
|
||
Subject: tk fails to find freetype's header ft2build.h
|
||
|
||
Haikuports version for freetype doesn't provide freetype-config
|
||
Change order to check with pkg-config prior to check with freetype-config
|
||
|
||
diff --git a/sdl/configure b/sdl/configure
|
||
old mode 100755
|
||
new mode 100644
|
||
index 691c0cd..889c7f0
|
||
--- a/sdl/configure
|
||
+++ b/sdl/configure
|
||
@@ -10060,12 +10060,12 @@ fi
|
||
{ $as_echo "$as_me:$LINENO: checking for freetype" >&5
|
||
$as_echo_n "checking for freetype... " >&6; }
|
||
found_ft=yes
|
||
-FT_CFLAGS=`freetype-config --cflags 2>/dev/null` || found_ft="no"
|
||
-FT_LIBS=`freetype-config --libs 2>/dev/null` || found_ft="no"
|
||
+FT_CFLAGS=`pkg-config --cflags freetype2 2>/dev/null` || found_ft="no"
|
||
+FT_LIBS=`pkg-config --libs freetype2 2>/dev/null` || found_ft="no"
|
||
if test "$found_xft" = "no" ; then
|
||
found_ft=yes
|
||
- FT_CFLAGS=`pkg-config --cflags freetype2 2>/dev/null` || found_ft="no"
|
||
- FT_LIBS=`pkg-config --libs freetype2 2>/dev/null` || found_ft="no"
|
||
+ FT_CFLAGS=`freetype-config --cflags 2>/dev/null` || found_ft="no"
|
||
+ FT_LIBS=`freetype-config --libs 2>/dev/null` || found_ft="no"
|
||
fi
|
||
{ $as_echo "$as_me:$LINENO: result: $found_ft" >&5
|
||
$as_echo "$found_ft" >&6; }
|
||
--
|
||
2.36.1
|
||
|