Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Harfbuzz
提交
9fea6b4d
T
Third Party Harfbuzz
项目概览
OpenHarmony
/
Third Party Harfbuzz
11 个月 前同步成功
通知
0
Star
18
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
Third Party Harfbuzz
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
9fea6b4d
编写于
7月 05, 2019
作者:
E
Ebrahim Byagowi
提交者:
GitHub
7月 05, 2019
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[amalgam] Use it in cmake port and fix conflicts (#1812)
上级
b240d701
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
27 addition
and
87 deletion
+27
-87
.circleci/config.yml
.circleci/config.yml
+4
-4
CMakeLists.txt
CMakeLists.txt
+6
-68
src/Makefile.am
src/Makefile.am
+2
-0
src/hb-cff-interp-common.hh
src/hb-cff-interp-common.hh
+3
-3
src/hb-cff-interp-cs-common.hh
src/hb-cff-interp-cs-common.hh
+1
-1
src/hb-coretext.cc
src/hb-coretext.cc
+2
-2
src/hb-directwrite.cc
src/hb-directwrite.cc
+7
-7
src/hb-ft.cc
src/hb-ft.cc
+2
-2
未找到文件。
.circleci/config.yml
浏览文件 @
9fea6b4d
...
...
@@ -264,7 +264,7 @@ jobs:
-
image
:
dockcross/android-arm
steps
:
-
checkout
-
run
:
cmake -Bbuild -H. -GNinja
-
run
:
cmake -Bbuild -H. -GNinja
-DHB_BUILD_TESTS=OFF
-
run
:
ninja -Cbuild
crosscompile-cmake-notest-browser-asmjs-hb_tiny
:
...
...
@@ -272,7 +272,7 @@ jobs:
-
image
:
dockcross/browser-asmjs
steps
:
-
checkout
-
run
:
cmake -Bbuild -H. -GNinja -DCMAKE_CXX_FLAGS="-DHB_TINY"
-
run
:
cmake -Bbuild -H. -GNinja -DCMAKE_CXX_FLAGS="-DHB_TINY"
-DHB_BUILD_TESTS=OFF
-
run
:
ninja -Cbuild
crosscompile-cmake-notest-linux-arm64
:
...
...
@@ -280,7 +280,7 @@ jobs:
-
image
:
dockcross/linux-arm64
steps
:
-
checkout
-
run
:
cmake -Bbuild -H. -GNinja
-
run
:
cmake -Bbuild -H. -GNinja
-DHB_BUILD_TESTS=OFF
-
run
:
ninja -Cbuild
crosscompile-cmake-notest-linux-mips
:
...
...
@@ -288,7 +288,7 @@ jobs:
-
image
:
dockcross/linux-mips
steps
:
-
checkout
-
run
:
cmake -Bbuild -H. -GNinja
-
run
:
cmake -Bbuild -H. -GNinja
-DHB_BUILD_TESTS=OFF
-
run
:
ninja -Cbuild
#crosscompile-cmake-notest-windows-x64:
...
...
CMakeLists.txt
浏览文件 @
9fea6b4d
...
...
@@ -157,8 +157,6 @@ endfunction ()
file
(
READ
${
PROJECT_SOURCE_DIR
}
/src/Makefile.sources SRCSOURCES
)
file
(
READ
${
PROJECT_SOURCE_DIR
}
/util/Makefile.sources UTILSOURCES
)
extract_make_variable
(
HB_BASE_sources
${
SRCSOURCES
}
)
add_prefix_to_list
(
HB_BASE_sources
"
${
PROJECT_SOURCE_DIR
}
/src/"
)
extract_make_variable
(
HB_BASE_headers
${
SRCSOURCES
}
)
add_prefix_to_list
(
HB_BASE_headers
"
${
PROJECT_SOURCE_DIR
}
/src/"
)
...
...
@@ -192,59 +190,12 @@ set (HB_VERSION_MAJOR ${CMAKE_MATCH_2})
set
(
HB_VERSION_MINOR
${
CMAKE_MATCH_3
}
)
set
(
HB_VERSION_MICRO
${
CMAKE_MATCH_4
}
)
## Define ragel tasks
# if (NOT IN_HB_DIST)
# foreach (ragel_output IN ITEMS ${HB_BASE_RAGEL_GENERATED_sources})
# string(REGEX MATCH "([^/]+)\\.hh" temp ${ragel_output})
# set (target_name ${CMAKE_MATCH_1})
# add_custom_command(OUTPUT ${ragel_output}
# COMMAND ${RAGEL} -G2 -o ${ragel_output} ${PROJECT_SOURCE_DIR}/src/${target_name}.rl -I ${PROJECT_SOURCE_DIR} ${ARGN}
# DEPENDS ${PROJECT_SOURCE_DIR}/src/${target_name}.rl
# )
# add_custom_target(harfbuzz_${target_name} DEPENDS ${PROJECT_BINARY_DIR}/src/${target_name})
# endforeach ()
# mark_as_advanced(RAGEL)
# endif ()
## Generate hb-version.h
# if (NOT IN_HB_DIST)
# set (HB_VERSION_H_IN "${PROJECT_SOURCE_DIR}/src/hb-version.h.in")
# set (HB_VERSION_H "${PROJECT_BINARY_DIR}/src/hb-version.h")
# set_source_files_properties("${HB_VERSION_H}" PROPERTIES GENERATED true)
# configure_file("${HB_VERSION_H_IN}" "${HB_VERSION_H}.tmp" @ONLY)
# execute_process(COMMAND "${CMAKE_COMMAND}" -E copy_if_different
# "${HB_VERSION_H}.tmp"
# "${HB_VERSION_H}"
# )
# file(REMOVE "${HB_VERSION_H}.tmp")
# endif ()
## Define sources and headers of the project
set
(
project_sources
${
HB_BASE_sources
}
${
HB_BASE_RAGEL_GENERATED_sources
}
)
set
(
subset_project_sources
${
HB_SUBSET_sources
}
)
set
(
project_sources
${
PROJECT_SOURCE_DIR
}
/src/harfbuzz.cc
)
# use amalgam source
set
(
subset_project_sources
${
HB_SUBSET_sources
}
)
set
(
project_extra_sources
)
set
(
project_headers
#${HB_VERSION_H}
${
HB_BASE_headers
}
)
set
(
subset_project_headers
${
HB_SUBSET_headers
}
)
set
(
project_headers
${
HB_BASE_headers
}
)
set
(
subset_project_headers
${
HB_SUBSET_headers
}
)
## Find and include needed header folders and libraries
if
(
HB_HAVE_FREETYPE
)
...
...
@@ -257,7 +208,6 @@ if (HB_HAVE_FREETYPE)
include_directories
(
AFTER
${
FREETYPE_INCLUDE_DIRS
}
)
add_definitions
(
-DHAVE_FREETYPE=1
)
list
(
APPEND project_sources
${
PROJECT_SOURCE_DIR
}
/src/hb-ft.cc
)
list
(
APPEND project_headers
${
PROJECT_SOURCE_DIR
}
/src/hb-ft.h
)
# So check_funcs can find its headers
...
...
@@ -275,7 +225,6 @@ if (HB_HAVE_GRAPHITE2)
include_directories
(
${
GRAPHITE2_INCLUDE_DIR
}
)
list
(
APPEND project_sources
${
PROJECT_SOURCE_DIR
}
/src/hb-graphite2.cc
)
list
(
APPEND project_headers
${
PROJECT_SOURCE_DIR
}
/src/hb-graphite2.h
)
list
(
APPEND THIRD_PARTY_LIBS
${
GRAPHITE2_LIBRARY
}
)
...
...
@@ -296,7 +245,6 @@ if (HB_HAVE_GLIB)
include_directories
(
${
GLIBCONFIG_INCLUDE_DIR
}
${
GLIB_INCLUDE_DIR
}
)
list
(
APPEND project_sources
${
PROJECT_SOURCE_DIR
}
/src/hb-glib.cc
)
list
(
APPEND project_headers
${
PROJECT_SOURCE_DIR
}
/src/hb-glib.h
)
list
(
APPEND THIRD_PARTY_LIBS
${
GLIB_LIBRARIES
}
)
...
...
@@ -316,7 +264,6 @@ if (HB_HAVE_ICU)
include_directories
(
${
ICU_INCLUDE_DIR
}
)
list
(
APPEND project_sources
${
PROJECT_SOURCE_DIR
}
/src/hb-icu.cc
)
list
(
APPEND project_headers
${
PROJECT_SOURCE_DIR
}
/src/hb-icu.h
)
list
(
APPEND THIRD_PARTY_LIBS
${
ICU_LIBRARY
}
)
...
...
@@ -328,7 +275,6 @@ if (APPLE AND HB_HAVE_CORETEXT)
# Apple Advanced Typography
add_definitions
(
-DHAVE_CORETEXT
)
list
(
APPEND project_sources
${
PROJECT_SOURCE_DIR
}
/src/hb-coretext.cc
)
list
(
APPEND project_headers
${
PROJECT_SOURCE_DIR
}
/src/hb-coretext.h
)
if
(
HB_IOS
)
...
...
@@ -361,19 +307,13 @@ endif ()
if
(
WIN32 AND HB_HAVE_UNISCRIBE
)
add_definitions
(
-DHAVE_UNISCRIBE
)
list
(
APPEND project_sources
${
PROJECT_SOURCE_DIR
}
/src/hb-uniscribe.cc
)
list
(
APPEND project_headers
${
PROJECT_SOURCE_DIR
}
/src/hb-uniscribe.h
)
list
(
APPEND THIRD_PARTY_LIBS usp10 gdi32 rpcrt4
)
endif
()
if
(
WIN32 AND HB_HAVE_DIRECTWRITE
)
add_definitions
(
-DHAVE_DIRECTWRITE
)
list
(
APPEND project_sources
${
PROJECT_SOURCE_DIR
}
/src/hb-directwrite.cc
)
list
(
APPEND project_headers
${
PROJECT_SOURCE_DIR
}
/src/hb-directwrite.h
)
list
(
APPEND THIRD_PARTY_LIBS dwrite rpcrt4
)
endif
()
...
...
@@ -481,7 +421,6 @@ if (HB_HAVE_GOBJECT)
)
endif
()
## Atomic ops availability detection
file
(
WRITE
"
${
PROJECT_BINARY_DIR
}
/try_compile_intel_atomic_primitives.c"
" void memory_barrier (void) { __sync_synchronize (); }
...
...
@@ -590,7 +529,6 @@ if (WIN32)
endif
()
if
(
HB_HAVE_INTROSPECTION
)
find_package
(
PkgConfig
)
pkg_check_modules
(
PC_GI QUIET gobject-introspection-1.0
)
...
...
@@ -824,7 +762,7 @@ endif ()
if
(
HB_BUILD_TESTS
)
## src/ executables
foreach
(
prog main test test-gsub-would-substitute test-gpos-size-params test-buffer-serialize
hb-ot-tag test-unicode-ranges
)
foreach
(
prog main test test-gsub-would-substitute test-gpos-size-params test-buffer-serialize
test-unicode-ranges
)
# hb-ot-tag
set
(
prog_name
${
prog
}
)
if
(
${
prog_name
}
STREQUAL
"test"
)
# test can not be used as a valid executable name on cmake, lets special case it
...
...
@@ -833,7 +771,7 @@ if (HB_BUILD_TESTS)
add_executable
(
${
prog_name
}
${
PROJECT_SOURCE_DIR
}
/src/
${
prog
}
.cc
)
target_link_libraries
(
${
prog_name
}
harfbuzz
${
THIRD_PARTY_LIBS
}
)
endforeach
()
set_target_properties
(
hb-ot-tag PROPERTIES COMPILE_FLAGS
"-DMAIN"
)
#
set_target_properties(hb-ot-tag PROPERTIES COMPILE_FLAGS "-DMAIN")
## Tests
if
(
UNIX OR MINGW
)
...
...
src/Makefile.am
浏览文件 @
9fea6b4d
...
...
@@ -12,6 +12,8 @@ DISTCHECK_CONFIGURE_FLAGS = --enable-introspection
TESTS
=
check_PROGRAMS
=
EXTRA_DIST
+=
harfbuzz.cc
# Convenience targets:
lib
:
$(BUILT_SOURCES) libharfbuzz.la
libs
:
$(BUILT_SOURCES) $(lib_LTLIBRARIES)
...
...
src/hb-cff-interp-common.hh
浏览文件 @
9fea6b4d
...
...
@@ -378,7 +378,7 @@ typedef hb_vector_t<byte_str_t> byte_str_array_t;
/* stack */
template
<
typename
ELEM
,
int
LIMIT
>
struct
stack_t
struct
cff_
stack_t
{
void
init
()
{
...
...
@@ -469,7 +469,7 @@ struct stack_t
/* argument stack */
template
<
typename
ARG
=
number_t
>
struct
arg_stack_t
:
stack_t
<
ARG
,
513
>
struct
arg_stack_t
:
cff_
stack_t
<
ARG
,
513
>
{
void
push_int
(
int
v
)
{
...
...
@@ -523,7 +523,7 @@ struct arg_stack_t : stack_t<ARG, 513>
{
return
S
::
elements
.
sub_array
(
start
);
}
private:
typedef
stack_t
<
ARG
,
513
>
S
;
typedef
cff_
stack_t
<
ARG
,
513
>
S
;
};
/* an operator prefixed by its operands in a byte string */
...
...
src/hb-cff-interp-cs-common.hh
浏览文件 @
9fea6b4d
...
...
@@ -57,7 +57,7 @@ struct call_context_t
/* call stack */
const
unsigned
int
kMaxCallLimit
=
10
;
struct
call_stack_t
:
stack_t
<
call_context_t
,
kMaxCallLimit
>
{};
struct
call_stack_t
:
cff_
stack_t
<
call_context_t
,
kMaxCallLimit
>
{};
template
<
typename
SUBRS
>
struct
biased_subrs_t
...
...
src/hb-coretext.cc
浏览文件 @
9fea6b4d
...
...
@@ -75,7 +75,7 @@ release_table_data (void *user_data)
}
static
hb_blob_t
*
reference_table
(
hb_face_t
*
face
HB_UNUSED
,
hb_tag_t
tag
,
void
*
user_data
)
_hb_cg_reference_table
(
hb_face_t
*
face
HB_UNUSED
,
hb_tag_t
tag
,
void
*
user_data
)
{
CGFontRef
cg_font
=
reinterpret_cast
<
CGFontRef
>
(
user_data
);
CFDataRef
cf_data
=
CGFontCopyTableForTag
(
cg_font
,
tag
);
...
...
@@ -299,7 +299,7 @@ _hb_coretext_shaper_face_data_destroy (hb_coretext_face_data_t *data)
hb_face_t
*
hb_coretext_face_create
(
CGFontRef
cg_font
)
{
return
hb_face_create_for_tables
(
reference_table
,
CGFontRetain
(
cg_font
),
_hb_cg_font_release
);
return
hb_face_create_for_tables
(
_hb_cg_
reference_table
,
CGFontRetain
(
cg_font
),
_hb_cg_font_release
);
}
/*
...
...
src/hb-directwrite.cc
浏览文件 @
9fea6b4d
...
...
@@ -539,10 +539,10 @@ protected:
Run
mRunHead
;
};
static
inline
uint16_t
hb_uint16_swap
(
const
uint16_t
v
)
static
inline
uint16_t
hb_
dw_
uint16_swap
(
const
uint16_t
v
)
{
return
(
v
>>
8
)
|
(
v
<<
8
);
}
static
inline
uint32_t
hb_uint32_swap
(
const
uint32_t
v
)
{
return
(
hb_
uint16_swap
(
v
)
<<
16
)
|
hb
_uint16_swap
(
v
>>
16
);
}
static
inline
uint32_t
hb_
dw_
uint32_swap
(
const
uint32_t
v
)
{
return
(
hb_
dw_uint16_swap
(
v
)
<<
16
)
|
hb_dw
_uint16_swap
(
v
>>
16
);
}
/*
* shaper
...
...
@@ -653,7 +653,7 @@ _hb_directwrite_shape_full (hb_shape_plan_t *shape_plan,
for
(
unsigned
int
i
=
0
;
i
<
num_features
;
++
i
)
{
typographic_features
.
features
[
i
].
nameTag
=
(
DWRITE_FONT_FEATURE_TAG
)
hb_uint32_swap
(
features
[
i
].
tag
);
hb_
dw_
uint32_swap
(
features
[
i
].
tag
);
typographic_features
.
features
[
i
].
parameter
=
features
[
i
].
value
;
}
}
...
...
@@ -934,14 +934,14 @@ _hb_directwrite_table_data_release (void *data)
}
static
hb_blob_t
*
reference_table
(
hb_face_t
*
face
HB_UNUSED
,
hb_tag_t
tag
,
void
*
user_data
)
_hb_directwrite_
reference_table
(
hb_face_t
*
face
HB_UNUSED
,
hb_tag_t
tag
,
void
*
user_data
)
{
IDWriteFontFace
*
dw_face
=
((
IDWriteFontFace
*
)
user_data
);
const
void
*
data
;
uint32_t
length
;
void
*
table_context
;
BOOL
exists
;
if
(
!
dw_face
||
FAILED
(
dw_face
->
TryGetFontTable
(
hb_uint32_swap
(
tag
),
&
data
,
if
(
!
dw_face
||
FAILED
(
dw_face
->
TryGetFontTable
(
hb_
dw_
uint32_swap
(
tag
),
&
data
,
&
length
,
&
table_context
,
&
exists
)))
return
nullptr
;
...
...
@@ -979,7 +979,7 @@ hb_directwrite_face_create (IDWriteFontFace *font_face)
{
if
(
font_face
)
font_face
->
AddRef
();
return
hb_face_create_for_tables
(
reference_table
,
font_face
,
return
hb_face_create_for_tables
(
_hb_directwrite_
reference_table
,
font_face
,
_hb_directwrite_font_release
);
}
...
...
src/hb-ft.cc
浏览文件 @
9fea6b4d
...
...
@@ -564,7 +564,7 @@ _hb_ft_font_set_funcs (hb_font_t *font, FT_Face ft_face, bool unref)
static
hb_blob_t
*
reference_table
(
hb_face_t
*
face
HB_UNUSED
,
hb_tag_t
tag
,
void
*
user_data
)
_hb_ft_reference_table
(
hb_face_t
*
face
HB_UNUSED
,
hb_tag_t
tag
,
void
*
user_data
)
{
FT_Face
ft_face
=
(
FT_Face
)
user_data
;
FT_Byte
*
buffer
;
...
...
@@ -619,7 +619,7 @@ hb_ft_face_create (FT_Face ft_face,
face
=
hb_face_create
(
blob
,
ft_face
->
face_index
);
hb_blob_destroy
(
blob
);
}
else
{
face
=
hb_face_create_for_tables
(
reference_table
,
ft_face
,
destroy
);
face
=
hb_face_create_for_tables
(
_hb_ft_
reference_table
,
ft_face
,
destroy
);
}
hb_face_set_index
(
face
,
ft_face
->
face_index
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录