Files
blender/source/blender/blenlib/CMakeLists.txt
Irie Shinsuke 5792e77239 Patch [#34373] Use i18n monospace font in Text editor and Python console
This patch allows Blender to display i18n monospace font in the text
editor and the Python interactive console. Wide characters that occupy
multiple columns such as CJK characters can be displayed correctly.
Furthermore, wrapping, selection, suggestion, cursor drawing, and
syntax highlighting should work.

Also fixes a bug [#34543]: In Text Editor false color in comment on cyrillic

To estimate how many columns each character occupies, this patch uses
wcwidth.c written by Markus Kuhn and distributed under MIT-style license:

  http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c

wcwidth.c is stored in extern/wcwidth and used as a static library.

This patch adds new API to blenfont, blenlib and blenkernel:

BLF_get_unifont_mono()
BLF_free_unifont_mono()
BLF_draw_mono()
BLI_wcwidth()
BLI_wcswidth()
BLI_str_utf8_char_width()
BLI_str_utf8_char_width_safe()
txt_utf8_offset_to_column()
txt_utf8_column_to_offset()
2013-03-12 07:25:53 +00:00

182 lines
3.7 KiB
CMake

# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# The Original Code is Copyright (C) 2006, Blender Foundation
# All rights reserved.
#
# The Original Code is: all of this file.
#
# Contributor(s): Jacques Beaurain.
#
# ***** END GPL LICENSE BLOCK *****
set(INC
.
# ../blenkernel # dont add this back!
../makesdna
../../../intern/ghost
../../../intern/guardedalloc
../../../extern/wcwidth
)
set(INC_SYS
${ZLIB_INCLUDE_DIRS}
${FREETYPE_INCLUDE_DIRS}
)
set(SRC
intern/BLI_args.c
intern/BLI_array.c
intern/BLI_dynstr.c
intern/BLI_ghash.c
intern/BLI_heap.c
intern/BLI_kdopbvh.c
intern/BLI_kdtree.c
intern/BLI_linklist.c
intern/BLI_memarena.c
intern/BLI_mempool.c
intern/DLRB_tree.c
intern/boxpack2d.c
intern/buffer.c
intern/callbacks.c
intern/cpu.c
intern/dynlib.c
intern/edgehash.c
intern/endian_switch.c
intern/fileops.c
intern/fnmatch.c
intern/freetypefont.c
intern/graph.c
intern/gsqueue.c
intern/jitter.c
intern/lasso.c
intern/listbase.c
intern/math_base.c
intern/math_base_inline.c
intern/math_color.c
intern/math_color_inline.c
intern/math_geom.c
intern/math_geom_inline.c
intern/math_interp.c
intern/math_matrix.c
intern/math_rotation.c
intern/math_vector.c
intern/math_vector_inline.c
intern/md5.c
intern/noise.c
intern/path_util.c
intern/quadric.c
intern/rand.c
intern/rct.c
intern/scanfill.c
intern/smallhash.c
intern/stack.c
intern/storage.c
intern/string.c
intern/string_cursor_utf8.c
intern/string_utf8.c
intern/threads.c
intern/time.c
intern/uvproject.c
intern/voronoi.c
intern/voxel.c
intern/winstuff.c
BLI_args.h
BLI_array.h
BLI_bitmap.h
BLI_blenlib.h
BLI_buffer.h
BLI_boxpack2d.h
BLI_callbacks.h
BLI_cpu.h
BLI_dlrbTree.h
BLI_dynlib.h
BLI_dynstr.h
BLI_edgehash.h
BLI_endian_switch.h
BLI_endian_switch_inline.h
BLI_fileops.h
BLI_fileops_types.h
BLI_fnmatch.h
BLI_ghash.h
BLI_graph.h
BLI_gsqueue.h
BLI_heap.h
BLI_jitter.h
BLI_kdopbvh.h
BLI_kdtree.h
BLI_lasso.h
BLI_linklist.h
BLI_listbase.h
BLI_math.h
BLI_math_base.h
BLI_math_color.h
BLI_math_geom.h
BLI_math_inline.h
BLI_math_interp.h
BLI_math_matrix.h
BLI_math_rotation.h
BLI_math_vector.h
BLI_md5.h
BLI_memarena.h
BLI_mempool.h
BLI_noise.h
BLI_path_util.h
BLI_quadric.h
BLI_rand.h
BLI_rect.h
BLI_scanfill.h
BLI_smallhash.h
BLI_stack.h
BLI_string.h
BLI_string_cursor_utf8.h
BLI_string_utf8.h
BLI_threads.h
BLI_utildefines.h
BLI_uvproject.h
BLI_vfontdata.h
BLI_voronoi.h
BLI_voxel.h
BLI_winstuff.h
PIL_time.h
)
if(WITH_BINRELOC)
list(APPEND INC_SYS
${BINRELOC_INCLUDE_DIRS}
)
add_definitions(-DWITH_BINRELOC)
endif()
if(WITH_OPENMP)
add_definitions(-DPARALLEL=1)
endif()
if(WIN32)
list(APPEND INC
../../../intern/utfconv
)
endif()
blender_add_lib(bf_blenlib "${SRC}" "${INC}" "${INC_SYS}")
if(MSVC)
# Quiet warning about inline math library files that do not export symbols.
# (normally you'd exclude from project, but we still want to see the files in MSVC)
set_target_properties(bf_blenlib PROPERTIES STATIC_LIBRARY_FLAGS /ignore:4221)
endif()