nuttx/libs/libnx/nxfonts/CMakeLists.txt
xuxin19 b3678b1454 cmake:support nxlib cmake compilation
Signed-off-by: xuxin19 <xuxin19@xiaomi.com>
2023-08-10 23:18:56 +08:00

254 lines
5.9 KiB
CMake

# ##############################################################################
# libs/libnx/nxfonts/CMakeLists.txt
#
# Licensed to the Apache Software Foundation (ASF) under one or more contributor
# license agreements. See the NOTICE file distributed with this work for
# additional information regarding copyright ownership. The ASF licenses this
# file to you under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
#
# ##############################################################################
function(add_font name id)
string(REPLACE "-" "_" prefix "g_${name}_")
configure_file(nxfonts_bitmaps.c nxfonts_bitmaps_${name}.c)
target_sources(nxfonts
PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/nxfonts_bitmaps_${name}.c)
set(CUSTOM_DEFINES NXFONTS_FONTID=${id} NXFONTS_PREFIX=${prefix})
set_property(
SOURCE ${CMAKE_CURRENT_BINARY_DIR}/nxfonts_bitmaps_${name}.c
APPEND
PROPERTY COMPILE_DEFINITIONS ${CUSTOM_DEFINES})
endfunction()
if(CONFIG_NXFONTS)
nuttx_add_aux_library(nxfonts)
target_include_directories(nxfonts PRIVATE ${CMAKE_CURRENT_LIST_DIR})
target_include_directories(nxfonts PRIVATE ${NUTTX_DIR}/libs/libnx)
# Font conversion operations ###############################################
set(SRCS nxfonts_getfont.c nxfonts_cache.c)
set(BPPS
1
2
4
8
16
24
32)
foreach(bpp ${BPPS})
set(BPP_SUFFIX _${bpp}bpp)
configure_file(nxfonts_convert.c nxfonts_convert${BPP_SUFFIX}.c)
set(CUSTOM_DEFINES NXFONTS_BITSPERPIXEL=${bpp} NXFONTS_SUFFIX=${BPP_SUFFIX})
set_property(
SOURCE ${CMAKE_CURRENT_BINARY_DIR}/nxfonts_convert${BPP_SUFFIX}.c
APPEND
PROPERTY COMPILE_DEFINITIONS ${CUSTOM_DEFINES})
list(APPEND SRCS ${CMAKE_CURRENT_BINARY_DIR}/nxfonts_convert${BPP_SUFFIX}.c)
endforeach()
target_sources(nxfonts PRIVATE ${SRCS})
# Fonts bitmaps ############################################################
# Monospace fonts
if(CONFIG_NXFONT_MONO5X8)
add_font(mono5x8 18)
endif()
# Sans serif fonts
if(CONFIG_NXFONT_SANS17X22)
add_font(sans17x22 14)
endif()
if(CONFIG_NXFONT_SANS20X26)
add_font(sans20x26 15)
endif()
if(CONFIG_NXFONT_SANS23X27)
add_font(sans23x27 1)
endif()
if(CONFIG_NXFONT_SANS22X29)
add_font(sans22x29 2)
endif()
if(CONFIG_NXFONT_SANS28X37)
add_font(sans28x37 3)
endif()
if(CONFIG_NXFONT_SANS39X48)
add_font(sans39x48 4)
endif()
# Sans serif bold fonts
if(CONFIG_NXFONT_SANS17X23B)
add_font(sans17x23b 16)
endif()
if(CONFIG_NXFONT_SANS20X27B)
add_font(sans20x27b 17)
endif()
if(CONFIG_NXFONT_SANS22X29B)
add_font(sans22x29b 5)
endif()
if(CONFIG_NXFONT_SANS28X37B)
add_font(sans28x37b 6)
endif()
if(CONFIG_NXFONT_SANS40X49B)
add_font(sans40x49b 7)
endif()
# Serif fonts
if(CONFIG_NXFONT_SERIF22X29)
add_font(serif22x29 8)
endif()
if(CONFIG_NXFONT_SERIF29X37)
add_font(serif29x37 9)
endif()
if(CONFIG_NXFONT_SERIF38X48)
add_font(serif38x48 10)
endif()
# Serif bold fonts
if(CONFIG_NXFONT_SERIF22X28B)
add_font(serif22x28b 11)
endif()
if(CONFIG_NXFONT_SERIF27X38B)
add_font(serif27x38b 12)
endif()
if(CONFIG_NXFONT_SERIF38X49B)
add_font(serif38x49b 13)
endif()
# Pixel fonts
if(CONFIG_NXFONT_PIXEL_UNICODE)
add_font(pixel-unicode 19)
endif()
if(CONFIG_NXFONT_PIXEL_LCD_MACHINE)
add_font(pixel-lcd-machine 20)
endif()
# X11 misc fixed fonts
if(CONFIG_NXFONT_X11_MISC_FIXED_4X6)
add_font(x11-misc-fixed-4x6 21)
endif()
if(CONFIG_NXFONT_X11_MISC_FIXED_5X7)
add_font(x11-misc-fixed-5x7 22)
endif()
if(CONFIG_NXFONT_X11_MISC_FIXED_5X8)
add_font(x11-misc-fixed-5x8 23)
endif()
if(CONFIG_NXFONT_X11_MISC_FIXED_6X9)
add_font(x11-misc-fixed-6x9 24)
endif()
if(CONFIG_NXFONT_X11_MISC_FIXED_6X10)
add_font(x11-misc-fixed-6x10 25)
endif()
if(CONFIG_NXFONT_X11_MISC_FIXED_6X12)
add_font(x11-misc-fixed-6x12 26)
endif()
if(CONFIG_NXFONT_X11_MISC_FIXED_6X13)
add_font(x11-misc-fixed-6x13 27)
endif()
if(CONFIG_NXFONT_X11_MISC_FIXED_6X13B)
add_font(x11-misc-fixed-6x13b 28)
endif()
if(CONFIG_NXFONT_X11_MISC_FIXED_6X13O)
add_font(x11-misc-fixed-6x13o 29)
endif()
if(CONFIG_NXFONT_X11_MISC_FIXED_7X13)
add_font(x11-misc-fixed-7x13 30)
endif()
if(CONFIG_NXFONT_X11_MISC_FIXED_7X13B)
add_font(x11-misc-fixed-7x13b 31)
endif()
if(CONFIG_NXFONT_X11_MISC_FIXED_7X13O)
add_font(x11-misc-fixed-7x13o 32)
endif()
if(CONFIG_NXFONT_X11_MISC_FIXED_7X14)
add_font(x11-misc-fixed-7x14 33)
endif()
if(CONFIG_NXFONT_X11_MISC_FIXED_7X14B)
add_font(x11-misc-fixed-7x14b 34)
endif()
if(CONFIG_NXFONT_X11_MISC_FIXED_8X13)
add_font(x11-misc-fixed-8x13 35)
endif()
if(CONFIG_NXFONT_X11_MISC_FIXED_8X13B)
add_font(x11-misc-fixed-8x13b 36)
endif()
if(CONFIG_NXFONT_X11_MISC_FIXED_8X13O)
add_font(x11-misc-fixed-8x13o 37)
endif()
if(CONFIG_NXFONT_X11_MISC_FIXED_9X15)
add_font(x11-misc-fixed-9x15 38)
endif()
if(CONFIG_NXFONT_X11_MISC_FIXED_9X15B)
add_font(x11-misc-fixed-9x15b 39)
endif()
if(CONFIG_NXFONT_X11_MISC_FIXED_9X18)
add_font(x11-misc-fixed-9x18 40)
endif()
if(CONFIG_NXFONT_X11_MISC_FIXED_9X18B)
add_font(x11-misc-fixed-9x18b 41)
endif()
if(CONFIG_NXFONT_X11_MISC_FIXED_10X20)
add_font(x11-misc-fixed-10x20 42)
endif()
# Tom Thumb mono-space 4x6 font
if(CONFIG_NXFONT_TOM_THUMB_4X6)
add_font(tom-thumb-4x6 43)
endif()
target_link_libraries(nx PRIVATE nxfonts)
endif()