[build] Really fix multi and C++ builds.
The following builds were still failing due to previous changes: make multi make multi CC="c++" make CC="c++" This patch fixes the issues, which were missing includes to get the right macro definitions in multi-build mode. Also, `FT_UNUSED' is actually used by third-party code, so move it back to `public-macros.h' to avoid breaking it. * include/freetype/config/public-macros.h (FT_EXPORT): Remove special definition for C++. (FT_UNUSED): Define here instead of... * include/freetype/config/compiler-macros.h: ... here. (FT_FUNCTION_DECLARATION): Remove special definition for C++. (FT_LOCAL_ARRAY_DEF): Fix definition. * src/cache/ftccback.h, src/lzw/ftzopen.h, src/gxvalid/gxvmort.h, src/gxvalid/gxvmorx.h: Add `FT_BEGIN_HEADER' and `FT_END_HEADER'.
This commit is contained in:
parent
cb4a943bc4
commit
0f35b042e0
26
ChangeLog
26
ChangeLog
|
@ -1,3 +1,29 @@
|
||||||
|
2020-07-07 David Turner <david@freetype.org>
|
||||||
|
|
||||||
|
[build] Really fix multi and C++ builds.
|
||||||
|
|
||||||
|
The following builds were still failing due to previous changes:
|
||||||
|
|
||||||
|
make multi
|
||||||
|
make multi CC="c++"
|
||||||
|
make CC="c++"
|
||||||
|
|
||||||
|
This patch fixes the issues, which were missing includes to get the
|
||||||
|
right macro definitions in multi-build mode.
|
||||||
|
|
||||||
|
Also, `FT_UNUSED' is actually used by third-party code, so move it
|
||||||
|
back to `public-macros.h' to avoid breaking it.
|
||||||
|
|
||||||
|
* include/freetype/config/public-macros.h (FT_EXPORT): Remove
|
||||||
|
special definition for C++.
|
||||||
|
(FT_UNUSED): Define here instead of...
|
||||||
|
* include/freetype/config/compiler-macros.h: ... here.
|
||||||
|
(FT_FUNCTION_DECLARATION): Remove special definition for C++.
|
||||||
|
(FT_LOCAL_ARRAY_DEF): Fix definition.
|
||||||
|
|
||||||
|
* src/cache/ftccback.h, src/lzw/ftzopen.h, src/gxvalid/gxvmort.h,
|
||||||
|
src/gxvalid/gxvmorx.h: Add `FT_BEGIN_HEADER' and `FT_END_HEADER'.
|
||||||
|
|
||||||
2020-07-06 David Turner <david@freetype.org>
|
2020-07-06 David Turner <david@freetype.org>
|
||||||
|
|
||||||
[build] Fix multi and C++ builds.
|
[build] Fix multi and C++ builds.
|
||||||
|
|
|
@ -78,13 +78,23 @@ FT_BEGIN_HEADER
|
||||||
*
|
*
|
||||||
* FT_EXPORT( FT_Bool ) FT_Object_Method( FT_Object obj, ... );
|
* FT_EXPORT( FT_Bool ) FT_Object_Method( FT_Object obj, ... );
|
||||||
*
|
*
|
||||||
|
* NOTE: This requires that all FT_EXPORT() uses are inside FT_BEGIN_HEADER ..
|
||||||
|
* FT_END_HEADER blocks. This guarantees that the functions are exported with
|
||||||
|
* C linkage, even when the header is included by a C++ source file.
|
||||||
*/
|
*/
|
||||||
#ifdef __cplusplus
|
|
||||||
#define FT_EXPORT( x ) FT_PUBLIC_FUNCTION_ATTRIBUTE extern "C" x
|
|
||||||
#else
|
|
||||||
#define FT_EXPORT( x ) FT_PUBLIC_FUNCTION_ATTRIBUTE extern x
|
#define FT_EXPORT( x ) FT_PUBLIC_FUNCTION_ATTRIBUTE extern x
|
||||||
|
|
||||||
|
/* `FT_UNUSED` indicates that a given parameter is not used -- */
|
||||||
|
/* this is only used to get rid of unpleasant compiler warnings. */
|
||||||
|
/* */
|
||||||
|
/* Technically, this was not meant to be part of the public API, */
|
||||||
|
/* but some third-party code depends on it. */
|
||||||
|
/* */
|
||||||
|
#ifndef FT_UNUSED
|
||||||
|
#define FT_UNUSED( arg ) ( (arg) = (arg) )
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
FT_END_HEADER
|
FT_END_HEADER
|
||||||
|
|
||||||
#endif /* FREETYPE_CONFIG_PUBLIC_MACROS_H_ */
|
#endif /* FREETYPE_CONFIG_PUBLIC_MACROS_H_ */
|
||||||
|
|
|
@ -27,12 +27,6 @@ FT_BEGIN_HEADER
|
||||||
# if defined( _COMPILER_VERSION ) && ( _COMPILER_VERSION >= 730 )
|
# if defined( _COMPILER_VERSION ) && ( _COMPILER_VERSION >= 730 )
|
||||||
# pragma set woff 3505
|
# pragma set woff 3505
|
||||||
# endif
|
# endif
|
||||||
#endif
|
|
||||||
|
|
||||||
/* `FT_UNUSED` indicates that a given parameter is not used -- */
|
|
||||||
/* this is only used to get rid of unpleasant compiler warnings. */
|
|
||||||
#ifndef FT_UNUSED
|
|
||||||
#define FT_UNUSED( arg ) ( (arg) = (arg) )
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Fix compiler warning with sgi compiler. */
|
/* Fix compiler warning with sgi compiler. */
|
||||||
|
@ -126,18 +120,13 @@ FT_BEGIN_HEADER
|
||||||
*
|
*
|
||||||
* FT_FUNCTION_DECLARATION(int) foo(int x);
|
* FT_FUNCTION_DECLARATION(int) foo(int x);
|
||||||
*
|
*
|
||||||
* NOTE: Technically, all FreeType headers put their function declarations
|
* NOTE: This requires that all uses are inside FT_BEGIN_HEADER..FT_END_HEADER
|
||||||
* inside an extern "C" block, giving them C linkage. This means that using
|
* blocks. Which guarantees that the declarations have C linkage when the
|
||||||
* this macro is only necessary within internal source files, but using it in
|
* headers are included by C++ sources.
|
||||||
* a header will be harmless.
|
|
||||||
*
|
*
|
||||||
* NOTE: Do not use directly, use FT_LOCAL()/FT_BASE()/FT_EXPORT() instead.
|
* NOTE: Do not use directly, use FT_LOCAL()/FT_BASE()/FT_EXPORT() instead.
|
||||||
*/
|
*/
|
||||||
#ifdef __cplusplus
|
|
||||||
#define FT_FUNCTION_DECLARATION( x ) extern "C" x
|
|
||||||
#else
|
|
||||||
#define FT_FUNCTION_DECLARATION( x ) extern x
|
#define FT_FUNCTION_DECLARATION( x ) extern x
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Same as FT_FUNCTION_DECLARATION(), but for function definitions instead.
|
/* Same as FT_FUNCTION_DECLARATION(), but for function definitions instead.
|
||||||
* NOTE: Do not use directly, use FT_LOCAL_DEF()/FT_BASE_DEF()/FT_EXPORT_DEF()
|
* NOTE: Do not use directly, use FT_LOCAL_DEF()/FT_BASE_DEF()/FT_EXPORT_DEF()
|
||||||
|
@ -171,7 +160,7 @@ FT_BEGIN_HEADER
|
||||||
* sub-directory, but are otherwise internal to the library.
|
* sub-directory, but are otherwise internal to the library.
|
||||||
*/
|
*/
|
||||||
#define FT_LOCAL_ARRAY( x ) FT_INTERNAL_FUNCTION_ATTRIBUTE extern const x
|
#define FT_LOCAL_ARRAY( x ) FT_INTERNAL_FUNCTION_ATTRIBUTE extern const x
|
||||||
#define FT_LOCAL_ARRAY_DEF( x ) const x
|
#define FT_LOCAL_ARRAY_DEF( x ) FT_FUNCTION_DEFINITION( const x )
|
||||||
|
|
||||||
/* Use FT_BASE()/FT_BASE_DEF() to declare or define an internal library
|
/* Use FT_BASE()/FT_BASE_DEF() to declare or define an internal library
|
||||||
* function that are used by more than one single module.
|
* function that are used by more than one single module.
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
#include "ftcglyph.h"
|
#include "ftcglyph.h"
|
||||||
#include "ftcsbits.h"
|
#include "ftcsbits.h"
|
||||||
|
|
||||||
|
FT_BEGIN_HEADER
|
||||||
|
|
||||||
FT_LOCAL( void )
|
FT_LOCAL( void )
|
||||||
ftc_inode_free( FTC_Node inode,
|
ftc_inode_free( FTC_Node inode,
|
||||||
|
@ -84,6 +85,7 @@
|
||||||
ftc_node_destroy( FTC_Node node,
|
ftc_node_destroy( FTC_Node node,
|
||||||
FTC_Manager manager );
|
FTC_Manager manager );
|
||||||
|
|
||||||
|
FT_END_HEADER
|
||||||
|
|
||||||
#endif /* FTCCBACK_H_ */
|
#endif /* FTCCBACK_H_ */
|
||||||
|
|
||||||
|
|
|
@ -34,6 +34,9 @@
|
||||||
#include <freetype/ftsnames.h>
|
#include <freetype/ftsnames.h>
|
||||||
|
|
||||||
|
|
||||||
|
FT_BEGIN_HEADER
|
||||||
|
|
||||||
|
|
||||||
typedef struct GXV_mort_featureRec_
|
typedef struct GXV_mort_featureRec_
|
||||||
{
|
{
|
||||||
FT_UShort featureType;
|
FT_UShort featureType;
|
||||||
|
@ -88,6 +91,8 @@
|
||||||
GXV_Validator gxvalid );
|
GXV_Validator gxvalid );
|
||||||
|
|
||||||
|
|
||||||
|
FT_END_HEADER
|
||||||
|
|
||||||
#endif /* GXVMORT_H_ */
|
#endif /* GXVMORT_H_ */
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -36,6 +36,9 @@
|
||||||
#include <freetype/ftsnames.h>
|
#include <freetype/ftsnames.h>
|
||||||
|
|
||||||
|
|
||||||
|
FT_BEGIN_HEADER
|
||||||
|
|
||||||
|
|
||||||
FT_LOCAL( void )
|
FT_LOCAL( void )
|
||||||
gxv_morx_subtable_type0_validate( FT_Bytes table,
|
gxv_morx_subtable_type0_validate( FT_Bytes table,
|
||||||
FT_Bytes limit,
|
FT_Bytes limit,
|
||||||
|
@ -62,6 +65,8 @@
|
||||||
GXV_Validator gxvalid );
|
GXV_Validator gxvalid );
|
||||||
|
|
||||||
|
|
||||||
|
FT_END_HEADER
|
||||||
|
|
||||||
#endif /* GXVMORX_H_ */
|
#endif /* GXVMORX_H_ */
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
|
|
||||||
#include <freetype/freetype.h>
|
#include <freetype/freetype.h>
|
||||||
|
|
||||||
|
FT_BEGIN_HEADER
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This is a complete re-implementation of the LZW file reader,
|
* This is a complete re-implementation of the LZW file reader,
|
||||||
|
@ -165,6 +166,8 @@
|
||||||
|
|
||||||
/* */
|
/* */
|
||||||
|
|
||||||
|
FT_END_HEADER
|
||||||
|
|
||||||
#endif /* FTZOPEN_H_ */
|
#endif /* FTZOPEN_H_ */
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue