diff --git a/configure b/configure index 80348f32bbe..9b2f2c2fb66 100755 --- a/configure +++ b/configure @@ -11419,7 +11419,21 @@ test "$cross_compiling" = yes || FREETYPE_LIBS=${FREETYPE_LIBS:-`(freetype-confi FREETYPE_LIBS=${FREETYPE_LIBS:-"-lfreetype"} ac_save_CPPFLAGS=$CPPFLAGS CPPFLAGS="$CPPFLAGS $FREETYPE_CFLAGS" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -lfreetype" >&5 +for ac_header in ft2build.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "ft2build.h" "ac_cv_header_ft2build_h" "$ac_includes_default" +if test "x$ac_cv_header_ft2build_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_FT2BUILD_H 1 +_ACEOF + +fi + +done + + if test "$ac_cv_header_ft2build_h" = "yes" + then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -lfreetype" >&5 $as_echo_n "checking for -lfreetype... " >&6; } if ${ac_cv_lib_soname_freetype+:} false; then : $as_echo_n "(cached) " >&6 @@ -11461,7 +11475,7 @@ fi if test "x$ac_cv_lib_soname_freetype" = "x"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 $as_echo "not found" >&6; } - ft_lib=no + FREETYPE_LIBS="" else { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_soname_freetype" >&5 $as_echo "$ac_cv_lib_soname_freetype" >&6; } @@ -11470,51 +11484,11 @@ cat >>confdefs.h <<_ACEOF #define SONAME_LIBFREETYPE "$ac_cv_lib_soname_freetype" _ACEOF - ft_lib=yes -fi - if test "$ft_lib" = "yes" - then - for ac_header in ft2build.h \ - freetype/freetype.h \ - freetype/ftglyph.h \ - freetype/fttypes.h \ - freetype/tttables.h \ - freetype/ftsnames.h \ - freetype/ttnameid.h \ - freetype/ftoutln.h \ - freetype/ftwinfnt.h \ - freetype/ftmodapi.h \ - freetype/ftlcdfil.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "#ifdef HAVE_FT2BUILD_H -# include -#endif -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF -fi +$as_echo "#define HAVE_FREETYPE 1" >>confdefs.h -done - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -$as_echo "#define HAVE_FREETYPE_FTTRIGON_H 1" >>confdefs.h - - wine_cv_fttrigon=yes -else - wine_cv_fttrigon=no -fi -rm -f conftest.err conftest.i conftest.$ac_ext - ac_fn_c_check_type "$LINENO" "FT_TrueTypeEngineType" "ac_cv_type_FT_TrueTypeEngineType" "#include + ac_fn_c_check_type "$LINENO" "FT_TrueTypeEngineType" "ac_cv_type_FT_TrueTypeEngineType" "#include +#include FT_MODULE_H " if test "x$ac_cv_type_FT_TrueTypeEngineType" = xyes; then : @@ -11525,15 +11499,9 @@ _ACEOF fi - if test "$ac_cv_header_freetype_freetype_h" = "yes" -a "$wine_cv_fttrigon" = "yes" - then - -$as_echo "#define HAVE_FREETYPE 1" >>confdefs.h - - else - FREETYPE_LIBS="" - fi +fi else + FREETYPE_CFLAGS="" FREETYPE_LIBS="" fi CPPFLAGS=$ac_save_CPPFLAGS @@ -11541,14 +11509,14 @@ test -z "$FREETYPE_CFLAGS" || FREETYPE_CFLAGS=`echo " $FREETYPE_CFLAGS" | sed 's test -z "$FREETYPE_LIBS" || FREETYPE_LIBS=`echo " $FREETYPE_LIBS" | sed 's/ -L\([^/]\)/ -L\$(top_builddir)\/\1/g'` fi -if test "x$ac_cv_header_freetype_freetype_h" != xyes -o "x$wine_cv_fttrigon" != xyes; then : +if test "x$ac_cv_lib_soname_freetype" = x; then : case "x$with_freetype" in xno) ;; *) as_fn_error $? "FreeType ${notice_platform}development files not found. Fonts will not be built. Use the --without-freetype option if you really want this." "$LINENO" 5 ;; esac fi -test "x$ac_cv_header_freetype_freetype_h" = xyes -a "x$wine_cv_fttrigon" = xyes || enable_fonts=${enable_fonts:-no} +test "x$ac_cv_lib_soname_freetype" = x && enable_fonts=${enable_fonts:-no} { $as_echo "$as_me:${as_lineno-$LINENO}: checking for parport header/ppdev.h" >&5 $as_echo_n "checking for parport header/ppdev.h... " >&6; } diff --git a/configure.ac b/configure.ac index 81b7027cd40..c4021b4b36d 100644 --- a/configure.ac +++ b/configure.ac @@ -1463,42 +1463,22 @@ then WINE_PACKAGE_FLAGS(FREETYPE,[freetype2],[-lfreetype], [`(freetype-config --cflags || freetype2-config --cflags) 2>/dev/null`], [`(freetype-config --libs || freetype2-config --libs) 2>/dev/null`], - [WINE_CHECK_SONAME(freetype,FT_Init_FreeType,[ft_lib=yes],[ft_lib=no],[$FREETYPE_LIBS]) - if test "$ft_lib" = "yes" + [AC_CHECK_HEADERS([ft2build.h]) + if test "$ac_cv_header_ft2build_h" = "yes" then - AC_CHECK_HEADERS(ft2build.h \ - freetype/freetype.h \ - freetype/ftglyph.h \ - freetype/fttypes.h \ - freetype/tttables.h \ - freetype/ftsnames.h \ - freetype/ttnameid.h \ - freetype/ftoutln.h \ - freetype/ftwinfnt.h \ - freetype/ftmodapi.h \ - freetype/ftlcdfil.h,,, - [#ifdef HAVE_FT2BUILD_H -# include -#endif]) - AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include -#include ]])],[AC_DEFINE(HAVE_FREETYPE_FTTRIGON_H, 1, - [Define if you have the header file.]) - wine_cv_fttrigon=yes],[wine_cv_fttrigon=no]) - AC_CHECK_TYPES(FT_TrueTypeEngineType,,,[#include ]) - dnl Check that we have at least freetype/freetype.h - if test "$ac_cv_header_freetype_freetype_h" = "yes" -a "$wine_cv_fttrigon" = "yes" - then - AC_DEFINE(HAVE_FREETYPE, 1, [Define if FreeType 2 is installed]) - else - FREETYPE_LIBS="" - fi + WINE_CHECK_SONAME(freetype,FT_Init_FreeType, + [AC_DEFINE(HAVE_FREETYPE, 1, [Define if FreeType 2 is installed]) + AC_CHECK_TYPES(FT_TrueTypeEngineType,,,[#include +#include FT_MODULE_H])], + [FREETYPE_LIBS=""],[$FREETYPE_LIBS]) else + FREETYPE_CFLAGS="" FREETYPE_LIBS="" fi]) fi -WINE_ERROR_WITH(freetype,[test "x$ac_cv_header_freetype_freetype_h" != xyes -o "x$wine_cv_fttrigon" != xyes], +WINE_ERROR_WITH(freetype,[test "x$ac_cv_lib_soname_freetype" = x], [FreeType ${notice_platform}development files not found. Fonts will not be built.]) -test "x$ac_cv_header_freetype_freetype_h" = xyes -a "x$wine_cv_fttrigon" = xyes || enable_fonts=${enable_fonts:-no} +test "x$ac_cv_lib_soname_freetype" = x && enable_fonts=${enable_fonts:-no} dnl **** Check for parport (currently Linux only) **** AC_CACHE_CHECK([for parport header/ppdev.h], ac_cv_c_ppdev, diff --git a/dlls/gdi32/freetype.c b/dlls/gdi32/freetype.c index fb4f2afdaec..e230299e3f9 100644 --- a/dlls/gdi32/freetype.c +++ b/dlls/gdi32/freetype.c @@ -77,6 +77,23 @@ #undef SetRectRgn #endif /* HAVE_CARBON_CARBON_H */ +#ifdef HAVE_FT2BUILD_H +#include +#include FT_FREETYPE_H +#include FT_GLYPH_H +#include FT_TYPES_H +#include FT_TRUETYPE_TABLES_H +#include FT_SFNT_NAMES_H +#include FT_TRUETYPE_IDS_H +#include FT_OUTLINE_H +#include FT_TRIGONOMETRY_H +#include FT_MODULE_H +#include FT_WINFONTS_H +#ifdef FT_LCD_FILTER_H +#include FT_LCD_FILTER_H +#endif +#endif /* HAVE_FT2BUILD_H */ + #include "windef.h" #include "winbase.h" #include "winternl.h" @@ -95,43 +112,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(font); #ifdef HAVE_FREETYPE -#ifdef HAVE_FT2BUILD_H -#include -#endif -#ifdef HAVE_FREETYPE_FREETYPE_H -#include -#endif -#ifdef HAVE_FREETYPE_FTGLYPH_H -#include -#endif -#ifdef HAVE_FREETYPE_TTTABLES_H -#include -#endif -#ifdef HAVE_FREETYPE_FTTYPES_H -#include -#endif -#ifdef HAVE_FREETYPE_FTSNAMES_H -#include -#endif -#ifdef HAVE_FREETYPE_TTNAMEID_H -#include -#endif -#ifdef HAVE_FREETYPE_FTOUTLN_H -#include -#endif -#ifdef HAVE_FREETYPE_FTTRIGON_H -#include -#endif -#ifdef HAVE_FREETYPE_FTWINFNT_H -#include -#endif -#ifdef HAVE_FREETYPE_FTMODAPI_H -#include -#endif -#ifdef HAVE_FREETYPE_FTLCDFIL_H -#include -#endif - #ifndef HAVE_FT_TRUETYPEENGINETYPE typedef enum { @@ -186,7 +166,7 @@ MAKE_FUNCPTR(FT_Vector_Transform); MAKE_FUNCPTR(FT_Vector_Unit); static FT_Error (*pFT_Outline_Embolden)(FT_Outline *, FT_Pos); static FT_TrueTypeEngineType (*pFT_Get_TrueType_Engine_Type)(FT_Library); -#ifdef HAVE_FREETYPE_FTLCDFIL_H +#ifdef FT_LCD_FILTER_H static FT_Error (*pFT_Library_SetLcdFilter)(FT_Library, FT_LcdFilter); #endif @@ -924,7 +904,7 @@ static BOOL is_hinting_enabled(void) static BOOL is_subpixel_rendering_enabled( void ) { -#ifdef HAVE_FREETYPE_FTLCDFIL_H +#ifdef FT_LCD_FILTER_H static int enabled = -1; if (enabled == -1) { @@ -3918,7 +3898,7 @@ static BOOL init_freetype(void) /* Don't warn if these ones are missing */ pFT_Outline_Embolden = wine_dlsym(ft_handle, "FT_Outline_Embolden", NULL, 0); pFT_Get_TrueType_Engine_Type = wine_dlsym(ft_handle, "FT_Get_TrueType_Engine_Type", NULL, 0); -#ifdef HAVE_FREETYPE_FTLCDFIL_H +#ifdef FT_LCD_FILTER_H pFT_Library_SetLcdFilter = wine_dlsym(ft_handle, "FT_Library_SetLcdFilter", NULL, 0); #endif @@ -6706,7 +6686,7 @@ static DWORD get_glyph_outline(GdiFont *incoming_font, UINT glyph, UINT format, case WINE_GGO_HBGR_BITMAP: case WINE_GGO_VRGB_BITMAP: case WINE_GGO_VBGR_BITMAP: -#ifdef HAVE_FREETYPE_FTLCDFIL_H +#ifdef FT_LCD_FILTER_H { switch (ft_face->glyph->format) { diff --git a/include/config.h.in b/include/config.h.in index a14db5b33fc..79f8b45085c 100644 --- a/include/config.h.in +++ b/include/config.h.in @@ -132,39 +132,6 @@ /* Define if FreeType 2 is installed */ #undef HAVE_FREETYPE -/* Define to 1 if you have the header file. */ -#undef HAVE_FREETYPE_FREETYPE_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_FREETYPE_FTGLYPH_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_FREETYPE_FTLCDFIL_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_FREETYPE_FTMODAPI_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_FREETYPE_FTOUTLN_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_FREETYPE_FTSNAMES_H - -/* Define if you have the header file. */ -#undef HAVE_FREETYPE_FTTRIGON_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_FREETYPE_FTTYPES_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_FREETYPE_FTWINFNT_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_FREETYPE_TTNAMEID_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_FREETYPE_TTTABLES_H - /* Define to 1 if the system has the type `fsblkcnt_t'. */ #undef HAVE_FSBLKCNT_T