From da43c48f3d4c8967195f973badba2ad426639891 Mon Sep 17 00:00:00 2001 From: Andrew Eikum Date: Fri, 16 Aug 2019 13:06:09 -0500 Subject: [PATCH] Build Source Han Sans SC Regular as if it were YaHei --- Vagrantfile | 5 ++++- build/makefile_base.mak | 26 ++++++++++++++++++++++++-- fonts/patches/YaHei-FontMenuNameDB | 5 +++++ proton | 1 + 4 files changed, 34 insertions(+), 3 deletions(-) create mode 100644 fonts/patches/YaHei-FontMenuNameDB diff --git a/Vagrantfile b/Vagrantfile index d25256c18..76b63543c 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -80,9 +80,12 @@ Vagrant.configure(2) do |config| #install host build-time dependencies apt-get update - apt-get install -y gpgv2 gnupg2 g++ g++-6-multilib git docker-ce fontforge-nox python-debian schroot + apt-get install -y gpgv2 gnupg2 g++ g++-6-multilib git docker-ce fontforge-nox python-debian schroot python-pip apt-get -y -t stretch-backports install meson + #install adobe font devkit to build source san hans + pip install afdko + #winehq-devel is installed to pull in dependencies to run Wine apt-get install -y --install-recommends winehq-devel diff --git a/build/makefile_base.mak b/build/makefile_base.mak index fb13418f9..24ca0120d 100644 --- a/build/makefile_base.mak +++ b/build/makefile_base.mak @@ -410,6 +410,7 @@ $(DIST_WINEMONO): | $(DIST_WINEMONO_DIR) $(DIST_FONTS): fonts mkdir -p $@ cp $(FONTS_OBJ)/*.ttf "$@" + cp $(FONTS_OBJ)/*.otf "$@" .PHONY: dist @@ -425,10 +426,12 @@ dist: $(DIST_TARGETS) wine vrclient lsteamclient steam dxvk d9vk | $(DST_DIR) ln -s $(FONTLINKPATH)/LiberationSans-Regular.ttf $(abspath $(DIST_PREFIX))/drive_c/windows/Fonts/arial.ttf && \ ln -s $(FONTLINKPATH)/LiberationSans-Bold.ttf $(abspath $(DIST_PREFIX))/drive_c/windows/Fonts/arialbd.ttf && \ ln -s $(FONTLINKPATH)/LiberationSerif-Regular.ttf $(abspath $(DIST_PREFIX))/drive_c/windows/Fonts/times.ttf && \ - ln -s $(FONTLINKPATH)/LiberationMono-Regular.ttf $(abspath $(DIST_PREFIX))/drive_c/windows/Fonts/cour.ttf + ln -s $(FONTLINKPATH)/LiberationMono-Regular.ttf $(abspath $(DIST_PREFIX))/drive_c/windows/Fonts/cour.ttf && \ + ln -s $(FONTLINKPATH)/SourceHanSansSCRegular.otf $(abspath $(DIST_PREFIX))/drive_c/windows/Fonts/msyh.ttf #The use of "arial" here is for compatibility with programs that require that exact string. These links do not point to Arial. #The use of "times" here is for compatibility with programs that require that exact string. This link does not point to Times New Roman. #The use of "cour" here is for compatibility with programs that require that exact string. This link does not point to Courier New. +#The use of "msyh" here is for compatibility with programs that require that exact string. This link does not point to Microsoft YaHei. deploy: dist | $(filter-out dist deploy install,$(MAKECMDGOALS)) mkdir -p $(DEPLOY_DIR) && \ @@ -1223,16 +1226,25 @@ FONTSCRIPT = $(FONTS)/scripts/generatefont.pe FONTLINKPATH = ../../../../fonts LIBERATION_SRCDIR = $(FONTS)/liberation-fonts/src +SOURCE_HAN_SANS_SRCDIR =$(FONTS)/source-han-sans LIBERATION_SANS_REGULAR_SFD = LiberationSans-Regular.sfd LIBERATION_SANS_BOLD_SFD = LiberationSans-Bold.sfd LIBERATION_SERIF_REGULAR_SFD = LiberationSerif-Regular.sfd LIBERATION_MONO_REGULAR_SFD = LiberationMono-Regular.sfd +SOURCE_HAN_SANS_REGULAR_CIDFONTINFO = $(SOURCE_HAN_SANS_SRCDIR)/cidfontinfo.OTC.SC +SOURCE_HAN_SANS_REGULAR_CIDFONT = $(SOURCE_HAN_SANS_SRCDIR)/cidfont.ps.OTC.SC +SOURCE_HAN_SANS_REGULAR_FEATURES = $(SOURCE_HAN_SANS_SRCDIR)/features.OTC.SC +SOURCE_HAN_SANS_REGULAR_SEQUENCES = $(SOURCE_HAN_SANS_SRCDIR)/SourceHanSans_CN_sequences.txt +SOURCE_HAN_SANS_REGULAR_UNISOURCE = $(SOURCE_HAN_SANS_SRCDIR)/UniSourceHanSansCN-UTF32-H +YAHEI_MENUNAMEDB = $(FONTS)/patches/YaHei-FontMenuNameDB + LIBERATION_SANS_REGULAR_TTF = $(addprefix $(FONTS_OBJ)/, $(LIBERATION_SANS_REGULAR_SFD:.sfd=.ttf)) LIBERATION_SANS_BOLD_TTF = $(addprefix $(FONTS_OBJ)/, $(LIBERATION_SANS_BOLD_SFD:.sfd=.ttf)) LIBERATION_SERIF_REGULAR_TTF = $(addprefix $(FONTS_OBJ)/, $(LIBERATION_SERIF_REGULAR_SFD:.sfd=.ttf)) LIBERATION_MONO_REGULAR_TTF = $(addprefix $(FONTS_OBJ)/, $(LIBERATION_MONO_REGULAR_SFD:.sfd=.ttf)) +SOURCE_HAN_SANS_REGULAR_OTF = $(FONTS_OBJ)/SourceHanSansSCRegular.otf LIBERATION_SFDS = $(LIBERATION_SANS_REGULAR_SFD) $(LIBERATION_SANS_BOLD_SFD) $(LIBERATION_SERIF_REGULAR_SFD) $(LIBERATION_MONO_REGULAR_SFD) FONT_TTFS = $(LIBERATION_SANS_REGULAR_TTF) $(LIBERATION_SANS_BOLD_TTF) \ @@ -1256,6 +1268,15 @@ $(LIBERATION_MONO_REGULAR_TTF): $(FONTS_SRC) $(FONTSCRIPT) patch $(@:.ttf=.sfd) $(FONTS)/patches/$(LIBERATION_MONO_REGULAR_SFD:.sfd=.patch) $(FONTFORGE) -script $(FONTSCRIPT) $(@:.ttf=.sfd) "CourierNew" "Courier New" "Courier New" +#The use of "YaHei" for compatibility with programs that require that exact string. This font is not Microsoft YaHei. +$(SOURCE_HAN_SANS_REGULAR_OTF): $(SOURCE_HAN_SANS_REGULAR_CIDFONTINFO) $(SOURCE_HAN_SANS_REGULAR_CIDFONT) \ + $(SOURCE_HAN_SANS_REGULAR_FEATURES) $(SOURCE_HAN_SANS_REGULAR_SEQUENCES) $(SOURCE_HAN_SANS_REGULAR_UNISOURCE) $(YAHEI_MENUNAMEDB) + makeotf -f $(SOURCE_HAN_SANS_REGULAR_CIDFONT) -omitMacNames -ff $(SOURCE_HAN_SANS_REGULAR_FEATURES) \ + -fi $(SOURCE_HAN_SANS_REGULAR_CIDFONTINFO) -mf $(YAHEI_MENUNAMEDB) -r -nS -cs 25 -ch $(SOURCE_HAN_SANS_REGULAR_UNISOURCE) \ + -ci $(SOURCE_HAN_SANS_REGULAR_SEQUENCES) -o $(SOURCE_HAN_SANS_REGULAR_OTF) + tx -cff +S -no_futile $(SOURCE_HAN_SANS_REGULAR_CIDFONT) $(FONTS_OBJ)/CFF.OTC.SC + sfntedit -a CFF=$(FONTS_OBJ)/CFF.OTC.SC $(SOURCE_HAN_SANS_REGULAR_OTF) + $(FONTS_OBJ): mkdir -p $@ @@ -1263,7 +1284,8 @@ $(FONTS_SRC): $(FONTS_OBJ) cp -n $(addprefix $(LIBERATION_SRCDIR)/, $(LIBERATION_SFDS)) $< fonts: $(LIBERATION_SANS_REGULAR_TTF) $(LIBERATION_SANS_BOLD_TTF) \ - $(LIBERATION_SERIF_REGULAR_TTF) $(LIBERATION_MONO_REGULAR_TTF) | $(FONTS_SRC) + $(LIBERATION_SERIF_REGULAR_TTF) $(LIBERATION_MONO_REGULAR_TTF) \ + $(SOURCE_HAN_SANS_REGULAR_OTF) | $(FONTS_SRC) ## ## Targets diff --git a/fonts/patches/YaHei-FontMenuNameDB b/fonts/patches/YaHei-FontMenuNameDB new file mode 100644 index 000000000..06ecbaac5 --- /dev/null +++ b/fonts/patches/YaHei-FontMenuNameDB @@ -0,0 +1,5 @@ +[SourceHanSansSC-Regular] + f=3,1,0x804,\5FAE\8F6F\96C5\9ED1 + s=3,1,0x804,Regular + f=Microsoft YaHei + s=Regular diff --git a/proton b/proton index 4418370e3..f8e0d9545 100755 --- a/proton +++ b/proton @@ -270,6 +270,7 @@ class CompatData: ( "LiberationSans-Bold.ttf", "arialbd.ttf" ), ( "LiberationSerif-Regular.ttf", "times.ttf" ), ( "LiberationMono-Regular.ttf", "cour.ttf" ), + ( "SourceHanSansSCRegular.otf", "msyh.ttf" ), ] windowsfonts = self.prefix_dir + "/drive_c/windows/Fonts"