!28 add lvgl-vs-simu

Merge pull request !28 from 李昂/lvgldev
This commit is contained in:
李昂 2022-06-15 12:42:45 +00:00 committed by Gitee
commit 8a85587a33
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
1472 changed files with 668973 additions and 0 deletions

View File

@ -0,0 +1,49 @@
##
## PROJECT: Mouri Internal Library Essentials
## FILE: .editorconfig
## PURPOSE: The root .editorconfig file for C++ Project
##
## LICENSE: The MIT License
##
## DEVELOPER: Mouri_Naruto (Mouri_Naruto AT Outlook.com)
##
root = true
[*]
charset = utf-8-bom
end_of_line = crlf
[*.md]
insert_final_newline = true
[*.{c,c++,cc,cpp,cxx,h,h++,hh,hpp,hxx,idl,inl,ipp,tlh,tli}]
indent_style = space
indent_size = 4
insert_final_newline = true
trim_trailing_whitespace = true
vc_generate_documentation_comments = doxygen_slash_star
[*.{js,json,xml,toml,xaml}]
indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true
[*.rc]
charset = utf-16le
[Mile.Project.Properties.Template.h]
charset = utf-16le
[Mile.Project.Properties.h]
charset = utf-16le
[*.bat]
charset = utf-8
insert_final_newline = true
[*.sh]
charset = utf-8
end_of_line = lf
insert_final_newline = true

View File

@ -0,0 +1,34 @@
@rem
@rem PROJECT: Mouri Internal Library Essentials
@rem FILE: BuildAllTargets.cmd
@rem PURPOSE: Build all targets script for Visual Studio C++ Project
@rem
@rem LICENSE: The MIT License
@rem
@rem DEVELOPER: Mouri_Naruto (Mouri_Naruto AT Outlook.com)
@rem
@setlocal
@echo off
rem Change to the current folder.
cd "%~dp0"
rem Remove the output folder for a fresh compile.
rd /s /q Output
set VisualStudioInstallerFolder="%ProgramFiles(x86)%\Microsoft Visual Studio\Installer"
if %PROCESSOR_ARCHITECTURE%==x86 set VisualStudioInstallerFolder="%ProgramFiles%\Microsoft Visual Studio\Installer"
pushd %VisualStudioInstallerFolder%
for /f "usebackq tokens=*" %%i in (`vswhere -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath`) do (
set VisualStudioInstallDir=%%i
)
popd
call "%VisualStudioInstallDir%\VC\Auxiliary\Build\vcvarsall.bat" x86
rem Build all targets
MSBuild -m BuildAllTargets.proj
@endlocal

View File

@ -0,0 +1,60 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
PROJECT: Mouri Internal Library Essentials
FILE: BuildAllTargets.proj
PURPOSE: Build all targets script for Visual Studio C++ Project
LICENSE: The MIT License
DEVELOPER: Mouri_Naruto (Mouri_Naruto AT Outlook.com)
-->
<Project
DefaultTargets="Restore;Build"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<SolutionPath>$(MSBuildThisFileDirectory)*.sln</SolutionPath>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="$(SolutionPath)">
<AdditionalProperties>Configuration=Debug;Platform=x86</AdditionalProperties>
</ProjectReference>
<ProjectReference Include="$(SolutionPath)">
<AdditionalProperties>Configuration=Release;Platform=x86</AdditionalProperties>
</ProjectReference>
<ProjectReference Include="$(SolutionPath)">
<AdditionalProperties>Configuration=Debug;Platform=x64</AdditionalProperties>
</ProjectReference>
<ProjectReference Include="$(SolutionPath)">
<AdditionalProperties>Configuration=Release;Platform=x64</AdditionalProperties>
</ProjectReference>
<ProjectReference Include="$(SolutionPath)">
<AdditionalProperties>Configuration=Debug;Platform=ARM64</AdditionalProperties>
</ProjectReference>
<ProjectReference Include="$(SolutionPath)">
<AdditionalProperties>Configuration=Release;Platform=ARM64</AdditionalProperties>
</ProjectReference>
</ItemGroup>
<Target Name="Restore" >
<MSBuild
Projects="@(ProjectReference)"
Targets="Restore"
StopOnFirstFailure="True"
Properties="PreferredToolArchitecture=x64" />
</Target>
<Target Name="Build" >
<MSBuild
Projects="@(ProjectReference)"
Targets="Build"
BuildInParallel="True"
StopOnFirstFailure="True"
Properties="PreferredToolArchitecture=x64" />
</Target>
<Target Name="Rebuild" >
<MSBuild
Projects="@(ProjectReference)"
Targets="Rebuild"
BuildInParallel="True"
StopOnFirstFailure="True"
Properties="PreferredToolArchitecture=x64" />
</Target>
</Project>

View File

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
PROJECT: Mouri Internal Library Essentials
FILE: Directory.Build.props
PURPOSE: Global settings for Visual Studio C++ Project
LICENSE: The MIT License
DEVELOPER: Mouri_Naruto (Mouri_Naruto AT Outlook.com)
-->
<Project>
<PropertyGroup>
<MileProjectOutputPath>$(MSBuildThisFileDirectory)Output\</MileProjectOutputPath>
<MileProjectBinariesPath>$(MileProjectOutputPath)Binaries\</MileProjectBinariesPath>
<MileProjectObjectsPath>$(MileProjectOutputPath)Objects\</MileProjectObjectsPath>
<GenerateProjectSpecificOutputFolder>False</GenerateProjectSpecificOutputFolder>
<MSBuildProjectExtensionsPath>$(MileProjectObjectsPath)$(Configuration)\$(MSBuildProjectName)\obj\</MSBuildProjectExtensionsPath>
<AppxPackageDir>$(MileProjectBinariesPath)AppPackages\$(ProjectName)\</AppxPackageDir>
</PropertyGroup>
<PropertyGroup Condition="'$(MSBuildProjectExtension)' == '.vcxproj'">
<OutDir>$(MileProjectBinariesPath)$(Configuration)\$(Platform)\</OutDir>
<IntDir>$(MileProjectObjectsPath)$(Configuration)\$(MSBuildProjectName)\$(Platform)\</IntDir>
<GeneratedFilesDir>$(IntDir)Generated Files\</GeneratedFilesDir>
</PropertyGroup>
<PropertyGroup Condition="'$(MSBuildProjectExtension)' == '.wapproj'">
<OutputPath>$(MileProjectBinariesPath)$(Configuration)\$(MSBuildProjectName)\$(Platform)\</OutputPath>
<IntermediateOutputPath>$(MileProjectObjectsPath)$(Configuration)\$(MSBuildProjectName)\</IntermediateOutputPath>
<BaseIntermediateOutputPath>$(IntermediateOutputPath)</BaseIntermediateOutputPath>
</PropertyGroup>
<ItemGroup Label="NuGet" Condition="'$(MSBuildProjectExtension)' == '.vcxproj'">
<ProjectCapability Include="PackageReferences" />
</ItemGroup>
<PropertyGroup Label="NuGet" Condition="('$(MSBuildProjectExtension)' == '.vcxproj') Or ('$(MSBuildProjectExtension)' == '.wapproj')">
<!-- https://github.com/microsoft/react-native-windows/pull/8195 -->
<AssetTargetFallback>$(AssetTargetFallback);native;uap$(TargetPlatformVersion);</AssetTargetFallback>
<!-- https://github.com/microsoft/react-native-windows/pull/8195 -->
<TargetFrameworkMoniker>native,Version=v0.0</TargetFrameworkMoniker>
<NuGetTargetMoniker>native,Version=v0.0</NuGetTargetMoniker>
<TargetFrameworkMoniker Condition ="'$(DesignTimeBuild)' == 'true'">.NETCore,Version=v5.0</TargetFrameworkMoniker>
<NuGetTargetMoniker Condition ="'$(DesignTimeBuild)' == 'true'">.NETCore,Version=v5.0</NuGetTargetMoniker>
<RuntimeIdentifiers>win;win-x86;win-x64;win-arm;win-arm64;win10-x86;win10-x64;win10-arm;win10-arm64</RuntimeIdentifiers>
</PropertyGroup>
</Project>

21
bsp/lvgl-vs-simu/LICENSE Normal file
View File

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2019 Littlev Graphics Library
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -0,0 +1,37 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.30907.101
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LVGL.Simulator", "LVGL.Simulator\LVGL.Simulator.vcxproj", "{3CA6E070-4AC1-475E-BB17-CF29AE4806DF}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|ARM64 = Debug|ARM64
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|ARM64 = Release|ARM64
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{3CA6E070-4AC1-475E-BB17-CF29AE4806DF}.Debug|ARM64.ActiveCfg = Debug|ARM64
{3CA6E070-4AC1-475E-BB17-CF29AE4806DF}.Debug|ARM64.Build.0 = Debug|ARM64
{3CA6E070-4AC1-475E-BB17-CF29AE4806DF}.Debug|x64.ActiveCfg = Debug|x64
{3CA6E070-4AC1-475E-BB17-CF29AE4806DF}.Debug|x64.Build.0 = Debug|x64
{3CA6E070-4AC1-475E-BB17-CF29AE4806DF}.Debug|x86.ActiveCfg = Debug|Win32
{3CA6E070-4AC1-475E-BB17-CF29AE4806DF}.Debug|x86.Build.0 = Debug|Win32
{3CA6E070-4AC1-475E-BB17-CF29AE4806DF}.Release|ARM64.ActiveCfg = Release|ARM64
{3CA6E070-4AC1-475E-BB17-CF29AE4806DF}.Release|ARM64.Build.0 = Release|ARM64
{3CA6E070-4AC1-475E-BB17-CF29AE4806DF}.Release|x64.ActiveCfg = Release|x64
{3CA6E070-4AC1-475E-BB17-CF29AE4806DF}.Release|x64.Build.0 = Release|x64
{3CA6E070-4AC1-475E-BB17-CF29AE4806DF}.Release|x86.ActiveCfg = Release|Win32
{3CA6E070-4AC1-475E-BB17-CF29AE4806DF}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {F07B2868-97B2-414D-A20F-85B77051DE80}
EndGlobalSection
EndGlobal

View File

@ -0,0 +1 @@
{"buildTargets":[],"launchTargets":[],"customConfigurationProvider":{"workspaceBrowse":{"browsePath":[],"compilerArgs":[]},"fileIndex":[]}}

View File

@ -0,0 +1,4 @@
make.exe --dry-run --always-make --keep-going --print-directory
'make.exe' <20><><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ⲿ<EFBFBD><E2B2BF><EFBFBD>Ҳ<EEA3AC><D2B2><EFBFBD>ǿ<EFBFBD><C7BF><EFBFBD><EFBFBD>еij<D0B5><C4B3><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>

View File

@ -0,0 +1,23 @@
{
"makefile.extensionOutputFolder": "./.vscode",
"files.associations": {
"lvgl.h": "c",
"pika_lvgl_arc.h": "c",
"pika_lvgl_lv_obj.h": "c",
"pika_lvgl.h": "c",
"pika_lvgl_bar.h": "c",
"pika_lvgl_btn.h": "c",
"pikaplatform.h": "c",
"pika_lvgl_checkbox.h": "c",
"pika_lvgl_dropdown.h": "c",
"pika_lvgl_label.h": "c",
"pika_lvgl_roller.h": "c",
"pika_lvgl_slider.h": "c",
"pika_lvgl_switch.h": "c",
"pika_lvgl_table.h": "c",
"pika_lvgl_textarea.h": "c",
"pika_lvgl_align_cls.h": "c",
"pika_lvgl_palette_cls.h": "c",
"pika_lvgl_lv_event.h": "c"
}
}

View File

@ -0,0 +1,4 @@
make.exe all --print-data-base --no-builtin-variables --no-builtin-rules --question
'make.exe' <20><><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ⲿ<EFBFBD><E2B2BF><EFBFBD>Ҳ<EEA3AC><D2B2><EFBFBD>ǿ<EFBFBD><C7BF><EFBFBD><EFBFBD>еij<D0B5><C4B3><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>

View File

@ -0,0 +1,74 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ClInclude Include="lv_drivers\display\drm.h" />
<ClInclude Include="lv_drivers\display\fbdev.h" />
<ClInclude Include="lv_drivers\display\GC9A01.h" />
<ClInclude Include="lv_drivers\display\ILI9341.h" />
<ClInclude Include="lv_drivers\display\monitor.h" />
<ClInclude Include="lv_drivers\display\R61581.h" />
<ClInclude Include="lv_drivers\display\SHARP_MIP.h" />
<ClInclude Include="lv_drivers\display\SSD1963.h" />
<ClInclude Include="lv_drivers\display\ST7565.h" />
<ClInclude Include="lv_drivers\display\UC1610.h" />
<ClInclude Include="lv_drivers\gtkdrv\gtkdrv.h" />
<ClInclude Include="lv_drivers\indev\AD_touch.h" />
<ClInclude Include="lv_drivers\indev\evdev.h" />
<ClInclude Include="lv_drivers\indev\FT5406EE8.h" />
<ClInclude Include="lv_drivers\indev\keyboard.h" />
<ClInclude Include="lv_drivers\indev\libinput_drv.h" />
<ClInclude Include="lv_drivers\indev\mouse.h" />
<ClInclude Include="lv_drivers\indev\mousewheel.h" />
<ClInclude Include="lv_drivers\indev\xkb.h" />
<ClInclude Include="lv_drivers\indev\XPT2046.h" />
<ClInclude Include="lv_drivers\sdl\sdl.h" />
<ClInclude Include="lv_drivers\sdl\sdl_common.h" />
<ClInclude Include="lv_drivers\sdl\sdl_gpu.h" />
<ClInclude Include="lv_drivers\wayland\wayland.h" />
<ClInclude Include="lv_drivers\win32drv\win32drv.h" />
<ClInclude Include="lv_drivers\lv_drv_conf_template.h" />
<ClInclude Include="lv_drivers\win_drv.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="lv_drivers\display\drm.c" />
<ClCompile Include="lv_drivers\display\fbdev.c" />
<ClCompile Include="lv_drivers\display\GC9A01.c" />
<ClCompile Include="lv_drivers\display\ILI9341.c" />
<ClCompile Include="lv_drivers\display\R61581.c" />
<ClCompile Include="lv_drivers\display\SHARP_MIP.c" />
<ClCompile Include="lv_drivers\display\SSD1963.c" />
<ClCompile Include="lv_drivers\display\ST7565.c" />
<ClCompile Include="lv_drivers\display\UC1610.c" />
<ClCompile Include="lv_drivers\gtkdrv\gtkdrv.c" />
<ClCompile Include="lv_drivers\indev\AD_touch.c" />
<ClCompile Include="lv_drivers\indev\evdev.c" />
<ClCompile Include="lv_drivers\indev\FT5406EE8.c" />
<ClCompile Include="lv_drivers\indev\libinput.c" />
<ClCompile Include="lv_drivers\indev\xkb.c" />
<ClCompile Include="lv_drivers\indev\XPT2046.c" />
<ClCompile Include="lv_drivers\sdl\sdl.c" />
<ClCompile Include="lv_drivers\sdl\sdl_common.c" />
<ClCompile Include="lv_drivers\sdl\sdl_gpu.c" />
<ClCompile Include="lv_drivers\wayland\wayland.c" />
<ClCompile Include="lv_drivers\win32drv\win32drv.c" />
<ClCompile Include="lv_drivers\win_drv.c" />
</ItemGroup>
<ItemGroup>
<None Include="lv_drivers\.github\auto-comment.yml" />
<None Include="lv_drivers\.github\stale.yml" />
<None Include="lv_drivers\docs\astyle_c" />
<None Include="lv_drivers\docs\astyle_h" />
<None Include="lv_drivers\gtkdrv\broadway.png" />
<None Include="lv_drivers\gtkdrv\README.md" />
<None Include="lv_drivers\wayland\.gitignore" />
<None Include="lv_drivers\wayland\CMakeLists.txt" />
<None Include="lv_drivers\wayland\README.md" />
<None Include="lv_drivers\.git" />
<None Include="lv_drivers\.gitignore" />
<None Include="lv_drivers\CMakeLists.txt" />
<None Include="lv_drivers\library.json" />
<None Include="lv_drivers\LICENSE" />
<None Include="lv_drivers\lv_drivers.mk" />
<None Include="lv_drivers\README.md" />
</ItemGroup>
</Project>

View File

@ -0,0 +1,233 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="lv_drivers">
<UniqueIdentifier>{220d71a2-1f71-4976-b6bb-2f9c7f429b7e}</UniqueIdentifier>
</Filter>
<Filter Include="lv_drivers\.github">
<UniqueIdentifier>{f2b736cd-c818-4138-9a4b-a684d129471f}</UniqueIdentifier>
</Filter>
<Filter Include="lv_drivers\display">
<UniqueIdentifier>{19ba8719-c125-418d-99ed-8509f72f298a}</UniqueIdentifier>
</Filter>
<Filter Include="lv_drivers\docs">
<UniqueIdentifier>{1d03be13-026c-4fc9-a31a-d5dc20bc5766}</UniqueIdentifier>
</Filter>
<Filter Include="lv_drivers\gtkdrv">
<UniqueIdentifier>{eb8dc1fd-774a-4eee-ade7-da8de2c874ae}</UniqueIdentifier>
</Filter>
<Filter Include="lv_drivers\indev">
<UniqueIdentifier>{2bc5841f-2bb7-419a-9c59-b38fdd58f114}</UniqueIdentifier>
</Filter>
<Filter Include="lv_drivers\sdl">
<UniqueIdentifier>{dc621d19-da3c-4035-958c-da4511ab09db}</UniqueIdentifier>
</Filter>
<Filter Include="lv_drivers\wayland">
<UniqueIdentifier>{b1a9cb95-b02e-4879-90a0-641ef686122c}</UniqueIdentifier>
</Filter>
<Filter Include="lv_drivers\win32drv">
<UniqueIdentifier>{7ac75e15-a83c-4c6c-a117-eee2200dc14f}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="lv_drivers\display\drm.h">
<Filter>lv_drivers\display</Filter>
</ClInclude>
<ClInclude Include="lv_drivers\display\fbdev.h">
<Filter>lv_drivers\display</Filter>
</ClInclude>
<ClInclude Include="lv_drivers\display\GC9A01.h">
<Filter>lv_drivers\display</Filter>
</ClInclude>
<ClInclude Include="lv_drivers\display\ILI9341.h">
<Filter>lv_drivers\display</Filter>
</ClInclude>
<ClInclude Include="lv_drivers\display\monitor.h">
<Filter>lv_drivers\display</Filter>
</ClInclude>
<ClInclude Include="lv_drivers\display\R61581.h">
<Filter>lv_drivers\display</Filter>
</ClInclude>
<ClInclude Include="lv_drivers\display\SHARP_MIP.h">
<Filter>lv_drivers\display</Filter>
</ClInclude>
<ClInclude Include="lv_drivers\display\SSD1963.h">
<Filter>lv_drivers\display</Filter>
</ClInclude>
<ClInclude Include="lv_drivers\display\ST7565.h">
<Filter>lv_drivers\display</Filter>
</ClInclude>
<ClInclude Include="lv_drivers\display\UC1610.h">
<Filter>lv_drivers\display</Filter>
</ClInclude>
<ClInclude Include="lv_drivers\gtkdrv\gtkdrv.h">
<Filter>lv_drivers\gtkdrv</Filter>
</ClInclude>
<ClInclude Include="lv_drivers\indev\AD_touch.h">
<Filter>lv_drivers\indev</Filter>
</ClInclude>
<ClInclude Include="lv_drivers\indev\evdev.h">
<Filter>lv_drivers\indev</Filter>
</ClInclude>
<ClInclude Include="lv_drivers\indev\FT5406EE8.h">
<Filter>lv_drivers\indev</Filter>
</ClInclude>
<ClInclude Include="lv_drivers\indev\keyboard.h">
<Filter>lv_drivers\indev</Filter>
</ClInclude>
<ClInclude Include="lv_drivers\indev\libinput_drv.h">
<Filter>lv_drivers\indev</Filter>
</ClInclude>
<ClInclude Include="lv_drivers\indev\mouse.h">
<Filter>lv_drivers\indev</Filter>
</ClInclude>
<ClInclude Include="lv_drivers\indev\mousewheel.h">
<Filter>lv_drivers\indev</Filter>
</ClInclude>
<ClInclude Include="lv_drivers\indev\xkb.h">
<Filter>lv_drivers\indev</Filter>
</ClInclude>
<ClInclude Include="lv_drivers\indev\XPT2046.h">
<Filter>lv_drivers\indev</Filter>
</ClInclude>
<ClInclude Include="lv_drivers\sdl\sdl.h">
<Filter>lv_drivers\sdl</Filter>
</ClInclude>
<ClInclude Include="lv_drivers\sdl\sdl_common.h">
<Filter>lv_drivers\sdl</Filter>
</ClInclude>
<ClInclude Include="lv_drivers\sdl\sdl_gpu.h">
<Filter>lv_drivers\sdl</Filter>
</ClInclude>
<ClInclude Include="lv_drivers\wayland\wayland.h">
<Filter>lv_drivers\wayland</Filter>
</ClInclude>
<ClInclude Include="lv_drivers\win32drv\win32drv.h">
<Filter>lv_drivers\win32drv</Filter>
</ClInclude>
<ClInclude Include="lv_drivers\lv_drv_conf_template.h">
<Filter>lv_drivers</Filter>
</ClInclude>
<ClInclude Include="lv_drivers\win_drv.h">
<Filter>lv_drivers</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="lv_drivers\display\drm.c">
<Filter>lv_drivers\display</Filter>
</ClCompile>
<ClCompile Include="lv_drivers\display\fbdev.c">
<Filter>lv_drivers\display</Filter>
</ClCompile>
<ClCompile Include="lv_drivers\display\GC9A01.c">
<Filter>lv_drivers\display</Filter>
</ClCompile>
<ClCompile Include="lv_drivers\display\ILI9341.c">
<Filter>lv_drivers\display</Filter>
</ClCompile>
<ClCompile Include="lv_drivers\display\R61581.c">
<Filter>lv_drivers\display</Filter>
</ClCompile>
<ClCompile Include="lv_drivers\display\SHARP_MIP.c">
<Filter>lv_drivers\display</Filter>
</ClCompile>
<ClCompile Include="lv_drivers\display\SSD1963.c">
<Filter>lv_drivers\display</Filter>
</ClCompile>
<ClCompile Include="lv_drivers\display\ST7565.c">
<Filter>lv_drivers\display</Filter>
</ClCompile>
<ClCompile Include="lv_drivers\display\UC1610.c">
<Filter>lv_drivers\display</Filter>
</ClCompile>
<ClCompile Include="lv_drivers\gtkdrv\gtkdrv.c">
<Filter>lv_drivers\gtkdrv</Filter>
</ClCompile>
<ClCompile Include="lv_drivers\indev\AD_touch.c">
<Filter>lv_drivers\indev</Filter>
</ClCompile>
<ClCompile Include="lv_drivers\indev\evdev.c">
<Filter>lv_drivers\indev</Filter>
</ClCompile>
<ClCompile Include="lv_drivers\indev\FT5406EE8.c">
<Filter>lv_drivers\indev</Filter>
</ClCompile>
<ClCompile Include="lv_drivers\indev\libinput.c">
<Filter>lv_drivers\indev</Filter>
</ClCompile>
<ClCompile Include="lv_drivers\indev\xkb.c">
<Filter>lv_drivers\indev</Filter>
</ClCompile>
<ClCompile Include="lv_drivers\indev\XPT2046.c">
<Filter>lv_drivers\indev</Filter>
</ClCompile>
<ClCompile Include="lv_drivers\sdl\sdl.c">
<Filter>lv_drivers\sdl</Filter>
</ClCompile>
<ClCompile Include="lv_drivers\sdl\sdl_common.c">
<Filter>lv_drivers\sdl</Filter>
</ClCompile>
<ClCompile Include="lv_drivers\sdl\sdl_gpu.c">
<Filter>lv_drivers\sdl</Filter>
</ClCompile>
<ClCompile Include="lv_drivers\wayland\wayland.c">
<Filter>lv_drivers\wayland</Filter>
</ClCompile>
<ClCompile Include="lv_drivers\win32drv\win32drv.c">
<Filter>lv_drivers\win32drv</Filter>
</ClCompile>
<ClCompile Include="lv_drivers\win_drv.c">
<Filter>lv_drivers</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<None Include="lv_drivers\.github\auto-comment.yml">
<Filter>lv_drivers\.github</Filter>
</None>
<None Include="lv_drivers\.github\stale.yml">
<Filter>lv_drivers\.github</Filter>
</None>
<None Include="lv_drivers\docs\astyle_c">
<Filter>lv_drivers\docs</Filter>
</None>
<None Include="lv_drivers\docs\astyle_h">
<Filter>lv_drivers\docs</Filter>
</None>
<None Include="lv_drivers\gtkdrv\broadway.png">
<Filter>lv_drivers\gtkdrv</Filter>
</None>
<None Include="lv_drivers\gtkdrv\README.md">
<Filter>lv_drivers\gtkdrv</Filter>
</None>
<None Include="lv_drivers\wayland\.gitignore">
<Filter>lv_drivers\wayland</Filter>
</None>
<None Include="lv_drivers\wayland\CMakeLists.txt">
<Filter>lv_drivers\wayland</Filter>
</None>
<None Include="lv_drivers\wayland\README.md">
<Filter>lv_drivers\wayland</Filter>
</None>
<None Include="lv_drivers\.git">
<Filter>lv_drivers</Filter>
</None>
<None Include="lv_drivers\.gitignore">
<Filter>lv_drivers</Filter>
</None>
<None Include="lv_drivers\CMakeLists.txt">
<Filter>lv_drivers</Filter>
</None>
<None Include="lv_drivers\library.json">
<Filter>lv_drivers</Filter>
</None>
<None Include="lv_drivers\LICENSE">
<Filter>lv_drivers</Filter>
</None>
<None Include="lv_drivers\lv_drivers.mk">
<Filter>lv_drivers</Filter>
</None>
<None Include="lv_drivers\README.md">
<Filter>lv_drivers</Filter>
</None>
</ItemGroup>
</Project>

View File

@ -0,0 +1,647 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ClInclude Include="lvgl\env_support\cmsis-pack\lv_conf_cmsis.h" />
<ClInclude Include="lvgl\env_support\rt-thread\lv_rt_thread_conf.h" />
<ClInclude Include="lvgl\src\core\lv_disp.h" />
<ClInclude Include="lvgl\src\core\lv_event.h" />
<ClInclude Include="lvgl\src\core\lv_group.h" />
<ClInclude Include="lvgl\src\core\lv_indev.h" />
<ClInclude Include="lvgl\src\core\lv_indev_scroll.h" />
<ClInclude Include="lvgl\src\core\lv_obj.h" />
<ClInclude Include="lvgl\src\core\lv_obj_class.h" />
<ClInclude Include="lvgl\src\core\lv_obj_draw.h" />
<ClInclude Include="lvgl\src\core\lv_obj_pos.h" />
<ClInclude Include="lvgl\src\core\lv_obj_scroll.h" />
<ClInclude Include="lvgl\src\core\lv_obj_style.h" />
<ClInclude Include="lvgl\src\core\lv_obj_style_gen.h" />
<ClInclude Include="lvgl\src\core\lv_obj_tree.h" />
<ClInclude Include="lvgl\src\core\lv_refr.h" />
<ClInclude Include="lvgl\src\core\lv_theme.h" />
<ClInclude Include="lvgl\src\draw\arm2d\lv_gpu_arm2d.h" />
<ClInclude Include="lvgl\src\draw\nxp\pxp\lv_draw_pxp_blend.h" />
<ClInclude Include="lvgl\src\draw\nxp\pxp\lv_gpu_nxp_pxp.h" />
<ClInclude Include="lvgl\src\draw\nxp\pxp\lv_gpu_nxp_pxp_osa.h" />
<ClInclude Include="lvgl\src\draw\nxp\vglite\lv_draw_vglite_arc.h" />
<ClInclude Include="lvgl\src\draw\nxp\vglite\lv_draw_vglite_blend.h" />
<ClInclude Include="lvgl\src\draw\nxp\vglite\lv_draw_vglite_rect.h" />
<ClInclude Include="lvgl\src\draw\nxp\vglite\lv_gpu_nxp_vglite.h" />
<ClInclude Include="lvgl\src\draw\nxp\lv_gpu_nxp.h" />
<ClInclude Include="lvgl\src\draw\sdl\lv_draw_sdl.h" />
<ClInclude Include="lvgl\src\draw\sdl\lv_draw_sdl_composite.h" />
<ClInclude Include="lvgl\src\draw\sdl\lv_draw_sdl_img.h" />
<ClInclude Include="lvgl\src\draw\sdl\lv_draw_sdl_mask.h" />
<ClInclude Include="lvgl\src\draw\sdl\lv_draw_sdl_priv.h" />
<ClInclude Include="lvgl\src\draw\sdl\lv_draw_sdl_rect.h" />
<ClInclude Include="lvgl\src\draw\sdl\lv_draw_sdl_stack_blur.h" />
<ClInclude Include="lvgl\src\draw\sdl\lv_draw_sdl_texture_cache.h" />
<ClInclude Include="lvgl\src\draw\sdl\lv_draw_sdl_utils.h" />
<ClInclude Include="lvgl\src\draw\stm32_dma2d\lv_gpu_stm32_dma2d.h" />
<ClInclude Include="lvgl\src\draw\sw\lv_draw_sw.h" />
<ClInclude Include="lvgl\src\draw\sw\lv_draw_sw_blend.h" />
<ClInclude Include="lvgl\src\draw\sw\lv_draw_sw_dither.h" />
<ClInclude Include="lvgl\src\draw\sw\lv_draw_sw_gradient.h" />
<ClInclude Include="lvgl\src\draw\swm341_dma2d\lv_gpu_swm341_dma2d.h" />
<ClInclude Include="lvgl\src\draw\lv_draw.h" />
<ClInclude Include="lvgl\src\draw\lv_draw_arc.h" />
<ClInclude Include="lvgl\src\draw\lv_draw_img.h" />
<ClInclude Include="lvgl\src\draw\lv_draw_label.h" />
<ClInclude Include="lvgl\src\draw\lv_draw_line.h" />
<ClInclude Include="lvgl\src\draw\lv_draw_mask.h" />
<ClInclude Include="lvgl\src\draw\lv_draw_rect.h" />
<ClInclude Include="lvgl\src\draw\lv_draw_transform.h" />
<ClInclude Include="lvgl\src\draw\lv_draw_triangle.h" />
<ClInclude Include="lvgl\src\draw\lv_img_buf.h" />
<ClInclude Include="lvgl\src\draw\lv_img_cache.h" />
<ClInclude Include="lvgl\src\draw\lv_img_decoder.h" />
<ClInclude Include="lvgl\src\extra\layouts\flex\lv_flex.h" />
<ClInclude Include="lvgl\src\extra\layouts\grid\lv_grid.h" />
<ClInclude Include="lvgl\src\extra\layouts\lv_layouts.h" />
<ClInclude Include="lvgl\src\extra\libs\bmp\lv_bmp.h" />
<ClInclude Include="lvgl\src\extra\libs\ffmpeg\lv_ffmpeg.h" />
<ClInclude Include="lvgl\src\extra\libs\freetype\lv_freetype.h" />
<ClInclude Include="lvgl\src\extra\libs\fsdrv\lv_fsdrv.h" />
<ClInclude Include="lvgl\src\extra\libs\gif\gifdec.h" />
<ClInclude Include="lvgl\src\extra\libs\gif\lv_gif.h" />
<ClInclude Include="lvgl\src\extra\libs\png\lodepng.h" />
<ClInclude Include="lvgl\src\extra\libs\png\lv_png.h" />
<ClInclude Include="lvgl\src\extra\libs\qrcode\lv_qrcode.h" />
<ClInclude Include="lvgl\src\extra\libs\qrcode\qrcodegen.h" />
<ClInclude Include="lvgl\src\extra\libs\rlottie\lv_rlottie.h" />
<ClInclude Include="lvgl\src\extra\libs\sjpg\lv_sjpg.h" />
<ClInclude Include="lvgl\src\extra\libs\sjpg\tjpgd.h" />
<ClInclude Include="lvgl\src\extra\libs\sjpg\tjpgdcnf.h" />
<ClInclude Include="lvgl\src\extra\libs\lv_libs.h" />
<ClInclude Include="lvgl\src\extra\others\fragment\lv_fragment.h" />
<ClInclude Include="lvgl\src\extra\others\gridnav\lv_gridnav.h" />
<ClInclude Include="lvgl\src\extra\others\imgfont\lv_imgfont.h" />
<ClInclude Include="lvgl\src\extra\others\monkey\lv_monkey.h" />
<ClInclude Include="lvgl\src\extra\others\msg\lv_msg.h" />
<ClInclude Include="lvgl\src\extra\others\snapshot\lv_snapshot.h" />
<ClInclude Include="lvgl\src\extra\others\lv_others.h" />
<ClInclude Include="lvgl\src\extra\themes\basic\lv_theme_basic.h" />
<ClInclude Include="lvgl\src\extra\themes\default\lv_theme_default.h" />
<ClInclude Include="lvgl\src\extra\themes\mono\lv_theme_mono.h" />
<ClInclude Include="lvgl\src\extra\themes\lv_themes.h" />
<ClInclude Include="lvgl\src\extra\widgets\animimg\lv_animimg.h" />
<ClInclude Include="lvgl\src\extra\widgets\calendar\lv_calendar.h" />
<ClInclude Include="lvgl\src\extra\widgets\calendar\lv_calendar_header_arrow.h" />
<ClInclude Include="lvgl\src\extra\widgets\calendar\lv_calendar_header_dropdown.h" />
<ClInclude Include="lvgl\src\extra\widgets\chart\lv_chart.h" />
<ClInclude Include="lvgl\src\extra\widgets\colorwheel\lv_colorwheel.h" />
<ClInclude Include="lvgl\src\extra\widgets\imgbtn\lv_imgbtn.h" />
<ClInclude Include="lvgl\src\extra\widgets\keyboard\lv_keyboard.h" />
<ClInclude Include="lvgl\src\extra\widgets\led\lv_led.h" />
<ClInclude Include="lvgl\src\extra\widgets\list\lv_list.h" />
<ClInclude Include="lvgl\src\extra\widgets\menu\lv_menu.h" />
<ClInclude Include="lvgl\src\extra\widgets\meter\lv_meter.h" />
<ClInclude Include="lvgl\src\extra\widgets\msgbox\lv_msgbox.h" />
<ClInclude Include="lvgl\src\extra\widgets\span\lv_span.h" />
<ClInclude Include="lvgl\src\extra\widgets\spinbox\lv_spinbox.h" />
<ClInclude Include="lvgl\src\extra\widgets\spinner\lv_spinner.h" />
<ClInclude Include="lvgl\src\extra\widgets\tabview\lv_tabview.h" />
<ClInclude Include="lvgl\src\extra\widgets\tileview\lv_tileview.h" />
<ClInclude Include="lvgl\src\extra\widgets\win\lv_win.h" />
<ClInclude Include="lvgl\src\extra\widgets\lv_widgets.h" />
<ClInclude Include="lvgl\src\extra\lv_extra.h" />
<ClInclude Include="lvgl\src\font\lv_font.h" />
<ClInclude Include="lvgl\src\font\lv_font_fmt_txt.h" />
<ClInclude Include="lvgl\src\font\lv_font_loader.h" />
<ClInclude Include="lvgl\src\font\lv_symbol_def.h" />
<ClInclude Include="lvgl\src\hal\lv_hal.h" />
<ClInclude Include="lvgl\src\hal\lv_hal_disp.h" />
<ClInclude Include="lvgl\src\hal\lv_hal_indev.h" />
<ClInclude Include="lvgl\src\hal\lv_hal_tick.h" />
<ClInclude Include="lvgl\src\misc\lv_anim.h" />
<ClInclude Include="lvgl\src\misc\lv_anim_timeline.h" />
<ClInclude Include="lvgl\src\misc\lv_area.h" />
<ClInclude Include="lvgl\src\misc\lv_assert.h" />
<ClInclude Include="lvgl\src\misc\lv_async.h" />
<ClInclude Include="lvgl\src\misc\lv_bidi.h" />
<ClInclude Include="lvgl\src\misc\lv_color.h" />
<ClInclude Include="lvgl\src\misc\lv_fs.h" />
<ClInclude Include="lvgl\src\misc\lv_gc.h" />
<ClInclude Include="lvgl\src\misc\lv_ll.h" />
<ClInclude Include="lvgl\src\misc\lv_log.h" />
<ClInclude Include="lvgl\src\misc\lv_lru.h" />
<ClInclude Include="lvgl\src\misc\lv_math.h" />
<ClInclude Include="lvgl\src\misc\lv_mem.h" />
<ClInclude Include="lvgl\src\misc\lv_printf.h" />
<ClInclude Include="lvgl\src\misc\lv_style.h" />
<ClInclude Include="lvgl\src\misc\lv_style_gen.h" />
<ClInclude Include="lvgl\src\misc\lv_templ.h" />
<ClInclude Include="lvgl\src\misc\lv_timer.h" />
<ClInclude Include="lvgl\src\misc\lv_tlsf.h" />
<ClInclude Include="lvgl\src\misc\lv_txt.h" />
<ClInclude Include="lvgl\src\misc\lv_txt_ap.h" />
<ClInclude Include="lvgl\src\misc\lv_types.h" />
<ClInclude Include="lvgl\src\misc\lv_utils.h" />
<ClInclude Include="lvgl\src\widgets\lv_arc.h" />
<ClInclude Include="lvgl\src\widgets\lv_bar.h" />
<ClInclude Include="lvgl\src\widgets\lv_btn.h" />
<ClInclude Include="lvgl\src\widgets\lv_btnmatrix.h" />
<ClInclude Include="lvgl\src\widgets\lv_canvas.h" />
<ClInclude Include="lvgl\src\widgets\lv_checkbox.h" />
<ClInclude Include="lvgl\src\widgets\lv_dropdown.h" />
<ClInclude Include="lvgl\src\widgets\lv_img.h" />
<ClInclude Include="lvgl\src\widgets\lv_label.h" />
<ClInclude Include="lvgl\src\widgets\lv_line.h" />
<ClInclude Include="lvgl\src\widgets\lv_objx_templ.h" />
<ClInclude Include="lvgl\src\widgets\lv_roller.h" />
<ClInclude Include="lvgl\src\widgets\lv_slider.h" />
<ClInclude Include="lvgl\src\widgets\lv_switch.h" />
<ClInclude Include="lvgl\src\widgets\lv_table.h" />
<ClInclude Include="lvgl\src\widgets\lv_textarea.h" />
<ClInclude Include="lvgl\src\lvgl.h" />
<ClInclude Include="lvgl\src\lv_api_map.h" />
<ClInclude Include="lvgl\src\lv_conf_internal.h" />
<ClInclude Include="lvgl\src\lv_conf_kconfig.h" />
<ClInclude Include="lvgl\tests\src\lv_test_conf.h" />
<ClInclude Include="lvgl\tests\src\lv_test_helpers.h" />
<ClInclude Include="lvgl\tests\src\lv_test_indev.h" />
<ClInclude Include="lvgl\tests\src\lv_test_init.h" />
<ClInclude Include="lvgl\tests\unity\unity.h" />
<ClInclude Include="lvgl\tests\unity\unity_internals.h" />
<ClInclude Include="lvgl\tests\unity\unity_support.h" />
<ClInclude Include="lvgl\lvgl.h" />
<ClInclude Include="lvgl\lv_conf_template.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="lvgl\env_support\rt-thread\lv_rt_thread_port.c" />
<ClCompile Include="lvgl\src\core\lv_disp.c" />
<ClCompile Include="lvgl\src\core\lv_event.c" />
<ClCompile Include="lvgl\src\core\lv_group.c" />
<ClCompile Include="lvgl\src\core\lv_indev.c" />
<ClCompile Include="lvgl\src\core\lv_indev_scroll.c" />
<ClCompile Include="lvgl\src\core\lv_obj.c" />
<ClCompile Include="lvgl\src\core\lv_obj_class.c" />
<ClCompile Include="lvgl\src\core\lv_obj_draw.c" />
<ClCompile Include="lvgl\src\core\lv_obj_pos.c" />
<ClCompile Include="lvgl\src\core\lv_obj_scroll.c" />
<ClCompile Include="lvgl\src\core\lv_obj_style.c" />
<ClCompile Include="lvgl\src\core\lv_obj_style_gen.c" />
<ClCompile Include="lvgl\src\core\lv_obj_tree.c" />
<ClCompile Include="lvgl\src\core\lv_refr.c" />
<ClCompile Include="lvgl\src\core\lv_theme.c" />
<ClCompile Include="lvgl\src\draw\arm2d\lv_gpu_arm2d.c" />
<ClCompile Include="lvgl\src\draw\nxp\pxp\lv_draw_pxp_blend.c" />
<ClCompile Include="lvgl\src\draw\nxp\pxp\lv_gpu_nxp_pxp.c" />
<ClCompile Include="lvgl\src\draw\nxp\pxp\lv_gpu_nxp_pxp_osa.c" />
<ClCompile Include="lvgl\src\draw\nxp\vglite\lv_draw_vglite_arc.c" />
<ClCompile Include="lvgl\src\draw\nxp\vglite\lv_draw_vglite_blend.c" />
<ClCompile Include="lvgl\src\draw\nxp\vglite\lv_draw_vglite_rect.c" />
<ClCompile Include="lvgl\src\draw\nxp\vglite\lv_gpu_nxp_vglite.c" />
<ClCompile Include="lvgl\src\draw\nxp\lv_gpu_nxp.c" />
<ClCompile Include="lvgl\src\draw\sdl\lv_draw_sdl.c" />
<ClCompile Include="lvgl\src\draw\sdl\lv_draw_sdl_arc.c" />
<ClCompile Include="lvgl\src\draw\sdl\lv_draw_sdl_bg.c" />
<ClCompile Include="lvgl\src\draw\sdl\lv_draw_sdl_composite.c" />
<ClCompile Include="lvgl\src\draw\sdl\lv_draw_sdl_img.c" />
<ClCompile Include="lvgl\src\draw\sdl\lv_draw_sdl_label.c" />
<ClCompile Include="lvgl\src\draw\sdl\lv_draw_sdl_line.c" />
<ClCompile Include="lvgl\src\draw\sdl\lv_draw_sdl_mask.c" />
<ClCompile Include="lvgl\src\draw\sdl\lv_draw_sdl_polygon.c" />
<ClCompile Include="lvgl\src\draw\sdl\lv_draw_sdl_rect.c" />
<ClCompile Include="lvgl\src\draw\sdl\lv_draw_sdl_stack_blur.c" />
<ClCompile Include="lvgl\src\draw\sdl\lv_draw_sdl_texture_cache.c" />
<ClCompile Include="lvgl\src\draw\sdl\lv_draw_sdl_utils.c" />
<ClCompile Include="lvgl\src\draw\stm32_dma2d\lv_gpu_stm32_dma2d.c" />
<ClCompile Include="lvgl\src\draw\sw\lv_draw_sw.c" />
<ClCompile Include="lvgl\src\draw\sw\lv_draw_sw_arc.c" />
<ClCompile Include="lvgl\src\draw\sw\lv_draw_sw_blend.c" />
<ClCompile Include="lvgl\src\draw\sw\lv_draw_sw_dither.c" />
<ClCompile Include="lvgl\src\draw\sw\lv_draw_sw_gradient.c" />
<ClCompile Include="lvgl\src\draw\sw\lv_draw_sw_img.c" />
<ClCompile Include="lvgl\src\draw\sw\lv_draw_sw_letter.c" />
<ClCompile Include="lvgl\src\draw\sw\lv_draw_sw_line.c" />
<ClCompile Include="lvgl\src\draw\sw\lv_draw_sw_polygon.c" />
<ClCompile Include="lvgl\src\draw\sw\lv_draw_sw_rect.c" />
<ClCompile Include="lvgl\src\draw\sw\lv_draw_sw_transform.c" />
<ClCompile Include="lvgl\src\draw\swm341_dma2d\lv_gpu_swm341_dma2d.c" />
<ClCompile Include="lvgl\src\draw\lv_draw.c" />
<ClCompile Include="lvgl\src\draw\lv_draw_arc.c" />
<ClCompile Include="lvgl\src\draw\lv_draw_img.c" />
<ClCompile Include="lvgl\src\draw\lv_draw_label.c" />
<ClCompile Include="lvgl\src\draw\lv_draw_line.c" />
<ClCompile Include="lvgl\src\draw\lv_draw_mask.c" />
<ClCompile Include="lvgl\src\draw\lv_draw_rect.c" />
<ClCompile Include="lvgl\src\draw\lv_draw_transform.c" />
<ClCompile Include="lvgl\src\draw\lv_draw_triangle.c" />
<ClCompile Include="lvgl\src\draw\lv_img_buf.c" />
<ClCompile Include="lvgl\src\draw\lv_img_cache.c" />
<ClCompile Include="lvgl\src\draw\lv_img_decoder.c" />
<ClCompile Include="lvgl\src\extra\layouts\flex\lv_flex.c" />
<ClCompile Include="lvgl\src\extra\layouts\grid\lv_grid.c" />
<ClCompile Include="lvgl\src\extra\libs\bmp\lv_bmp.c" />
<ClCompile Include="lvgl\src\extra\libs\ffmpeg\lv_ffmpeg.c" />
<ClCompile Include="lvgl\src\extra\libs\freetype\lv_freetype.c" />
<ClCompile Include="lvgl\src\extra\libs\fsdrv\lv_fs_fatfs.c" />
<ClCompile Include="lvgl\src\extra\libs\fsdrv\lv_fs_posix.c" />
<ClCompile Include="lvgl\src\extra\libs\fsdrv\lv_fs_stdio.c" />
<ClCompile Include="lvgl\src\extra\libs\fsdrv\lv_fs_win32.c" />
<ClCompile Include="lvgl\src\extra\libs\gif\gifdec.c" />
<ClCompile Include="lvgl\src\extra\libs\gif\lv_gif.c" />
<ClCompile Include="lvgl\src\extra\libs\png\lodepng.c" />
<ClCompile Include="lvgl\src\extra\libs\png\lv_png.c" />
<ClCompile Include="lvgl\src\extra\libs\qrcode\lv_qrcode.c" />
<ClCompile Include="lvgl\src\extra\libs\qrcode\qrcodegen.c" />
<ClCompile Include="lvgl\src\extra\libs\rlottie\lv_rlottie.c" />
<ClCompile Include="lvgl\src\extra\libs\sjpg\lv_sjpg.c" />
<ClCompile Include="lvgl\src\extra\libs\sjpg\tjpgd.c" />
<ClCompile Include="lvgl\src\extra\others\fragment\lv_fragment.c" />
<ClCompile Include="lvgl\src\extra\others\fragment\lv_fragment_manager.c" />
<ClCompile Include="lvgl\src\extra\others\gridnav\lv_gridnav.c" />
<ClCompile Include="lvgl\src\extra\others\imgfont\lv_imgfont.c" />
<ClCompile Include="lvgl\src\extra\others\monkey\lv_monkey.c" />
<ClCompile Include="lvgl\src\extra\others\msg\lv_msg.c" />
<ClCompile Include="lvgl\src\extra\others\snapshot\lv_snapshot.c" />
<ClCompile Include="lvgl\src\extra\themes\basic\lv_theme_basic.c" />
<ClCompile Include="lvgl\src\extra\themes\default\lv_theme_default.c" />
<ClCompile Include="lvgl\src\extra\themes\mono\lv_theme_mono.c" />
<ClCompile Include="lvgl\src\extra\widgets\animimg\lv_animimg.c" />
<ClCompile Include="lvgl\src\extra\widgets\calendar\lv_calendar.c" />
<ClCompile Include="lvgl\src\extra\widgets\calendar\lv_calendar_header_arrow.c" />
<ClCompile Include="lvgl\src\extra\widgets\calendar\lv_calendar_header_dropdown.c" />
<ClCompile Include="lvgl\src\extra\widgets\chart\lv_chart.c" />
<ClCompile Include="lvgl\src\extra\widgets\colorwheel\lv_colorwheel.c" />
<ClCompile Include="lvgl\src\extra\widgets\imgbtn\lv_imgbtn.c" />
<ClCompile Include="lvgl\src\extra\widgets\keyboard\lv_keyboard.c" />
<ClCompile Include="lvgl\src\extra\widgets\led\lv_led.c" />
<ClCompile Include="lvgl\src\extra\widgets\list\lv_list.c" />
<ClCompile Include="lvgl\src\extra\widgets\menu\lv_menu.c" />
<ClCompile Include="lvgl\src\extra\widgets\meter\lv_meter.c" />
<ClCompile Include="lvgl\src\extra\widgets\msgbox\lv_msgbox.c" />
<ClCompile Include="lvgl\src\extra\widgets\span\lv_span.c" />
<ClCompile Include="lvgl\src\extra\widgets\spinbox\lv_spinbox.c" />
<ClCompile Include="lvgl\src\extra\widgets\spinner\lv_spinner.c" />
<ClCompile Include="lvgl\src\extra\widgets\tabview\lv_tabview.c" />
<ClCompile Include="lvgl\src\extra\widgets\tileview\lv_tileview.c" />
<ClCompile Include="lvgl\src\extra\widgets\win\lv_win.c" />
<ClCompile Include="lvgl\src\extra\lv_extra.c" />
<ClCompile Include="lvgl\src\font\lv_font.c" />
<ClCompile Include="lvgl\src\font\lv_font_dejavu_16_persian_hebrew.c" />
<ClCompile Include="lvgl\src\font\lv_font_fmt_txt.c" />
<ClCompile Include="lvgl\src\font\lv_font_loader.c" />
<ClCompile Include="lvgl\src\font\lv_font_montserrat_10.c" />
<ClCompile Include="lvgl\src\font\lv_font_montserrat_12.c" />
<ClCompile Include="lvgl\src\font\lv_font_montserrat_12_subpx.c" />
<ClCompile Include="lvgl\src\font\lv_font_montserrat_14.c" />
<ClCompile Include="lvgl\src\font\lv_font_montserrat_16.c" />
<ClCompile Include="lvgl\src\font\lv_font_montserrat_18.c" />
<ClCompile Include="lvgl\src\font\lv_font_montserrat_20.c" />
<ClCompile Include="lvgl\src\font\lv_font_montserrat_22.c" />
<ClCompile Include="lvgl\src\font\lv_font_montserrat_24.c" />
<ClCompile Include="lvgl\src\font\lv_font_montserrat_26.c" />
<ClCompile Include="lvgl\src\font\lv_font_montserrat_28.c" />
<ClCompile Include="lvgl\src\font\lv_font_montserrat_28_compressed.c" />
<ClCompile Include="lvgl\src\font\lv_font_montserrat_30.c" />
<ClCompile Include="lvgl\src\font\lv_font_montserrat_32.c" />
<ClCompile Include="lvgl\src\font\lv_font_montserrat_34.c" />
<ClCompile Include="lvgl\src\font\lv_font_montserrat_36.c" />
<ClCompile Include="lvgl\src\font\lv_font_montserrat_38.c" />
<ClCompile Include="lvgl\src\font\lv_font_montserrat_40.c" />
<ClCompile Include="lvgl\src\font\lv_font_montserrat_42.c" />
<ClCompile Include="lvgl\src\font\lv_font_montserrat_44.c" />
<ClCompile Include="lvgl\src\font\lv_font_montserrat_46.c" />
<ClCompile Include="lvgl\src\font\lv_font_montserrat_48.c" />
<ClCompile Include="lvgl\src\font\lv_font_montserrat_8.c" />
<ClCompile Include="lvgl\src\font\lv_font_simsun_16_cjk.c" />
<ClCompile Include="lvgl\src\font\lv_font_unscii_16.c" />
<ClCompile Include="lvgl\src\font\lv_font_unscii_8.c" />
<ClCompile Include="lvgl\src\hal\lv_hal_disp.c" />
<ClCompile Include="lvgl\src\hal\lv_hal_indev.c" />
<ClCompile Include="lvgl\src\hal\lv_hal_tick.c" />
<ClCompile Include="lvgl\src\misc\lv_anim.c" />
<ClCompile Include="lvgl\src\misc\lv_anim_timeline.c" />
<ClCompile Include="lvgl\src\misc\lv_area.c" />
<ClCompile Include="lvgl\src\misc\lv_async.c" />
<ClCompile Include="lvgl\src\misc\lv_bidi.c" />
<ClCompile Include="lvgl\src\misc\lv_color.c" />
<ClCompile Include="lvgl\src\misc\lv_fs.c" />
<ClCompile Include="lvgl\src\misc\lv_gc.c" />
<ClCompile Include="lvgl\src\misc\lv_ll.c" />
<ClCompile Include="lvgl\src\misc\lv_log.c" />
<ClCompile Include="lvgl\src\misc\lv_lru.c" />
<ClCompile Include="lvgl\src\misc\lv_math.c" />
<ClCompile Include="lvgl\src\misc\lv_mem.c" />
<ClCompile Include="lvgl\src\misc\lv_printf.c" />
<ClCompile Include="lvgl\src\misc\lv_style.c" />
<ClCompile Include="lvgl\src\misc\lv_style_gen.c" />
<ClCompile Include="lvgl\src\misc\lv_templ.c" />
<ClCompile Include="lvgl\src\misc\lv_timer.c" />
<ClCompile Include="lvgl\src\misc\lv_tlsf.c" />
<ClCompile Include="lvgl\src\misc\lv_txt.c" />
<ClCompile Include="lvgl\src\misc\lv_txt_ap.c" />
<ClCompile Include="lvgl\src\misc\lv_utils.c" />
<ClCompile Include="lvgl\src\widgets\lv_arc.c" />
<ClCompile Include="lvgl\src\widgets\lv_bar.c" />
<ClCompile Include="lvgl\src\widgets\lv_btn.c" />
<ClCompile Include="lvgl\src\widgets\lv_btnmatrix.c" />
<ClCompile Include="lvgl\src\widgets\lv_canvas.c" />
<ClCompile Include="lvgl\src\widgets\lv_checkbox.c" />
<ClCompile Include="lvgl\src\widgets\lv_dropdown.c" />
<ClCompile Include="lvgl\src\widgets\lv_img.c" />
<ClCompile Include="lvgl\src\widgets\lv_label.c" />
<ClCompile Include="lvgl\src\widgets\lv_line.c" />
<ClCompile Include="lvgl\src\widgets\lv_objx_templ.c" />
<ClCompile Include="lvgl\src\widgets\lv_roller.c" />
<ClCompile Include="lvgl\src\widgets\lv_slider.c" />
<ClCompile Include="lvgl\src\widgets\lv_switch.c" />
<ClCompile Include="lvgl\src\widgets\lv_table.c" />
<ClCompile Include="lvgl\src\widgets\lv_textarea.c" />
<ClCompile Include="lvgl\tests\src\test_cases\test_arc.c" />
<ClCompile Include="lvgl\tests\src\test_cases\test_bar.c" />
<ClCompile Include="lvgl\tests\src\test_cases\test_checkbox.c" />
<ClCompile Include="lvgl\tests\src\test_cases\test_config.c" />
<ClCompile Include="lvgl\tests\src\test_cases\test_demo_stress.c" />
<ClCompile Include="lvgl\tests\src\test_cases\test_demo_widgets.c" />
<ClCompile Include="lvgl\tests\src\test_cases\test_dropdown.c" />
<ClCompile Include="lvgl\tests\src\test_cases\test_event.c" />
<ClCompile Include="lvgl\tests\src\test_cases\test_font_loader.c" />
<ClCompile Include="lvgl\tests\src\test_cases\test_fs.c" />
<ClCompile Include="lvgl\tests\src\test_cases\test_line.c" />
<ClCompile Include="lvgl\tests\src\test_cases\test_mem.c" />
<ClCompile Include="lvgl\tests\src\test_cases\test_obj_tree.c" />
<ClCompile Include="lvgl\tests\src\test_cases\test_slider.c" />
<ClCompile Include="lvgl\tests\src\test_cases\test_snapshot.c" />
<ClCompile Include="lvgl\tests\src\test_cases\test_style.c" />
<ClCompile Include="lvgl\tests\src\test_cases\test_switch.c" />
<ClCompile Include="lvgl\tests\src\test_cases\test_table.c" />
<ClCompile Include="lvgl\tests\src\test_cases\test_textarea.c" />
<ClCompile Include="lvgl\tests\src\test_cases\test_txt.c" />
<ClCompile Include="lvgl\tests\src\test_cases\_test_template.c" />
<ClCompile Include="lvgl\tests\src\test_fonts\font_1.c" />
<ClCompile Include="lvgl\tests\src\test_fonts\font_2.c" />
<ClCompile Include="lvgl\tests\src\test_fonts\font_3.c" />
<ClCompile Include="lvgl\tests\src\lv_test_indev.c" />
<ClCompile Include="lvgl\tests\src\lv_test_init.c" />
<ClCompile Include="lvgl\tests\unity\unity.c" />
<ClCompile Include="lvgl\tests\unity\unity_support.c" />
</ItemGroup>
<ItemGroup>
<None Include="lvgl\.github\ISSUE_TEMPLATE\bug-report.md" />
<None Include="lvgl\.github\ISSUE_TEMPLATE\config.yml" />
<None Include="lvgl\.github\ISSUE_TEMPLATE\dev-discussion.md" />
<None Include="lvgl\.github\workflows\arduino.yml" />
<None Include="lvgl\.github\workflows\build_micropython.yml" />
<None Include="lvgl\.github\workflows\ccpp.yml" />
<None Include="lvgl\.github\workflows\check_conf.yml" />
<None Include="lvgl\.github\workflows\check_style.yml" />
<None Include="lvgl\.github\workflows\close_old_issues.yml" />
<None Include="lvgl\.github\workflows\compile_docs.yml" />
<None Include="lvgl\.github\workflows\esp_upload_component.yml" />
<None Include="lvgl\.github\workflows\main.yml" />
<None Include="lvgl\.github\workflows\makefile.yml" />
<None Include="lvgl\.github\workflows\release.yml" />
<None Include="lvgl\.github\auto-comment.yml" />
<None Include="lvgl\.github\FUNDING.yml" />
<None Include="lvgl\.github\pull_request_template.md" />
<None Include="lvgl\docs\get-started\bindings\cpp.md" />
<None Include="lvgl\docs\get-started\bindings\index.md" />
<None Include="lvgl\docs\get-started\bindings\micropython.md" />
<None Include="lvgl\docs\get-started\os\freertos.md" />
<None Include="lvgl\docs\get-started\os\index.md" />
<None Include="lvgl\docs\get-started\os\nuttx.md" />
<None Include="lvgl\docs\get-started\os\rt-thread.md" />
<None Include="lvgl\docs\get-started\os\zephyr.md" />
<None Include="lvgl\docs\get-started\platforms\arduino.md" />
<None Include="lvgl\docs\get-started\platforms\cmake.md" />
<None Include="lvgl\docs\get-started\platforms\espressif.md" />
<None Include="lvgl\docs\get-started\platforms\index.md" />
<None Include="lvgl\docs\get-started\platforms\nxp.md" />
<None Include="lvgl\docs\get-started\platforms\pc-simulator.md" />
<None Include="lvgl\docs\get-started\platforms\stm32.md" />
<None Include="lvgl\docs\get-started\platforms\tasmota-berry.md" />
<None Include="lvgl\docs\get-started\index.md" />
<None Include="lvgl\docs\get-started\quick-overview.md" />
<None Include="lvgl\docs\intro\index.md" />
<None Include="lvgl\docs\layouts\flex.md" />
<None Include="lvgl\docs\layouts\grid.md" />
<None Include="lvgl\docs\layouts\index.md" />
<None Include="lvgl\docs\libs\bmp.md" />
<None Include="lvgl\docs\libs\ffmpeg.md" />
<None Include="lvgl\docs\libs\freetype.md" />
<None Include="lvgl\docs\libs\fsdrv.md" />
<None Include="lvgl\docs\libs\gif.md" />
<None Include="lvgl\docs\libs\index.md" />
<None Include="lvgl\docs\libs\png.md" />
<None Include="lvgl\docs\libs\qrcode.md" />
<None Include="lvgl\docs\libs\rlottie.md" />
<None Include="lvgl\docs\libs\sjpg.md" />
<None Include="lvgl\docs\misc\align.png" />
<None Include="lvgl\docs\misc\anim-timeline.png" />
<None Include="lvgl\docs\misc\bidi.png" />
<None Include="lvgl\docs\misc\boxmodel.png" />
<None Include="lvgl\docs\misc\btn_example.png" />
<None Include="lvgl\docs\misc\button_style_example.gif" />
<None Include="lvgl\docs\misc\button_style_example.png" />
<None Include="lvgl\docs\misc\codeblocks.jpg" />
<None Include="lvgl\docs\misc\eclipse.jpg" />
<None Include="lvgl\docs\misc\layers.png" />
<None Include="lvgl\docs\misc\par_child1.png" />
<None Include="lvgl\docs\misc\par_child2.png" />
<None Include="lvgl\docs\misc\par_child3.png" />
<None Include="lvgl\docs\misc\platformio.jpg" />
<None Include="lvgl\docs\misc\qtcreator.jpg" />
<None Include="lvgl\docs\misc\simple_button_example.gif" />
<None Include="lvgl\docs\misc\simple_button_example.png" />
<None Include="lvgl\docs\misc\symbols.png" />
<None Include="lvgl\docs\misc\sys.png" />
<None Include="lvgl\docs\misc\visualstudio.jpg" />
<None Include="lvgl\docs\others\fragment.md" />
<None Include="lvgl\docs\others\gridnav.md" />
<None Include="lvgl\docs\others\imgfont.md" />
<None Include="lvgl\docs\others\index.md" />
<None Include="lvgl\docs\others\monkey.md" />
<None Include="lvgl\docs\others\msg.md" />
<None Include="lvgl\docs\others\snapshot.md" />
<None Include="lvgl\docs\overview\renderers\arm-2d.md" />
<None Include="lvgl\docs\overview\renderers\dma2d.md" />
<None Include="lvgl\docs\overview\renderers\index.md" />
<None Include="lvgl\docs\overview\renderers\pxp-vglite.md" />
<None Include="lvgl\docs\overview\renderers\sdl.md" />
<None Include="lvgl\docs\overview\renderers\sw.md" />
<None Include="lvgl\docs\overview\animation.md" />
<None Include="lvgl\docs\overview\color.md" />
<None Include="lvgl\docs\overview\coords.md" />
<None Include="lvgl\docs\overview\display.md" />
<None Include="lvgl\docs\overview\drawing.md" />
<None Include="lvgl\docs\overview\event.md" />
<None Include="lvgl\docs\overview\file-system.md" />
<None Include="lvgl\docs\overview\font.md" />
<None Include="lvgl\docs\overview\image.md" />
<None Include="lvgl\docs\overview\indev.md" />
<None Include="lvgl\docs\overview\index.md" />
<None Include="lvgl\docs\overview\layer.md" />
<None Include="lvgl\docs\overview\new_widget.md" />
<None Include="lvgl\docs\overview\object.md" />
<None Include="lvgl\docs\overview\scroll.md" />
<None Include="lvgl\docs\overview\style-props.md" />
<None Include="lvgl\docs\overview\style.md" />
<None Include="lvgl\docs\overview\timer.md" />
<None Include="lvgl\docs\porting\display.md" />
<None Include="lvgl\docs\porting\gpu.md" />
<None Include="lvgl\docs\porting\indev.md" />
<None Include="lvgl\docs\porting\index.md" />
<None Include="lvgl\docs\porting\log.md" />
<None Include="lvgl\docs\porting\os.md" />
<None Include="lvgl\docs\porting\project.md" />
<None Include="lvgl\docs\porting\sleep.md" />
<None Include="lvgl\docs\porting\tick.md" />
<None Include="lvgl\docs\porting\timer-handler.md" />
<None Include="lvgl\docs\widgets\core\arc.md" />
<None Include="lvgl\docs\widgets\core\bar.md" />
<None Include="lvgl\docs\widgets\core\btn.md" />
<None Include="lvgl\docs\widgets\core\btnmatrix.md" />
<None Include="lvgl\docs\widgets\core\canvas.md" />
<None Include="lvgl\docs\widgets\core\checkbox.md" />
<None Include="lvgl\docs\widgets\core\dropdown.md" />
<None Include="lvgl\docs\widgets\core\img.md" />
<None Include="lvgl\docs\widgets\core\index.md" />
<None Include="lvgl\docs\widgets\core\label.md" />
<None Include="lvgl\docs\widgets\core\line.md" />
<None Include="lvgl\docs\widgets\core\roller.md" />
<None Include="lvgl\docs\widgets\core\slider.md" />
<None Include="lvgl\docs\widgets\core\switch.md" />
<None Include="lvgl\docs\widgets\core\table.md" />
<None Include="lvgl\docs\widgets\core\textarea.md" />
<None Include="lvgl\docs\widgets\extra\animimg.md" />
<None Include="lvgl\docs\widgets\extra\calendar.md" />
<None Include="lvgl\docs\widgets\extra\chart.md" />
<None Include="lvgl\docs\widgets\extra\colorwheel.md" />
<None Include="lvgl\docs\widgets\extra\imgbtn.md" />
<None Include="lvgl\docs\widgets\extra\index.md" />
<None Include="lvgl\docs\widgets\extra\keyboard.md" />
<None Include="lvgl\docs\widgets\extra\led.md" />
<None Include="lvgl\docs\widgets\extra\list.md" />
<None Include="lvgl\docs\widgets\extra\menu.md" />
<None Include="lvgl\docs\widgets\extra\meter.md" />
<None Include="lvgl\docs\widgets\extra\msgbox.md" />
<None Include="lvgl\docs\widgets\extra\span.md" />
<None Include="lvgl\docs\widgets\extra\spinbox.md" />
<None Include="lvgl\docs\widgets\extra\spinner.md" />
<None Include="lvgl\docs\widgets\extra\tabview.md" />
<None Include="lvgl\docs\widgets\extra\tileview.md" />
<None Include="lvgl\docs\widgets\extra\win.md" />
<None Include="lvgl\docs\widgets\index.md" />
<None Include="lvgl\docs\widgets\obj.md" />
<None Include="lvgl\docs\_ext\lv_example.py" />
<None Include="lvgl\docs\_static\css\custom.css" />
<None Include="lvgl\docs\_static\css\fontawesome.min.css" />
<None Include="lvgl\docs\_static\img\home_1.png" />
<None Include="lvgl\docs\_static\img\home_2.png" />
<None Include="lvgl\docs\_static\img\home_3.png" />
<None Include="lvgl\docs\_static\img\home_4.png" />
<None Include="lvgl\docs\_static\img\home_5.png" />
<None Include="lvgl\docs\_static\img\home_6.png" />
<None Include="lvgl\docs\_static\img\home_banner.jpg" />
<None Include="lvgl\docs\_static\js\custom.js" />
<None Include="lvgl\docs\_templates\layout.html" />
<None Include="lvgl\docs\_templates\page.html" />
<None Include="lvgl\docs\build.py" />
<None Include="lvgl\docs\CHANGELOG.md" />
<None Include="lvgl\docs\CODE_OF_CONDUCT.md" />
<None Include="lvgl\docs\CODING_STYLE.md" />
<None Include="lvgl\docs\conf.py" />
<None Include="lvgl\docs\CONTRIBUTING.md" />
<None Include="lvgl\docs\example_list.py" />
<None Include="lvgl\docs\favicon.png" />
<None Include="lvgl\docs\index.md" />
<None Include="lvgl\docs\logo_lvgl.png" />
<None Include="lvgl\docs\requirements.txt" />
<None Include="lvgl\docs\ROADMAP.md" />
<None Include="lvgl\env_support\cmake\custom.cmake" />
<None Include="lvgl\env_support\cmake\esp.cmake" />
<None Include="lvgl\env_support\cmake\micropython.cmake" />
<None Include="lvgl\env_support\cmake\zephyr.cmake" />
<None Include="lvgl\env_support\cmsis-pack\gen_pack.sh" />
<None Include="lvgl\env_support\cmsis-pack\LVGL.lvgl.1.0.4-alpha5.pack" />
<None Include="lvgl\env_support\cmsis-pack\LVGL.lvgl.pdsc" />
<None Include="lvgl\env_support\cmsis-pack\LVGL.pidx" />
<None Include="lvgl\env_support\cmsis-pack\lv_cmsis_pack.txt" />
<None Include="lvgl\env_support\cmsis-pack\README.md" />
<None Include="lvgl\env_support\rt-thread\SConscript" />
<None Include="lvgl\env_support\zephyr\module.yml" />
<None Include="lvgl\scripts\built_in_font\built_in_font_gen.py" />
<None Include="lvgl\scripts\built_in_font\DejaVuSans.ttf" />
<None Include="lvgl\scripts\built_in_font\FontAwesome5-Solid+Brands+Regular.woff" />
<None Include="lvgl\scripts\built_in_font\generate_all.py" />
<None Include="lvgl\scripts\built_in_font\Montserrat-Medium.ttf" />
<None Include="lvgl\scripts\built_in_font\SimSun.woff" />
<None Include="lvgl\scripts\built_in_font\unscii-8.ttf" />
<None Include="lvgl\scripts\release\com.py" />
<None Include="lvgl\scripts\release\commits.txt" />
<None Include="lvgl\scripts\release\patch.py" />
<None Include="lvgl\scripts\release\release.py" />
<None Include="lvgl\scripts\.gitignore" />
<None Include="lvgl\scripts\build_html_examples.sh" />
<None Include="lvgl\scripts\changelog-template.hbs" />
<None Include="lvgl\scripts\changelog_gen.sh" />
<None Include="lvgl\scripts\code-format.cfg" />
<None Include="lvgl\scripts\code-format.py" />
<None Include="lvgl\scripts\cppcheck_run.sh" />
<None Include="lvgl\scripts\Doxyfile" />
<None Include="lvgl\scripts\filetohex.py" />
<None Include="lvgl\scripts\find_version.sh" />
<None Include="lvgl\scripts\genexamplelist.sh" />
<None Include="lvgl\scripts\infer_run.sh" />
<None Include="lvgl\scripts\install-prerequisites.sh" />
<None Include="lvgl\scripts\jpg_to_sjpg.py" />
<None Include="lvgl\scripts\lv_conf_internal_gen.py" />
<None Include="lvgl\scripts\style_api_gen.py" />
<None Include="lvgl\src\core\lv_core.mk" />
<None Include="lvgl\src\draw\arm2d\lv_draw_arm2d.mk" />
<None Include="lvgl\src\draw\nxp\pxp\lv_draw_nxp_pxp.mk" />
<None Include="lvgl\src\draw\nxp\vglite\lv_draw_nxp_vglite.mk" />
<None Include="lvgl\src\draw\nxp\lv_draw_nxp.mk" />
<None Include="lvgl\src\draw\sdl\lv_draw_sdl.mk" />
<None Include="lvgl\src\draw\sdl\README.md" />
<None Include="lvgl\src\draw\stm32_dma2d\lv_draw_stm32_dma2d.mk" />
<None Include="lvgl\src\draw\sw\lv_draw_sw.mk" />
<None Include="lvgl\src\draw\swm341_dma2d\lv_draw_swm341_dma2d.mk" />
<None Include="lvgl\src\draw\lv_draw.mk" />
<None Include="lvgl\src\extra\libs\freetype\arial.ttf" />
<None Include="lvgl\src\extra\others\fragment\README.md" />
<None Include="lvgl\src\extra\lv_extra.mk" />
<None Include="lvgl\src\extra\README.md" />
<None Include="lvgl\src\font\korean.ttf" />
<None Include="lvgl\src\font\lv_font.mk" />
<None Include="lvgl\src\hal\lv_hal.mk" />
<None Include="lvgl\src\misc\lv_misc.mk" />
<None Include="lvgl\src\widgets\lv_widgets.mk" />
<None Include="lvgl\tests\makefile\Makefile" />
<None Include="lvgl\tests\ref_imgs\dropdown_1.png" />
<None Include="lvgl\tests\ref_imgs\dropdown_2.png" />
<None Include="lvgl\tests\ref_imgs\scr1.png" />
<None Include="lvgl\tests\ref_imgs\table_1.png" />
<None Include="lvgl\tests\src\test_files\readtest.txt" />
<None Include="lvgl\tests\src\test_fonts\font_1.fnt" />
<None Include="lvgl\tests\src\test_fonts\font_2.fnt" />
<None Include="lvgl\tests\src\test_fonts\font_3.fnt" />
<None Include="lvgl\tests\unity\generate_test_runner.rb" />
<None Include="lvgl\tests\unity\run_test.erb" />
<None Include="lvgl\tests\unity\type_sanitizer.rb" />
<None Include="lvgl\tests\.gitignore" />
<None Include="lvgl\tests\CMakeLists.txt" />
<None Include="lvgl\tests\config.yml" />
<None Include="lvgl\tests\main.py" />
<None Include="lvgl\tests\README.md" />
<None Include="lvgl\.codecov.yml" />
<None Include="lvgl\.editorconfig" />
<None Include="lvgl\.git" />
<None Include="lvgl\.gitignore" />
<None Include="lvgl\.pre-commit-config.yaml" />
<None Include="lvgl\CMakeLists.txt" />
<None Include="lvgl\component.mk" />
<None Include="lvgl\idf_component.yml" />
<None Include="lvgl\Kconfig" />
<None Include="lvgl\library.json" />
<None Include="lvgl\library.properties" />
<None Include="lvgl\LICENCE.txt" />
<None Include="lvgl\lvgl.mk" />
<None Include="lvgl\README.md" />
<None Include="lvgl\README_pt_BR.md" />
<None Include="lvgl\README_zh.md" />
<None Include="lvgl\SConscript" />
</ItemGroup>
</Project>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,271 @@
/*
* PROJECT: LVGL PC Simulator using Visual Studio
* FILE: LVGL.Simulator.cpp
* PURPOSE: Implementation for LVGL ported to Windows Desktop
*
* LICENSE: The MIT License
*
* DEVELOPER: Mouri_Naruto (Mouri_Naruto AT Outlook.com)
*/
#include <Windows.h>
#include "resource.h"
#if _MSC_VER >= 1200
// Disable compilation warnings.
#pragma warning(push)
// nonstandard extension used : bit field types other than int
#pragma warning(disable:4214)
// 'conversion' conversion from 'type1' to 'type2', possible loss of data
#pragma warning(disable:4244)
#endif
#include "lvgl/lvgl.h"
#include "lv_drivers/win32drv/win32drv.h"
extern "C"{
#include "pikascript_entry.h"
}
#if _MSC_VER >= 1200
// Restore compilation warnings.
#pragma warning(pop)
#endif
#include <stdio.h>
int main()
{
lv_init();
if (!lv_win32_init(
GetModuleHandleW(NULL),
SW_SHOW,
800,
480,
LoadIconW(GetModuleHandleW(NULL), MAKEINTRESOURCE(IDI_LVGL))))
{
return -1;
}
lv_win32_add_all_input_devices_to_group(NULL);
pikascript_entry();
/*
* Demos, benchmarks, and tests.
*
* Uncomment any one (and only one) of the functions below to run that
* item.
*/
// ----------------------------------
// my freetype application
// ----------------------------------
///*Init freetype library
// *Cache max 64 faces and 1 size*/
//lv_freetype_init(64, 1, 0);
///*Create a font*/
//static lv_ft_info_t info;
//info.name = "./lvgl/src/extra/libs/freetype/arial.ttf";
//info.weight = 36;
//info.style = FT_FONT_STYLE_NORMAL;
//lv_ft_font_init(&info);
///*Create style with the new font*/
//static lv_style_t style;
//lv_style_init(&style);
//lv_style_set_text_font(&style, info.font);
///*Create a label with the new style*/
//lv_obj_t* label = lv_label_create(lv_scr_act());
//lv_obj_add_style(label, &style, 0);
//lv_label_set_text(label, "FreeType Arial Test");
// ----------------------------------
// my Win32 filesystem driver application
// ----------------------------------
/*::lv_fs_win32_init();
lv_fs_dir_t d;
if (lv_fs_dir_open(&d, "/") == LV_FS_RES_OK)
{
char b[MAX_PATH];
memset(b, 0, MAX_PATH);
while (lv_fs_dir_read(&d, b) == LV_FS_RES_OK)
{
printf("%s\n", b);
}
lv_fs_dir_close(&d);
}*/
// ----------------------------------
// Demos from lv_examples
// ----------------------------------
// lv_demo_widgets(); // ok
// lv_demo_benchmark();
// lv_demo_keypad_encoder(); // ok
// lv_demo_music(); // removed from repository
// lv_demo_printer(); // removed from repository
// lv_demo_stress(); // ok
// ----------------------------------
// LVGL examples
// ----------------------------------
/*
* There are many examples of individual widgets found under the
* lvgl\exampless directory. Here are a few sample test functions.
* Look in that directory to find all the rest.
*/
// lv_ex_get_started_1();
// lv_ex_get_started_2();
// lv_ex_get_started_3();
// lv_example_flex_1();
// lv_example_flex_2();
// lv_example_flex_3();
// lv_example_flex_4();
// lv_example_flex_5();
// lv_example_flex_6(); // ok
// lv_example_grid_1();
// lv_example_grid_2();
// lv_example_grid_3();
// lv_example_grid_4();
// lv_example_grid_5();
// lv_example_grid_6();
// lv_port_disp_template();
// lv_port_fs_template();
// lv_port_indev_template();
// lv_example_scroll_1();
// lv_example_scroll_2();
// lv_example_scroll_3();
// lv_example_style_1();
// lv_example_style_2();
// lv_example_style_3();
// lv_example_style_4(); // ok
// lv_example_style_6(); // file has no source code
// lv_example_style_7();
// lv_example_style_8();
// lv_example_style_9();
// lv_example_style_10();
// lv_example_style_11(); // ok
// ----------------------------------
// LVGL widgets examples
// ----------------------------------
// lv_example_arc_1();
// lv_example_arc_2();
// lv_example_bar_1(); // ok
// lv_example_bar_2();
// lv_example_bar_3();
// lv_example_bar_4();
// lv_example_bar_5();
// lv_example_bar_6(); // issues
// lv_example_btn_1();
// lv_example_btn_2();
// lv_example_btn_3();
// lv_example_btnmatrix_1();
// lv_example_btnmatrix_2();
// lv_example_btnmatrix_3();
// lv_example_calendar_1();
// lv_example_canvas_1();
// lv_example_canvas_2();
// lv_example_chart_1(); // ok
// lv_example_chart_2(); // ok
// lv_example_chart_3(); // ok
// lv_example_chart_4(); // ok
// lv_example_chart_5(); // ok
// lv_example_chart_6(); // ok
// lv_example_checkbox_1();
// lv_example_colorwheel_1(); // ok
// lv_example_dropdown_1();
// lv_example_dropdown_2();
// lv_example_dropdown_3();
// lv_example_img_1();
// lv_example_img_2();
// lv_example_img_3();
// lv_example_img_4(); // ok
// lv_example_imgbtn_1();
// lv_example_keyboard_1(); // ok
// lv_example_label_1();
// lv_example_label_2(); // ok
// lv_example_led_1();
// lv_example_line_1();
// lv_example_list_1();
// lv_example_meter_1();
// lv_example_meter_2();
// lv_example_meter_3();
// lv_example_meter_4(); // ok
// lv_example_msgbox_1();
// lv_example_obj_1(); // ok
// lv_example_roller_1();
// lv_example_roller_2(); // ok
// lv_example_slider_1(); // ok
// lv_example_slider_2(); // issues
// lv_example_slider_3(); // issues
// lv_example_spinbox_1();
// lv_example_spinner_1(); // ok
// lv_example_switch_1(); // ok
// lv_example_table_1();
// lv_example_table_2(); // ok
// lv_example_tabview_1();
// lv_example_textarea_1(); // ok
// lv_example_textarea_2();
// lv_example_textarea_3(); // ok, but not all button have functions
// lv_example_tileview_1(); // ok
// lv_example_win_1(); // ok
// ----------------------------------
// Task handler loop
// ----------------------------------
while (!lv_win32_quit_signal)
{
lv_task_handler();
Sleep(1);
}
return 0;
}

View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*"/>
</dependentAssembly>
</dependency>
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">True/PM</dpiAware>
<dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2, PerMonitor</dpiAwareness>
</windowsSettings>
</application>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
</application>
</compatibility>
</assembly>

Binary file not shown.

View File

@ -0,0 +1,198 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="Mile.Project.Windows.Legacy\Mile.Project.Platform.Win32.props" />
<Import Project="Mile.Project.Windows.Legacy\Mile.Project.Platform.x64.props" />
<Import Project="Mile.Project.Windows.Legacy\Mile.Project.Platform.ARM64.props" />
<PropertyGroup Label="Globals">
<ProjectGuid>{3CA6E070-4AC1-475E-BB17-CF29AE4806DF}</ProjectGuid>
<RootNamespace>LVGL</RootNamespace>
<MileProjectType>ConsoleApplication</MileProjectType>
<MileProjectManifestFile>LVGL.Simulator.manifest</MileProjectManifestFile>
<MileProjectEnableVCLTLSupport>true</MileProjectEnableVCLTLSupport>
</PropertyGroup>
<PropertyGroup Label="Configuration" Condition="'$(Configuration)'=='Debug'">
<SupportLTL>false</SupportLTL>
</PropertyGroup>
<Import Project="Mile.Project.Windows.Legacy\Mile.Project.Cpp.props" />
<Import Project="freetype.props" />
<PropertyGroup>
<IncludePath>$(MSBuildThisFileDirectory)pikascript\pikascript-lib/PikaStdLib;$(MSBuildThisFileDirectory)pikascript\pikascript-core;$(MSBuildThisFileDirectory)pikascript\pikascript-api;$(MSBuildThisFileDirectory)lvgl;$(MSBuildThisFileDirectory);$(IncludePath)</IncludePath>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<TreatWarningAsError>false</TreatWarningAsError>
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Optimization Condition="'$(Configuration)'=='Release'">MinSpace</Optimization>
</ClCompile>
<PreBuildEvent>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">cd $(MSBuildThisFileDirectory)pikascript &amp;&amp; rust-msc-latest-win10.exe</Command>
</PreBuildEvent>
<PreBuildEvent>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">cd $(MSBuildThisFileDirectory)pikascript &amp;&amp; rust-msc-latest-win10.exe</Command>
</PreBuildEvent>
</ItemDefinitionGroup>
<Import Project="LVGL.Portable.vcxitems" />
<Import Project="LVGL.Drivers.vcxitems" />
<ItemGroup>
<ClInclude Include="lv_conf.h" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="lv_drv_conf.h" />
</ItemGroup>
<ItemGroup>
<Manifest Include="LVGL.Simulator.manifest" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="Mile.Project.Properties.h" />
<ClInclude Include="pikascript\pikascript-api\PikaDebug.h" />
<ClInclude Include="pikascript\pikascript-api\PikaDebug_Debuger.h" />
<ClInclude Include="pikascript\pikascript-api\PikaMain.h" />
<ClInclude Include="pikascript\pikascript-api\pikaScript.h" />
<ClInclude Include="pikascript\pikascript-api\PikaStdData.h" />
<ClInclude Include="pikascript\pikascript-api\PikaStdData_ByteArray.h" />
<ClInclude Include="pikascript\pikascript-api\PikaStdData_Dict.h" />
<ClInclude Include="pikascript\pikascript-api\PikaStdData_List.h" />
<ClInclude Include="pikascript\pikascript-api\PikaStdData_String.h" />
<ClInclude Include="pikascript\pikascript-api\PikaStdData_Utils.h" />
<ClInclude Include="pikascript\pikascript-api\PikaStdLib.h" />
<ClInclude Include="pikascript\pikascript-api\PikaStdLib_MemChecker.h" />
<ClInclude Include="pikascript\pikascript-api\PikaStdLib_PikaObj.h" />
<ClInclude Include="pikascript\pikascript-api\PikaStdLib_RangeObj.h" />
<ClInclude Include="pikascript\pikascript-api\PikaStdLib_StringObj.h" />
<ClInclude Include="pikascript\pikascript-api\PikaStdLib_SysObj.h" />
<ClInclude Include="pikascript\pikascript-api\PikaStdTask.h" />
<ClInclude Include="pikascript\pikascript-api\PikaStdTask_Task.h" />
<ClInclude Include="pikascript\pikascript-api\pika_lvgl.h" />
<ClInclude Include="pikascript\pikascript-api\pika_lvgl_arc.h" />
<ClInclude Include="pikascript\pikascript-api\pika_lvgl_bar.h" />
<ClInclude Include="pikascript\pikascript-api\pika_lvgl_btn.h" />
<ClInclude Include="pikascript\pikascript-api\pika_lvgl_checkbox.h" />
<ClInclude Include="pikascript\pikascript-api\pika_lvgl_dropdown.h" />
<ClInclude Include="pikascript\pikascript-api\pika_lvgl_label.h" />
<ClInclude Include="pikascript\pikascript-api\pika_lvgl_lv_event.h" />
<ClInclude Include="pikascript\pikascript-api\pika_lvgl_lv_obj.h" />
<ClInclude Include="pikascript\pikascript-api\pika_lvgl_roller.h" />
<ClInclude Include="pikascript\pikascript-api\pika_lvgl_slider.h" />
<ClInclude Include="pikascript\pikascript-api\pika_lvgl_switch.h" />
<ClInclude Include="pikascript\pikascript-api\pika_lvgl_table.h" />
<ClInclude Include="pikascript\pikascript-api\pika_lvgl_textarea.h" />
<ClInclude Include="pikascript\pikascript-core\BaseObj.h" />
<ClInclude Include="pikascript\pikascript-core\dataArg.h" />
<ClInclude Include="pikascript\pikascript-core\dataArgs.h" />
<ClInclude Include="pikascript\pikascript-core\dataLink.h" />
<ClInclude Include="pikascript\pikascript-core\dataLinkNode.h" />
<ClInclude Include="pikascript\pikascript-core\dataMemory.h" />
<ClInclude Include="pikascript\pikascript-core\dataQueue.h" />
<ClInclude Include="pikascript\pikascript-core\dataQueueObj.h" />
<ClInclude Include="pikascript\pikascript-core\dataStack.h" />
<ClInclude Include="pikascript\pikascript-core\dataString.h" />
<ClInclude Include="pikascript\pikascript-core\dataStrs.h" />
<ClInclude Include="pikascript\pikascript-core\PikaCompiler.h" />
<ClInclude Include="pikascript\pikascript-core\PikaObj.h" />
<ClInclude Include="pikascript\pikascript-core\PikaParser.h" />
<ClInclude Include="pikascript\pikascript-core\PikaPlatform.h" />
<ClInclude Include="pikascript\pikascript-core\PikaVM.h" />
<ClInclude Include="pikascript\pikascript-core\pika_config_valid.h" />
<ClInclude Include="pikascript\pikascript-core\TinyObj.h" />
<ClInclude Include="pikascript\pikascript-core\__instruction_def.h" />
<ClInclude Include="pikascript\pikascript-core\__pika_ooc.h" />
<ClInclude Include="pikascript\pikascript-lib\PikaStdLib\PikaStdData_String_Util.h" />
<ClInclude Include="pikascript_entry.h" />
<ClInclude Include="resource.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="LVGL.Simulator.cpp" />
<ClCompile Include="pikascript\pikascript-api\PikaDebug-api.c" />
<ClCompile Include="pikascript\pikascript-api\PikaDebug_Debuger-api.c" />
<ClCompile Include="pikascript\pikascript-api\PikaMain-api.c" />
<ClCompile Include="pikascript\pikascript-api\pikaScript.c" />
<ClCompile Include="pikascript\pikascript-api\PikaStdData-api.c" />
<ClCompile Include="pikascript\pikascript-api\PikaStdData_ByteArray-api.c" />
<ClCompile Include="pikascript\pikascript-api\PikaStdData_Dict-api.c" />
<ClCompile Include="pikascript\pikascript-api\PikaStdData_List-api.c" />
<ClCompile Include="pikascript\pikascript-api\PikaStdData_String-api.c" />
<ClCompile Include="pikascript\pikascript-api\PikaStdData_Utils-api.c" />
<ClCompile Include="pikascript\pikascript-api\PikaStdLib-api.c" />
<ClCompile Include="pikascript\pikascript-api\PikaStdLib_MemChecker-api.c" />
<ClCompile Include="pikascript\pikascript-api\PikaStdLib_PikaObj-api.c" />
<ClCompile Include="pikascript\pikascript-api\PikaStdLib_RangeObj-api.c" />
<ClCompile Include="pikascript\pikascript-api\PikaStdLib_StringObj-api.c" />
<ClCompile Include="pikascript\pikascript-api\PikaStdLib_SysObj-api.c" />
<ClCompile Include="pikascript\pikascript-api\PikaStdTask-api.c" />
<ClCompile Include="pikascript\pikascript-api\PikaStdTask_Task-api.c" />
<ClCompile Include="pikascript\pikascript-api\pika_lvgl-api.c" />
<ClCompile Include="pikascript\pikascript-api\pika_lvgl_arc-api.c" />
<ClCompile Include="pikascript\pikascript-api\pika_lvgl_bar-api.c" />
<ClCompile Include="pikascript\pikascript-api\pika_lvgl_btn-api.c" />
<ClCompile Include="pikascript\pikascript-api\pika_lvgl_checkbox-api.c" />
<ClCompile Include="pikascript\pikascript-api\pika_lvgl_dropdown-api.c" />
<ClCompile Include="pikascript\pikascript-api\pika_lvgl_label-api.c" />
<ClCompile Include="pikascript\pikascript-api\pika_lvgl_lv_event-api.c" />
<ClCompile Include="pikascript\pikascript-api\pika_lvgl_lv_obj-api.c" />
<ClCompile Include="pikascript\pikascript-api\pika_lvgl_roller-api.c" />
<ClCompile Include="pikascript\pikascript-api\pika_lvgl_slider-api.c" />
<ClCompile Include="pikascript\pikascript-api\pika_lvgl_switch-api.c" />
<ClCompile Include="pikascript\pikascript-api\pika_lvgl_table-api.c" />
<ClCompile Include="pikascript\pikascript-api\pika_lvgl_textarea-api.c" />
<ClCompile Include="pikascript\pikascript-api\__asset_pikaModules_py_a.c" />
<ClCompile Include="pikascript\pikascript-core\BaseObj.c" />
<ClCompile Include="pikascript\pikascript-core\dataArg.c" />
<ClCompile Include="pikascript\pikascript-core\dataArgs.c" />
<ClCompile Include="pikascript\pikascript-core\dataLink.c" />
<ClCompile Include="pikascript\pikascript-core\dataLinkNode.c" />
<ClCompile Include="pikascript\pikascript-core\dataMemory.c" />
<ClCompile Include="pikascript\pikascript-core\dataQueue.c" />
<ClCompile Include="pikascript\pikascript-core\dataQueueObj.c" />
<ClCompile Include="pikascript\pikascript-core\dataStack.c" />
<ClCompile Include="pikascript\pikascript-core\dataString.c" />
<ClCompile Include="pikascript\pikascript-core\dataStrs.c" />
<ClCompile Include="pikascript\pikascript-core\PikaCompiler.c" />
<ClCompile Include="pikascript\pikascript-core\PikaObj.c" />
<ClCompile Include="pikascript\pikascript-core\PikaParser.c" />
<ClCompile Include="pikascript\pikascript-core\PikaPlatform.c" />
<ClCompile Include="pikascript\pikascript-core\PikaVM.c" />
<ClCompile Include="pikascript\pikascript-core\TinyObj.c" />
<ClCompile Include="pikascript\pikascript-lib\PikaStdLib\PikaDebuger_Debuger.c" />
<ClCompile Include="pikascript\pikascript-lib\PikaStdLib\PikaStdData_Dict.c" />
<ClCompile Include="pikascript\pikascript-lib\PikaStdLib\PikaStdData_List.c" />
<ClCompile Include="pikascript\pikascript-lib\PikaStdLib\PikaStdData_String.c" />
<ClCompile Include="pikascript\pikascript-lib\PikaStdLib\PikaStdData_Utils.c" />
<ClCompile Include="pikascript\pikascript-lib\PikaStdLib\PikaStdLib_MemChecker.c" />
<ClCompile Include="pikascript\pikascript-lib\PikaStdLib\PikaStdLib_RangeObj.c" />
<ClCompile Include="pikascript\pikascript-lib\PikaStdLib\PikaStdLib_StringObj.c" />
<ClCompile Include="pikascript\pikascript-lib\PikaStdLib\PikaStdLib_SysObj.c" />
<ClCompile Include="pikascript\pikascript-lib\PikaStdLib\PikaStdTask_Task.c" />
<ClCompile Include="pikascript\pikascript-lib\pika_lvgl\pika_lvgl.c" />
<ClCompile Include="pikascript\pikascript-lib\pika_lvgl\pika_lvgl_arc.c" />
<ClCompile Include="pikascript\pikascript-lib\pika_lvgl\pika_lvgl_bar.c" />
<ClCompile Include="pikascript\pikascript-lib\pika_lvgl\pika_lvgl_btn.c" />
<ClCompile Include="pikascript\pikascript-lib\pika_lvgl\pika_lvgl_checkbox.c" />
<ClCompile Include="pikascript\pikascript-lib\pika_lvgl\pika_lvgl_dropdown.c" />
<ClCompile Include="pikascript\pikascript-lib\pika_lvgl\pika_lvgl_label.c" />
<ClCompile Include="pikascript\pikascript-lib\pika_lvgl\pika_lvgl_lv_event.c" />
<ClCompile Include="pikascript\pikascript-lib\pika_lvgl\pika_lvgl_lv_obj.c" />
<ClCompile Include="pikascript\pikascript-lib\pika_lvgl\pika_lvgl_roller.c" />
<ClCompile Include="pikascript\pikascript-lib\pika_lvgl\pika_lvgl_slider.c" />
<ClCompile Include="pikascript\pikascript-lib\pika_lvgl\pika_lvgl_switch.c" />
<ClCompile Include="pikascript\pikascript-lib\pika_lvgl\pika_lvgl_table.c" />
<ClCompile Include="pikascript\pikascript-lib\pika_lvgl\pika_lvgl_textarea.c" />
<ClCompile Include="pikascript_entry.c" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="LVGL.Simulator.rc" />
</ItemGroup>
<ItemGroup>
<Image Include="LVGL.ico" />
</ItemGroup>
<ItemGroup>
<None Include="freetype.props" />
<ClInclude Include="pikascript\pikascript-core\__instruction_table.cfg">
<FileType>Document</FileType>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</DeploymentContent>
</ClInclude>
</ItemGroup>
<Import Project="Mile.Project.Windows.Legacy\Mile.Project.Cpp.targets" />
</Project>

View File

@ -0,0 +1,158 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="LVGL.Portable.vcxitems.filters" />
<Import Project="LVGL.Drivers.vcxitems.filters" />
<ItemGroup>
<ClInclude Include="lv_conf.h" />
<ClInclude Include="lv_drv_conf.h" />
<ClInclude Include="pikascript\pikascript-core\__instruction_def.h" />
<ClInclude Include="pikascript\pikascript-core\__pika_ooc.h" />
<ClInclude Include="pikascript\pikascript-core\BaseObj.h" />
<ClInclude Include="pikascript\pikascript-core\dataArg.h" />
<ClInclude Include="pikascript\pikascript-core\dataArgs.h" />
<ClInclude Include="pikascript\pikascript-core\dataLink.h" />
<ClInclude Include="pikascript\pikascript-core\dataLinkNode.h" />
<ClInclude Include="pikascript\pikascript-core\dataMemory.h" />
<ClInclude Include="pikascript\pikascript-core\dataQueue.h" />
<ClInclude Include="pikascript\pikascript-core\dataQueueObj.h" />
<ClInclude Include="pikascript\pikascript-core\dataStack.h" />
<ClInclude Include="pikascript\pikascript-core\dataString.h" />
<ClInclude Include="pikascript\pikascript-core\dataStrs.h" />
<ClInclude Include="pikascript\pikascript-core\pika_config_valid.h" />
<ClInclude Include="pikascript\pikascript-core\PikaCompiler.h" />
<ClInclude Include="pikascript\pikascript-core\PikaObj.h" />
<ClInclude Include="pikascript\pikascript-core\PikaParser.h" />
<ClInclude Include="pikascript\pikascript-core\PikaPlatform.h" />
<ClInclude Include="pikascript\pikascript-core\PikaVM.h" />
<ClInclude Include="pikascript\pikascript-core\TinyObj.h" />
<ClInclude Include="pikascript\pikascript-lib\PikaStdLib\PikaStdData_String_Util.h" />
<ClInclude Include="pikascript\pikascript-core\__instruction_table.cfg" />
<ClInclude Include="pikascript_entry.h" />
<ClInclude Include="pikascript\pikascript-api\pika_lvgl.h" />
<ClInclude Include="pikascript\pikascript-api\pika_lvgl_arc.h" />
<ClInclude Include="pikascript\pikascript-api\pika_lvgl_bar.h" />
<ClInclude Include="pikascript\pikascript-api\pika_lvgl_btn.h" />
<ClInclude Include="pikascript\pikascript-api\pika_lvgl_checkbox.h" />
<ClInclude Include="pikascript\pikascript-api\pika_lvgl_dropdown.h" />
<ClInclude Include="pikascript\pikascript-api\pika_lvgl_label.h" />
<ClInclude Include="pikascript\pikascript-api\pika_lvgl_lv_obj.h" />
<ClInclude Include="pikascript\pikascript-api\pika_lvgl_roller.h" />
<ClInclude Include="pikascript\pikascript-api\pika_lvgl_slider.h" />
<ClInclude Include="pikascript\pikascript-api\pika_lvgl_switch.h" />
<ClInclude Include="pikascript\pikascript-api\pika_lvgl_table.h" />
<ClInclude Include="pikascript\pikascript-api\pika_lvgl_textarea.h" />
<ClInclude Include="pikascript\pikascript-api\PikaDebug.h" />
<ClInclude Include="pikascript\pikascript-api\PikaDebug_Debuger.h" />
<ClInclude Include="pikascript\pikascript-api\PikaMain.h" />
<ClInclude Include="pikascript\pikascript-api\pikaScript.h" />
<ClInclude Include="pikascript\pikascript-api\PikaStdData.h" />
<ClInclude Include="pikascript\pikascript-api\PikaStdData_ByteArray.h" />
<ClInclude Include="pikascript\pikascript-api\PikaStdData_Dict.h" />
<ClInclude Include="pikascript\pikascript-api\PikaStdData_List.h" />
<ClInclude Include="pikascript\pikascript-api\PikaStdData_String.h" />
<ClInclude Include="pikascript\pikascript-api\PikaStdData_Utils.h" />
<ClInclude Include="pikascript\pikascript-api\PikaStdLib.h" />
<ClInclude Include="pikascript\pikascript-api\PikaStdLib_MemChecker.h" />
<ClInclude Include="pikascript\pikascript-api\PikaStdLib_PikaObj.h" />
<ClInclude Include="pikascript\pikascript-api\PikaStdLib_RangeObj.h" />
<ClInclude Include="pikascript\pikascript-api\PikaStdLib_StringObj.h" />
<ClInclude Include="pikascript\pikascript-api\PikaStdLib_SysObj.h" />
<ClInclude Include="pikascript\pikascript-api\PikaStdTask.h" />
<ClInclude Include="pikascript\pikascript-api\PikaStdTask_Task.h" />
<ClInclude Include="pikascript\pikascript-api\pika_lvgl_lv_event.h" />
</ItemGroup>
<ItemGroup>
<Manifest Include="LVGL.Simulator.manifest" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="Mile.Project.Properties.h" />
<ClInclude Include="resource.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="LVGL.Simulator.cpp" />
<ClCompile Include="pikascript\pikascript-core\BaseObj.c" />
<ClCompile Include="pikascript\pikascript-core\dataArg.c" />
<ClCompile Include="pikascript\pikascript-core\dataArgs.c" />
<ClCompile Include="pikascript\pikascript-core\dataLink.c" />
<ClCompile Include="pikascript\pikascript-core\dataLinkNode.c" />
<ClCompile Include="pikascript\pikascript-core\dataMemory.c" />
<ClCompile Include="pikascript\pikascript-core\dataQueue.c" />
<ClCompile Include="pikascript\pikascript-core\dataQueueObj.c" />
<ClCompile Include="pikascript\pikascript-core\dataStack.c" />
<ClCompile Include="pikascript\pikascript-core\dataString.c" />
<ClCompile Include="pikascript\pikascript-core\dataStrs.c" />
<ClCompile Include="pikascript\pikascript-core\PikaCompiler.c" />
<ClCompile Include="pikascript\pikascript-core\PikaObj.c" />
<ClCompile Include="pikascript\pikascript-core\PikaParser.c" />
<ClCompile Include="pikascript\pikascript-core\PikaPlatform.c" />
<ClCompile Include="pikascript\pikascript-core\PikaVM.c" />
<ClCompile Include="pikascript\pikascript-core\TinyObj.c" />
<ClCompile Include="pikascript\pikascript-lib\PikaStdLib\PikaDebuger_Debuger.c" />
<ClCompile Include="pikascript\pikascript-lib\PikaStdLib\PikaStdData_Dict.c" />
<ClCompile Include="pikascript\pikascript-lib\PikaStdLib\PikaStdData_List.c" />
<ClCompile Include="pikascript\pikascript-lib\PikaStdLib\PikaStdData_String.c" />
<ClCompile Include="pikascript\pikascript-lib\PikaStdLib\PikaStdData_Utils.c" />
<ClCompile Include="pikascript\pikascript-lib\PikaStdLib\PikaStdLib_MemChecker.c" />
<ClCompile Include="pikascript\pikascript-lib\PikaStdLib\PikaStdLib_RangeObj.c" />
<ClCompile Include="pikascript\pikascript-lib\PikaStdLib\PikaStdLib_StringObj.c" />
<ClCompile Include="pikascript\pikascript-lib\PikaStdLib\PikaStdLib_SysObj.c" />
<ClCompile Include="pikascript\pikascript-lib\PikaStdLib\PikaStdTask_Task.c" />
<ClCompile Include="pikascript_entry.c" />
<ClCompile Include="pikascript\pikascript-lib\pika_lvgl\pika_lvgl.c" />
<ClCompile Include="pikascript\pikascript-lib\pika_lvgl\pika_lvgl_arc.c" />
<ClCompile Include="pikascript\pikascript-lib\pika_lvgl\pika_lvgl_lv_obj.c" />
<ClCompile Include="pikascript\pikascript-lib\pika_lvgl\pika_lvgl_bar.c" />
<ClCompile Include="pikascript\pikascript-lib\pika_lvgl\pika_lvgl_btn.c" />
<ClCompile Include="pikascript\pikascript-lib\pika_lvgl\pika_lvgl_checkbox.c" />
<ClCompile Include="pikascript\pikascript-lib\pika_lvgl\pika_lvgl_dropdown.c" />
<ClCompile Include="pikascript\pikascript-lib\pika_lvgl\pika_lvgl_label.c" />
<ClCompile Include="pikascript\pikascript-lib\pika_lvgl\pika_lvgl_roller.c" />
<ClCompile Include="pikascript\pikascript-lib\pika_lvgl\pika_lvgl_slider.c" />
<ClCompile Include="pikascript\pikascript-lib\pika_lvgl\pika_lvgl_switch.c" />
<ClCompile Include="pikascript\pikascript-lib\pika_lvgl\pika_lvgl_table.c" />
<ClCompile Include="pikascript\pikascript-lib\pika_lvgl\pika_lvgl_textarea.c" />
<ClCompile Include="pikascript\pikascript-api\__asset_pikaModules_py_a.c" />
<ClCompile Include="pikascript\pikascript-api\pika_lvgl_arc-api.c" />
<ClCompile Include="pikascript\pikascript-api\pika_lvgl_bar-api.c" />
<ClCompile Include="pikascript\pikascript-api\pika_lvgl_btn-api.c" />
<ClCompile Include="pikascript\pikascript-api\pika_lvgl_checkbox-api.c" />
<ClCompile Include="pikascript\pikascript-api\pika_lvgl_dropdown-api.c" />
<ClCompile Include="pikascript\pikascript-api\pika_lvgl_label-api.c" />
<ClCompile Include="pikascript\pikascript-api\pika_lvgl_lv_obj-api.c" />
<ClCompile Include="pikascript\pikascript-api\pika_lvgl_roller-api.c" />
<ClCompile Include="pikascript\pikascript-api\pika_lvgl_slider-api.c" />
<ClCompile Include="pikascript\pikascript-api\pika_lvgl_switch-api.c" />
<ClCompile Include="pikascript\pikascript-api\pika_lvgl_table-api.c" />
<ClCompile Include="pikascript\pikascript-api\pika_lvgl_textarea-api.c" />
<ClCompile Include="pikascript\pikascript-api\pika_lvgl-api.c" />
<ClCompile Include="pikascript\pikascript-api\PikaDebug_Debuger-api.c" />
<ClCompile Include="pikascript\pikascript-api\PikaDebug-api.c" />
<ClCompile Include="pikascript\pikascript-api\PikaMain-api.c" />
<ClCompile Include="pikascript\pikascript-api\pikaScript.c" />
<ClCompile Include="pikascript\pikascript-api\PikaStdData_ByteArray-api.c" />
<ClCompile Include="pikascript\pikascript-api\PikaStdData_Dict-api.c" />
<ClCompile Include="pikascript\pikascript-api\PikaStdData_List-api.c" />
<ClCompile Include="pikascript\pikascript-api\PikaStdData_String-api.c" />
<ClCompile Include="pikascript\pikascript-api\PikaStdData_Utils-api.c" />
<ClCompile Include="pikascript\pikascript-api\PikaStdData-api.c" />
<ClCompile Include="pikascript\pikascript-api\PikaStdLib_MemChecker-api.c" />
<ClCompile Include="pikascript\pikascript-api\PikaStdLib_PikaObj-api.c" />
<ClCompile Include="pikascript\pikascript-api\PikaStdLib_RangeObj-api.c" />
<ClCompile Include="pikascript\pikascript-api\PikaStdLib_StringObj-api.c" />
<ClCompile Include="pikascript\pikascript-api\PikaStdLib_SysObj-api.c" />
<ClCompile Include="pikascript\pikascript-api\PikaStdLib-api.c" />
<ClCompile Include="pikascript\pikascript-api\PikaStdTask_Task-api.c" />
<ClCompile Include="pikascript\pikascript-api\PikaStdTask-api.c" />
<ClCompile Include="pikascript\pikascript-api\pika_lvgl_lv_event-api.c" />
<ClCompile Include="pikascript\pikascript-lib\pika_lvgl\pika_lvgl_lv_event.c" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="LVGL.Simulator.rc" />
</ItemGroup>
<ItemGroup>
<Image Include="LVGL.ico" />
</ItemGroup>
<ItemGroup>
<None Include="freetype.props" />
</ItemGroup>
</Project>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ShowAllFiles>true</ShowAllFiles>
</PropertyGroup>
</Project>

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

View File

@ -0,0 +1,123 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
PROJECT: Mouri Internal Library Essentials
FILE: Mile.Project.Cpp.props
PURPOSE: Definition for Visual Studio C++ Project
LICENSE: The MIT License
DEVELOPER: Mouri_Naruto (Mouri_Naruto AT Outlook.com)
-->
<!--
The documents of specific options in Mile.Project.
How to define the project type in the "Globals" label property group.
If the project is a console application project.
<MileProjectType>ConsoleApplication</MileProjectType>
If the project is a windows application project.
<MileProjectType>WindowsApplication</MileProjectType>
If the project is a dynamic library project.
<MileProjectType>DynamicLibrary</MileProjectType>
If the project is a static library project.
<MileProjectType>StaticLibrary</MileProjectType>
How to define the manifest file in the "Globals" label property group.
<MileProjectManifestFile>C:\Folder\Manifest.manifest</MileProjectManifestFile>
How to enable the version information support.
Copy Mile.Project.Properties.Template.h to the project folder and rename it
to Mile.Project.Properties.h.
How to enable VC-LTL support.
<MileProjectEnableVCLTLSupport>true</MileProjectEnableVCLTLSupport>
-->
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<!--
Only do this for MSBuild versions below 16.0 as it is since done
automatically, see https://github.com/microsoft/msbuild/pull/3605.
-->
<MSBuildAllProjects Condition="'$(MSBuildToolsVersion)' &lt;= '15'">$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
</PropertyGroup>
<PropertyGroup Label="Globals">
<Keyword>Win32Proj</Keyword>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
<CleanImport>true</CleanImport>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<ConfigurationType Condition="'$(MileProjectType)'=='DynamicLibrary'">DynamicLibrary</ConfigurationType>
<ConfigurationType Condition="'$(MileProjectType)'=='StaticLibrary'">StaticLibrary</ConfigurationType>
<PlatformToolset>v143</PlatformToolset>
<PlatformToolset Condition="'$(VisualStudioVersion)' == '16.0'">v142</PlatformToolset>
<PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset>
<PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
<PreferredToolArchitecture>x64</PreferredToolArchitecture>
<CharacterSet>Unicode</CharacterSet>
<UseDebugLibraries Condition="'$(Configuration)'=='Debug'">true</UseDebugLibraries>
<UseDebugLibraries Condition="'$(Configuration)'=='Release'">false</UseDebugLibraries>
<WholeProgramOptimization Condition="'$(Configuration)'=='Release'">true</WholeProgramOptimization>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<PropertyGroup>
<LinkIncremental Condition="'$(Configuration)'=='Debug'">true</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)'=='Release'">false</LinkIncremental>
<GenerateManifest>false</GenerateManifest>
<IncludePath>$(MSBuildThisFileDirectory);$(IncludePath)</IncludePath>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<SDLCheck>true</SDLCheck>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<ConformanceMode>true</ConformanceMode>
<EnableEnhancedInstructionSet Condition="'$(Platform)'=='Win32'">NoExtensions</EnableEnhancedInstructionSet>
<PreprocessorDefinitions Condition="'$(Platform)'=='Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(MileProjectType)'=='ConsoleApplication'">_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(MileProjectType)'=='WindowsApplication'">_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(MileProjectType)'=='DynamicLibrary'">_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(MileProjectType)'=='StaticLibrary'">_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem Condition="'$(MileProjectType)'=='ConsoleApplication'">Console</SubSystem>
<SubSystem Condition="'$(MileProjectType)'=='WindowsApplication'">Windows</SubSystem>
<SubSystem Condition="'$(MileProjectType)'=='DynamicLibrary'">Windows</SubSystem>
<SubSystem Condition="'$(MileProjectType)'=='StaticLibrary'"></SubSystem>
</Link>
<ResourceCompile Condition="'$(MileProjectType)'!='StaticLibrary'">
<PreprocessorDefinitions Condition="'$(MileProjectType)'!='DynamicLibrary'">_MILE_PROJECT_MANIFEST_ID=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(MileProjectType)'=='DynamicLibrary'">_MILE_PROJECT_MANIFEST_ID=2;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(MileProjectManifestFile)'!=''">_MILE_PROJECT_MANIFEST_FILE=$([System.String]::Copy('$(MileProjectManifestFile)').Replace('\','\\'));%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(ProjectDir);$(MSBuildThisFileDirectory);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
<ClCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Optimization>Disabled</Optimization>
<RuntimeLibrary Condition="'$(MileProjectEnableVCLTLSupport)' == 'true'">MultiThreadedDebug</RuntimeLibrary>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
<ClCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<RuntimeLibrary Condition="'$(MileProjectEnableVCLTLSupport)' == 'true'">MultiThreaded</RuntimeLibrary>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<PackageReference Include="VC-LTL" Condition="'$(MileProjectEnableVCLTLSupport)' == 'true'">
<Version>5.0.5</Version>
</PackageReference>
</ItemGroup>
</Project>

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
PROJECT: Mouri Internal Library Essentials
FILE: Mile.Project.Cpp.targets
PURPOSE: Definition for Visual Studio C++ Project
LICENSE: The MIT License
DEVELOPER: Mouri_Naruto (Mouri_Naruto AT Outlook.com)
-->
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<!--
Only do this for MSBuild versions below 16.0 as it is since done
automatically, see https://github.com/microsoft/msbuild/pull/3605.
-->
<MSBuildAllProjects Condition="'$(MSBuildToolsVersion)' &lt;= '15'">$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
</PropertyGroup>
<Target Name="MileProjectBuildManifestResources" BeforeTargets="BeforeResourceCompile">
<ItemGroup Condition="'$(MileProjectType)'!='StaticLibrary'">
<ResourceCompile Condition="'$(MileProjectManifestFile)'!=''" Include="$(MSBuildThisFileDirectory)Mile.Project.Manifest.rc" />
<ResourceCompile Condition="Exists('$(ProjectDir)Mile.Project.Properties.h')" Include="$(MSBuildThisFileDirectory)Mile.Project.Version.rc" />
</ItemGroup>
</Target>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
</Project>

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
PROJECT: Mouri Internal Library Essentials
FILE: Mile.Project.Platform.ARM.props
PURPOSE: Definition for Visual Studio C++ Project
LICENSE: The MIT License
DEVELOPER: Mouri_Naruto (Mouri_Naruto AT Outlook.com)
-->
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|ARM">
<Configuration>Debug</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM">
<Configuration>Release</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
</ItemGroup>
</Project>

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
PROJECT: Mouri Internal Library Essentials
FILE: Mile.Project.Platform.ARM64.props
PURPOSE: Definition for Visual Studio C++ Project
LICENSE: The MIT License
DEVELOPER: Mouri_Naruto (Mouri_Naruto AT Outlook.com)
-->
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
</ItemGroup>
</Project>

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
PROJECT: Mouri Internal Library Essentials
FILE: Mile.Project.Platform.Win32.props
PURPOSE: Definition for Visual Studio C++ Project
LICENSE: The MIT License
DEVELOPER: Mouri_Naruto (Mouri_Naruto AT Outlook.com)
-->
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
</Project>

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
PROJECT: Mouri Internal Library Essentials
FILE: Mile.Project.Platform.x64.props
PURPOSE: Definition for Visual Studio C++ Project
LICENSE: The MIT License
DEVELOPER: Mouri_Naruto (Mouri_Naruto AT Outlook.com)
-->
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
</Project>

View File

@ -0,0 +1,119 @@
/*
* PROJECT: Mouri Internal Library Essentials
* FILE: Mile.Project.Version.h
* PURPOSE: Version Definition for Mile.Project
*
* LICENSE: The MIT License
*
* DEVELOPER: Mouri_Naruto (Mouri_Naruto AT Outlook.com)
*/
#ifndef MILE_PROJECT_VERSION
#define MILE_PROJECT_VERSION
#ifndef MILE_PROJECT_MACRO_TO_STRING
#define _MILE_PROJECT_MACRO_TO_STRING(arg) L#arg
#define MILE_PROJECT_MACRO_TO_STRING(arg) _MILE_PROJECT_MACRO_TO_STRING(arg)
#endif
#ifndef MILE_PROJECT_MACRO_TO_UTF8_STRING
#define _MILE_PROJECT_MACRO_TO_UTF8_STRING(arg) #arg
#define MILE_PROJECT_MACRO_TO_UTF8_STRING(arg) \
_MILE_PROJECT_MACRO_TO_UTF8_STRING(arg)
#endif
#ifndef MILE_PROJECT_DEFINE_COMMA_VERSION
#define MILE_PROJECT_DEFINE_COMMA_VERSION(MAJOR,MINOR,BUILD,REVISION) \
MAJOR,MINOR,BUILD,REVISION
#endif
#ifndef MILE_PROJECT_DEFINE_DOT_VERSION
#define MILE_PROJECT_DEFINE_DOT_VERSION(MAJOR,MINOR,BUILD,REVISION) \
MAJOR.MINOR.BUILD.REVISION
#endif
#ifndef MILE_PROJECT_COMMA_VERSION
#define MILE_PROJECT_COMMA_VERSION \
MILE_PROJECT_DEFINE_COMMA_VERSION( \
MILE_PROJECT_VERSION_MAJOR, \
MILE_PROJECT_VERSION_MINOR, \
MILE_PROJECT_VERSION_BUILD, \
MILE_PROJECT_VERSION_REVISION)
#endif
#ifndef MILE_PROJECT_DOT_VERSION
#define MILE_PROJECT_DOT_VERSION \
MILE_PROJECT_DEFINE_DOT_VERSION( \
MILE_PROJECT_VERSION_MAJOR, \
MILE_PROJECT_VERSION_MINOR, \
MILE_PROJECT_VERSION_BUILD, \
MILE_PROJECT_VERSION_REVISION)
#endif
#ifndef MILE_PROJECT_COMMA_VERSION_STRING
#define MILE_PROJECT_COMMA_VERSION_STRING \
MILE_PROJECT_MACRO_TO_STRING(MILE_PROJECT_COMMA_VERSION)
#endif
#ifndef MILE_PROJECT_DOT_VERSION_STRING
#define MILE_PROJECT_DOT_VERSION_STRING \
MILE_PROJECT_MACRO_TO_STRING(MILE_PROJECT_DOT_VERSION)
#endif
#ifndef MILE_PROJECT_COMMA_VERSION_UTF8_STRING
#define MILE_PROJECT_COMMA_VERSION_UTF8_STRING \
MILE_PROJECT_MACRO_TO_UTF8_STRING(MILE_PROJECT_COMMA_VERSION)
#endif
#ifndef MILE_PROJECT_DOT_VERSION_UTF8_STRING
#define MILE_PROJECT_DOT_VERSION_UTF8_STRING \
MILE_PROJECT_MACRO_TO_UTF8_STRING(MILE_PROJECT_DOT_VERSION)
#endif
#ifndef MILE_PROJECT_DEFINE_SIMPLE_VERSION
#define MILE_PROJECT_DEFINE_SIMPLE_VERSION(MAJOR,MINOR) \
MAJOR.MINOR
#endif
#ifndef MILE_PROJECT_SIMPLE_VERSION
#define MILE_PROJECT_SIMPLE_VERSION \
MILE_PROJECT_DEFINE_SIMPLE_VERSION( \
MILE_PROJECT_VERSION_MAJOR, \
MILE_PROJECT_VERSION_MINOR)
#endif
#ifndef MILE_PROJECT_SIMPLE_VERSION_STRING
#define MILE_PROJECT_SIMPLE_VERSION_STRING \
MILE_PROJECT_MACRO_TO_STRING(MILE_PROJECT_SIMPLE_VERSION)
#endif
#ifdef MILE_PROJECT_VERSION_TAG
#define MILE_PROJECT_VERSION_TAG_STRING L" " MILE_PROJECT_VERSION_TAG
#else
#define MILE_PROJECT_VERSION_TAG_STRING
#endif
#ifndef MILE_PROJECT_VERSION_STRING
#define MILE_PROJECT_VERSION_STRING \
MILE_PROJECT_SIMPLE_VERSION_STRING \
MILE_PROJECT_VERSION_TAG_STRING
#endif
#ifndef MILE_PROJECT_SIMPLE_VERSION_UTF8_STRING
#define MILE_PROJECT_SIMPLE_VERSION_UTF8_STRING \
MILE_PROJECT_MACRO_TO_UTF8_STRING(MILE_PROJECT_SIMPLE_VERSION)
#endif
#ifdef MILE_PROJECT_VERSION_TAG
#define MILE_PROJECT_VERSION_TAG_UTF8_STRING " " MILE_PROJECT_VERSION_TAG
#else
#define MILE_PROJECT_VERSION_TAG_UTF8_STRING
#endif
#ifndef MILE_PROJECT_VERSION_UTF8_STRING
#define MILE_PROJECT_VERSION_UTF8_STRING \
MILE_PROJECT_SIMPLE_VERSION_UTF8_STRING \
MILE_PROJECT_VERSION_TAG_UTF8_STRING
#endif
#endif

View File

@ -0,0 +1,71 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
PROJECT: LVGL PC Simulator using Visual Studio
FILE: freetype.props
PURPOSE: Property sheet for FreeType
LICENSE: The MIT License
DEVELOPER: Mouri_Naruto (Mouri_Naruto AT Outlook.com)
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<IncludePath>$(MSBuildThisFileDirectory)freetype\include\;$(IncludePath);</IncludePath>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions>FT2_BUILD_LIBRARY;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4703;%(DisableSpecificWarnings)</DisableSpecificWarnings>
</ClCompile>
</ItemDefinitionGroup>
<Target Name="FreeTypeLibraryBuildSource" BeforeTargets="BeforeClCompile">
<ItemGroup>
<ClCompile Include="$(MSBuildThisFileDirectory)freetype\src\autofit\autofit.c" />
<ClCompile Include="$(MSBuildThisFileDirectory)freetype\src\base\ftbase.c" />
<ClCompile Include="$(MSBuildThisFileDirectory)freetype\src\base\ftbbox.c" />
<ClCompile Include="$(MSBuildThisFileDirectory)freetype\src\base\ftbdf.c" />
<ClCompile Include="$(MSBuildThisFileDirectory)freetype\src\base\ftbitmap.c" />
<ClCompile Include="$(MSBuildThisFileDirectory)freetype\src\base\ftcid.c" />
<ClCompile Include="$(MSBuildThisFileDirectory)freetype\src\base\ftfstype.c" />
<ClCompile Include="$(MSBuildThisFileDirectory)freetype\src\base\ftgasp.c" />
<ClCompile Include="$(MSBuildThisFileDirectory)freetype\src\base\ftglyph.c" />
<ClCompile Include="$(MSBuildThisFileDirectory)freetype\src\base\ftgxval.c" />
<ClCompile Include="$(MSBuildThisFileDirectory)freetype\src\base\ftinit.c" />
<ClCompile Include="$(MSBuildThisFileDirectory)freetype\src\base\ftmm.c" />
<ClCompile Include="$(MSBuildThisFileDirectory)freetype\src\base\ftotval.c" />
<ClCompile Include="$(MSBuildThisFileDirectory)freetype\src\base\ftpatent.c" />
<ClCompile Include="$(MSBuildThisFileDirectory)freetype\src\base\ftpfr.c" />
<ClCompile Include="$(MSBuildThisFileDirectory)freetype\src\base\ftstroke.c" />
<ClCompile Include="$(MSBuildThisFileDirectory)freetype\src\base\ftsynth.c" />
<ClCompile Include="$(MSBuildThisFileDirectory)freetype\src\base\fttype1.c" />
<ClCompile Include="$(MSBuildThisFileDirectory)freetype\src\base\ftwinfnt.c" />
<ClCompile Include="$(MSBuildThisFileDirectory)freetype\src\bdf\bdf.c" />
<ClCompile Include="$(MSBuildThisFileDirectory)freetype\src\cache\ftcache.c" />
<ClCompile Include="$(MSBuildThisFileDirectory)freetype\src\cff\cff.c" />
<ClCompile Include="$(MSBuildThisFileDirectory)freetype\src\cid\type1cid.c" />
<ClCompile Include="$(MSBuildThisFileDirectory)freetype\src\dlg\dlgwrap.c" />
<ClCompile Include="$(MSBuildThisFileDirectory)freetype\src\gzip\ftgzip.c" />
<ClCompile Include="$(MSBuildThisFileDirectory)freetype\src\lzw\ftlzw.c" />
<ClCompile Include="$(MSBuildThisFileDirectory)freetype\src\pcf\pcf.c" />
<ClCompile Include="$(MSBuildThisFileDirectory)freetype\src\pfr\pfr.c" />
<ClCompile Include="$(MSBuildThisFileDirectory)freetype\src\psaux\psaux.c" />
<ClCompile Include="$(MSBuildThisFileDirectory)freetype\src\pshinter\pshinter.c" />
<ClCompile Include="$(MSBuildThisFileDirectory)freetype\src\psnames\psmodule.c" />
<ClCompile Include="$(MSBuildThisFileDirectory)freetype\src\raster\raster.c" />
<ClCompile Include="$(MSBuildThisFileDirectory)freetype\src\sfnt\sfnt.c" />
<ClCompile Include="$(MSBuildThisFileDirectory)freetype\src\smooth\smooth.c" />
<ClCompile Include="$(MSBuildThisFileDirectory)freetype\src\sdf\sdf.c" />
<ClCompile Include="$(MSBuildThisFileDirectory)freetype\src\svg\svg.c" />
<ClCompile Include="$(MSBuildThisFileDirectory)freetype\src\truetype\truetype.c" />
<ClCompile Include="$(MSBuildThisFileDirectory)freetype\src\type1\type1.c" />
<ClCompile Include="$(MSBuildThisFileDirectory)freetype\src\type42\type42.c" />
<ClCompile Include="$(MSBuildThisFileDirectory)freetype\src\winfonts\winfnt.c" />
<ClCompile Include="$(MSBuildThisFileDirectory)freetype\builds\windows\ftdebug.c">
<DisableLanguageExtensions>false</DisableLanguageExtensions>
</ClCompile>
<ClCompile Include="$(MSBuildThisFileDirectory)freetype\builds\windows\ftsystem.c">
<DisableLanguageExtensions>false</DisableLanguageExtensions>
</ClCompile>
</ItemGroup>
</Target>
</Project>

View File

@ -0,0 +1,16 @@
BasedOnStyle: Chromium
AlignAfterOpenBracket: Align
AlignConsecutiveAssignments: true
AlignConsecutiveDeclarations: true
AlignConsecutiveMacros: true
AlignEscapedNewlines: true
# AlignOperands: Align
AlignTrailingComments: true
AlwaysBreakAfterReturnType: AllDefinitions
BreakBeforeBraces: Allman
ColumnLimit: 80
DerivePointerAlignment: false
IndentCaseLabels: false
PointerAlignment: Left
SpaceBeforeParens: ControlStatements
SpacesInParentheses: true

View File

@ -0,0 +1,7 @@
/build/
/config.mk
include/dlg/
src/dlg/dlg.c
subprojects/*
!subprojects/*.wrap
/tests/data/*

View File

@ -0,0 +1,230 @@
# CI setup for FreeType.
stages:
- build
# FIXME: Use --werror once warnings are fixed.
variables:
MESON_ARGS: --fatal-meson-warnings --default-library=both
MESON_ARGS_WINDOWS: ${MESON_ARGS} --force-fallback-for=zlib
.build windows common:
# See
# https://gitlab.freedesktop.org/gstreamer/gst-ci/container_registry/213
image: 'registry.freedesktop.org/gstreamer/gst-ci/amd64/windows:2021-09-09.0-master'
stage: 'build'
tags:
- 'docker'
- 'windows'
- '1809'
- 'gstreamer-windows'
.build linux common:
# See
# https://gitlab.freedesktop.org/freetype/docker-images/container_registry/20896
image: 'registry.freedesktop.org/freetype/docker-images/debian:latest'
stage: 'build'
.build macos common:
stage: 'build'
tags:
- 'gst-macos-11.1'
.build windows meson:
extends: '.build windows common'
variables:
# Make sure any failure in PowerShell scripts is fatal.
ErrorActionPreference: 'Stop'
WarningPreference: 'Stop'
# Uncomment the following key if you need to pass custom args, as well
# with the `$env:MESON_ARGS` line in the `script:` blocks.
# MESON_ARGS: >-
# -Dfoo=enabled
# -Dbar=disabled
before_script:
# Update RootCAs in order to access to some sites.
- certutil -generateSSTFromWU "C:\roots.sst"
- Import-Certificate -CertStoreLocation "Cert:\LocalMachine\Root" "C:\roots.sst"
# Make sure meson is up to date so we don't need to rebuild the image
# with each release.
- pip3 install meson==0.59.1
- pip3 install --upgrade certifi
- pip3 install -U ninja
# Generate a UWP cross-file in case it's used
- $PSDefaultParameterValues['Out-File:Encoding'] = 'ASCII'
- echo "[binaries]" > uwp-crossfile.meson
- echo "c = 'cl'" >> uwp-crossfile.meson
- echo "strip = ['true']" >> uwp-crossfile.meson
- echo "[built-in options]" >> uwp-crossfile.meson
- echo "c_args = ['-DWINAPI_FAMILY=WINAPI_FAMILY_APP', '-DUNICODE', '-D_WIN32_WINNT=0x0A00', '-we4013']" >> uwp-crossfile.meson
- echo "c_winlibs = ['windowsapp.lib']" >> uwp-crossfile.meson
script:
# For some reason, options are separated by newlines instead of spaces,
# so we have to replace them first.
#
# - $env:MESON_ARGS = $env:MESON_ARGS.replace("`n"," ")
#
# Gitlab executes PowerShell in docker, but `VsDevCmd.bat` is a batch
# script. Environment variables substitutions is done by PowerShell
# before calling `cmd.exe`, that's why we use `$env:FOO` instead of
# `%FOO%`.
- cmd.exe /C "C:\BuildTools\Common7\Tools\VsDevCmd.bat -host_arch=amd64 -arch=$env:ARCH $env:VS_UWP &&
meson setup build $env:MESON_ARGS_WINDOWS $env:MESON_ARGS_UWP &&
meson compile --verbose -C build
$env:MESON_WINDOWS_TESTS"
# Format of job names:
# <OS> <Build-Tool> <Build-Params> <Architecture>
# Windows jobs.
windows meson vs2017 amd64:
extends: '.build windows meson'
variables:
ARCH: 'amd64'
MESON_WINDOWS_TESTS: '&& meson test -C build && meson test -C build --benchmark'
windows meson vs2017 x86:
extends: '.build windows meson'
variables:
ARCH: 'x86'
MESON_WINDOWS_TESTS: '&& meson test -C build && meson test -C build --benchmark'
windows meson vs2017 amd64 uwp:
extends: '.build windows meson'
variables:
ARCH: 'amd64'
VS_UWP: '-app_platform=UWP'
MESON_ARGS_UWP: '--cross-file uwp-crossfile.meson -Dc_winlibs="windowsapp.lib"'
# Linux Jobs.
#
# Jobs with "libs" in the name force-enable libraries.
# They are disabled for the remaining jobs.
linux autotools:
extends: '.build linux common'
script: |
./autogen.sh
./configure --with-brotli=no \
--with-bzip2=no \
--with-harfbuzz=no \
--with-png=no \
--with-zlib=no \
CC=gcc
make -j$(nproc) && make install
linux autotools libs:
extends: '.build linux common'
script: |
./autogen.sh
./configure --with-brotli=yes \
--with-bzip2=yes \
--with-harfbuzz=yes \
--with-png=yes \
--with-zlib=yes \
CC=gcc
make -j$(nproc) && make install
linux autotools libs clang:
extends: '.build linux common'
script: |
./autogen.sh
./configure --with-brotli=yes \
--with-bzip2=yes \
--with-harfbuzz=yes \
--with-png=yes \
--with-zlib=yes \
CC=clang
make -j$(nproc) && make install
linux meson:
extends: '.build linux common'
script: |
meson setup build ${MESON_ARGS} \
-Dbrotli=disabled \
-Dbzip2=disabled \
-Dharfbuzz=disabled \
-Dpng=disabled \
-Dzlib=disabled
meson compile --verbose -C build
meson install -C build
linux meson libs:
extends: '.build linux common'
script: |
meson setup build ${MESON_ARGS} \
-Dbrotli=enabled \
-Dbzip2=enabled \
-Dharfbuzz=disabled \
-Dpng=disabled \
-Dzlib=disabled
meson compile --verbose -C build
meson install -C build
linux cmake:
extends: '.build linux common'
script: |
cmake -B build -D FT_DISABLE_BROTLI=TRUE \
-D FT_DISABLE_BZIP2=TRUE \
-D FT_DISABLE_HARFBUZZ=TRUE \
-D FT_DISABLE_PNG=TRUE \
-D FT_DISABLE_ZLIB=TRUE
cmake --build build --target install
linux cmake libs:
extends: '.build linux common'
script: |
cmake -B build -D FT_REQUIRE_BROTLI=TRUE \
-D FT_REQUIRE_BZIP2=TRUE \
-D FT_REQUIRE_HARFBUZZ=TRUE \
-D FT_REQUIRE_PNG=TRUE \
-D FT_REQUIRE_ZLIB=TRUE
cmake --build build --target install
# MacOS jobs.
macos autotools:
extends: '.build macos common'
before_script:
- '/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"'
script:
- brew install autoconf automake libtool
- ./autogen.sh
- ./configure
- 'make -j$(sysctl -n hw.logicalcpu)'
- make install
macos autotools clang:
extends: '.build macos common'
before_script:
- '/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"'
script:
- brew install autoconf automake libtool
- ./autogen.sh
- './configure CC=clang'
- 'make -j$(sysctl -n hw.logicalcpu)'
- make install
macos meson:
extends: '.build macos common'
script:
- pip3 install --upgrade pip
- pip3 install -U meson
- pip3 install --upgrade certifi
- pip3 install -U ninja
- meson setup build ${MESON_ARGS}
- meson compile --verbose -C build
- sudo meson install -C build

View File

@ -0,0 +1,3 @@
[submodule "dlg"]
path = subprojects/dlg
url = https://github.com/nyorain/dlg.git

View File

@ -0,0 +1,24 @@
Behdad Esfahbod (بهداد اسفهبد) <behdad@behdad.org> <behdad.esfahbod@gmail.com>
Behdad Esfahbod (بهداد اسفهبد) <behdad@behdad.org> <behdad@google.com>
Behdad Esfahbod (بهداد اسفهبد) <behdad@behdad.org>
Alexander Borsuk <me@alex.bio> <alexander.borsuk@qnective.com>
Ewald Hew (Hew Yih Shiuan 丘毅宣) <ewaldhew@gmail.com>
Moazin Khatti (موؤذن کھٹی) <moazinkhatri@gmail.com>
Priyesh Kumar (प्रियेश कुमार) <priyeshkkumar@gmail.com>
Alexei Podtelezhnikov (Алексей Подтележников) <apodtele@gmail.com>
Nikhil Ramakrishnan (निखिल रामकृष्णन) <ramakrishnan.nikhil@gmail.com>
Dominik Röttsches <drott@chromium.org> <drott@google.com>
Kostya Serebryany <kcc@google.com> <konstantin.s.serebryany@gmail.com>
Suzuki, Toshiya (鈴木俊哉) <mpsuzuki@hiroshima-u.ac.jp> <sssa@flavor1.ipc.hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉) <mpsuzuki@hiroshima-u.ac.jp> sssa <sssa@IPA2004-mps.local>
Suzuki, Toshiya (鈴木俊哉) <mpsuzuki@hiroshima-u.ac.jp> sssa <sssa@sssas-powerbook-g4-12.local>
Suzuki, Toshiya (鈴木俊哉) <mpsuzuki@hiroshima-u.ac.jp> suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Bram Tassyns <bramt@enfocus.be> bram tassyns <BramT@enfocus.be>
Bram Tassyns <bramt@enfocus.be> <BramT@enfocus.com>
David Turner <david@freetype.org> <david.turner.dev@gmail.com>
David Turner <david@freetype.org> <digit@google.com>
Anuj Verma (अनुज वर्मा) <anujv@iitbhilai.ac.in>
Ben Wagner <bungeman@gmail.com> Bungeman <bungeman@gmail.com>
Ben Wagner <bungeman@gmail.com> <bungeman@google.com>
Ben Wagner <bungeman@gmail.com> <bungeman@chromium.org>
Nikolaus Waxweiler <madigens@gmail.com> <nikolaus.waxweiler@daltonmaag.com>

View File

@ -0,0 +1,42 @@
FREETYPE LICENSES
-----------------
The FreeType 2 font engine is copyrighted work and cannot be used
legally without a software license. In order to make this project
usable to a vast majority of developers, we distribute it under two
mutually exclusive open-source licenses.
This means that *you* must choose *one* of the two licenses described
below, then obey all its terms and conditions when using FreeType 2 in
any of your projects or products.
- The FreeType License, found in the file `docs/FTL.TXT`, which is
similar to the original BSD license *with* an advertising clause
that forces you to explicitly cite the FreeType project in your
product's documentation. All details are in the license file.
This license is suited to products which don't use the GNU General
Public License.
Note that this license is compatible to the GNU General Public
License version 3, but not version 2.
- The GNU General Public License version 2, found in
`docs/GPLv2.TXT` (any later version can be used also), for
programs which already use the GPL. Note that the FTL is
incompatible with GPLv2 due to its advertisement clause.
The contributed BDF and PCF drivers come with a license similar to
that of the X Window System. It is compatible to the above two
licenses (see files `src/bdf/README` and `src/pcf/README`). The same
holds for the source code files `src/base/fthash.c` and
`include/freetype/internal/fthash.h`; they wer part of the BDF driver
in earlier FreeType versions.
The gzip module uses the zlib license (see `src/gzip/zlib.h`) which
too is compatible to the above two licenses.
The MD5 checksum support (only used for debugging in development
builds) is in the public domain.
--- end of LICENSE.TXT ---

View File

@ -0,0 +1,34 @@
#
# FreeType 2 build system -- top-level Makefile
#
# Copyright (C) 1996-2022 by
# David Turner, Robert Wilhelm, and Werner Lemberg.
#
# This file is part of the FreeType project, and may only be used, modified,
# and distributed under the terms of the FreeType project license,
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
# indicate that you have read the license and understand and accept it
# fully.
# Project names
#
PROJECT := freetype
PROJECT_TITLE := FreeType
# The variable TOP_DIR holds the path to the topmost directory in the project
# engine source hierarchy. If it is not defined, default it to `.'.
#
TOP_DIR ?= .
# The variable OBJ_DIR gives the location where object files and the
# FreeType library are built.
#
OBJ_DIR ?= $(TOP_DIR)/objs
include $(TOP_DIR)/builds/toplevel.mk
# EOF

View File

@ -0,0 +1,107 @@
FreeType 2.12.1
===============
Homepage: https://www.freetype.org
FreeType is a freely available software library to render fonts.
It is written in C, designed to be small, efficient, highly
customizable, and portable while capable of producing high-quality
output (glyph images) of most vector and bitmap font formats.
Please read the `docs/CHANGES` file, it contains IMPORTANT
INFORMATION.
Read the files `docs/INSTALL*` for installation instructions; see the
file `docs/LICENSE.TXT` for the available licenses.
For using FreeType's git repository instead of a distribution bundle,
please read file `README.git`. Note that you have to actually clone
the repository; using a snapshot will not work (in other words, don't
use gitlab's 'Download' button).
The FreeType 2 API reference is located in directory `docs/reference`;
use the file `index.html` as the top entry point. [Please note that
currently the search function for locally installed documentation
doesn't work due to cross-site scripting issues.]
Additional documentation is available as a separate package from our
sites. Go to
https://download.savannah.gnu.org/releases/freetype/
and download one of the following files.
freetype-doc-2.12.1.tar.xz
freetype-doc-2.12.1.tar.gz
ftdoc2121.zip
To view the documentation online, go to
https://www.freetype.org/freetype2/docs/
Mailing Lists
-------------
The preferred way of communication with the FreeType team is using
e-mail lists.
general use and discussion: freetype@nongnu.org
engine internals, porting, etc.: freetype-devel@nongnu.org
announcements: freetype-announce@nongnu.org
git repository tracker: freetype-commit@nongnu.org
The lists are moderated; see
https://www.freetype.org/contact.html
how to subscribe.
Bugs
----
Please submit bug reports at
https://gitlab.freedesktop.org/freetype/freetype/-/issues
Alternatively, you might report bugs by e-mail to
`freetype-devel@nongnu.org`. Don't forget to send a detailed
explanation of the problem -- there is nothing worse than receiving a
terse message that only says 'it doesn't work'.
Patches
-------
For larger changes please provide merge requests at
https://gitlab.freedesktop.org/freetype/freetype/-/merge_requests
Alternatively, you can send patches to the `freetype-devel@nongnu.org`
mailing list -- and thank you in advance for your work on improving
FreeType!
Details on the process can be found here:
https://www.freetype.org/developer.html#patches
Enjoy!
The FreeType Team
----------------------------------------------------------------------
Copyright (C) 2006-2022 by
David Turner, Robert Wilhelm, and Werner Lemberg.
This file is part of the FreeType project, and may only be used,
modified, and distributed under the terms of the FreeType project
license, LICENSE.TXT. By continuing to use, modify, or distribute
this file you indicate that you have read the license and understand
and accept it fully.
--- end of README ---

View File

@ -0,0 +1,102 @@
README.git
==========
repository issues
-----------------
FreeType's official repository site is
https://gitlab.freedesktop.org/freetype ,
from which the 'freetype.git' and 'freetype-demos.git' repositories
can be cloned in the usual way.
git clone https://gitlab.freedesktop.org/freetype/freetype.git
git clone https://gitlab.freedesktop.org/freetype/freetype-demos.git
If you want to use the Savannah mirror instead, you have to do a
slightly different incantation because the repository names contain
digit '2' for historical reasons.
git clone \
https://git.savannah.nongnu.org/git/freetype/freetype2.git \
freetype
git clone \
https://git.savannah.nongnu.org/git/freetype/freetype2-demos.git \
freetype-demos
standard builds with `configure`
--------------------------------
The git repository doesn't contain pre-built configuration scripts for
UNIXish platforms. To generate them say
sh autogen.sh
which in turn depends on the following packages:
automake (1.10.1)
libtool (2.2.4)
autoconf (2.62)
The versions given in parentheses are known to work. Newer versions
should work too, of course. Note that `autogen.sh` also sets up
proper file permissions for the `configure` and auxiliary scripts.
The `autogen.sh` script checks whether the versions of the above three
tools match the numbers above. Otherwise it will complain and suggest
either upgrading or using environment variables to point to more
recent versions of the required tools.
Note that `aclocal` is provided by the 'automake' package on Linux,
and that `libtoolize` is called `glibtoolize` on Darwin (OS X).
alternative build methods
-------------------------
For static builds that don't use platform-specific optimizations, no
configure script is necessary at all; saying
make setup ansi
make
should work on all platforms that have GNU `make` (or `makepp`).
A build with `cmake` or `meson` can be done directly from the git
repository. However, if you want to use the `FT_DEBUG_LOGGING` macro
(see file `docs/DEBUG` for more information) it is currently mandatory
to execute `autogen.sh` in advance; this script clones the 'dlg' git
submodule and copies some files into FreeType's source tree.
Code of Conduct
---------------
Please note that this project is released with a Contributor Code of
Conduct (CoC). By participating in this project you agree to abide by
its terms, which you can find in the following link:
https://www.freedesktop.org/wiki/CodeOfConduct
CoC issues may be raised to the project maintainers at the following
address:
wl@gnu.org
apodtele@gmail.com
----------------------------------------------------------------------
Copyright (C) 2005-2022 by
David Turner, Robert Wilhelm, and Werner Lemberg.
This file is part of the FreeType project, and may only be used,
modified, and distributed under the terms of the FreeType project
license, LICENSE.TXT. By continuing to use, modify, or distribute
this file you indicate that you have read the license and understand
and accept it fully.
--- end of README.git ---

View File

@ -0,0 +1,200 @@
#!/bin/sh
# Copyright (C) 2005-2022 by
# David Turner, Robert Wilhelm, and Werner Lemberg.
#
# This file is part of the FreeType project, and may only be used, modified,
# and distributed under the terms of the FreeType project license,
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
# indicate that you have read the license and understand and accept it
# fully.
run ()
{
echo "running \`$*'"
eval $*
if test $? != 0 ; then
echo "error while running \`$*'"
exit 1
fi
}
get_major_version ()
{
echo $1 | sed -e 's/\([0-9][0-9]*\)\..*/\1/g'
}
get_minor_version ()
{
echo $1 | sed -e 's/[0-9][0-9]*\.\([0-9][0-9]*\).*/\1/g'
}
get_patch_version ()
{
# tricky: some version numbers don't include a patch
# separated with a point, but something like 1.4-p6
patch=`echo $1 | sed -e 's/[0-9][0-9]*\.[0-9][0-9]*\.\([0-9][0-9]*\).*/\1/g'`
if test "$patch" = "$1"; then
patch=`echo $1 | sed -e 's/[0-9][0-9]*\.[0-9][0-9]*\-p\([0-9][0-9]*\).*/\1/g'`
# if there isn't any patch number, default to 0
if test "$patch" = "$1"; then
patch=0
fi
fi
echo $patch
}
# $1: version to check
# $2: minimum version
compare_to_minimum_version ()
{
MAJOR1=`get_major_version $1`
MAJOR2=`get_major_version $2`
if test $MAJOR1 -lt $MAJOR2; then
echo 0
return
else
if test $MAJOR1 -gt $MAJOR2; then
echo 1
return
fi
fi
MINOR1=`get_minor_version $1`
MINOR2=`get_minor_version $2`
if test $MINOR1 -lt $MINOR2; then
echo 0
return
else
if test $MINOR1 -gt $MINOR2; then
echo 1
return
fi
fi
PATCH1=`get_patch_version $1`
PATCH2=`get_patch_version $2`
if test $PATCH1 -lt $PATCH2; then
echo 0
else
echo 1
fi
}
# check the version of a given tool against a minimum version number
#
# $1: tool path
# $2: tool usual name (e.g. `aclocal')
# $3: tool variable (e.g. `ACLOCAL')
# $4: minimum version to check against
# $5: option field index used to extract the tool version from the
# output of --version
check_tool_version ()
{
field=$5
# assume the output of "[TOOL] --version" is "toolname (GNU toolname foo bar) version"
if test "$field"x = x; then
field=3 # default to 3 for all GNU autotools, after filtering enclosed string
fi
version=`$1 --version | head -1 | sed 's/([^)]*)/()/g' | cut -d ' ' -f $field`
version_check=`compare_to_minimum_version $version $4`
if test "$version_check"x = 0x; then
echo "ERROR: Your version of the \`$2' tool is too old."
echo " Minimum version $4 is required (yours is version $version)."
echo " Please upgrade or use the $3 variable to point to a more recent one."
echo ""
exit 1
fi
}
# Solaris 10's shell doesn't like the `!` operator to negate the exit status.
if test -f ./builds/unix/configure.raw; then
:
else
echo "You must be in the same directory as \`autogen.sh'."
echo "Bootstrapping doesn't work if srcdir != builddir."
exit 1
fi
# On MacOS X, the GNU libtool is named `glibtool'.
HOSTOS=`uname`
if test "$LIBTOOLIZE"x != x; then
:
elif test "$HOSTOS"x = Darwinx; then
LIBTOOLIZE=glibtoolize
else
LIBTOOLIZE=libtoolize
fi
if test "$ACLOCAL"x = x; then
ACLOCAL=aclocal
fi
if test "$AUTOCONF"x = x; then
AUTOCONF=autoconf
fi
check_tool_version $ACLOCAL aclocal ACLOCAL 1.10.1
check_tool_version $LIBTOOLIZE libtoolize LIBTOOLIZE 2.2.4
check_tool_version $AUTOCONF autoconf AUTOCONF 2.62
# This sets FREETYPE version.
eval `sed -n \
-e 's/^#define *\(FREETYPE_MAJOR\) *\([0-9][0-9]*\).*/\1=\2/p' \
-e 's/^#define *\(FREETYPE_MINOR\) *\([0-9][0-9]*\).*/\1=\2/p' \
-e 's/^#define *\(FREETYPE_PATCH\) *\([0-9][0-9]*\).*/\1=\2/p' \
include/freetype/freetype.h`
if test "$FREETYPE_PATCH" = "0"; then
FREETYPE=$FREETYPE_MAJOR.$FREETYPE_MINOR
else
FREETYPE=$FREETYPE_MAJOR.$FREETYPE_MINOR.$FREETYPE_PATCH
fi
echo "FreeType $FREETYPE:"
cd builds/unix
echo "generating \`configure.ac'"
sed -e "s;@VERSION@;$FREETYPE;" \
< configure.raw > configure.ac
run aclocal -I . --force
run $LIBTOOLIZE --force --copy --install
run autoconf --force
chmod +x install-sh
cd ../..
chmod +x ./configure
# Copy all necessary 'dlg' files.
copy_submodule_files ()
{
echo "Copying files from \`subprojects/dlg' to \`src/dlg' and \`include/dlg'"
mkdir include/dlg 2> /dev/null
cp $DLG_INC_DIR/output.h include/dlg
cp $DLG_INC_DIR/dlg.h include/dlg
cp $DLG_SRC_DIR/* src/dlg
}
if test -e ".git"; then
DLG_INC_DIR=subprojects/dlg/include/dlg
DLG_SRC_DIR=subprojects/dlg/src/dlg
if test -d "$DLG_INC_DIR"; then
:
else
echo "Checking out submodule in \`subprojects/dlg':"
git submodule init
git submodule update
fi
copy_submodule_files
fi
# EOF

View File

@ -0,0 +1,110 @@
README for the builds/amiga subdirectory.
Copyright (C) 2005-2022 by
Werner Lemberg and Detlef W<>rkner.
This file is part of the FreeType project, and may only be used, modified,
and distributed under the terms of the FreeType project license,
LICENSE.TXT. By continuing to use, modify, or distribute this file you
indicate that you have read the license and understand and accept it
fully.
The makefile.os4 is for the AmigaOS4 SDK. To use it, type
"make -f makefile.os4", it produces a link library libft2_ppc.a.
The makefile is for ppc-morphos-gcc-2.95.3-bin.tgz (gcc 2.95.3 hosted on
68k-Amiga producing MorphOS-PPC-binaries from http://www.morphos.de).
To use it, type "make assign", then "make"; it produces a link library
libft2_ppc.a.
The smakefile is a makefile for Amiga SAS/C 6.58 (no longer available,
latest sold version was 6.50, updates can be found in Aminet). It is
based on the version found in the sourcecode of ttf.library 0.83b for
FreeType 1.3.1 from Richard Griffith (ragriffi@sprynet.com,
http://ragriffi.home.sprynet.com).
You will also need the latest include files and amiga.lib from the
Amiga web site (https://os.amigaworld.de/download.php?id=3) for
AmigaOS 3.9; the generated code should work under AmigaOS 2.04 and up.
To use it, call "smake assign" and then "smake" from the builds/amiga
directory. The results are:
- A link library "ft2_680x0.lib" (where x depends on the setting of
the CPU entry in the smakefile) containing all FreeType2 parts
except of the init code, debugging code, and the system interface
code.
- ftsystem.o, an object module containing the standard version of the
system interface code which uses fopen() fclose() fread() fseek()
ftell() malloc() realloc() and free() from lib:sc.lib (not pure).
- ftsystempure.o, an object module containing the pure version of the
system interface code which uses Open() Close() Read() Seek()
ExamineFH() AsmAllocPooled() AsmFreePooled() etc. This version can
be used in both normal programs and in Amiga run-time shared system
librarys (can be linked with lib:libinit.o, no copying of DATA and
BSS hunks for each OpenLibrary() necessary). Source code is in
src/base/ftsystem.c.
- ftdebug.o, an object module containing the standard version of the
debugging code which uses vprintf() and exit() (not pure).
Debugging can be turned on in FT:include/freetype/config/ftoption.h
and with FT_SetTraceLevel().
- ftdebugpure.o, an object module containing the pure version of the
debugging code which uses KVPrintf() from lib:debug.lib and no
exit(). For debugging of Amiga run-time shared system libraries.
Source code is in src/base/ftdebug.c.
- NO ftinit.o. Because linking with a link library should result in
linking only the needed object modules in it, but standard
ftsystem.o would force ALL FreeType2 modules to be linked to your
program, I decided to use a different scheme: You must #include
FT:src/base/ftinit.c in your sourcecode and specify with #define
statements which modules you need. See
include/freetype/config/ftmodule.h.
To use in your own programs:
- Insert the #define and #include statements from top of
include/freetype/config/ftmodule.h in your source code and
uncomment the #define statements for the FreeType2 modules you need.
- You can use either PARAMETERS=REGISTER or PARAMETERS=STACK for
calling the FreeType2 functions, because the link library and the
object files are compiled with PARAMETERS=BOTH.
- "smake assign" (assign "FT:" to the FreeType2 main directory).
- Compile your program.
- Link with either ftsystem.o or ftsystempure.o, if debugging enabled
with either ftdebug.o or (ftdebugpure.o and lib:debug.lib), and with
ft2_680x0.lib as link library.
To adapt to other compilers:
- The standard ANSI C maximum length of 31 significant characters in
identifiers is not enough for FreeType2. Check if your compiler has
a minimum length of 40 significant characters or can be switched to
it. "idlen=40" is the option for SAS/C. Setting #define
HAVE_LIMIT_ON_IDENTS in an include file may also work (not tested).
- Make sure that the include directory in builds/amiga is searched
before the normal FreeType2 include directory, so you are able to
replace problematic include files with your own version (same may be
useful for the src directory).
- An example of how to replace/workaround a problematic include file
is include/freetype/config/ftconfig.h; it changes a #define that
would prevent SAS/C from generating XDEF's where it should do that and
then includes the standard FreeType2 include file.
Local Variables:
coding: latin-1
End:

View File

@ -0,0 +1,55 @@
/***************************************************************************/
/* */
/* ftconfig.h */
/* */
/* Amiga-specific configuration file (specification only). */
/* */
/* Copyright (C) 2005-2022 by */
/* Werner Lemberg and Detlef W<>rkner. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/*
* This is an example how to override the default FreeType2 header files
* with Amiga-specific changes. When the compiler searches this directory
* before the default directory, we can do some modifications.
*
* Here we must change FT_EXPORT_DEF so that SAS/C does
* generate the needed XDEFs.
*/
#if 0
#define FT_EXPORT_DEF( x ) extern x
#endif
#undef FT_EXPORT_DEF
#define FT_EXPORT_DEF( x ) x
/* Now include the original file */
#ifndef __MORPHOS__
#ifdef __SASC
#include "FT:include/freetype/config/ftconfig.h"
#else
#include "/FT/include/freetype/config/ftconfig.h"
#endif
#else
/* We must define that, it seems that
* lib/gcc-lib/ppc-morphos/2.95.3/include/syslimits.h is missing in
* ppc-morphos-gcc-2.95.3-bin.tgz (gcc for 68k producing MorphOS PPC elf
* binaries from http://www.morphos.de)
*/
#define _LIBC_LIMITS_H_
#include "/FT/include/freetype/config/ftconfig.h"
#endif
/*
Local Variables:
coding: latin-1
End:
*/

View File

@ -0,0 +1,158 @@
/***************************************************************************/
/* */
/* ftmodule.h */
/* */
/* Amiga-specific FreeType module selection. */
/* */
/* Copyright (C) 2005-2022 by */
/* Werner Lemberg and Detlef W<>rkner. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/*
* To avoid that all your programs include all FreeType modules,
* you copy the following piece of source code into your own
* source file and specify which modules you really need in your
* application by uncommenting the appropriate lines.
*/
/*
//#define FT_USE_AUTOFIT // autofitter
//#define FT_USE_RASTER // monochrome rasterizer
//#define FT_USE_SMOOTH // anti-aliasing rasterizer
//#define FT_USE_TT // truetype font driver
//#define FT_USE_T1 // type1 font driver
//#define FT_USE_T42 // type42 font driver
//#define FT_USE_T1CID // cid-keyed type1 font driver // no cmap support
//#define FT_USE_CFF // opentype font driver
//#define FT_USE_BDF // bdf bitmap font driver
//#define FT_USE_PCF // pcf bitmap font driver
//#define FT_USE_PFR // pfr font driver
//#define FT_USE_WINFNT // windows .fnt|.fon bitmap font driver
//#define FT_USE_OTV // opentype validator
//#define FT_USE_GXV // truetype gx validator
#include "FT:src/base/ftinit.c"
*/
/* Make sure that the needed support modules are built in.
* Dependencies can be found by searching for FT_Get_Module.
*/
#ifdef FT_USE_T42
#define FT_USE_TT
#endif
#ifdef FT_USE_TT
#define FT_USE_SFNT
#endif
#ifdef FT_USE_CFF
#define FT_USE_SFNT
#define FT_USE_PSHINT
#define FT_USE_PSNAMES
#endif
#ifdef FT_USE_T1
#define FT_USE_PSAUX
#define FT_USE_PSHINT
#define FT_USE_PSNAMES
#endif
#ifdef FT_USE_T1CID
#define FT_USE_PSAUX
#define FT_USE_PSHINT
#define FT_USE_PSNAMES
#endif
#ifdef FT_USE_PSAUX
#define FT_USE_PSNAMES
#endif
#ifdef FT_USE_SFNT
#define FT_USE_PSNAMES
#endif
/* Now include the modules */
#ifdef FT_USE_AUTOFIT
FT_USE_MODULE( FT_Module_Class, autofit_module_class )
#endif
#ifdef FT_USE_TT
FT_USE_MODULE( FT_Driver_ClassRec, tt_driver_class )
#endif
#ifdef FT_USE_T1
FT_USE_MODULE( FT_Driver_ClassRec, t1_driver_class )
#endif
#ifdef FT_USE_CFF
FT_USE_MODULE( FT_Driver_ClassRec, cff_driver_class )
#endif
#ifdef FT_USE_T1CID
FT_USE_MODULE( FT_Driver_ClassRec, t1cid_driver_class )
#endif
#ifdef FT_USE_PFR
FT_USE_MODULE( FT_Driver_ClassRec, pfr_driver_class )
#endif
#ifdef FT_USE_T42
FT_USE_MODULE( FT_Driver_ClassRec, t42_driver_class )
#endif
#ifdef FT_USE_WINFNT
FT_USE_MODULE( FT_Driver_ClassRec, winfnt_driver_class )
#endif
#ifdef FT_USE_PCF
FT_USE_MODULE( FT_Driver_ClassRec, pcf_driver_class )
#endif
#ifdef FT_USE_PSAUX
FT_USE_MODULE( FT_Module_Class, psaux_module_class )
#endif
#ifdef FT_USE_PSNAMES
FT_USE_MODULE( FT_Module_Class, psnames_module_class )
#endif
#ifdef FT_USE_PSHINT
FT_USE_MODULE( FT_Module_Class, pshinter_module_class )
#endif
#ifdef FT_USE_RASTER
FT_USE_MODULE( FT_Renderer_Class, ft_raster1_renderer_class )
#endif
#ifdef FT_USE_SFNT
FT_USE_MODULE( FT_Module_Class, sfnt_module_class )
#endif
#ifdef FT_USE_SMOOTH
FT_USE_MODULE( FT_Renderer_Class, ft_smooth_renderer_class )
#endif
#ifdef FT_USE_OTV
FT_USE_MODULE( FT_Module_Class, otv_module_class )
#endif
#ifdef FT_USE_BDF
FT_USE_MODULE( FT_Driver_ClassRec, bdf_driver_class )
#endif
#ifdef FT_USE_GXV
FT_USE_MODULE( FT_Module_Class, gxv_module_class )
#endif
/*
Local Variables:
coding: latin-1
End:
*/

View File

@ -0,0 +1,293 @@
#
# Makefile for FreeType2 link library using ppc-morphos-gcc-2.95.3-bin.tgz
# (gcc 2.95.3 hosted on 68k-Amiga producing MorphOS-PPC-binaries from
# http://www.morphos.de)
#
# Copyright (C) 2005-2022 by
# Werner Lemberg and Detlef W<>rkner.
#
# This file is part of the FreeType project, and may only be used, modified,
# and distributed under the terms of the FreeType project license,
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
# indicate that you have read the license and understand and accept it
# fully.
#
# to build from the builds/amiga directory call
#
# make assign
# make
#
# Your programs source code should start with this
# (uncomment the parts you do not need to keep the program small):
# ---8<---
#define FT_USE_AUTOFIT // autofitter
#define FT_USE_RASTER // monochrome rasterizer
#define FT_USE_SMOOTH // anti-aliasing rasterizer
#define FT_USE_TT // truetype font driver
#define FT_USE_T1 // type1 font driver
#define FT_USE_T42 // type42 font driver
#define FT_USE_T1CID // cid-keyed type1 font driver
#define FT_USE_CFF // opentype font driver
#define FT_USE_BDF // bdf bitmap font driver
#define FT_USE_PCF // pcf bitmap font driver
#define FT_USE_PFR // pfr font driver
#define FT_USE_WINFNT // windows .fnt|.fon bitmap font driver
#define FT_USE_OTV // opentype validator
#define FT_USE_GXV // truetype gx validator
#include "FT:src/base/ftinit.c"
# ---8<---
#
# link your programs with libft2_ppc.a and either ftsystem.ppc.o or ftsystempure.ppc.o
# (and either ftdebug.ppc.o or ftdebugpure.ppc.o if you enabled FT_DEBUG_LEVEL_ERROR or
# FT_DEBUG_LEVEL_TRACE in include/freetype/config/ftoption.h).
all: libft2_ppc.a ftsystem.ppc.o ftsystempure.ppc.o
assign:
assign FT: //
FTSRC = /FT/src
CC = ppc-morphos-gcc
AR = ppc-morphos-ar rc
RANLIB = ppc-morphos-ranlib
LD = ppc-morphos-ld
CFLAGS = -DFT2_BUILD_LIBRARY -O2 -I/emu/emulinclude/includegcc -I/emu/include -Iinclude -I$(FTSRC) -I/FT/include
#
# FreeType2 library base
#
ftbase.ppc.o: $(FTSRC)/base/ftbase.c
$(CC) -c $(CFLAGS) -o $@ $<
ftinit.ppc.o: $(FTSRC)/base/ftinit.c
$(CC) -c $(CFLAGS) -o $@ $<
ftsystem.ppc.o: $(FTSRC)/base/ftsystem.c
$(CC) -c $(CFLAGS) -o $@ $<
# pure version for use in run-time library etc
ftsystempure.ppc.o: src/base/ftsystem.c
$(CC) -c $(CFLAGS) -o $@ $<
ftdebug.ppc.o: $(FTSRC)/base/ftdebug.c
$(CC) -c $(CFLAGS) -o $@ $<
# pure version for use in run-time library etc
ftdebugpure.ppc.o: src/base/ftdebug.c
$(CC) -c $(CFLAGS) -o $@ $<
#
# FreeType2 library base extensions
#
ftbbox.ppc.o: $(FTSRC)/base/ftbbox.c
$(CC) -c $(CFLAGS) -o $@ $<
ftbdf.ppc.o: $(FTSRC)/base/ftbdf.c
$(CC) -c $(CFLAGS) -o $@ $<
ftbitmap.ppc.o: $(FTSRC)/base/ftbitmap.c
$(CC) -c $(CFLAGS) -o $@ $<
ftcid.ppc.o: $(FTSRC)/base/ftcid.c
$(CC) -c $(CFLAGS) -o $@ $<
ftfstype.ppc.o: $(FTSRC)/base/ftfstype.c
$(CC) -c $(CFLAGS) -o $@ $<
ftgasp.ppc.o: $(FTSRC)/base/ftgasp.c
$(CC) -c $(CFLAGS) -o $@ $<
ftglyph.ppc.o: $(FTSRC)/base/ftglyph.c
$(CC) -c $(CFLAGS) -o $@ $<
ftgxval.ppc.o: $(FTSRC)/base/ftgxval.c
$(CC) -c $(CFLAGS) -o $@ $<
ftmm.ppc.o: $(FTSRC)/base/ftmm.c
$(CC) -c $(CFLAGS) -o $@ $<
ftotval.ppc.o: $(FTSRC)/base/ftotval.c
$(CC) -c $(CFLAGS) -o $@ $<
ftpatent.ppc.o: $(FTSRC)/base/ftpatent.c
$(CC) -c $(CFLAGS) -o $@ $<
ftpfr.ppc.o: $(FTSRC)/base/ftpfr.c
$(CC) -c $(CFLAGS) -o $@ $<
ftstroke.ppc.o: $(FTSRC)/base/ftstroke.c
$(CC) -c $(CFLAGS) -o $@ $<
ftsynth.ppc.o: $(FTSRC)/base/ftsynth.c
$(CC) -c $(CFLAGS) -o $@ $<
fttype1.ppc.o: $(FTSRC)/base/fttype1.c
$(CC) -c $(CFLAGS) -o $@ $<
ftwinfnt.ppc.o: $(FTSRC)/base/ftwinfnt.c
$(CC) -c $(CFLAGS) -o $@ $<
#
# FreeType2 library autofitting module
#
autofit.ppc.o: $(FTSRC)/autofit/autofit.c
$(CC) -c $(CFLAGS) -o $@ $<
#
# FreeType2 library postscript hinting module
#
pshinter.ppc.o: $(FTSRC)/pshinter/pshinter.c
$(CC) -c $(CFLAGS) -o $@ $<
#
# FreeType2 library PS support module
#
psaux.ppc.o: $(FTSRC)/psaux/psaux.c
$(CC) -c $(CFLAGS) -o $@ $<
#
# FreeType2 library PS glyph names module
#
psnames.ppc.o: $(FTSRC)/psnames/psnames.c
$(CC) -c $(CFLAGS) -o $@ $<
#
# FreeType2 library monochrome raster module
#
raster.ppc.o: $(FTSRC)/raster/raster.c
$(CC) -c $(CFLAGS) -o $@ $<
#
# FreeType2 library anti-aliasing raster module
#
smooth.ppc.o: $(FTSRC)/smooth/smooth.c
$(CC) -c $(CFLAGS) -o $@ $<
#
# FreeType2 library 'sfnt' module
#
sfnt.ppc.o: $(FTSRC)/sfnt/sfnt.c
$(CC) -c $(CFLAGS) -o $@ $<
#
# FreeType2 library glyph and image caching system
#
ftcache.ppc.o: $(FTSRC)/cache/ftcache.c
$(CC) -c $(CFLAGS) -o $@ $<
#
# FreeType2 library OpenType font driver
#
cff.ppc.o: $(FTSRC)/cff/cff.c
$(CC) -c $(CFLAGS) -o $@ $<
#
# FreeType2 library TrueType font driver
#
truetype.ppc.o: $(FTSRC)/truetype/truetype.c
$(CC) -c $(CFLAGS) -o $@ $<
#
# FreeType2 library Type1 font driver
#
type1.ppc.o: $(FTSRC)/type1/type1.c
$(CC) -c $(CFLAGS) -o $@ $<
#
# FreeType2 library Type42 font driver
#
type42.ppc.o: $(FTSRC)/type42/type42.c
$(CC) -c $(CFLAGS) -o $@ $<
#
# FreeType2 library CID-keyed Type1 font driver
#
type1cid.ppc.o: $(FTSRC)/cid/type1cid.c
$(CC) -c $(CFLAGS) -o $@ $<
#
# FreeType2 library BDF bitmap font driver
#
bdf.ppc.o: $(FTSRC)/bdf/bdf.c
$(CC) -c $(CFLAGS) -o $@ $<
#
# FreeType2 library PCF bitmap font driver
#
pcf.ppc.o: $(FTSRC)/pcf/pcf.c
$(CC) -c $(CFLAGS) -o $@ $<
#
# FreeType2 library gzip support for compressed PCF bitmap fonts
#
gzip.ppc.o: $(FTSRC)/gzip/ftgzip.c
$(CC) -c $(CFLAGS) -o $@ $<
# FreeType2 library bzip2 support for compressed PCF bitmap fonts
#
bzip2.ppc.o: $(FTSRC)/bzip2/ftbzip2.c
$(CC) -c $(CFLAGS) -o $@ $<
#
# FreeType2 library compress support for compressed PCF bitmap fonts
#
lzw.ppc.o: $(FTSRC)/lzw/ftlzw.c
$(CC) -c $(CFLAGS) -o $@ $<
#
# FreeType2 library PFR font driver
#
pfr.ppc.o: $(FTSRC)/pfr/pfr.c
$(CC) -c $(CFLAGS) -o $@ $<
#
# FreeType2 library Windows FNT/FON bitmap font driver
#
winfnt.ppc.o: $(FTSRC)/winfonts/winfnt.c
$(CC) -c $(CFLAGS) -o $@ $<
#
# FreeType2 library TrueTypeGX Validator
#
gxvalid.ppc.o: $(FTSRC)/gxvalid/gxvalid.c
$(CC) -c $(CFLAGS) -o $@ $<
#
# FreeType2 library OpenType validator
#
otvalid.ppc.o: $(FTSRC)/otvalid/otvalid.c
$(CC) -c $(CFLAGS) -o $@ $<
BASEPPC = ftbase.ppc.o ftbbox.ppc.o ftbdf.ppc.o ftbitmap.ppc.o ftcid.ppc.o \
oftfstype.ppc.o ftgasp.ppc.o ftglyph.ppc.o \
ftgxval.ppc.o ftmm.ppc.o ftotval.ppc.o \
ftpatent.ppc.o ftpfr.ppc.o ftstroke.ppc.o ftsynth.ppc.o \
fttype1.ppc.o ftwinfnt.ppc.o
DEBUGPPC = ftdebug.ppc.o ftdebugpure.ppc.o
AFITPPC = autofit.ppc.o
GXVPPC = gxvalid.ppc.o
OTVPPC = otvalid.ppc.o
PSPPC = psaux.ppc.o psnames.ppc.o pshinter.ppc.o
RASTERPPC = raster.ppc.o smooth.ppc.o
FONTDPPC = cff.ppc.o type1.ppc.o type42.ppc.o type1cid.ppc.o truetype.ppc.o\
bdf.ppc.o pcf.ppc.o pfr.ppc.o winfnt.ppc.o
libft2_ppc.a: $(BASEPPC) $(AFITPPC) $(GXVPPC) $(OTVPPC) $(PSPPC) $(RASTERPPC) sfnt.ppc.o ftcache.ppc.o $(FONTDPPC) gzip.ppc.o bzip2.ppc.o lzw.ppc.o
$(AR) $@ $(BASEPPC) $(AFITPPC) $(GXVPPC) $(OTVPPC) $(PSPPC) $(RASTERPPC) sfnt.ppc.o ftcache.ppc.o $(FONTDPPC) gzip.ppc.o bzip2.ppc.o lzw.ppc.o
-@ ($(RANLIB) $@ || true) >/dev/null 2>&1
#Local Variables:
#coding: latin-1
#End:

View File

@ -0,0 +1,297 @@
#
# Makefile for FreeType2 link library using gcc 4.0.3 from the
# AmigaOS4 SDK
#
# Copyright (C) 2005-2022 by
# Werner Lemberg and Detlef W<>rkner.
#
# This file is part of the FreeType project, and may only be used, modified,
# and distributed under the terms of the FreeType project license,
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
# indicate that you have read the license and understand and accept it
# fully.
# to build from the builds/amiga directory call
#
# make -f makefile.os4
#
# Your programs source code should start with this
# (uncomment the parts you do not need to keep the program small):
# ---8<---
#define FT_USE_AUTOFIT // autofitter
#define FT_USE_RASTER // monochrome rasterizer
#define FT_USE_SMOOTH // anti-aliasing rasterizer
#define FT_USE_TT // truetype font driver
#define FT_USE_T1 // type1 font driver
#define FT_USE_T42 // type42 font driver
#define FT_USE_T1CID // cid-keyed type1 font driver
#define FT_USE_CFF // opentype font driver
#define FT_USE_BDF // bdf bitmap font driver
#define FT_USE_PCF // pcf bitmap font driver
#define FT_USE_PFR // pfr font driver
#define FT_USE_WINFNT // windows .fnt|.fon bitmap font driver
#define FT_USE_OTV // opentype validator
#define FT_USE_GXV // truetype gx validator
#include "FT:src/base/ftinit.c"
# ---8<---
#
# link your programs with libft2_ppc.a and either ftsystem.ppc.o or ftsystempure.ppc.o
# (and either ftdebug.ppc.o or ftdebugpure.ppc.o if you enabled FT_DEBUG_LEVEL_ERROR or
# FT_DEBUG_LEVEL_TRACE in include/freetype/config/ftoption.h).
all: assign libft2_ppc.a ftsystem.ppc.o ftsystempure.ppc.o
assign:
assign FT: //
CC = ppc-amigaos-gcc
AR = ppc-amigaos-ar
RANLIB = ppc-amigaos-ranlib
DIRFLAGS = -Iinclude -I/FT/src -I/FT/include -I/SDK/include
WARNINGS = -Wall -W -Wundef -Wpointer-arith -Wbad-function-cast \
-Waggregate-return -Wwrite-strings -Wshadow
OPTIONS = -DFT2_BUILD_LIBRARY -DNDEBUG -fno-builtin
OPTIMIZE = -O2 -fomit-frame-pointer -fstrength-reduce -finline-functions
CFLAGS = -mcrt=clib2 $(DIRFLAGS) $(WARNINGS) $(FT2FLAGS) $(OPTIONS) $(OPTIMIZE)
#
# FreeType2 library base
#
ftbase.ppc.o: FT:src/base/ftbase.c
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftbase.c
ftinit.ppc.o: FT:src/base/ftinit.c
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftinit.c
ftsystem.ppc.o: FT:src/base/ftsystem.c
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftsystem.c
# pure version for use in run-time library etc
ftsystempure.ppc.o: src/base/ftsystem.c
$(CC) -c $(CFLAGS) -o $@ src/base/ftsystem.c
#
# FreeType2 library base extensions
#
ftbbox.ppc.o: FT:src/base/ftbbox.c
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftbbox.c
ftbdf.ppc.o: FT:src/base/ftbdf.c
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftbdf.c
ftbitmap.ppc.o: FT:src/base/ftbitmap.c
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftbitmap.c
ftcid.ppc.o: FT:src/base/ftcid.c
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftcid.c
ftdebug.ppc.o: FT:src/base/ftdebug.c
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftdebug.c
# pure version for use in run-time library etc
ftdebugpure.ppc.o: src/base/ftdebug.c
$(CC) -c $(CFLAGS) -o $@ src/base/ftdebug.c
ftfstype.ppc.o: FT:src/base/ftfstype.c
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftfstype.c
ftgasp.ppc.o: FT:src/base/ftgasp.c
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftgasp.c
ftglyph.ppc.o: FT:src/base/ftglyph.c
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftglyph.c
ftgxval.ppc.o: FT:src/base/ftgxval.c
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftgxval.c
ftmm.ppc.o: FT:src/base/ftmm.c
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftmm.c
ftotval.ppc.o: FT:src/base/ftotval.c
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftotval.c
ftpatent.ppc.o: FT:src/base/ftpatent.c
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftpatent.c
ftpfr.ppc.o: FT:src/base/ftpfr.c
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftpfr.c
ftstroke.ppc.o: FT:src/base/ftstroke.c
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftstroke.c
ftsynth.ppc.o: FT:src/base/ftsynth.c
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftsynth.c
fttype1.ppc.o: FT:src/base/fttype1.c
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/fttype1.c
ftwinfnt.ppc.o: FT:src/base/ftwinfnt.c
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftwinfnt.c
#
# FreeType2 library autofitting module
#
autofit.ppc.o: FT:src/autofit/autofit.c
$(CC) -c $(CFLAGS) -o $@ /FT/src/autofit/autofit.c
#
# FreeType2 library postscript hinting module
#
pshinter.ppc.o: FT:src/pshinter/pshinter.c
$(CC) -c $(CFLAGS) -o $@ /FT/src/pshinter/pshinter.c
#
# FreeType2 library PS support module
#
psaux.ppc.o: FT:src/psaux/psaux.c
$(CC) -c $(CFLAGS) -o $@ /FT/src/psaux/psaux.c
#
# FreeType2 library PS glyph names module
#
psnames.ppc.o: FT:src/psnames/psnames.c
$(CC) -c $(CFLAGS) -o $@ /FT/src/psnames/psnames.c
#
# FreeType2 library monochrome raster module
#
raster.ppc.o: FT:src/raster/raster.c
$(CC) -c $(CFLAGS) -o $@ /FT/src/raster/raster.c
#
# FreeType2 library anti-aliasing raster module
#
smooth.ppc.o: FT:src/smooth/smooth.c
$(CC) -c $(CFLAGS) -o $@ /FT/src/smooth/smooth.c
#
# FreeType2 library 'sfnt' module
#
sfnt.ppc.o: FT:src/sfnt/sfnt.c
$(CC) -c $(CFLAGS) -o $@ /FT/src/sfnt/sfnt.c
#
# FreeType2 library glyph and image caching system
#
ftcache.ppc.o: FT:src/cache/ftcache.c
$(CC) -c $(CFLAGS) -o $@ /FT/src/cache/ftcache.c
#
# FreeType2 library OpenType font driver
#
cff.ppc.o: FT:src/cff/cff.c
$(CC) -c $(CFLAGS) -o $@ /FT/src/cff/cff.c
#
# FreeType2 library TrueType font driver
#
truetype.ppc.o: FT:src/truetype/truetype.c
$(CC) -c $(CFLAGS) -o $@ /FT/src/truetype/truetype.c
#
# FreeType2 library Type1 font driver
#
type1.ppc.o: FT:src/type1/type1.c
$(CC) -c $(CFLAGS) -o $@ /FT/src/type1/type1.c
#
# FreeType2 library Type42 font driver
#
type42.ppc.o: FT:src/type42/type42.c
$(CC) -c $(CFLAGS) -o $@ /FT/src/type42/type42.c
#
# FreeType2 library CID-keyed Type1 font driver
#
type1cid.ppc.o: FT:src/cid/type1cid.c
$(CC) -c $(CFLAGS) -o $@ /FT/src/cid/type1cid.c
#
# FreeType2 library BDF bitmap font driver
#
bdf.ppc.o: FT:src/bdf/bdf.c
$(CC) -c $(CFLAGS) -o $@ /FT/src/bdf/bdf.c
#
# FreeType2 library PCF bitmap font driver
#
pcf.ppc.o: FT:src/pcf/pcf.c
$(CC) -c $(CFLAGS) -o $@ /FT/src/pcf/pcf.c
#
# FreeType2 library gzip support for compressed PCF bitmap fonts
#
gzip.ppc.o: FT:src/gzip/ftgzip.c
$(CC) -c $(CFLAGS) -o $@ /FT/src/gzip/ftgzip.c
#
# FreeType2 library bzip2 support for compressed PCF bitmap fonts
#
bzip2.ppc.o: FT:src/bzip2/ftbzip2.c
$(CC) -c $(CFLAGS) -o $@ /FT/src/bzip2/ftbzip2.c
#
# FreeType2 library compress support for compressed PCF bitmap fonts
#
lzw.ppc.o: FT:src/lzw/ftlzw.c
$(CC) -c $(CFLAGS) -o $@ /FT/src/lzw/ftlzw.c
#
# FreeType2 library PFR font driver
#
pfr.ppc.o: FT:src/pfr/pfr.c
$(CC) -c $(CFLAGS) -o $@ /FT/src/pfr/pfr.c
#
# FreeType2 library Windows FNT/FON bitmap font driver
#
winfnt.ppc.o: FT:src/winfonts/winfnt.c
$(CC) -c $(CFLAGS) -o $@ /FT/src/winfonts/winfnt.c
#
# FreeType2 library TrueTypeGX Validator
#
gxvalid.ppc.o: FT:src/gxvalid/gxvalid.c
$(CC) -c $(CFLAGS) -Wno-aggregate-return -o $@ /FT/src/gxvalid/gxvalid.c
#
# FreeType2 library OpenType validator
#
otvalid.ppc.o: FT:src/otvalid/otvalid.c
$(CC) -c $(CFLAGS) -o $@ /FT/src/otvalid/otvalid.c
BASE = ftbase.ppc.o ftbbox.ppc.o ftbdf.ppc.o ftbitmap.ppc.o ftcid.ppc.o \
ftfstype.ppc.o ftgasp.ppc.o ftglyph.ppc.o \
ftgxval.ppc.o ftmm.ppc.o ftotval.ppc.o \
ftpatent.ppc.o ftpfr.ppc.o ftstroke.ppc.o ftsynth.ppc.o \
fttype1.ppc.o ftwinfnt.ppc.o
DEBUG = ftdebug.ppc.o ftdebugpure.ppc.o
AFIT = autofit.ppc.o
GXV = gxvalid.ppc.o
OTV = otvalid.ppc.o
PS = psaux.ppc.o psnames.ppc.o pshinter.ppc.o
RASTER = raster.ppc.o smooth.ppc.o
FONTD = cff.ppc.o type1.ppc.o type42.ppc.o type1cid.ppc.o truetype.ppc.o\
bdf.ppc.o pcf.ppc.o pfr.ppc.o winfnt.ppc.o
libft2_ppc.a: $(BASE) $(AFIT) $(GXV) $(OTV) $(PS) $(RASTER) sfnt.ppc.o ftcache.ppc.o $(FONTD) gzip.ppc.o lzw.ppc.o
$(AR) r $@ $(BASE) $(AFIT) $(GXV) $(OTV) $(PS) $(RASTER) sfnt.ppc.o ftcache.ppc.o $(FONTD) gzip.ppc.o lzw.ppc.o
$(RANLIB) $@
#Local Variables:
#coding: latin-1
#End:

View File

@ -0,0 +1,299 @@
#
# Makefile for FreeType2 link library using Amiga SAS/C 6.58
#
# Copyright (C) 2005-2022 by
# Werner Lemberg and Detlef W<>rkner.
#
# This file is part of the FreeType project, and may only be used, modified,
# and distributed under the terms of the FreeType project license,
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
# indicate that you have read the license and understand and accept it
# fully.
# to build from the builds/amiga directory call
#
# smake assign
# smake
#
# Your programs source code should start with this
# (uncomment the parts you do not need to keep the program small):
# ---8<---
#define FT_USE_AUTOFIT // autofitter
#define FT_USE_RASTER // monochrome rasterizer
#define FT_USE_SMOOTH // anti-aliasing rasterizer
#define FT_USE_TT // truetype font driver
#define FT_USE_T1 // type1 font driver
#define FT_USE_T42 // type42 font driver
#define FT_USE_T1CID // cid-keyed type1 font driver
#define FT_USE_CFF // opentype font driver
#define FT_USE_BDF // bdf bitmap font driver
#define FT_USE_PCF // pcf bitmap font driver
#define FT_USE_PFR // pfr font driver
#define FT_USE_WINFNT // windows .fnt|.fon bitmap font driver
#define FT_USE_OTV // opentype validator
#define FT_USE_GXV // truetype gx validator
#include "FT:src/base/ftinit.c"
# ---8<---
#
# link your programs with ft2_680x0.lib and either ftsystem.o or ftsystempure.o
# (and either ftdebug.o or ftdebugpure.o if you enabled FT_DEBUG_LEVEL_ERROR or
# FT_DEBUG_LEVEL_TRACE in include/freetype/config/ftoption.h).
OBJBASE = ftbase.o ftbbox.o ftbdf.o ftbitmap.o ftcid.o ftfstype.o \
ftgasp.o ftglyph.o ftgxval.o ftmm.o ftotval.o \
ftpatent.o ftpfr.o ftstroke.o ftsynth.o fttype1.o ftwinfnt.o
OBJSYSTEM = ftsystem.o ftsystempure.o
OBJDEBUG = ftdebug.o ftdebugpure.o
OBJAFIT = autofit.o
OBJGXV = gxvalid.o
OBJOTV = otvalid.o
OBJPS = psaux.o psnames.o pshinter.o
OBJRASTER = raster.o smooth.o
OBJSFNT = sfnt.o
OBJCACHE = ftcache.o
OBJFONTD = cff.o type1.o type42.o type1cid.o\
truetype.o winfnt.o bdf.o pcf.o pfr.o
CORE = FT:src/
CPU = 68000
#CPU = 68020
#CPU = 68030
#CPU = 68040
#CPU = 68060
OPTIMIZER = optinlocal
SCFLAGS = optimize opttime optsched strmerge data=faronly idlen=50 cpu=$(CPU)\
idir=include/ idir=$(CORE) idir=FT:include/ nostackcheck nochkabort\
noicons ignore=79,85,110,306 parameters=both define=FT2_BUILD_LIBRARY
LIB = ft2_$(CPU).lib
# sample linker options
OPTS = link lib=$(LIB),lib:sc.lib,lib:amiga.lib,lib:debug.lib\
smallcode smalldata noicons utillib
# sample program entry
#myprog: myprog.c ftsystem.o $(LIB)
# sc $< programname=$@ ftsystem.o $(SCFLAGS) $(OPTS)
all: $(LIB) $(OBJSYSTEM) $(OBJDEBUG)
assign:
assign FT: //
# uses separate object modules in lib to make for easier debugging
# also, can make smaller programs if entire engine is not used
ft2_$(CPU).lib: $(OBJBASE) $(OBJAFIT) $(OBJOTV) $(OBJPS) $(OBJRASTER) $(OBJSFNT) $(OBJCACHE) $(OBJFONTD) lzw.o gzip.o bzip2.o
oml $@ r $(OBJBASE) $(OBJAFIT) $(OBJOTV) $(OBJPS) $(OBJRASTER) $(OBJSFNT) $(OBJCACHE) $(OBJFONTD) lzw.o gzip.o bzip2.o
clean:
-delete \#?.o
realclean: clean
-delete ft2$(CPU).lib
#
# freetype library base
#
ftbase.o: $(CORE)base/ftbase.c
sc $(SCFLAGS) objname=$@ $<
ftinit.o: $(CORE)base/ftinit.c
sc $(SCFLAGS) objname=$@ $<
ftsystem.o: $(CORE)base/ftsystem.c
sc $(SCFLAGS) objname=$@ $<
ftsystempure.o: src/base/ftsystem.c ## pure version for use in run-time library etc
sc $(SCFLAGS) objname=$@ $<
ftdebug.o: $(CORE)base/ftdebug.c
sc $(SCFLAGS) objname=$@ $<
ftdebugpure.o: src/base/ftdebug.c ## pure version for use in run-time library etc
sc $(SCFLAGS) objname=$@ $<
#
# freetype library base extensions
#
ftbbox.o: $(CORE)base/ftbbox.c
sc $(SCFLAGS) objname=$@ $<
ftbdf.o: $(CORE)base/ftbdf.c
sc $(SCFLAGS) objname=$@ $<
ftbitmap.o: $(CORE)base/ftbitmap.c
sc $(SCFLAGS) objname=$@ $<
ftcid.o: $(CORE)base/ftcid.c
sc $(SCFLAGS) objname=$@ $<
ftfstype.o: $(CORE)base/ftfstype.c
sc $(SCFLAGS) objname=$@ $<
ftgasp.o: $(CORE)base/ftgasp.c
sc $(SCFLAGS) objname=$@ $<
ftglyph.o: $(CORE)base/ftglyph.c
sc $(SCFLAGS) objname=$@ $<
ftgxval.o: $(CORE)base/ftgxval.c
sc $(SCFLAGS) objname=$@ $<
ftmm.o: $(CORE)base/ftmm.c
sc $(SCFLAGS) objname=$@ $<
ftotval.o: $(CORE)base/ftotval.c
sc $(SCFLAGS) objname=$@ $<
ftpatent.o: $(CORE)base/ftpatent.c
sc $(SCFLAGS) objname=$@ $<
ftpfr.o: $(CORE)base/ftpfr.c
sc $(SCFLAGS) objname=$@ $<
ftstroke.o: $(CORE)base/ftstroke.c
sc $(SCFLAGS) objname=$@ $<
ftsynth.o: $(CORE)base/ftsynth.c
sc $(SCFLAGS) objname=$@ $<
fttype1.o: $(CORE)base/fttype1.c
sc $(SCFLAGS) objname=$@ $<
ftwinfnt.o: $(CORE)base/ftwinfnt.c
sc $(SCFLAGS) objname=$@ $<
#
# freetype library autofitter module
#
autofit.o: $(CORE)autofit/autofit.c
sc $(SCFLAGS) objname=$@ $<
#
# freetype library PS hinting module
#
pshinter.o: $(CORE)pshinter/pshinter.c
sc $(SCFLAGS) objname=$@ $<
#
# freetype library PS support module
#
psaux.o: $(CORE)psaux/psaux.c
sc $(SCFLAGS) objname=$@ $<
#
# freetype library PS glyph names module
#
psnames.o: $(CORE)psnames/psnames.c
sc $(SCFLAGS) code=far objname=$@ $<
#
# freetype library monochrome raster module
#
raster.o: $(CORE)raster/raster.c
sc $(SCFLAGS) objname=$@ $<
#
# freetype library anti-aliasing raster module
#
smooth.o: $(CORE)smooth/smooth.c
sc $(SCFLAGS) objname=$@ $<
#
# freetype library 'sfnt' module
#
sfnt.o: $(CORE)sfnt/sfnt.c
sc $(SCFLAGS) objname=$@ $<
#
# freetype library glyph and image caching system (still experimental)
#
ftcache.o: $(CORE)cache/ftcache.c
sc $(SCFLAGS) objname=$@ $<
#
# freetype library OpenType font driver
#
cff.o: $(CORE)cff/cff.c
sc $(SCFLAGS) objname=$@ $<
#
# freetype library TrueType font driver
#
truetype.o: $(CORE)truetype/truetype.c
sc $(SCFLAGS) objname=$@ $<
#
# freetype library Type1 font driver
#
type1.o: $(CORE)type1/type1.c
sc $(SCFLAGS) objname=$@ $<
#
# FreeType2 library Type42 font driver
#
type42.o: $(CORE)type42/type42.c
sc $(SCFLAGS) objname=$@ $<
#
# freetype library CID-keyed Type1 font driver
#
type1cid.o: $(CORE)cid/type1cid.c
sc $(SCFLAGS) objname=$@ $<
#
# freetype library CID-keyed Type1 font driver extensions
#
#cidafm.o: $(CORE)cid/cidafm.c
# sc $(SCFLAGS) objname=$@ $<
#
# freetype library BDF bitmap font driver
#
bdf.o: $(CORE)bdf/bdf.c
sc $(SCFLAGS) objname=$@ $<
#
# freetype library PCF bitmap font driver
#
pcf.o: $(CORE)pcf/pcf.c
sc $(SCFLAGS) objname=$@ $<
#
# freetype library gzip support for compressed PCF bitmap fonts
#
gzip.o: $(CORE)gzip/ftgzip.c
sc $(SCFLAGS) define FAR objname=$@ $<
#
# freetype library bzip2 support for compressed PCF bitmap fonts
#
bzip2.o: $(CORE)bzip2/ftbzip2.c
sc $(SCFLAGS) define FAR objname=$@ $<
#
# freetype library compress support for compressed PCF bitmap fonts
#
lzw.o: $(CORE)lzw/ftlzw.c
sc $(SCFLAGS) objname=$@ $<
#
# freetype library PFR font driver
#
pfr.o: $(CORE)pfr/pfr.c
sc $(SCFLAGS) objname=$@ $<
#
# freetype library Windows FNT/FON bitmap font driver
#
winfnt.o: $(CORE)winfonts/winfnt.c
sc $(SCFLAGS) objname=$@ $<
#
# freetype library TrueTypeGX validator
#
gxvalid.o: $(CORE)gxvalid/gxvalid.c
sc $(SCFLAGS) objname=$@ $<
#
# freetype library OpenType validator
#
otvalid.o: $(CORE)otvalid/otvalid.c
sc $(SCFLAGS) objname=$@ $<
#Local Variables:
#coding: latin-1
#End:

View File

@ -0,0 +1,348 @@
/****************************************************************************
*
* ftdebug.c
*
* Debugging and logging component for amiga (body).
*
* Copyright (C) 1996-2022 by
* David Turner, Robert Wilhelm, Werner Lemberg, and Detlef Wuerkner.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
/**************************************************************************
*
* This component contains various macros and functions used to ease the
* debugging of the FreeType engine. Its main purpose is in assertion
* checking, tracing, and error detection.
*
* There are now three debugging modes:
*
* - trace mode
*
* Error and trace messages are sent to the log file (which can be the
* standard error output).
*
* - error mode
*
* Only error messages are generated.
*
* - release mode:
*
* No error message is sent or generated. The code is free from any
* debugging parts.
*
*/
/*
* Based on the default `ftdebug.c' file,
* replaced `vprintf' with `KVPrintF',
* commented out `exit',
* replaced `getenv' with `GetVar'.
*/
#include <exec/types.h>
#include <utility/tagitem.h>
#include <dos/exall.h>
#include <dos/var.h>
#define __NOLIBBASE__
#define __NOLOBALIFACE__
#define __USE_INLINE__
#include <proto/dos.h>
#include <clib/debug_protos.h>
#ifndef __amigaos4__
extern struct Library* DOSBase;
#else
extern struct DOSIFace* IDOS;
#endif
#include <ft2build.h>
#include <freetype/freetype.h>
#include <freetype/internal/ftdebug.h>
#ifdef FT_DEBUG_LEVEL_ERROR
/* documentation is in ftdebug.h */
FT_BASE_DEF( void )
FT_Message( const char* fmt,
... )
{
va_list ap;
va_start( ap, fmt );
KVPrintF( fmt, ap );
va_end( ap );
}
/* documentation is in ftdebug.h */
FT_BASE_DEF( void )
FT_Panic( const char* fmt,
... )
{
va_list ap;
va_start( ap, fmt );
KVPrintF( fmt, ap );
va_end( ap );
/* exit( EXIT_FAILURE ); */
}
/* documentation is in ftdebug.h */
FT_BASE_DEF( int )
FT_Throw( FT_Error error,
int line,
const char* file )
{
#if 0
/* activating the code in this block makes FreeType very chatty */
fprintf( stderr,
"%s:%d: error 0x%02x: %s\n",
file,
line,
error,
FT_Error_String( error ) );
#else
FT_UNUSED( error );
FT_UNUSED( line );
FT_UNUSED( file );
#endif
return 0;
}
#endif /* FT_DEBUG_LEVEL_ERROR */
#ifdef FT_DEBUG_LEVEL_TRACE
/* array of trace levels, initialized to 0; */
/* this gets adjusted at run-time */
static int ft_trace_levels_enabled[trace_count];
/* array of trace levels, always initialized to 0 */
static int ft_trace_levels_disabled[trace_count];
/* a pointer to either `ft_trace_levels_enabled' */
/* or `ft_trace_levels_disabled' */
int* ft_trace_levels;
/* define array of trace toggle names */
#define FT_TRACE_DEF( x ) #x ,
static const char* ft_trace_toggles[trace_count + 1] =
{
#include <freetype/internal/fttrace.h>
NULL
};
#undef FT_TRACE_DEF
/* documentation is in ftdebug.h */
FT_BASE_DEF( FT_Int )
FT_Trace_Get_Count( void )
{
return trace_count;
}
/* documentation is in ftdebug.h */
FT_BASE_DEF( const char * )
FT_Trace_Get_Name( FT_Int idx )
{
int max = FT_Trace_Get_Count();
if ( idx < max )
return ft_trace_toggles[idx];
else
return NULL;
}
/* documentation is in ftdebug.h */
FT_BASE_DEF( void )
FT_Trace_Disable( void )
{
ft_trace_levels = ft_trace_levels_disabled;
}
/* documentation is in ftdebug.h */
FT_BASE_DEF( void )
FT_Trace_Enable( void )
{
ft_trace_levels = ft_trace_levels_enabled;
}
/**************************************************************************
*
* Initialize the tracing sub-system. This is done by retrieving the
* value of the `FT2_DEBUG' environment variable. It must be a list of
* toggles, separated by spaces, `;', or `,'. Example:
*
* export FT2_DEBUG="any:3 memory:7 stream:5"
*
* This requests that all levels be set to 3, except the trace level for
* the memory and stream components which are set to 7 and 5,
* respectively.
*
* See the file `include/freetype/internal/fttrace.h' for details of
* the available toggle names.
*
* The level must be between 0 and 7; 0 means quiet (except for serious
* runtime errors), and 7 means _very_ verbose.
*/
FT_BASE_DEF( void )
ft_debug_init( void )
{
/* const char* ft2_debug = ft_getenv( "FT2_DEBUG" ); */
char buf[256];
const char* ft2_debug = &buf[0];
/* if ( ft2_debug ) */
if ( GetVar( "FT2_DEBUG", (STRPTR)ft2_debug, 256, LV_VAR ) > 0 )
{
const char* p = ft2_debug;
const char* q;
for ( ; *p; p++ )
{
/* skip leading whitespace and separators */
if ( *p == ' ' || *p == '\t' || *p == ',' || *p == ';' || *p == '=' )
continue;
/* read toggle name, followed by ':' */
q = p;
while ( *p && *p != ':' )
p++;
if ( !*p )
break;
if ( *p == ':' && p > q )
{
FT_Int n, i, len = (FT_Int)( p - q );
FT_Int level = -1, found = -1;
for ( n = 0; n < trace_count; n++ )
{
const char* toggle = ft_trace_toggles[n];
for ( i = 0; i < len; i++ )
{
if ( toggle[i] != q[i] )
break;
}
if ( i == len && toggle[i] == 0 )
{
found = n;
break;
}
}
/* read level */
p++;
if ( *p )
{
level = *p - '0';
if ( level < 0 || level > 7 )
level = -1;
}
if ( found >= 0 && level >= 0 )
{
if ( found == trace_any )
{
/* special case for `any' */
for ( n = 0; n < trace_count; n++ )
ft_trace_levels_enabled[n] = level;
}
else
ft_trace_levels_enabled[found] = level;
}
}
}
}
ft_trace_levels = ft_trace_levels_enabled;
}
#else /* !FT_DEBUG_LEVEL_TRACE */
FT_BASE_DEF( void )
ft_debug_init( void )
{
/* nothing */
}
FT_BASE_DEF( FT_Int )
FT_Trace_Get_Count( void )
{
return 0;
}
FT_BASE_DEF( const char * )
FT_Trace_Get_Name( FT_Int idx )
{
FT_UNUSED( idx );
return NULL;
}
FT_BASE_DEF( void )
FT_Trace_Disable( void )
{
/* nothing */
}
/* documentation is in ftdebug.h */
FT_BASE_DEF( void )
FT_Trace_Enable( void )
{
/* nothing */
}
#endif /* !FT_DEBUG_LEVEL_TRACE */
/* END */

View File

@ -0,0 +1,530 @@
/***************************************************************************/
/* */
/* ftsystem.c */
/* */
/* Amiga-specific FreeType low-level system interface (body). */
/* */
/* Copyright (C) 1996-2022 by */
/* David Turner, Robert Wilhelm, Werner Lemberg and Detlef W<>rkner. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/*************************************************************************/
/* */
/* This file contains the Amiga interface used by FreeType to access */
/* low-level, i.e. memory management, i/o access as well as thread */
/* synchronisation. */
/* */
/*************************************************************************/
/*************************************************************************/
/* */
/* Maintained by Detlef W<>rkner <TetiSoft@apg.lahn.de> */
/* */
/* Based on the original ftsystem.c, */
/* modified to avoid fopen(), fclose(), fread(), fseek(), ftell(), */
/* malloc(), realloc(), and free(). */
/* */
/* Those C library functions are often not thread-safe or cant be */
/* used in a shared Amiga library. If that's not a problem for you, */
/* you can of course use the default ftsystem.c with C library calls */
/* instead. */
/* */
/* This implementation needs exec V39+ because it uses AllocPooled() etc */
/* */
/*************************************************************************/
#define __NOLIBBASE__
#define __NOGLOBALIFACE__
#define __USE_INLINE__
#include <proto/exec.h>
#include <dos/stdio.h>
#include <proto/dos.h>
#ifdef __amigaos4__
extern struct ExecIFace *IExec;
extern struct DOSIFace *IDOS;
#else
extern struct Library *SysBase;
extern struct Library *DOSBase;
#endif
#define IOBUF_SIZE 512
/* structure that helps us to avoid
* useless calls of Seek() and Read()
*/
struct SysFile
{
BPTR file;
ULONG iobuf_start;
ULONG iobuf_end;
UBYTE iobuf[IOBUF_SIZE];
};
#ifndef __amigaos4__
/* C implementation of AllocVecPooled (see autodoc exec/AllocPooled) */
APTR
Alloc_VecPooled( APTR poolHeader,
ULONG memSize )
{
ULONG newSize = memSize + sizeof ( ULONG );
ULONG *mem = AllocPooled( poolHeader, newSize );
if ( !mem )
return NULL;
*mem = newSize;
return mem + 1;
}
/* C implementation of FreeVecPooled (see autodoc exec/AllocPooled) */
void
Free_VecPooled( APTR poolHeader,
APTR memory )
{
ULONG *realmem = (ULONG *)memory - 1;
FreePooled( poolHeader, realmem, *realmem );
}
#endif
#include <ft2build.h>
#include FT_CONFIG_CONFIG_H
#include <freetype/internal/ftdebug.h>
#include <freetype/ftsystem.h>
#include <freetype/fterrors.h>
#include <freetype/fttypes.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/*************************************************************************/
/* */
/* MEMORY MANAGEMENT INTERFACE */
/* */
/*************************************************************************/
/*************************************************************************/
/* */
/* It is not necessary to do any error checking for the */
/* allocation-related functions. This is done by the higher level */
/* routines like ft_mem_alloc() or ft_mem_realloc(). */
/* */
/*************************************************************************/
/*************************************************************************/
/* */
/* <Function> */
/* ft_alloc */
/* */
/* <Description> */
/* The memory allocation function. */
/* */
/* <Input> */
/* memory :: A pointer to the memory object. */
/* */
/* size :: The requested size in bytes. */
/* */
/* <Return> */
/* The address of newly allocated block. */
/* */
FT_CALLBACK_DEF( void* )
ft_alloc( FT_Memory memory,
long size )
{
#ifdef __amigaos4__
return AllocVecPooled( memory->user, size );
#else
return Alloc_VecPooled( memory->user, size );
#endif
}
/*************************************************************************/
/* */
/* <Function> */
/* ft_realloc */
/* */
/* <Description> */
/* The memory reallocation function. */
/* */
/* <Input> */
/* memory :: A pointer to the memory object. */
/* */
/* cur_size :: The current size of the allocated memory block. */
/* */
/* new_size :: The newly requested size in bytes. */
/* */
/* block :: The current address of the block in memory. */
/* */
/* <Return> */
/* The address of the reallocated memory block. */
/* */
FT_CALLBACK_DEF( void* )
ft_realloc( FT_Memory memory,
long cur_size,
long new_size,
void* block )
{
void* new_block;
#ifdef __amigaos4__
new_block = AllocVecPooled ( memory->user, new_size );
#else
new_block = Alloc_VecPooled ( memory->user, new_size );
#endif
if ( new_block != NULL )
{
CopyMem ( block, new_block,
( new_size > cur_size ) ? cur_size : new_size );
#ifdef __amigaos4__
FreeVecPooled ( memory->user, block );
#else
Free_VecPooled ( memory->user, block );
#endif
}
return new_block;
}
/*************************************************************************/
/* */
/* <Function> */
/* ft_free */
/* */
/* <Description> */
/* The memory release function. */
/* */
/* <Input> */
/* memory :: A pointer to the memory object. */
/* */
/* block :: The address of block in memory to be freed. */
/* */
FT_CALLBACK_DEF( void )
ft_free( FT_Memory memory,
void* block )
{
#ifdef __amigaos4__
FreeVecPooled( memory->user, block );
#else
Free_VecPooled( memory->user, block );
#endif
}
/*************************************************************************/
/* */
/* RESOURCE MANAGEMENT INTERFACE */
/* */
/*************************************************************************/
/*************************************************************************/
/* */
/* The macro FT_COMPONENT is used in trace mode. It is an implicit */
/* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log */
/* messages during execution. */
/* */
#undef FT_COMPONENT
#define FT_COMPONENT io
/* We use the macro STREAM_FILE for convenience to extract the */
/* system-specific stream handle from a given FreeType stream object */
#define STREAM_FILE( stream ) ( (struct SysFile *)stream->descriptor.pointer )
/*************************************************************************/
/* */
/* <Function> */
/* ft_amiga_stream_close */
/* */
/* <Description> */
/* The function to close a stream. */
/* */
/* <Input> */
/* stream :: A pointer to the stream object. */
/* */
FT_CALLBACK_DEF( void )
ft_amiga_stream_close( FT_Stream stream )
{
struct SysFile* sysfile;
sysfile = STREAM_FILE( stream );
Close ( sysfile->file );
FreeMem ( sysfile, sizeof ( struct SysFile ));
stream->descriptor.pointer = NULL;
stream->size = 0;
stream->base = NULL;
}
/*************************************************************************/
/* */
/* <Function> */
/* ft_amiga_stream_io */
/* */
/* <Description> */
/* The function to open a stream. */
/* */
/* <Input> */
/* stream :: A pointer to the stream object. */
/* */
/* offset :: The position in the data stream to start reading. */
/* */
/* buffer :: The address of buffer to store the read data. */
/* */
/* count :: The number of bytes to read from the stream. */
/* */
/* <Return> */
/* The number of bytes actually read. */
/* */
FT_CALLBACK_DEF( unsigned long )
ft_amiga_stream_io( FT_Stream stream,
unsigned long offset,
unsigned char* buffer,
unsigned long count )
{
struct SysFile* sysfile;
unsigned long read_bytes;
if ( count != 0 )
{
sysfile = STREAM_FILE( stream );
/* handle the seek */
if ( (offset < sysfile->iobuf_start) || (offset + count > sysfile->iobuf_end) )
{
/* requested offset implies we need a buffer refill */
if ( !sysfile->iobuf_end || offset != sysfile->iobuf_end )
{
/* a physical seek is necessary */
Seek( sysfile->file, offset, OFFSET_BEGINNING );
}
sysfile->iobuf_start = offset;
sysfile->iobuf_end = 0; /* trigger a buffer refill */
}
/* handle the read */
if ( offset + count <= sysfile->iobuf_end )
{
/* we have buffer and requested bytes are all inside our buffer */
CopyMem( &sysfile->iobuf[offset - sysfile->iobuf_start], buffer, count );
read_bytes = count;
}
else
{
/* (re)fill buffer */
if ( count <= IOBUF_SIZE )
{
/* requested bytes is a subset of the buffer */
read_bytes = Read( sysfile->file, sysfile->iobuf, IOBUF_SIZE );
if ( read_bytes == -1UL )
{
/* error */
read_bytes = 0;
}
else
{
sysfile->iobuf_end = offset + read_bytes;
CopyMem( sysfile->iobuf, buffer, count );
if ( read_bytes > count )
{
read_bytes = count;
}
}
}
else
{
/* we actually need more than our buffer can hold, so we decide
** to do a single big read, and then copy the last IOBUF_SIZE
** bytes of that to our internal buffer for later use */
read_bytes = Read( sysfile->file, buffer, count );
if ( read_bytes == -1UL )
{
/* error */
read_bytes = 0;
}
else
{
ULONG bufsize;
bufsize = ( read_bytes > IOBUF_SIZE ) ? IOBUF_SIZE : read_bytes;
sysfile->iobuf_end = offset + read_bytes;
sysfile->iobuf_start = sysfile->iobuf_end - bufsize;
CopyMem( &buffer[read_bytes - bufsize] , sysfile->iobuf, bufsize );
}
}
}
}
else
{
read_bytes = 0;
}
return read_bytes;
}
/* documentation is in ftobjs.h */
FT_BASE_DEF( FT_Error )
FT_Stream_Open( FT_Stream stream,
const char* filepathname )
{
struct FileInfoBlock* fib;
struct SysFile* sysfile;
if ( !stream )
return FT_THROW( Invalid_Stream_Handle );
#ifdef __amigaos4__
sysfile = AllocMem ( sizeof (struct SysFile ), MEMF_SHARED );
#else
sysfile = AllocMem ( sizeof (struct SysFile ), MEMF_PUBLIC );
#endif
if ( !sysfile )
{
FT_ERROR(( "FT_Stream_Open:" ));
FT_ERROR(( " could not open `%s'\n", filepathname ));
return FT_THROW( Cannot_Open_Resource );
}
sysfile->file = Open( (STRPTR)filepathname, MODE_OLDFILE );
if ( !sysfile->file )
{
FreeMem ( sysfile, sizeof ( struct SysFile ));
FT_ERROR(( "FT_Stream_Open:" ));
FT_ERROR(( " could not open `%s'\n", filepathname ));
return FT_THROW( Cannot_Open_Resource );
}
fib = AllocDosObject( DOS_FIB, NULL );
if ( !fib )
{
Close ( sysfile->file );
FreeMem ( sysfile, sizeof ( struct SysFile ));
FT_ERROR(( "FT_Stream_Open:" ));
FT_ERROR(( " could not open `%s'\n", filepathname ));
return FT_THROW( Cannot_Open_Resource );
}
if ( !( ExamineFH( sysfile->file, fib ) ) )
{
FreeDosObject( DOS_FIB, fib );
Close ( sysfile->file );
FreeMem ( sysfile, sizeof ( struct SysFile ));
FT_ERROR(( "FT_Stream_Open:" ));
FT_ERROR(( " could not open `%s'\n", filepathname ));
return FT_THROW( Cannot_Open_Resource );
}
stream->size = fib->fib_Size;
FreeDosObject( DOS_FIB, fib );
stream->descriptor.pointer = (void *)sysfile;
stream->pathname.pointer = (char*)filepathname;
sysfile->iobuf_start = 0;
sysfile->iobuf_end = 0;
stream->pos = 0;
stream->read = ft_amiga_stream_io;
stream->close = ft_amiga_stream_close;
if ( !stream->size )
{
ft_amiga_stream_close( stream );
FT_ERROR(( "FT_Stream_Open:" ));
FT_ERROR(( " opened `%s' but zero-sized\n", filepathname ));
return FT_THROW( Cannot_Open_Stream );
}
FT_TRACE1(( "FT_Stream_Open:" ));
FT_TRACE1(( " opened `%s' (%ld bytes) successfully\n",
filepathname, stream->size ));
return FT_Err_Ok;
}
#ifdef FT_DEBUG_MEMORY
extern FT_Int
ft_mem_debug_init( FT_Memory memory );
extern void
ft_mem_debug_done( FT_Memory memory );
#endif
/* documentation is in ftobjs.h */
FT_BASE_DEF( FT_Memory )
FT_New_Memory( void )
{
FT_Memory memory;
#ifdef __amigaos4__
memory = (FT_Memory)AllocVec( sizeof ( *memory ), MEMF_SHARED );
#else
memory = (FT_Memory)AllocVec( sizeof ( *memory ), MEMF_PUBLIC );
#endif
if ( memory )
{
#ifdef __amigaos4__
memory->user = CreatePool( MEMF_SHARED, 16384, 16384 );
#else
memory->user = CreatePool( MEMF_PUBLIC, 16384, 16384 );
#endif
if ( memory->user == NULL )
{
FreeVec( memory );
memory = NULL;
}
else
{
memory->alloc = ft_alloc;
memory->realloc = ft_realloc;
memory->free = ft_free;
#ifdef FT_DEBUG_MEMORY
ft_mem_debug_init( memory );
#endif
}
}
return memory;
}
/* documentation is in ftobjs.h */
FT_BASE_DEF( void )
FT_Done_Memory( FT_Memory memory )
{
#ifdef FT_DEBUG_MEMORY
ft_mem_debug_done( memory );
#endif
DeletePool( memory->user );
FreeVec( memory );
}
/*
Local Variables:
coding: latin-1
End:
*/
/* END */

View File

@ -0,0 +1,77 @@
#
# FreeType 2 configuration rules for a `normal' ANSI system
#
# Copyright (C) 1996-2022 by
# David Turner, Robert Wilhelm, and Werner Lemberg.
#
# This file is part of the FreeType project, and may only be used, modified,
# and distributed under the terms of the FreeType project license,
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
# indicate that you have read the license and understand and accept it
# fully.
DELETE := rm -f
CAT := cat
SEP := /
PLATFORM_DIR := $(TOP_DIR)/builds/ansi
PLATFORM := ansi
# This is used for `make refdoc' and `make refdoc-venv'
#
BIN := bin
# The directory where all library files are placed.
#
# By default, this is the same as $(OBJ_DIR); however, this can be changed
# to suit particular needs.
#
LIB_DIR := $(OBJ_DIR)
# The name of the final library file. Note that the DOS-specific Makefile
# uses a shorter (8.3) name.
#
LIBRARY := lib$(PROJECT)
# Path inclusion flag. Some compilers use a different flag than `-I' to
# specify an additional include path. Examples are `/i=' or `-J'.
#
I := -I
# C flag used to define a macro before the compilation of a given source
# object. Usually it is `-D' like in `-DDEBUG'.
#
D := -D
# The link flag used to specify a given library file on link. Note that
# this is only used to compile the demo programs, not the library itself.
#
L := -l
# Target flag.
#
T := -o$(space)
# C flags
#
# These should concern: debug output, optimization & warnings.
#
# Use the ANSIFLAGS variable to define the compiler flags used to enforce
# ANSI compliance.
#
CFLAGS ?= -c
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
#
ANSIFLAGS ?=
# EOF

View File

@ -0,0 +1,21 @@
#
# FreeType 2 configuration rules for a `normal' pseudo ANSI compiler/system
#
# Copyright (C) 1996-2022 by
# David Turner, Robert Wilhelm, and Werner Lemberg.
#
# This file is part of the FreeType project, and may only be used, modified,
# and distributed under the terms of the FreeType project license,
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
# indicate that you have read the license and understand and accept it
# fully.
include $(TOP_DIR)/builds/ansi/ansi-def.mk
include $(TOP_DIR)/builds/compiler/ansi-cc.mk
include $(TOP_DIR)/builds/link_std.mk
# EOF

View File

@ -0,0 +1,20 @@
#if defined( GXVALID_H_ )
#pragma warn -aus /* too many unevaluated variables in gxvalid */
#endif
#ifndef ATARI_H
#define ATARI_H
#pragma warn -stu
/* PureC doesn't like 32bit enumerations */
#ifndef FT_IMAGE_TAG
#define FT_IMAGE_TAG( value, _x1, _x2, _x3, _x4 ) value
#endif /* FT_IMAGE_TAG */
#ifndef FT_ENC_TAG
#define FT_ENC_TAG( value, a, b, c, d ) value
#endif /* FT_ENC_TAG */
#endif /* ATARI_H */

View File

@ -0,0 +1,37 @@
/* the following changes file names for PureC projects */
if (argc > 0)
{
ordner = argv[0];
if (basename(ordner) == "") /* ist Ordner */
{
ChangeFilenames(ordner);
}
}
proc ChangeFilenames(folder)
local i,entries,directory,file;
{
entries = filelist(directory,folder);
for (i = 0; i < entries; ++i)
{
file = directory[i,0];
if ((directory[i,3]&16) > 0) /* subdirectory */
{
ChangeFilenames(folder+file+"\\");
}
else
{
if ((stricmp(suffix(file),".h")==0)|(stricmp(suffix(file),".c")==0))
ChangeFilename(folder,file);
}
}
}
proc ChangeFilename(path,datei)
local newfile,err;
{
newfile=datei;
newfile[0]=(newfile[0] | 32) ^ 32;
err=files.rename("-q",path+datei,newfile);
}

View File

@ -0,0 +1,32 @@
;FreeType project file
FREETYPE.LIB
.C [-K -P -R -A]
.L [-J -V]
.S
=
..\..\src\base\ftsystem.c
..\..\src\base\ftdebug.c
..\..\src\base\ftinit.c
..\..\src\base\ftglyph.c
..\..\src\base\ftmm
..\..\src\base\ftbbox
..\..\src\base\ftbase.c
..\..\src\autohint\autohint.c
;..\..\src\cache\ftcache.c
..\..\src\cff\cff.c
..\..\src\cid\type1cid.c
..\..\src\psaux\psaux.c
..\..\src\pshinter\pshinter.c
..\..\src\psnames\psnames.c
..\..\src\raster\raster.c
..\..\src\sfnt\sfnt.c
..\..\src\smooth\smooth.c
..\..\src\truetype\truetype.c
..\..\src\type1\type1.c
..\..\src\type42\type42.c

View File

@ -0,0 +1,51 @@
Compiling FreeType 2 with PureC compiler
========================================
[See below for a German version.]
To compile FreeType 2 as a library the following changes must be applied:
- All *.c files must start with an uppercase letter.
(In case GEMSCRIPT is available:
Simply drag the whole FreeType 2 directory to the file `FNames.SIC'.)
- You have to change the INCLUDE directory in PureC's compiler options
to contain both the `INCLUDE' and `freetype2\include' directory.
Example:
INCLUDE;E:\freetype2\include
- The file `freetype/include/Ft2build.h' must be patched as follows to
include ATARI.H:
#ifndef FT2_BUILD_GENERIC_H_
#define FT2_BUILD_GENERIC_H_
#include "ATARI.H"
Compilieren von FreeType 2 mit PureC
====================================
Um FreeType 2 als eine Bibliothek (library) zu compilieren, muss folgendes
ge<EFBFBD>ndert werden:
- Alle *.c-files m<>ssen mit einem GROSSBUCHSTABEN beginnen.
(Falls GEMSCRIPT zur Verf<72>gung steht:
Den kompletten Ordner freetype2 auf die Datei `FNames.SIC' draggen.)
- In den Compiler-Optionen von PureC muss das INCLUDE directory auf INCLUDE
und freetype2\include verweisen. Z.B.:
INCLUDE;E:\freetype2\include
- In der Datei freetype/include/Ft2build.h muss zu Beginn
ein #include "ATARI.H" wie folgt eingef<65>gt werden:
#ifndef FT2_BUILD_GENERIC_H_
#define FT2_BUILD_GENERIC_H_
#include "ATARI.H"
--- end of README.TXT ---

View File

@ -0,0 +1,181 @@
#!/usr/bin/env awk
function shift( array, \
junk, elm0, l )
{
elm0 = array[0]
for ( l = 0; l < asorti( array, junk ) - 1; l++ )
array[l] = array[l+1];
delete array[l]
return elm0
}
function init_cpp_src_line()
{
logical_line = ""
delete break_pos
}
function shift_valid_bp( array, \
junk, elm )
{
elm = -1
if ( 0 < asorti( array, junk ) )
do {
elm = shift( array )
} while ( 0 > elm );
return elm
}
function check_cpp_src_line_break_pos( \
i, junk )
{
printf( "break_pos:" )
for ( i = 0; i < asorti( break_pos, junk ); i++ )
printf( " %d", break_pos[i] );
printf( "\n" )
}
function check_cpp_src_line()
{
printf( "logical_line[%s]\n", logical_line )
check_cpp_src_line_break_pos()
}
function append_line( phys_line, \
filt_line, bp_len )
{
filt_line = phys_line
sub( /\\$/, " ", filt_line )
logical_line = logical_line filt_line
bp_len = asorti( break_pos, junk )
break_pos[bp_len] = length( logical_line ) - 1
}
function print_line( \
c0, c1, i, junk, part_str )
{
c0 = 0
while( asorti( break_pos, junk ) > 1 )
{
if ( ( c1 = shift_valid_bp( break_pos ) ) < 1 )
{
part_str = substr( logical_line, c0 + 1 )
printf( "%s\n", part_str )
return
}
part_str = substr( logical_line, c0 + 1, c1 - c0 + 1 )
gsub( / $/, "\\", part_str )
printf( "%s\n", part_str )
c0 = c1 + 1
}
part_str = substr( logical_line, c0 + 1 )
printf( "%s\n", part_str )
}
function shrink_spaces( pos, \
tail, removed_length, k )
{
tail = substr( logical_line, pos )
sub( /^[ \t]+/, " ", tail )
removed_length = length( logical_line ) - pos - length( tail ) + 1
logical_line = substr( logical_line, 0, pos - 1 ) tail
for ( k = 0; k < asorti( break_pos, junk ); k++ )
if ( ( pos + removed_length ) <= break_pos[k] )
break_pos[k] = break_pos[k] - removed_length;
else if ( pos <= break_pos[k] )
break_pos[k] = -1;
return removed_length
}
function shrink_spaces_to_linebreak( pos, \
junk, part_str, removed_length, i )
{
for ( i = 0; i < asorti( break_pos, junk ) && break_pos[i] < pos ; i++ )
;
if ( break_pos[i] < 1 )
return;
part_str = substr( logical_line, pos, break_pos[i] - pos + 1 )
sub( /^[ \t]+/, " ", part_str )
removed_length = ( break_pos[i] - pos + 1 ) - length( part_str )
tail = substr( logical_line, pos + removed_length )
logical_line = substr( logical_line, 0, pos - 1 ) tail
for ( ; i < asorti( break_pos, junk ); i++ )
break_pos[i] -= removed_length;
return removed_length
}
function delete_linebreaks_in_2nd_token( \
tail, paren_depth, junk, i, j, k, l )
{
if ( logical_line ~ /^[ \t]*#[ \t]*define[ \t]+[0-9A-Za-z_]+\(/ )
{
tail = logical_line
sub( /^[ \t]*#[ \t]*define[ \t]+[0-9A-Za-z_]+/, "", tail )
paren_depth = 0
l = 0
i = length( logical_line ) - length( tail ) + 1 # seek to the 1st op paren
j = i
do {
if ( substr( logical_line, j, 2 ) ~ /[ \t][ \t]/ )
l = shrink_spaces( j );
else if ( substr( logical_line, j, 1 ) == "(" )
paren_depth += 1;
else if ( substr( logical_line, j, 1 ) == ")" )
paren_depth -= 1;
j += 1
} while ( j < length( logical_line ) && paren_depth != 0 )
for ( k = 0; k < asorti( break_pos, junk ); k++ )
if ( i <= break_pos[k] && break_pos[k] < j )
break_pos[k] = -1;
if ( l > 0 )
shrink_spaces_to_linebreak( j );
}
}
BEGIN{
init_cpp_src_line()
}
{
append_line( $0 )
if ( $0 !~ /\\$/ )
{
delete_linebreaks_in_2nd_token()
print_line()
init_cpp_src_line()
}
}
END{
if ( 0 < length( logical_line ) )
{
delete_linebreaks_in_2nd_token()
print_line()
}
}

View File

@ -0,0 +1,40 @@
#!/bin/sh
TOP_DIR=.
OBJ_DIR=.
for x in "$@"
do
case x"$x" in
x--srcdir=* | x--topdir=* )
TOP_DIR=`echo $x | sed 's/^--[a-z]*dir=//'`
;;
x--builddir=* | x--objdir=* )
OBJ_DIR=`echo $x | sed 's/^--[a-z]*dir=//'`
;;
esac
done
mkdir -p ${OBJ_DIR}/builds/atari/tmp/orig
( cd ${TOP_DIR} && find . -name '*.[CHch]' -type f | fgrep -v builds/atari/tmp | cpio -o ) | \
( cd ${OBJ_DIR}/builds/atari/tmp/orig && cpio -idum )
cp ${TOP_DIR}/builds/atari/deflinejoiner.awk ${OBJ_DIR}/builds/atari/tmp
pushd ${OBJ_DIR}/builds/atari/tmp
cp -pr orig purec
for f in `cd orig && find . -type f`
do
echo filter $f
env LANG=C awk -f deflinejoiner.awk < orig/$f > purec/$f
done
echo '#define FT2_BUILD_LIBRARY' > purec/include/ft2build.h
echo '#include "ATARI.H"' >> purec/include/ft2build.h
env LANG=C awk -f deflinejoiner.awk < orig/include/ft2build.h >> purec/include/ft2build.h
env LANG=C diff -ur orig purec > ../purec.diff
popd
rm -rf ${OBJ_DIR}/builds/atari/tmp

View File

@ -0,0 +1,79 @@
#
# FreeType 2 configuration rules for a BeOS system
#
# this is similar to the "ansi-def.mk" file, except for BUILD and PLATFORM
#
# Copyright (C) 1996-2022 by
# David Turner, Robert Wilhelm, and Werner Lemberg.
#
# This file is part of the FreeType project, and may only be used, modified,
# and distributed under the terms of the FreeType project license,
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
# indicate that you have read the license and understand and accept it
# fully.
DELETE := rm -f
CAT := cat
SEP := /
PLATFORM_DIR := $(TOP_DIR)/builds/beos
PLATFORM := beos
# This is used for `make refdoc' and `make refdoc-venv'
#
BIN := bin
# The directory where all library files are placed.
#
# By default, this is the same as $(OBJ_DIR); however, this can be changed
# to suit particular needs.
#
LIB_DIR := $(OBJ_DIR)
# The name of the final library file. Note that the DOS-specific Makefile
# uses a shorter (8.3) name.
#
LIBRARY := lib$(PROJECT)
# Path inclusion flag. Some compilers use a different flag than `-I' to
# specify an additional include path. Examples are `/i=' or `-J'.
#
I := -I
# C flag used to define a macro before the compilation of a given source
# object. Usually it is `-D' like in `-DDEBUG'.
#
D := -D
# The link flag used to specify a given library file on link. Note that
# this is only used to compile the demo programs, not the library itself.
#
L := -l
# Target flag.
#
T := -o$(space)
# C flags
#
# These should concern: debug output, optimization & warnings.
#
# Use the ANSIFLAGS variable to define the compiler flags used to enforce
# ANSI compliance.
#
CFLAGS ?= -c
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
#
ANSIFLAGS ?=
# EOF

View File

@ -0,0 +1,19 @@
#
# FreeType 2 configuration rules for a BeOS system
#
# Copyright (C) 1996-2022 by
# David Turner, Robert Wilhelm, and Werner Lemberg.
#
# This file is part of the FreeType project, and may only be used, modified,
# and distributed under the terms of the FreeType project license,
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
# indicate that you have read the license and understand and accept it
# fully.
include $(TOP_DIR)/builds/beos/beos-def.mk
include $(TOP_DIR)/builds/compiler/ansi-cc.mk
include $(TOP_DIR)/builds/link_std.mk
# EOF

View File

@ -0,0 +1,41 @@
#
# FreeType 2 configuration file to detect an BeOS host platform.
#
# Copyright (C) 1996-2022 by
# David Turner, Robert Wilhelm, and Werner Lemberg.
#
# This file is part of the FreeType project, and may only be used, modified,
# and distributed under the terms of the FreeType project license,
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
# indicate that you have read the license and understand and accept it
# fully.
.PHONY: setup
ifeq ($(PLATFORM),ansi)
ifdef BE_HOST_CPU
PLATFORM := beos
endif # test MACHTYPE beos
endif
ifeq ($(PLATFORM),beos)
DELETE := rm -f
CAT := cat
SEP := /
PLATFORM_DIR := $(TOP_DIR)/builds/beos
CONFIG_FILE := beos.mk
setup: std_setup
endif # test PLATFORM beos
# EOF

View File

@ -0,0 +1,52 @@
# FindBrotliDec.cmake
#
# Copyright (C) 2019-2022 by
# David Turner, Robert Wilhelm, and Werner Lemberg.
#
# Written by Werner Lemberg <wl@gnu.org>
#
# This file is part of the FreeType project, and may only be used, modified,
# and distributed under the terms of the FreeType project license,
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
# indicate that you have read the license and understand and accept it
# fully.
#
#
# Try to find libbrotlidec include and library directories.
#
# If found, the following variables are set.
#
# BROTLIDEC_INCLUDE_DIRS
# BROTLIDEC_LIBRARIES
find_package(PkgConfig QUIET)
pkg_check_modules(PC_BROTLIDEC QUIET libbrotlidec)
if (PC_BROTLIDEC_VERSION)
set(BROTLIDEC_VERSION "${PC_BROTLIDEC_VERSION}")
endif ()
find_path(BROTLIDEC_INCLUDE_DIRS
NAMES brotli/decode.h
HINTS ${PC_BROTLIDEC_INCLUDEDIR}
${PC_BROTLIDEC_INCLUDE_DIRS}
PATH_SUFFIXES brotli)
find_library(BROTLIDEC_LIBRARIES
NAMES brotlidec
HINTS ${PC_BROTLIDEC_LIBDIR}
${PC_BROTLIDEC_LIBRARY_DIRS})
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(
BrotliDec
REQUIRED_VARS BROTLIDEC_INCLUDE_DIRS BROTLIDEC_LIBRARIES
FOUND_VAR BROTLIDEC_FOUND
VERSION_VAR BROTLIDEC_VERSION)
mark_as_advanced(
BROTLIDEC_INCLUDE_DIRS
BROTLIDEC_LIBRARIES)

View File

@ -0,0 +1,203 @@
# Copyright (c) 2012, Intel Corporation
# Copyright (c) 2019 Sony Interactive Entertainment Inc.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice, this
# list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# * Neither the name of Intel Corporation nor the names of its contributors may
# be used to endorse or promote products derived from this software without
# specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
#
# Try to find Harfbuzz include and library directories.
#
# After successful discovery, this will set for inclusion where needed:
# HarfBuzz_INCLUDE_DIRS - containg the HarfBuzz headers
# HarfBuzz_LIBRARIES - containg the HarfBuzz library
#[=======================================================================[.rst:
FindHarfBuzz
--------------
Find HarfBuzz headers and libraries.
Imported Targets
^^^^^^^^^^^^^^^^
``HarfBuzz::HarfBuzz``
The HarfBuzz library, if found.
``HarfBuzz::ICU``
The HarfBuzz ICU library, if found.
Result Variables
^^^^^^^^^^^^^^^^
This will define the following variables in your project:
``HarfBuzz_FOUND``
true if (the requested version of) HarfBuzz is available.
``HarfBuzz_VERSION``
the version of HarfBuzz.
``HarfBuzz_LIBRARIES``
the libraries to link against to use HarfBuzz.
``HarfBuzz_INCLUDE_DIRS``
where to find the HarfBuzz headers.
``HarfBuzz_COMPILE_OPTIONS``
this should be passed to target_compile_options(), if the
target is not used for linking
#]=======================================================================]
find_package(PkgConfig QUIET)
pkg_check_modules(PC_HARFBUZZ QUIET harfbuzz)
set(HarfBuzz_COMPILE_OPTIONS ${PC_HARFBUZZ_CFLAGS_OTHER})
set(HarfBuzz_VERSION ${PC_HARFBUZZ_CFLAGS_VERSION})
find_path(HarfBuzz_INCLUDE_DIR
NAMES hb.h
HINTS ${PC_HARFBUZZ_INCLUDEDIR} ${PC_HARFBUZZ_INCLUDE_DIRS}
PATH_SUFFIXES harfbuzz
)
find_library(HarfBuzz_LIBRARY
NAMES ${HarfBuzz_NAMES} harfbuzz
HINTS ${PC_HARFBUZZ_LIBDIR} ${PC_HARFBUZZ_LIBRARY_DIRS}
)
if (HarfBuzz_INCLUDE_DIR AND NOT HarfBuzz_VERSION)
if (EXISTS "${HarfBuzz_INCLUDE_DIR}/hb-version.h")
file(READ "${HarfBuzz_INCLUDE_DIR}/hb-version.h" _harfbuzz_version_content)
string(REGEX MATCH "#define +HB_VERSION_STRING +\"([0-9]+\\.[0-9]+\\.[0-9]+)\"" _dummy "${_harfbuzz_version_content}")
set(HarfBuzz_VERSION "${CMAKE_MATCH_1}")
endif ()
endif ()
if ("${HarfBuzz_FIND_VERSION}" VERSION_GREATER "${HarfBuzz_VERSION}")
if (HarfBuzz_FIND_REQUIRED)
message(FATAL_ERROR
"Required version (" ${HarfBuzz_FIND_VERSION} ")"
" is higher than found version (" ${HarfBuzz_VERSION} ")")
else ()
message(WARNING
"Required version (" ${HarfBuzz_FIND_VERSION} ")"
" is higher than found version (" ${HarfBuzz_VERSION} ")")
unset(HarfBuzz_VERSION)
unset(HarfBuzz_INCLUDE_DIRS)
unset(HarfBuzz_LIBRARIES)
return ()
endif ()
endif ()
# Find components
if (HarfBuzz_INCLUDE_DIR AND HarfBuzz_LIBRARY)
set(_HarfBuzz_REQUIRED_LIBS_FOUND ON)
set(HarfBuzz_LIBS_FOUND "HarfBuzz (required): ${HarfBuzz_LIBRARY}")
else ()
set(_HarfBuzz_REQUIRED_LIBS_FOUND OFF)
set(HarfBuzz_LIBS_NOT_FOUND "HarfBuzz (required)")
endif ()
if (NOT CMAKE_VERSION VERSION_LESS 3.3)
if ("ICU" IN_LIST HarfBuzz_FIND_COMPONENTS)
pkg_check_modules(PC_HARFBUZZ_ICU QUIET harfbuzz-icu)
set(HarfBuzz_ICU_COMPILE_OPTIONS ${PC_HARFBUZZ_ICU_CFLAGS_OTHER})
find_path(HarfBuzz_ICU_INCLUDE_DIR
NAMES hb-icu.h
HINTS ${PC_HARFBUZZ_ICU_INCLUDEDIR} ${PC_HARFBUZZ_ICU_INCLUDE_DIRS}
PATH_SUFFIXES harfbuzz
)
find_library(HarfBuzz_ICU_LIBRARY
NAMES ${HarfBuzz_ICU_NAMES} harfbuzz-icu
HINTS ${PC_HARFBUZZ_ICU_LIBDIR} ${PC_HARFBUZZ_ICU_LIBRARY_DIRS}
)
if (HarfBuzz_ICU_LIBRARY)
if (HarfBuzz_FIND_REQUIRED_ICU)
list(APPEND HarfBuzz_LIBS_FOUND "ICU (required): ${HarfBuzz_ICU_LIBRARY}")
else ()
list(APPEND HarfBuzz_LIBS_FOUND "ICU (optional): ${HarfBuzz_ICU_LIBRARY}")
endif ()
else ()
if (HarfBuzz_FIND_REQUIRED_ICU)
set(_HarfBuzz_REQUIRED_LIBS_FOUND OFF)
list(APPEND HarfBuzz_LIBS_NOT_FOUND "ICU (required)")
else ()
list(APPEND HarfBuzz_LIBS_NOT_FOUND "ICU (optional)")
endif ()
endif ()
endif ()
endif ()
if (NOT HarfBuzz_FIND_QUIETLY)
if (HarfBuzz_LIBS_FOUND)
message(STATUS "Found the following HarfBuzz libraries:")
foreach (found ${HarfBuzz_LIBS_FOUND})
message(STATUS " ${found}")
endforeach ()
endif ()
if (HarfBuzz_LIBS_NOT_FOUND)
message(STATUS "The following HarfBuzz libraries were not found:")
foreach (found ${HarfBuzz_LIBS_NOT_FOUND})
message(STATUS " ${found}")
endforeach ()
endif ()
endif ()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(HarfBuzz
FOUND_VAR HarfBuzz_FOUND
REQUIRED_VARS HarfBuzz_INCLUDE_DIR HarfBuzz_LIBRARY _HarfBuzz_REQUIRED_LIBS_FOUND
VERSION_VAR HarfBuzz_VERSION
)
if (NOT CMAKE_VERSION VERSION_LESS 3.1)
if (HarfBuzz_LIBRARY AND NOT TARGET HarfBuzz::HarfBuzz)
add_library(HarfBuzz::HarfBuzz UNKNOWN IMPORTED GLOBAL)
set_target_properties(HarfBuzz::HarfBuzz PROPERTIES
IMPORTED_LOCATION "${HarfBuzz_LIBRARY}"
INTERFACE_COMPILE_OPTIONS "${HarfBuzz_COMPILE_OPTIONS}"
INTERFACE_INCLUDE_DIRECTORIES "${HarfBuzz_INCLUDE_DIR}"
)
endif ()
if (HarfBuzz_ICU_LIBRARY AND NOT TARGET HarfBuzz::ICU)
add_library(HarfBuzz::ICU UNKNOWN IMPORTED GLOBAL)
set_target_properties(HarfBuzz::ICU PROPERTIES
IMPORTED_LOCATION "${HarfBuzz_ICU_LIBRARY}"
INTERFACE_COMPILE_OPTIONS "${HarfBuzz_ICU_COMPILE_OPTIONS}"
INTERFACE_INCLUDE_DIRECTORIES "${HarfBuzz_ICU_INCLUDE_DIR}"
)
endif ()
endif ()
mark_as_advanced(
HarfBuzz_INCLUDE_DIR
HarfBuzz_ICU_INCLUDE_DIR
HarfBuzz_LIBRARY
HarfBuzz_ICU_LIBRARY
)
if (HarfBuzz_FOUND)
set(HarfBuzz_LIBRARIES ${HarfBuzz_LIBRARY} ${HarfBuzz_ICU_LIBRARY})
set(HarfBuzz_INCLUDE_DIRS ${HarfBuzz_INCLUDE_DIR} ${HarfBuzz_ICU_INCLUDE_DIR})
endif ()

View File

@ -0,0 +1,270 @@
# iOS.cmake
#
# Copyright (C) 2014-2022 by
# David Turner, Robert Wilhelm, and Werner Lemberg.
#
# Written by David Wimsey <david@wimsey.us>
#
# This file is part of the FreeType project, and may only be used, modified,
# and distributed under the terms of the FreeType project license,
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
# indicate that you have read the license and understand and accept it
# fully.
#
#
# This file is derived from the files `Platform/Darwin.cmake' and
# `Platform/UnixPaths.cmake', which are part of CMake 2.8.4. It has been
# altered for iOS development.
# Options
# -------
#
# IOS_PLATFORM = OS | SIMULATOR
#
# This decides whether SDKS are selected from the `iPhoneOS.platform' or
# `iPhoneSimulator.platform' folders.
#
# OS - the default, used to build for iPhone and iPad physical devices,
# which have an ARM architecture.
# SIMULATOR - used to build for the Simulator platforms, which have an
# x86 architecture.
#
# CMAKE_IOS_DEVELOPER_ROOT = /path/to/platform/Developer folder
#
# By default, this location is automatically chosen based on the
# IOS_PLATFORM value above. If you manually set this variable, it
# overrides the default location and forces the use of a particular
# Developer Platform.
#
# CMAKE_IOS_SDK_ROOT = /path/to/platform/Developer/SDKs/SDK folder
#
# By default, this location is automatically chosen based on the
# CMAKE_IOS_DEVELOPER_ROOT value. In this case it is always the most
# up-to-date SDK found in the CMAKE_IOS_DEVELOPER_ROOT path. If you
# manually set this variable, it forces the use of a specific SDK
# version.
#
#
# Macros
# ------
#
# set_xcode_property (TARGET XCODE_PROPERTY XCODE_VALUE)
#
# A convenience macro for setting Xcode specific properties on targets.
#
# Example:
#
# set_xcode_property(myioslib IPHONEOS_DEPLOYMENT_TARGET "3.1")
#
# find_host_package (PROGRAM ARGS)
#
# A macro to find executable programs on the host system, not within the
# iOS environment. Thanks to the `android-cmake' project for providing
# the command.
# standard settings
set(CMAKE_SYSTEM_NAME Darwin)
set(CMAKE_SYSTEM_VERSION 1)
set(UNIX True)
set(APPLE True)
set(IOS True)
# required as of cmake 2.8.10
set(CMAKE_OSX_DEPLOYMENT_TARGET ""
CACHE STRING "Force unset of the deployment target for iOS" FORCE
)
# determine the cmake host system version so we know where to find the iOS
# SDKs
find_program(CMAKE_UNAME uname /bin /usr/bin /usr/local/bin)
if (CMAKE_UNAME)
exec_program(uname ARGS -r OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_VERSION)
string(REGEX REPLACE "^([0-9]+)\\.([0-9]+).*$" "\\1"
DARWIN_MAJOR_VERSION "${CMAKE_HOST_SYSTEM_VERSION}")
endif (CMAKE_UNAME)
# skip the platform compiler checks for cross compiling
set(CMAKE_CXX_COMPILER_WORKS TRUE)
set(CMAKE_C_COMPILER_WORKS TRUE)
# all iOS/Darwin specific settings - some may be redundant
set(CMAKE_SHARED_LIBRARY_PREFIX "lib")
set(CMAKE_SHARED_LIBRARY_SUFFIX ".dylib")
set(CMAKE_SHARED_MODULE_PREFIX "lib")
set(CMAKE_SHARED_MODULE_SUFFIX ".so")
set(CMAKE_MODULE_EXISTS 1)
set(CMAKE_DL_LIBS "")
set(CMAKE_C_OSX_COMPATIBILITY_VERSION_FLAG
"-compatibility_version ")
set(CMAKE_C_OSX_CURRENT_VERSION_FLAG
"-current_version ")
set(CMAKE_CXX_OSX_COMPATIBILITY_VERSION_FLAG
"${CMAKE_C_OSX_COMPATIBILITY_VERSION_FLAG}")
set(CMAKE_CXX_OSX_CURRENT_VERSION_FLAG
"${CMAKE_C_OSX_CURRENT_VERSION_FLAG}")
# hidden visibility is required for cxx on iOS
set(CMAKE_C_FLAGS_INIT "")
set(CMAKE_CXX_FLAGS_INIT
"-headerpad_max_install_names -fvisibility=hidden -fvisibility-inlines-hidden")
set(CMAKE_C_LINK_FLAGS
"-Wl,-search_paths_first ${CMAKE_C_LINK_FLAGS}")
set(CMAKE_CXX_LINK_FLAGS
"-Wl,-search_paths_first ${CMAKE_CXX_LINK_FLAGS}")
set(CMAKE_PLATFORM_HAS_INSTALLNAME 1)
set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS
"-dynamiclib -headerpad_max_install_names")
set(CMAKE_SHARED_MODULE_CREATE_C_FLAGS
"-bundle -headerpad_max_install_names")
set(CMAKE_SHARED_MODULE_LOADER_C_FLAG
"-Wl,-bundle_loader,")
set(CMAKE_SHARED_MODULE_LOADER_CXX_FLAG
"-Wl,-bundle_loader,")
set(CMAKE_FIND_LIBRARY_SUFFIXES
".dylib" ".so" ".a")
# hack: If a new cmake (which uses CMAKE_INSTALL_NAME_TOOL) runs on an old
# build tree (where `install_name_tool' was hardcoded), and where
# CMAKE_INSTALL_NAME_TOOL isn't in the cache and still cmake didn't
# fail in `CMakeFindBinUtils.cmake' (because it isn't rerun), hardcode
# CMAKE_INSTALL_NAME_TOOL here to `install_name_tool' so it behaves as
# it did before.
if (NOT DEFINED CMAKE_INSTALL_NAME_TOOL)
find_program(CMAKE_INSTALL_NAME_TOOL install_name_tool)
endif (NOT DEFINED CMAKE_INSTALL_NAME_TOOL)
# set up iOS platform unless specified manually with IOS_PLATFORM
if (NOT DEFINED IOS_PLATFORM)
set(IOS_PLATFORM "OS")
endif (NOT DEFINED IOS_PLATFORM)
set(IOS_PLATFORM ${IOS_PLATFORM} CACHE STRING "Type of iOS Platform")
# check the platform selection and setup for developer root
if (${IOS_PLATFORM} STREQUAL "OS")
set(IOS_PLATFORM_LOCATION "iPhoneOS.platform")
# this causes the installers to properly locate the output libraries
set(CMAKE_XCODE_EFFECTIVE_PLATFORMS "-iphoneos")
elseif (${IOS_PLATFORM} STREQUAL "SIMULATOR")
set(IOS_PLATFORM_LOCATION "iPhoneSimulator.platform")
# this causes the installers to properly locate the output libraries
set(CMAKE_XCODE_EFFECTIVE_PLATFORMS "-iphonesimulator")
else (${IOS_PLATFORM} STREQUAL "OS")
message(FATAL_ERROR
"Unsupported IOS_PLATFORM value selected. Please choose OS or SIMULATOR.")
endif (${IOS_PLATFORM} STREQUAL "OS")
# set up iOS developer location unless specified manually with
# CMAKE_IOS_DEVELOPER_ROOT --
# note that Xcode 4.3 changed the installation location; choose the most
# recent one available
set(XCODE_POST_43_ROOT
"/Applications/Xcode.app/Contents/Developer/Platforms/${IOS_PLATFORM_LOCATION}/Developer")
set(XCODE_PRE_43_ROOT
"/Developer/Platforms/${IOS_PLATFORM_LOCATION}/Developer")
if (NOT DEFINED CMAKE_IOS_DEVELOPER_ROOT)
if (EXISTS ${XCODE_POST_43_ROOT})
set(CMAKE_IOS_DEVELOPER_ROOT ${XCODE_POST_43_ROOT})
elseif (EXISTS ${XCODE_PRE_43_ROOT})
set(CMAKE_IOS_DEVELOPER_ROOT ${XCODE_PRE_43_ROOT})
endif (EXISTS ${XCODE_POST_43_ROOT})
endif (NOT DEFINED CMAKE_IOS_DEVELOPER_ROOT)
set(CMAKE_IOS_DEVELOPER_ROOT ${CMAKE_IOS_DEVELOPER_ROOT}
CACHE PATH "Location of iOS Platform"
)
# find and use the most recent iOS SDK unless specified manually with
# CMAKE_IOS_SDK_ROOT
if (NOT DEFINED CMAKE_IOS_SDK_ROOT)
file(GLOB _CMAKE_IOS_SDKS "${CMAKE_IOS_DEVELOPER_ROOT}/SDKs/*")
if (_CMAKE_IOS_SDKS)
list(SORT _CMAKE_IOS_SDKS)
list(REVERSE _CMAKE_IOS_SDKS)
list(GET _CMAKE_IOS_SDKS 0 CMAKE_IOS_SDK_ROOT)
else (_CMAKE_IOS_SDKS)
message(FATAL_ERROR
"No iOS SDK's found in default search path ${CMAKE_IOS_DEVELOPER_ROOT}. Manually set CMAKE_IOS_SDK_ROOT or install the iOS SDK.")
endif (_CMAKE_IOS_SDKS)
message(STATUS "Toolchain using default iOS SDK: ${CMAKE_IOS_SDK_ROOT}")
endif (NOT DEFINED CMAKE_IOS_SDK_ROOT)
set(CMAKE_IOS_SDK_ROOT ${CMAKE_IOS_SDK_ROOT}
CACHE PATH "Location of the selected iOS SDK"
)
# set the sysroot default to the most recent SDK
set(CMAKE_OSX_SYSROOT ${CMAKE_IOS_SDK_ROOT}
CACHE PATH "Sysroot used for iOS support"
)
# set the architecture for iOS --
# note that currently both ARCHS_STANDARD_32_BIT and
# ARCHS_UNIVERSAL_IPHONE_OS set armv7 only, so set both manually
if (${IOS_PLATFORM} STREQUAL "OS")
set(IOS_ARCH $(ARCHS_STANDARD_32_64_BIT))
else (${IOS_PLATFORM} STREQUAL "OS")
set(IOS_ARCH i386)
endif (${IOS_PLATFORM} STREQUAL "OS")
set(CMAKE_OSX_ARCHITECTURES ${IOS_ARCH}
CACHE string "Build architecture for iOS"
)
# set the find root to the iOS developer roots and to user defined paths
set(CMAKE_FIND_ROOT_PATH
${CMAKE_IOS_DEVELOPER_ROOT}
${CMAKE_IOS_SDK_ROOT}
${CMAKE_PREFIX_PATH}
CACHE string "iOS find search path root"
)
# default to searching for frameworks first
set(CMAKE_FIND_FRAMEWORK FIRST)
# set up the default search directories for frameworks
set(CMAKE_SYSTEM_FRAMEWORK_PATH
${CMAKE_IOS_SDK_ROOT}/System/Library/Frameworks
${CMAKE_IOS_SDK_ROOT}/System/Library/PrivateFrameworks
${CMAKE_IOS_SDK_ROOT}/Developer/Library/Frameworks
)
# only search the iOS SDKs, not the remainder of the host filesystem
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
# this little macro lets you set any Xcode specific property
macro(set_xcode_property TARGET XCODE_PROPERTY XCODE_VALUE)
set_property(TARGET ${TARGET}
PROPERTY XCODE_ATTRIBUTE_${XCODE_PROPERTY} ${XCODE_VALUE})
endmacro(set_xcode_property)
# this macro lets you find executable programs on the host system
macro(find_host_package)
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE NEVER)
set(IOS FALSE)
find_package(${ARGN})
set(IOS TRUE)
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
endmacro(find_host_package)
# eof

View File

@ -0,0 +1,157 @@
#!/bin/sh -e
# Copyright (C) 2015-2022 by
# David Turner, Robert Wilhelm, and Werner Lemberg.
#
# This file is part of the FreeType project, and may only be used, modified,
# and distributed under the terms of the FreeType project license,
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
# indicate that you have read the license and understand and accept it
# fully.
# This script tests the CMake build. Simply run
#
# builds/cmake/testbuild.sh
#
# or
#
# BUILD_SHARED_LIBS=1 builds/cmake/testbuild.sh
#
# The script:
#
# - builds the main CMakeLists.txt
# - builds and runs a small test app in a separate build tree so
# the config-module is tested, too
#
# Options (environment variables):
#
# - The variable BUILD_SHARED_LIBS will be forwarded to the CMake project
# that builds the library.
#
# prepare temporary dir
cd `dirname $0`/../..
ftdir=`pwd`
tmpdir=/tmp/freetype-cmake-testbuild
rm -rf $tmpdir
mkdir -p $tmpdir
# build and install freetype
if test -n "$BUILD_SHARED_LIBS"; then
bsl=-DBUILD_SHARED_LIBS=$BUILD_SHARED_LIBS
else
bsl=-UBUILD_SHARED_LIBS
fi
build_opts="-DWITH_ZLIB=0 \
-DWITH_BZip2=0 \
-DWITH_PNG=0 \
-DWITH_HarfBuzz=0 \
$bsl \
-DCMAKE_INSTALL_PREFIX=$tmpdir/out"
(set -x; cmake -H$ftdir \
-B$tmpdir/ftb \
-DCMAKE_BUILD_TYPE=Debug \
$build_opts)
(set -x; cmake --build $tmpdir/ftb \
--config Debug \
--target install)
(set -x; cmake $tmpdir/ftb \
-DCMAKE_BUILD_TYPE=Release)
(set -x; cmake --build $tmpdir/ftb \
--config Release \
--target install \
--clean-first)
# create test project CMakeLists.txt
cat >$tmpdir/CMakeLists.txt << END
cmake_minimum_required(VERSION 2.6)
project(freetype-cmake-testbuild)
find_package(Freetype REQUIRED CONFIG)
add_executable(freetype-cmake-test main.c)
target_link_libraries(freetype-cmake-test freetype)
enable_testing()
add_test(freetype-cmake-test freetype-cmake-test)
END
# create test project main.c
cat >$tmpdir/main.c << END
#include <stdio.h>
#include <stdlib.h>
#include <ft2build.h>
#include <freetype/freetype.h>
FT_Library library;
int main(int argc,
char*argv[])
{
FT_Error error;
FT_Int major = 0;
FT_Int minor = 0;
FT_Int patch = 0;
error = FT_Init_FreeType(&library);
if (error)
return EXIT_FAILURE;
FT_Library_Version(library, &major, &minor, &patch);
if (major != FREETYPE_MAJOR
|| minor != FREETYPE_MINOR
|| patch != FREETYPE_PATCH)
return EXIT_FAILURE;
printf("FT_Library_Version: %d.%d.%d\n", major, minor, patch);
error = FT_Done_FreeType(library);
if (error)
return EXIT_FAILURE;
return EXIT_SUCCESS;
}
END
# build and test
mkdir -p $tmpdir/tb
cd $tmpdir/tb
LD_LIBRARY_PATH=$tmpdir/out/lib:$LD_LIBRARY_PATH
DYLD_LIBRARY_PATH=$tmpdir/out/lib:$DYLD_LIBRARY_PATH
export LD_LIBRARY_PATH
export DYLD_LIBRARY_PATH
(set -x; cmake $tmpdir \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_PREFIX_PATH=$tmpdir/out)
(set -x; cmake --build . \
--config Debug)
(set -x; ctest -V -C Debug)
(set -x; cmake . \
-DCMAKE_BUILD_TYPE=Release)
(set -x; cmake --build . \
--config Release \
--clean-first)
(set -x; ctest -V -C Release)
rm -rf $tmpdir
# EOF

View File

@ -0,0 +1,80 @@
#
# FreeType 2 generic pseudo ANSI compiler
#
# Copyright (C) 1996-2022 by
# David Turner, Robert Wilhelm, and Werner Lemberg.
#
# This file is part of the FreeType project, and may only be used, modified,
# and distributed under the terms of the FreeType project license,
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
# indicate that you have read the license and understand and accept it
# fully.
# Compiler command line name
#
CC := cc
COMPILER_SEP := $(SEP)
# The object file extension (for standard and static libraries). This can be
# .o, .tco, .obj, etc., depending on the platform.
#
O := o
SO := o
# The library file extension (for standard and static libraries). This can
# be .a, .lib, etc., depending on the platform.
#
A := a
SA := a
# Path inclusion flag. Some compilers use a different flag than `-I' to
# specify an additional include path. Examples are `/i=' or `-J'.
#
I := -I
# C flag used to define a macro before the compilation of a given source
# object. Usually it is `-D' like in `-DDEBUG'.
#
D := -D
# The link flag used to specify a given library file on link. Note that
# this is only used to compile the demo programs, not the library itself.
#
L := -l
# Target flag.
#
T := -o$(space)
# C flags
#
# These should concern: debug output, optimization & warnings.
#
# Use the ANSIFLAGS variable to define the compiler flags used to enforce
# ANSI compliance.
#
CFLAGS ?= -c
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
#
# we assume the compiler is already strictly ANSI
#
ANSIFLAGS ?=
# Library linking
#
CLEAN_LIBRARY ?= $(DELETE) $(subst /,$(SEP),$(PROJECT_LIBRARY))
LINK_LIBRARY = $(AR) -r $@ $(subst /,$(COMPILER_SEP),$(OBJECTS_LIST))
# EOF

View File

@ -0,0 +1,86 @@
#
# FreeType 2 Borland C++-specific with NO OPTIMIZATIONS + DEBUGGING
#
# Copyright (C) 1996-2022 by
# David Turner, Robert Wilhelm, and Werner Lemberg.
#
# This file is part of the FreeType project, and may only be used, modified,
# and distributed under the terms of the FreeType project license,
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
# indicate that you have read the license and understand and accept it
# fully.
# Compiler command line name
#
CC := bcc32
COMPILER_SEP := $(SEP)
# The object file extension (for standard and static libraries). This can be
# .o, .tco, .obj, etc., depending on the platform.
#
O := obj
SO := obj
# The library file extension (for standard and static libraries). This can
# be .a, .lib, etc., depending on the platform.
#
A := lib
SA := lib
# Path inclusion flag. Some compilers use a different flag than `-I' to
# specify an additional include path. Examples are `/i=' or `-J'.
#
I := -I
# C flag used to define a macro before the compilation of a given source
# object. Usually it is `-D' like in `-DDEBUG'.
#
D := -D
# The link flag used to specify a given library file on link. Note that
# this is only used to compile the demo programs, not the library itself.
#
L :=
# Target flag -- no trailing space.
#
T := -o
TE := -e
# C flags
#
# These should concern: debug output, optimization & warnings.
#
# Use the ANSIFLAGS variable to define the compiler flags used to enforce
# ANSI compliance.
#
CFLAGS ?= -q -c -y -d -v -Od -w-par -w-ccc -w-rch -w-pro -w-aus
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
#
ANSIFLAGS ?= -A
# Library linking
#
CLEAN_LIBRARY ?= $(DELETE) $(subst /,$(SEP),$(PROJECT_LIBRARY))
LINK_LIBRARY = tlib /u /P128 $(subst /,$(COMPILER_SEP),$@ $(OBJECTS_LIST:%=+%))
# Borland C++ specific temporary files
#
CLEAN += \
$(subst /,$(SEP),$(TOP_DIR)/apinames.$(O)) \
$(subst /,$(SEP),$(OBJ_DIR)/apinames.tds)
# EOF

View File

@ -0,0 +1,86 @@
#
# FreeType 2 Borland C++-specific rules
#
# Copyright (C) 1996-2022 by
# David Turner, Robert Wilhelm, and Werner Lemberg.
#
# This file is part of the FreeType project, and may only be used, modified,
# and distributed under the terms of the FreeType project license,
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
# indicate that you have read the license and understand and accept it
# fully.
# Compiler command line name
#
CC := bcc32
COMPILER_SEP := $(SEP)
# The object file extension (for standard and static libraries). This can be
# .o, .tco, .obj, etc., depending on the platform.
#
O := obj
SO := obj
# The library file extension (for standard and static libraries). This can
# be .a, .lib, etc., depending on the platform.
#
A := lib
SA := lib
# Path inclusion flag. Some compilers use a different flag than `-I' to
# specify an additional include path. Examples are `/i=' or `-J'.
#
I := -I
# C flag used to define a macro before the compilation of a given source
# object. Usually it is `-D' like in `-DDEBUG'.
#
D := -D
# The link flag used to specify a given library file on link. Note that
# this is only used to compile the demo programs, not the library itself.
#
L :=
# Target flag -- no trailing space.
#
T := -o
TE := -e
# C flags
#
# These should concern: debug output, optimization & warnings.
#
# Use the ANSIFLAGS variable to define the compiler flags used to enforce
# ANSI compliance.
#
CFLAGS ?= -c -q -y -d -v -Od -w-par -w-ccc -w-rch -w-pro -w-aus
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
#
ANSIFLAGS ?= -A
# Library linking
#
CLEAN_LIBRARY ?= $(DELETE) $(subst /,$(SEP),$(PROJECT_LIBRARY))
LINK_LIBRARY = tlib /u /P128 $(subst /,$(COMPILER_SEP),$@ $(OBJECTS_LIST:%=+%))
# Borland C++ specific temporary files
#
CLEAN += \
$(subst /,$(SEP),$(TOP_DIR)/apinames.$(O)) \
$(subst /,$(SEP),$(OBJ_DIR)/apinames.tds)
# EOF

View File

@ -0,0 +1,77 @@
#
# FreeType 2 emx-specific definitions
#
# Copyright (C) 2003-2022 by
# David Turner, Robert Wilhelm, and Werner Lemberg.
#
# This file is part of the FreeType project, and may only be used, modified,
# and distributed under the terms of the FreeType project license,
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
# indicate that you have read the license and understand and accept it
# fully.
# Compiler command line name
#
CC := set GCCOPT="-ansi -pedantic"; gcc
COMPILER_SEP := /
# The object file extension (for standard and static libraries). This can be
# .o, .tco, .obj, etc., depending on the platform.
#
O := o
SO := o
# The library file extension (for standard and static libraries). This can
# be .a, .lib, etc., depending on the platform.
#
A := a
SA := a
# Path inclusion flag. Some compilers use a different flag than `-I' to
# specify an additional include path. Examples are `/i=' or `-J'.
#
I := -I
# C flag used to define a macro before the compilation of a given source
# object. Usually it is `-D' like in `-DDEBUG'.
#
D := -D
# The link flag used to specify a given library file on link. Note that
# this is only used to compile the demo programs, not the library itself.
#
L := -l
# Target flag.
#
T := -o$(space)
# C flags
#
# These should concern: debug output, optimization & warnings.
#
# Use the ANSIFLAGS variable to define the compiler flags used to enforce
# ANSI compliance.
#
CFLAGS ?= -c -g -O6 -Wall
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
#
ANSIFLAGS ?=
# Library linking
#
CLEAN_LIBRARY ?= $(DELETE) $(subst /,$(SEP),$(PROJECT_LIBRARY))
LINK_LIBRARY = $(foreach m,$(OBJECTS_LIST),$(AR) -r $@ $(m);) echo > nul
# EOF

View File

@ -0,0 +1,96 @@
#
# FreeType 2 gcc-specific with NO OPTIMIZATIONS + DEBUGGING
#
# Copyright (C) 1996-2022 by
# David Turner, Robert Wilhelm, and Werner Lemberg.
#
# This file is part of the FreeType project, and may only be used, modified,
# and distributed under the terms of the FreeType project license,
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
# indicate that you have read the license and understand and accept it
# fully.
# Compiler command line name
#
CC := gcc
COMPILER_SEP := /
# The object file extension (for standard and static libraries). This can be
# .o, .tco, .obj, etc., depending on the platform.
#
O := o
SO := o
# The library file extension (for standard and static libraries). This can
# be .a, .lib, etc., depending on the platform.
#
A := a
SA := a
# Path inclusion flag. Some compilers use a different flag than `-I' to
# specify an additional include path. Examples are `/i=' or `-J'.
#
I := -I
# C flag used to define a macro before the compilation of a given source
# object. Usually it is `-D' like in `-DDEBUG'.
#
D := -D
# The link flag used to specify a given library file on link. Note that
# this is only used to compile the demo programs, not the library itself.
#
L := -l
# Target flag.
#
T := -o$(space)
# C flags
#
# These should concern: debug output, optimization & warnings.
#
# Use the ANSIFLAGS variable to define the compiler flags used to enforce
# ANSI compliance.
#
ifndef CFLAGS
ifeq ($(findstring g++,$(CC)),)
nested_externs := -Wnested-externs
strict_prototypes := -Wstrict-prototypes
endif
CFLAGS := -c -g -O0 \
-Wall \
-W \
-Wundef \
-Wshadow \
-Wpointer-arith \
-Wwrite-strings \
-Wredundant-decls \
-Wno-long-long \
$(nested_externs) \
$(strict_prototypes)
endif
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
# You can override this on the command line.
#
ANSIFLAGS ?= -std=c99 -pedantic
# Library linking
#
CLEAN_LIBRARY ?= $(DELETE) $(subst /,$(SEP),$(PROJECT_LIBRARY))
LINK_LIBRARY = $(AR) -r $@ $(OBJECTS_LIST)
# EOF

View File

@ -0,0 +1,77 @@
#
# FreeType 2 gcc-specific definitions
#
# Copyright (C) 1996-2022 by
# David Turner, Robert Wilhelm, and Werner Lemberg.
#
# This file is part of the FreeType project, and may only be used, modified,
# and distributed under the terms of the FreeType project license,
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
# indicate that you have read the license and understand and accept it
# fully.
# Compiler command line name
#
CC := gcc
COMPILER_SEP := /
# The object file extension (for standard and static libraries). This can be
# .o, .tco, .obj, etc., depending on the platform.
#
O := o
SO := o
# The library file extension (for standard and static libraries). This can
# be .a, .lib, etc., depending on the platform.
#
A := a
SA := a
# Path inclusion flag. Some compilers use a different flag than `-I' to
# specify an additional include path. Examples are `/i=' or `-J'.
#
I := -I
# C flag used to define a macro before the compilation of a given source
# object. Usually it is `-D' like in `-DDEBUG'.
#
D := -D
# The link flag used to specify a given library file on link. Note that
# this is only used to compile the demo programs, not the library itself.
#
L := -l
# Target flag.
#
T := -o$(space)
# C flags
#
# These should concern: debug output, optimization & warnings.
#
# Use the ANSIFLAGS variable to define the compiler flags used to enforce
# ANSI compliance.
#
CFLAGS ?= -c -g -O3 -Wall
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
#
ANSIFLAGS ?= -std=c99 -pedantic
# Library linking
#
CLEAN_LIBRARY ?= $(DELETE) $(subst /,$(SEP),$(PROJECT_LIBRARY))
LINK_LIBRARY = $(AR) -r $@ $(OBJECTS_LIST)
# EOF

View File

@ -0,0 +1,85 @@
#
# FreeType 2 Intel C/C++ definitions (VC++ compatibility mode)
#
# Copyright (C) 1996-2022 by
# David Turner, Robert Wilhelm, and Werner Lemberg.
#
# This file is part of the FreeType project, and may only be used, modified,
# and distributed under the terms of the FreeType project license,
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
# indicate that you have read the license and understand and accept it
# fully.
# compiler command line name
#
CC := icl
COMPILER_SEP := $(SEP)
# The object file extension (for standard and static libraries). This can be
# .o, .tco, .obj, etc., depending on the platform.
#
O := obj
SO := obj
# The library file extension (for standard and static libraries). This can
# be .a, .lib, etc., depending on the platform.
#
A := lib
SA := lib
# Path inclusion flag. Some compilers use a different flag than `-I' to
# specify an additional include path. Examples are `/i=' or `-J'.
#
I := /I
# C flag used to define a macro before the compilation of a given source
# object. Usually it is `-D' like in `-DDEBUG'.
#
D := /D
# The link flag used to specify a given library file on link. Note that
# this is only used to compile the demo programs, not the library itself.
#
L := /Fl
# Target flag.
#
T := /Fo
TE := /Fe
# C flags
#
# These should concern: debug output, optimization & warnings.
#
# Use the ANSIFLAGS variable to define the compiler flags used to enforce
# ANSI compliance.
#
# Note that the Intel C/C++ compiler version 4.5 complains about
# the use of FT_FIELD_OFFSET with "value must be arithmetic type"!
# This really looks like a bug in the compiler because the macro
# _does_ compute an arithmetic value, so we disable this warning
# with "/Qwd32".
#
CFLAGS ?= /nologo /c /Ox /G5 /W3 /Qwd32
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
#
ANSIFLAGS ?= /Qansi_alias /Za
# Library linking
#
#CLEAN_LIBRARY =
LINK_LIBRARY = lib /nologo /out:$(subst /,$(COMPILER_SEP),$@ $(OBJECTS_LIST))
# EOF

View File

@ -0,0 +1,83 @@
#
# FreeType 2 Unix LCC specific definitions
#
# Copyright (C) 1996-2022 by
# David Turner, Robert Wilhelm, and Werner Lemberg.
#
# This file is part of the FreeType project, and may only be used, modified,
# and distributed under the terms of the FreeType project license,
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
# indicate that you have read the license and understand and accept it
# fully.
# Command line name
#
CC := lcc
COMPILER_SEP := $(SEP)
# The object file extension (for standard and static libraries). This can be
# .o, .tco, .obj, etc., depending on the platform.
#
O := o
SO := o
# The library file extension (for standard and static libraries). This can
# be .a, .lib, etc., depending on the platform.
#
A := a
SA := a
# Path inclusion flag. Some compilers use a different flag than `-I' to
# specify an additional include path. Examples are `/i=' or `-J'.
#
I := -I
# C flag used to define a macro before the compilation of a given source
# object. Usually it is `-D' like in `-DDEBUG'.
#
D := -D
# The link flag used to specify a given library file on link. Note that
# this is only used to compile the demo programs, not the library itself.
#
L := -l
# Target flag.
#
T := -o$(space)
# C flags
#
# These should concern: debug output, optimization & warnings.
#
# Use the ANSIFLAGS variable to define the compiler flags used to enforce
# ANSI compliance.
#
CFLAGS ?= -c -g
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
#
# LCC is pure ANSI anyway!
#
# the "-A" flag simply increments verbosity about non ANSI code
#
ANSIFLAGS ?= -A
# library linking
#
CLEAN_LIBRARY ?= $(DELETE) $(PROJECT_LIBRARY)
LINK_LIBRARY = $(AR) -r $@ $(OBJECTS_LIST)
# EOF

View File

@ -0,0 +1,76 @@
#
# FreeType 2 Visual Age C++ specific definitions
#
# Copyright (C) 1996-2022 by
# David Turner, Robert Wilhelm, and Werner Lemberg.
#
# This file is part of the FreeType project, and may only be used, modified,
# and distributed under the terms of the FreeType project license,
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
# indicate that you have read the license and understand and accept it
# fully.
# command line compiler name
#
CC := icc
COMPILER_SEP := $(SEP)
# The object file extension (for standard and static libraries). This can be
# .o, .tco, .obj, etc., depending on the platform.
#
O := obj
SO := obj
# The library file extension (for standard and static libraries). This can
# be .a, .lib, etc., depending on the platform.
#
A := lib
SA := lib
# Path inclusion flag. Some compilers use a different flag than `-I' to
# specify an additional include path. Examples are `/i=' or `-J'.
#
I := /I
# C flag used to define a macro before the compilation of a given source
# object. Usually it is `-D' like in `-DDEBUG'.
#
D := /D
# The link flag used to specify a given library file on link. Note that
# this is only used to compile the demo programs, not the library itself.
#
L := /Fl
# Target flag.
#
T := /Fo
# C flags
#
# These should concern: debug output, optimization & warnings.
#
CFLAGS ?= /Q- /Gd+ /O2 /G5 /W3 /C
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
#
ANSI_FLAGS := /Sa
# Library linking
#
#CLEAN_LIBRARY :=
LINK_LIBRARY = lib /nologo /out:$(subst /,$(COMPILER_SEP),$@ $(OBJECTS_LIST))
# EOF

View File

@ -0,0 +1,82 @@
#
# FreeType 2 Visual C++ definitions
#
# Copyright (C) 1996-2022 by
# David Turner, Robert Wilhelm, and Werner Lemberg.
#
# This file is part of the FreeType project, and may only be used, modified,
# and distributed under the terms of the FreeType project license,
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
# indicate that you have read the license and understand and accept it
# fully.
# compiler command line name
#
CC := cl
COMPILER_SEP := $(SEP)
# The object file extension (for standard and static libraries). This can be
# .o, .tco, .obj, etc., depending on the platform.
#
O := obj
SO := obj
# The library file extension (for standard and static libraries). This can
# be .a, .lib, etc., depending on the platform.
#
A := lib
SA := lib
# Path inclusion flag. Some compilers use a different flag than `-I' to
# specify an additional include path. Examples are `/i=' or `-J'.
#
I := /I
# C flag used to define a macro before the compilation of a given source
# object. Usually it is `-D' like in `-DDEBUG'.
#
D := /D
# The link flag used to specify a given library file on link. Note that
# this is only used to compile the demo programs, not the library itself.
#
L := /Fl
# Target flag.
#
T := /Fo
# Target executable flag
#
TE := /Fe
# C flags
#
# These should concern: debug output, optimization & warnings.
#
# Use the ANSIFLAGS variable to define the compiler flags used to enforce
# ANSI compliance.
#
CFLAGS ?= /nologo /c /Ox /W3 /WX
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
#
ANSIFLAGS ?= /Za /D_CRT_SECURE_NO_DEPRECATE
# Library linking
#
#CLEAN_LIBRARY =
LINK_LIBRARY = lib /nologo /out:$(subst /,$(COMPILER_SEP),$@ $(OBJECTS_LIST))
# EOF

View File

@ -0,0 +1,81 @@
#
# FreeType 2 Watcom-specific definitions
#
# Copyright (C) 1996-2022 by
# David Turner, Robert Wilhelm, and Werner Lemberg.
#
# This file is part of the FreeType project, and may only be used, modified,
# and distributed under the terms of the FreeType project license,
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
# indicate that you have read the license and understand and accept it
# fully.
# Compiler command line name
#
CC := wcc386
COMPILER_SEP := $(SEP)
# The object file extension (for standard and static libraries). This can be
# .o, .tco, .obj, etc., depending on the platform.
#
O := obj
SO := obj
# The library file extension (for standard and static libraries). This can
# be .a, .lib, etc., depending on the platform.
#
A := lib
SA := lib
# Path inclusion flag. Some compilers use a different flag than `-I' to
# specify an additional include path. Examples are `/i=' or `-J'.
#
I := -I=
# C flag used to define a macro before the compilation of a given source
# object. Usually it is `-D' like in `-DDEBUG'.
#
D := -D
# The link flag used to specify a given library file on link. Note that
# this is only used to compile the demo programs, not the library itself.
#
L := -l
# Target flag.
#
T := -FO=
# C flags
#
# These should concern: debug output, optimization & warnings.
#
# Use the ANSIFLAGS variable to define the compiler flags used to enforce
# ANSI compliance.
#
CFLAGS ?= -zq
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
#
ANSIFLAGS ?= -za
# Library linking
#
CLEAN_LIBRARY ?= $(DELETE) $(subst /,$(SEP),$(PROJECT_LIBRARY))
LINK_LIBRARY = $(subst /,$(COMPILER_SEP), \
wlib -q -n $@; \
$(foreach m, $(OBJECTS_LIST), wlib -q $@ +$(m);) \
echo > nul)
# EOF

View File

@ -0,0 +1,81 @@
#
# FreeType 2 Win32-LCC specific definitions
#
# Copyright (C) 1996-2022 by
# David Turner, Robert Wilhelm, and Werner Lemberg.
#
# This file is part of the FreeType project, and may only be used, modified,
# and distributed under the terms of the FreeType project license,
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
# indicate that you have read the license and understand and accept it
# fully.
# Command line name
#
CC := lcc
COMPILER_SEP := $(SEP)
# The object file extension (for standard and static libraries). This can be
# .o, .tco, .obj, etc., depending on the platform.
#
O := obj
SO := obj
# The library file extension (for standard and static libraries). This can
# be .a, .lib, etc., depending on the platform.
#
A := lib
SA := lib
# Path inclusion flag. Some compilers use a different flag than `-I' to
# specify an additional include path. Examples are `/i=' or `-J'.
#
I := -I
# C flag used to define a macro before the compilation of a given source
# object. Usually it is `-D' like in `-DDEBUG'.
#
D := -D
# The link flag used to specify a given library file on link. Note that
# this is only used to compile the demo programs, not the library itself.
#
L := -Fl
# Target flag.
#
T := -Fo
# C flags
#
# These should concern: debug output, optimization & warnings.
#
# Use the ANSIFLAGS variable to define the compiler flags used to enforce
# ANSI compliance.
#
CFLAGS ?= -c -g2 -O
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
#
# LCC is pure ANSI anyway!
#
ANSIFLAGS ?=
# library linking
#
#CLEAN_LIBRARY :=
LINK_LIBRARY = lcclib /out:$(subst /,$(COMPILER_SEP),$@ $(OBJECTS_LIST))
# EOF

View File

@ -0,0 +1,128 @@
#
# FreeType 2 host platform detection rules
#
# Copyright (C) 1996-2022 by
# David Turner, Robert Wilhelm, and Werner Lemberg.
#
# This file is part of the FreeType project, and may only be used, modified,
# and distributed under the terms of the FreeType project license,
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
# indicate that you have read the license and understand and accept it
# fully.
# This sub-Makefile is in charge of detecting the current platform. It sets
# the following variables:
#
# PLATFORM_DIR The configuration and system-specific directory. Usually
# `builds/$(PLATFORM)' but can be different for custom builds
# of the library.
#
# The following variables must be defined in system specific `detect.mk'
# files:
#
# PLATFORM The detected platform. This will default to `ansi' if
# auto-detection fails.
# CONFIG_FILE The configuration sub-makefile to use. This usually depends
# on the compiler defined in the `CC' environment variable.
# DELETE The shell command used to remove a given file.
# COPY The shell command used to copy one file.
# SEP The platform-specific directory separator.
# COMPILER_SEP The separator used in arguments of the compilation tools.
# CC The compiler to use.
#
# You need to set the following variable(s) before calling it:
#
# TOP_DIR The top-most directory in the FreeType library source
# hierarchy. If not defined, it will default to `.'.
# Set auto-detection default to `ansi' resp. UNIX-like operating systems.
#
PLATFORM := ansi
DELETE := $(RM)
COPY := cp
CAT := cat
SEP := /
BUILD_CONFIG := $(TOP_DIR)/builds
# These two assignments must be delayed.
PLATFORM_DIR = $(BUILD_CONFIG)/$(PLATFORM)
CONFIG_RULES = $(PLATFORM_DIR)/$(CONFIG_FILE)
# We define the BACKSLASH variable to hold a single back-slash character.
# This is needed because a line like
#
# SEP := \
#
# does not work with GNU Make (the backslash is interpreted as a line
# continuation). While a line like
#
# SEP := \\
#
# really defines $(SEP) as `\' on Unix, and `\\' on Dos and Windows!
#
BACKSLASH := $(strip \ )
# Find all auto-detectable platforms.
#
PLATFORMS := $(notdir $(subst /detect.mk,,$(wildcard $(BUILD_CONFIG)/*/detect.mk)))
.PHONY: $(PLATFORMS) ansi
# Filter out platform specified as setup target.
#
PLATFORM := $(firstword $(filter $(MAKECMDGOALS),$(PLATFORMS)))
# If no setup target platform was specified, enable auto-detection/
# default platform.
#
ifeq ($(PLATFORM),)
PLATFORM := ansi
endif
# If the user has explicitly asked for `ansi' on the command line,
# disable auto-detection.
#
ifeq ($(findstring ansi,$(MAKECMDGOALS)),)
# Now, include all detection rule files found in the `builds/<system>'
# directories. Note that the calling order of the various `detect.mk'
# files isn't predictable.
#
include $(wildcard $(BUILD_CONFIG)/*/detect.mk)
endif
# In case no detection rule file was successful, use the default.
#
ifndef CONFIG_FILE
CONFIG_FILE := ansi.mk
setup: std_setup
.PHONY: setup
endif
# Flash out and copy rules.
#
.PHONY: std_setup
std_setup:
$(info )
$(info $(PROJECT_TITLE) build system -- automatic system detection)
$(info )
$(info The following settings are used:)
$(info )
$(info $(empty) platform $(PLATFORM))
$(info $(empty) compiler $(CC))
$(info $(empty) configuration directory $(subst /,$(SEP),$(PLATFORM_DIR)))
$(info $(empty) configuration rules $(subst /,$(SEP),$(CONFIG_RULES)))
$(info )
$(info If this does not correspond to your system or settings please remove the file)
$(info `$(CONFIG_MK)' from this directory then read the INSTALL file for help.)
$(info )
$(info Otherwise, simply type `$(MAKE)' again to build the library,)
$(info or `$(MAKE) refdoc' to build the API reference (this needs Python >= 3.5).)
$(info )
@$(COPY) $(subst /,$(SEP),$(CONFIG_RULES) $(CONFIG_MK))
# EOF

View File

@ -0,0 +1,152 @@
#
# FreeType 2 configuration file to detect a DOS host platform.
#
# Copyright (C) 1996-2022 by
# David Turner, Robert Wilhelm, and Werner Lemberg.
#
# This file is part of the FreeType project, and may only be used, modified,
# and distributed under the terms of the FreeType project license,
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
# indicate that you have read the license and understand and accept it
# fully.
.PHONY: setup
ifeq ($(PLATFORM),ansi)
# Test for DJGPP by checking the DJGPP environment variable, which must be
# set in order to use the system (ie. it will always be present when the
# `make' utility is run).
#
# We test for the COMSPEC environment variable, then run the `ver'
# command-line program to see if its output contains the word `Dos' or
# `DOS'.
#
# If this is true, we are running a Dos-ish platform (or an emulation).
#
ifdef DJGPP
PLATFORM := dos
else
ifdef COMSPEC
is_dos := $(findstring DOS,$(subst Dos,DOS,$(shell ver)))
# We try to recognize a Dos session under OS/2. The `ver' command
# returns `Operating System/2 ...' there, so `is_dos' should be empty.
#
# To recognize a Dos session under OS/2, we check COMSPEC for the
# substring `MDOS\COMMAND'
#
ifeq ($(is_dos),)
is_dos := $(findstring MDOS\COMMAND,$(COMSPEC))
endif
# We also try to recognize Dos 7.x without Windows 9X launched.
# See builds/windows/detect.mk for explanations about the logic.
#
ifeq ($(is_dos),)
ifdef winbootdir
#ifneq ($(OS),Windows_NT)
# If windows is available, do not trigger this test.
ifndef windir
is_dos := $(findstring Windows,$(strip $(shell ver)))
endif
#endif
endif
endif
endif # test COMSPEC
ifneq ($(is_dos),)
PLATFORM := dos
endif # test Dos
endif # test DJGPP
endif # test PLATFORM ansi
ifeq ($(PLATFORM),dos)
# Use DJGPP (i.e. gcc) by default.
#
CONFIG_FILE := dos-gcc.mk
CC ?= gcc
# additionally, we provide hooks for various other compilers
#
ifneq ($(findstring emx,$(MAKECMDGOALS)),) # EMX gcc
CONFIG_FILE := dos-emx.mk
CC := gcc
.PHONY: emx
emx: setup
@cd .
endif
ifneq ($(findstring turboc,$(MAKECMDGOALS)),) # Turbo C
CONFIG_FILE := dos-tcc.mk
CC := tcc
.PHONY: turboc
turboc: setup
@cd .
endif
ifneq ($(findstring watcom,$(MAKECMDGOALS)),) # Watcom C/C++
CONFIG_FILE := dos-wat.mk
CC := wcc386
.PHONY: watcom
watcom: setup
@cd .
endif
ifneq ($(findstring borlandc,$(MAKECMDGOALS)),) # Borland C/C++ 32-bit
CONFIG_FILE := dos-bcc.mk
CC := bcc32
.PHONY: borlandc
borlandc: setup
@cd .
endif
ifneq ($(findstring borlandc16,$(MAKECMDGOALS)),) # Borland C/C++ 16-bit
CONFIG_FILE := dos-bcc.mk
CC := bcc
.PHONY: borlandc16
borlandc16: setup
@cd .
endif
ifneq ($(findstring bash,$(SHELL)),) # check for bash
SEP := /
DELETE := rm
COPY := cp
CAT := cat
setup: std_setup
else
SEP := $(BACKSLASH)
DELETE := del
CAT := type
# Setting COPY is a bit trickier. We can be running DJGPP on some
# Windows NT derivatives, like XP. See builds/windows/detect.mk for
# explanations why we need hacking here.
#
ifeq ($(OS),Windows_NT)
COPY := cmd.exe /c copy
else
COPY := copy
endif # test NT
setup: std_setup
endif
endif # test PLATFORM dos
# EOF

View File

@ -0,0 +1,48 @@
#
# FreeType 2 DOS specific definitions
#
# Copyright (C) 1996-2022 by
# David Turner, Robert Wilhelm, and Werner Lemberg.
#
# This file is part of the FreeType project, and may only be used, modified,
# and distributed under the terms of the FreeType project license,
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
# indicate that you have read the license and understand and accept it
# fully.
DELETE := del
CAT := type
SEP := $(strip \ )
PLATFORM_DIR := $(TOP_DIR)/builds/dos
PLATFORM := dos
# This is used for `make refdoc' and `make refdoc-venv'
#
BIN := Scripts
# The executable file extension (for tools), *with* leading dot.
#
E := .exe
# The directory where all library files are placed.
#
# By default, this is the same as $(OBJ_DIR); however, this can be changed
# to suit particular needs.
#
LIB_DIR := $(OBJ_DIR)
# The name of the final library file. Note that the DOS-specific Makefile
# uses a shorter (8.3) name.
#
LIBRARY := $(PROJECT)
# The NO_OUTPUT macro is used to ignore the output of commands.
#
NO_OUTPUT = > nul
# EOF

View File

@ -0,0 +1,21 @@
#
# FreeType 2 configuration rules for the EMX gcc compiler
#
# Copyright (C) 2003-2022 by
# David Turner, Robert Wilhelm, and Werner Lemberg.
#
# This file is part of the FreeType project, and may only be used, modified,
# and distributed under the terms of the FreeType project license,
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
# indicate that you have read the license and understand and accept it
# fully.
include $(TOP_DIR)/builds/dos/dos-def.mk
include $(TOP_DIR)/builds/compiler/emx.mk
include $(TOP_DIR)/builds/link_dos.mk
# EOF

View File

@ -0,0 +1,21 @@
#
# FreeType 2 configuration rules for the DJGPP compiler
#
# Copyright (C) 1996-2022 by
# David Turner, Robert Wilhelm, and Werner Lemberg.
#
# This file is part of the FreeType project, and may only be used, modified,
# and distributed under the terms of the FreeType project license,
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
# indicate that you have read the license and understand and accept it
# fully.
include $(TOP_DIR)/builds/dos/dos-def.mk
include $(TOP_DIR)/builds/compiler/gcc.mk
include $(TOP_DIR)/builds/link_dos.mk
# EOF

View File

@ -0,0 +1,20 @@
#
# FreeType 2 configuration rules for the Watcom C/C++ compiler
#
# Copyright (C) 2003-2022 by
# David Turner, Robert Wilhelm, and Werner Lemberg.
#
# This file is part of the FreeType project, and may only be used, modified,
# and distributed under the terms of the FreeType project license,
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
# indicate that you have read the license and understand and accept it
# fully.
include $(TOP_DIR)/builds/dos/dos-def.mk
include $(TOP_DIR)/builds/compiler/watcom.mk
include $(TOP_DIR)/builds/link_dos.mk
# EOF

View File

@ -0,0 +1,80 @@
#
# FreeType 2 exports sub-Makefile
#
# Copyright (C) 2005-2022 by
# David Turner, Robert Wilhelm, and Werner Lemberg.
#
# This file is part of the FreeType project, and may only be used, modified,
# and distributed under the terms of the FreeType project license,
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
# indicate that you have read the license and understand and accept it
# fully.
# DO NOT INVOKE THIS MAKEFILE DIRECTLY! IT IS MEANT TO BE INCLUDED BY
# OTHER MAKEFILES.
# This sub-Makefile is used to compute the list of exported symbols whenever
# the EXPORTS_LIST variable is defined by one of the platform or compiler
# specific build files.
#
# EXPORTS_LIST contains the name of the `list' file, for example a Windows
# .DEF file.
#
ifneq ($(EXPORTS_LIST),)
# CCexe is the compiler used to compile the `apinames' tool program
# on the host machine. This isn't necessarily the same as the compiler
# which can be a cross-compiler for a different architecture, for example.
#
ifeq ($(CCexe),)
CCexe := $(CC)
endif
# TE acts like T, but for executables instead of object files.
ifeq ($(TE),)
TE := $T
endif
# The list of public headers we're going to parse.
PUBLIC_HEADERS := $(filter-out $(PUBLIC_DIR)/ftmac.h, \
$(wildcard $(PUBLIC_DIR)/*.h))
ifneq ($(ftmac_c),)
PUBLIC_HEADERS += $(PUBLIC_DIR)/ftmac.h
endif
# The `apinames' source and executable. We use $E_BUILD as the host
# executable suffix, which *includes* the final dot.
#
# Note that $(APINAMES_OPTIONS) is empty, except for Windows compilers.
#
APINAMES_SRC := $(subst /,$(SEP),$(TOP_DIR)/src/tools/apinames.c)
APINAMES_EXE := $(subst /,$(SEP),$(OBJ_DIR)/apinames$(E_BUILD))
$(APINAMES_EXE): $(APINAMES_SRC)
$(CCexe) $(CCexe_CFLAGS) $(TE)$@ $< $(CCexe_LDFLAGS)
.PHONY: symbols_list
symbols_list: $(EXPORTS_LIST)
# We manually add TT_New_Context and TT_RunIns, which are needed by TT
# debuggers, to the EXPORTS_LIST.
#
$(EXPORTS_LIST): $(APINAMES_EXE) $(PUBLIC_HEADERS)
$(subst /,$(SEP),$(APINAMES_EXE)) -o$@ $(APINAMES_OPTIONS) $(PUBLIC_HEADERS)
@echo TT_New_Context >> $(EXPORTS_LIST)
@echo TT_RunIns >> $(EXPORTS_LIST)
$(PROJECT_LIBRARY): $(EXPORTS_LIST)
CLEAN += $(EXPORTS_LIST) \
$(APINAMES_EXE)
endif
# EOF

View File

@ -0,0 +1,385 @@
#
# FreeType 2 library sub-Makefile
#
# Copyright (C) 1996-2022 by
# David Turner, Robert Wilhelm, and Werner Lemberg.
#
# This file is part of the FreeType project, and may only be used, modified,
# and distributed under the terms of the FreeType project license,
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
# indicate that you have read the license and understand and accept it
# fully.
# DO NOT INVOKE THIS MAKEFILE DIRECTLY! IT IS MEANT TO BE INCLUDED BY
# OTHER MAKEFILES.
# The following variables (set by other Makefile components, in the
# environment, or on the command line) are used:
#
# PLATFORM_DIR The architecture-dependent directory,
# e.g., `$(TOP_DIR)/builds/unix'. Added to INCLUDES also.
#
# OBJ_DIR The directory in which object files are created.
#
# LIB_DIR The directory in which the library is created.
#
# DOC_DIR The directory in which the API reference is created.
#
# INCLUDES A list of directories to be included additionally.
#
# DEVEL_DIR Development directory which is added to the INCLUDES
# variable before the standard include directories.
#
# CFLAGS Compilation flags. This overrides the default settings
# in the platform-specific configuration files.
#
# FTSYS_SRC If set, its value is used as the name of a replacement
# file for `src/base/ftsystem.c'.
#
# FTDEBUG_SRC If set, its value is used as the name of a replacement
# file for `src/base/ftdebug.c'. [For a normal build, this
# file does nothing.]
#
# FTMODULE_H The file which contains the list of module classes for
# the current build. Usually, this is automatically
# created by `modules.mk'.
#
# BASE_OBJ_S
# BASE_OBJ_M A list of base objects (for single object and multiple
# object builds, respectively). Set up in
# `src/base/rules.mk'.
#
# BASE_EXT_OBJ A list of base extension objects. Set up in
# `src/base/rules.mk'.
#
# DRV_OBJ_S
# DRV_OBJ_M A list of driver objects (for single object and multiple
# object builds, respectively). Set up cumulatively in
# `src/<driver>/rules.mk'.
#
# CLEAN
# DISTCLEAN The sub-makefiles can append additional stuff to these two
# variables which is to be removed for the `clean' resp.
# `distclean' target.
#
# TOP_DIR, SEP,
# COMPILER_SEP,
# LIBRARY, CC,
# A, I, O, T Check `config.mk' for details.
# The targets `objects' and `library' are defined at the end of this
# Makefile after all other rules have been included.
#
.PHONY: single multi objects library refdoc refdoc-venv
# default target -- build single objects and library
#
single: objects library
# `multi' target -- build multiple objects and library
#
multi: objects library
# The FreeType source directory, usually `./src'.
#
SRC_DIR := $(TOP_DIR)/src
# The directory where the base layer components are placed, usually
# `./src/base'.
#
BASE_DIR := $(SRC_DIR)/base
# Other derived directories.
#
PUBLIC_DIR := $(TOP_DIR)/include/freetype
INTERNAL_DIR := $(PUBLIC_DIR)/internal
SERVICES_DIR := $(INTERNAL_DIR)/services
CONFIG_DIR := $(PUBLIC_DIR)/config
# The documentation directory.
#
DOC_DIR ?= $(TOP_DIR)/docs
# The final name of the library file.
#
PROJECT_LIBRARY := $(LIB_DIR)/$(LIBRARY).$A
# include paths
#
# IMPORTANT NOTE: The architecture-dependent directory must ALWAYS be placed
# before the standard include list. Porters are then able to
# put their own version of some of the FreeType components
# in the `builds/<system>' directory, as these files will
# override the default sources.
#
INCLUDES := $(subst /,$(COMPILER_SEP),$(OBJ_DIR) \
$(DEVEL_DIR) \
$(PLATFORM_DIR) \
$(TOP_DIR)/include)
INCLUDE_FLAGS := $(INCLUDES:%=$I%)
# For a development build, we assume that the external library dependencies
# defined in `ftoption.h' are fulfilled, so we directly access the necessary
# include directory information using `pkg-config'.
#
ifdef DEVEL_DIR
INCLUDE_FLAGS += $(shell pkg-config --cflags libpng)
INCLUDE_FLAGS += $(shell pkg-config --cflags harfbuzz)
INCLUDE_FLAGS += $(shell pkg-config --cflags libbrotlidec)
endif
# C flags used for the compilation of an object file. This must include at
# least the paths for the `base' and `builds/<system>' directories;
# debug/optimization/warning flags + ansi compliance if needed.
#
# $(INCLUDE_FLAGS) should come before $(CFLAGS) to avoid problems with
# old FreeType versions.
#
# Note what we also define the macro FT2_BUILD_LIBRARY when building
# FreeType. This is required to let our sources include the internal
# headers (something forbidden by clients).
#
# `CPPFLAGS' might be specified by the user in the environment.
#
FT_CFLAGS = $(CPPFLAGS) \
$(CFLAGS) \
$DFT2_BUILD_LIBRARY
FT_COMPILE := $(CC) $(ANSIFLAGS) $(INCLUDE_FLAGS) $(FT_CFLAGS)
# Include the `exports' rules file.
#
include $(TOP_DIR)/builds/exports.mk
# Initialize the list of objects.
#
OBJECTS_LIST :=
# Define $(PUBLIC_H) as the list of all public header files located in
# `$(TOP_DIR)/include/freetype'. $(INTERNAL_H), and $(CONFIG_H) are defined
# similarly. $(FTOPTION_H) is the option file used in the compilation.
#
# This is used to simplify the dependency rules -- if one of these files
# changes, the whole library is recompiled.
#
ifneq ($(wildcard $(OBJ_DIR)/ftoption.h),)
FTOPTION_H := $(OBJ_DIR)/ftoption.h
else ifneq ($(wildcard $(PLATFORM_DIR)/ftoption.h),)
FTOPTION_H := $(PLATFORM_DIR)/ftoption.h
endif
PUBLIC_H := $(wildcard $(PUBLIC_DIR)/*.h)
INTERNAL_H := $(wildcard $(INTERNAL_DIR)/*.h) \
$(wildcard $(SERVICES_DIR)/*.h)
CONFIG_H := $(wildcard $(CONFIG_DIR)/*.h) \
$(wildcard $(PLATFORM_DIR)/config/*.h) \
$(FTMODULE_H) \
$(FTOPTION_H)
DEVEL_H := $(wildcard $(TOP_DIR)/devel/*.h)
FREETYPE_H := $(PUBLIC_H) $(INTERNAL_H) $(CONFIG_H) $(DEVEL_H)
# ftsystem component
#
FTSYS_SRC ?= $(BASE_DIR)/ftsystem.c
FTSYS_OBJ := $(OBJ_DIR)/ftsystem.$O
OBJECTS_LIST += $(FTSYS_OBJ)
$(FTSYS_OBJ): $(FTSYS_SRC) $(FREETYPE_H)
$(FT_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $<)
# ftdebug component
#
FTDEBUG_SRC ?= $(BASE_DIR)/ftdebug.c
FTDEBUG_OBJ := $(OBJ_DIR)/ftdebug.$O
OBJECTS_LIST += $(FTDEBUG_OBJ)
$(FTDEBUG_OBJ): $(FTDEBUG_SRC) $(FREETYPE_H)
$(FT_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $<)
# Include all rule files from FreeType components.
#
include $(SRC_DIR)/base/rules.mk
include $(patsubst %,$(SRC_DIR)/%/rules.mk,$(MODULES))
include $(SRC_DIR)/dlg/rules.mk
# ftinit component
#
# The C source `ftinit.c' contains the FreeType initialization routines.
# It is able to automatically register one or more drivers when the API
# function FT_Init_FreeType() is called.
#
# The set of initial drivers is determined by the driver Makefiles
# includes above. Each driver Makefile updates the FTINIT_xxx lists
# which contain additional include paths and macros used to compile the
# single `ftinit.c' source.
#
FTINIT_SRC := $(BASE_DIR)/ftinit.c
FTINIT_OBJ := $(OBJ_DIR)/ftinit.$O
OBJECTS_LIST += $(FTINIT_OBJ)
$(FTINIT_OBJ): $(FTINIT_SRC) $(FREETYPE_H)
$(FT_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $<)
# ftver component
#
# The VERSIONINFO resource `ftver.rc' contains version and copyright
# to be compiled by windres and tagged into DLL usually.
#
ifneq ($(RC),)
FTVER_SRC := $(BASE_DIR)/ftver.rc
FTVER_OBJ := $(OBJ_DIR)/ftver.$O
OBJECTS_LIST += $(FTVER_OBJ)
$(FTVER_OBJ): $(FTVER_SRC)
$(RC) -o $@ $<
endif
# All FreeType library objects.
#
OBJ_M := $(BASE_OBJ_M) $(BASE_EXT_OBJ) $(DRV_OBJS_M) $(DLG_OBJS_M)
OBJ_S := $(BASE_OBJ_S) $(BASE_EXT_OBJ) $(DRV_OBJS_S) $(DLG_OBJS_S)
# The target `multi' on the Make command line indicates that we want to
# compile each source file independently.
#
# Otherwise, each module/driver is compiled in a single object file through
# source file inclusion (see `src/base/ftbase.c' or
# `src/truetype/truetype.c' for examples).
#
BASE_OBJECTS := $(OBJECTS_LIST)
ifneq ($(findstring multi,$(MAKECMDGOALS)),)
OBJECTS_LIST += $(OBJ_M)
else
OBJECTS_LIST += $(OBJ_S)
endif
objects: $(OBJECTS_LIST)
library: $(PROJECT_LIBRARY)
# Run `docwriter' in the current Python environment.
#
PYTHON ?= python
refdoc:
@echo Running docwriter...
$(PYTHON) -m docwriter \
--prefix=ft2 \
--title=FreeType-$(version) \
--site=reference \
--output=$(DOC_DIR) \
$(PUBLIC_DIR)/*.h \
$(PUBLIC_DIR)/config/*.h \
$(PUBLIC_DIR)/cache/*.h
@echo Building static site...
cd $(DOC_DIR) && mkdocs build
@echo Done.
# Variables for running `refdoc' with Python's `virtualenv'. The
# environment is created in `DOC_DIR/env' and is gitignored.
#
# We still need to cd into `DOC_DIR' to build `mkdocs' because paths in
# `mkdocs.yml' are relative to the current working directory.
#
VENV_NAME := env
VENV_DIR := $(DOC_DIR)$(SEP)$(VENV_NAME)
ENV_PYTHON := $(VENV_DIR)$(SEP)$(BIN)$(SEP)$(PYTHON)
refdoc-venv:
@echo Setting up virtualenv for Python...
virtualenv --python=$(PYTHON) $(VENV_DIR)
@echo Installing docwriter...
$(ENV_PYTHON) -m pip install docwriter
@echo Running docwriter...
$(ENV_PYTHON) -m docwriter \
--prefix=ft2 \
--title=FreeType-$(version) \
--site=reference \
--output=$(DOC_DIR) \
$(PUBLIC_DIR)/*.h \
$(PUBLIC_DIR)/config/*.h \
$(PUBLIC_DIR)/cache/*.h
@echo Building static site...
cd $(DOC_DIR) && $(VENV_NAME)$(SEP)$(BIN)$(SEP)python -m mkdocs build
@echo Done.
.PHONY: clean_project_std distclean_project_std
# Standard cleaning and distclean rules. These are not accepted
# on all systems though.
#
clean_project_std:
-$(DELETE) $(BASE_OBJECTS) $(OBJ_M) $(OBJ_S) $(CLEAN)
distclean_project_std: clean_project_std
-$(DELETE) $(PROJECT_LIBRARY)
-$(DELETE) *.orig *~ core *.core $(DISTCLEAN)
.PHONY: clean_project_dos distclean_project_dos
# The Dos command shell does not support very long list of arguments, so
# we are stuck with wildcards.
#
# Don't break the command lines with \; this prevents the "del" command from
# working correctly on Win9x.
#
clean_project_dos:
-$(DELETE) $(subst /,$(SEP),$(OBJ_DIR)/*.$O $(CLEAN) $(NO_OUTPUT))
distclean_project_dos: clean_project_dos
-$(DELETE) $(subst /,$(SEP),$(PROJECT_LIBRARY) $(DISTCLEAN) $(NO_OUTPUT))
.PHONY: remove_config_mk remove_ftmodule_h
# Remove configuration file (used for distclean).
#
remove_config_mk:
-$(DELETE) $(subst /,$(SEP),$(CONFIG_MK) $(NO_OUTPUT))
# Remove module list (used for distclean).
#
remove_ftmodule_h:
-$(DELETE) $(subst /,$(SEP),$(FTMODULE_H) $(NO_OUTPUT))
.PHONY: clean distclean
# The `config.mk' file must define `clean_project' and `distclean_project'.
# Implementations may use to relay these to either the `std' or `dos'
# versions from above, or simply provide their own implementation.
#
clean: clean_project
distclean: distclean_project remove_config_mk remove_ftmodule_h
-$(DELETE) $(subst /,$(SEP),$(DOC_DIR)/*.html $(NO_OUTPUT))
# EOF

View File

@ -0,0 +1,42 @@
#
# Link instructions for Dos-like systems (Dos, Win32, OS/2)
#
# Copyright (C) 1996-2022 by
# David Turner, Robert Wilhelm, and Werner Lemberg.
#
# This file is part of the FreeType project, and may only be used, modified,
# and distributed under the terms of the FreeType project license,
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
# indicate that you have read the license and understand and accept it
# fully.
ifdef BUILD_PROJECT
.PHONY: clean_project distclean_project
# Now include the main sub-makefile. It contains all the rules used to
# build the library with the previous variables defined.
#
include $(TOP_DIR)/builds/$(PROJECT).mk
# The cleanup targets.
#
clean_project: clean_project_dos
distclean_project: distclean_project_dos
# This final rule is used to link all object files into a single library.
# this is compiler-specific
#
$(PROJECT_LIBRARY): $(OBJECTS_LIST)
ifdef CLEAN_LIBRARY
-$(CLEAN_LIBRARY) $(NO_OUTPUT)
endif
$(LINK_LIBRARY)
endif
# EOF

View File

@ -0,0 +1,42 @@
#
# Link instructions for standard systems
#
# Copyright (C) 1996-2022 by
# David Turner, Robert Wilhelm, and Werner Lemberg.
#
# This file is part of the FreeType project, and may only be used, modified,
# and distributed under the terms of the FreeType project license,
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
# indicate that you have read the license and understand and accept it
# fully.
ifdef BUILD_PROJECT
.PHONY: clean_project distclean_project
# Now include the main sub-makefile. It contains all the rules used to
# build the library with the previous variables defined.
#
include $(TOP_DIR)/builds/$(PROJECT).mk
# The cleanup targets.
#
clean_project: clean_project_std
distclean_project: distclean_project_std
# This final rule is used to link all object files into a single library.
# this is compiler-specific
#
$(PROJECT_LIBRARY): $(OBJECTS_LIST)
ifdef CLEAN_LIBRARY
-$(CLEAN_LIBRARY) $(NO_OUTPUT)
endif
$(LINK_LIBRARY)
endif
# EOF

View File

@ -0,0 +1,209 @@
# File: FreeType.m68k_cfm.make
# Target: FreeType.m68k_cfm
# Created: Thursday, October 27, 2005 09:23:25 PM
MAKEFILE = FreeType.m68k_cfm.make
\xA5MondoBuild\xA5 = {MAKEFILE} # Make blank to avoid rebuilds when makefile is modified
ObjDir = :objs:
Includes = \xB6
-ansi strict \xB6
-includes unix \xB6
-i :include: \xB6
-i :src: \xB6
-i :include:freetype:config:
Sym-68K = -sym off
COptions = \xB6
-d FT_MACINTOSH=1 \xB6
-d HAVE_FSSPEC=1 \xB6
-d HAVE_FSREF=0 \xB6
-d HAVE_QUICKDRAW_TOOLBOX=1 \xB6
-d HAVE_QUICKDRAW_CARBON=0 \xB6
-d HAVE_ATS=0 \xB6
-d FT2_BUILD_LIBRARY \xB6
-d FT_CONFIG_CONFIG_H="<ftconfig.h>" \xB6
-d FT_CONFIG_MODULES_H="<ftmodule.h>" \xB6
{Includes} {Sym-68K} -model cfmseg
### Source Files ###
SrcFiles = \xB6
:src:autofit:autofit.c \xB6
:builds:mac:ftbase.c \xB6
:src:base:ftbbox.c \xB6
:src:base:ftbdf.c \xB6
:src:base:ftbitmap.c \xB6
:src:base:ftdebug.c \xB6
:src:base:ftfstype.c \xB6
:src:base:ftglyph.c \xB6
:src:base:ftgxval.c \xB6
:src:base:ftinit.c \xB6
:src:base:ftmm.c \xB6
:src:base:ftotval.c \xB6
:src:base:ftpfr.c \xB6
:src:base:ftstroke.c \xB6
:src:base:ftsynth.c \xB6
:src:base:ftsystem.c \xB6
:src:base:fttype1.c \xB6
:src:base:ftwinfnt.c \xB6
:src:cache:ftcache.c \xB6
:src:bdf:bdf.c \xB6
:src:cff:cff.c \xB6
:src:cid:type1cid.c \xB6
# :src:gxvalid:gxvalid.c \xB6
:src:gzip:ftgzip.c \xB6
:src:bzip2:ftbzip2.c \xB6
:src:lzw:ftlzw.c \xB6
:src:otvalid:otvalid.c \xB6
:src:pcf:pcf.c \xB6
:src:pfr:pfr.c \xB6
:src:psaux:psaux.c \xB6
:src:pshinter:pshinter.c \xB6
:src:psnames:psmodule.c \xB6
:src:raster:raster.c \xB6
:src:sfnt:sfnt.c \xB6
:src:smooth:smooth.c \xB6
:src:truetype:truetype.c \xB6
:src:type1:type1.c \xB6
:src:type42:type42.c \xB6
:src:winfonts:winfnt.c
### Object Files ###
ObjFiles-68K = \xB6
"{ObjDir}autofit.c.o" \xB6
"{ObjDir}ftbase.c.o" \xB6
"{ObjDir}ftbbox.c.o" \xB6
"{ObjDir}ftbdf.c.o" \xB6
"{ObjDir}ftbitmap.c.o" \xB6
"{ObjDir}ftdebug.c.o" \xB6
"{ObjDir}ftfstype.c.o" \xB6
"{ObjDir}ftglyph.c.o" \xB6
"{ObjDir}ftgxval.c.o" \xB6
"{ObjDir}ftinit.c.o" \xB6
"{ObjDir}ftmm.c.o" \xB6
"{ObjDir}ftotval.c.o" \xB6
"{ObjDir}ftpfr.c.o" \xB6
"{ObjDir}ftstroke.c.o" \xB6
"{ObjDir}ftsynth.c.o" \xB6
"{ObjDir}ftsystem.c.o" \xB6
"{ObjDir}fttype1.c.o" \xB6
"{ObjDir}ftwinfnt.c.o" \xB6
"{ObjDir}ftcache.c.o" \xB6
"{ObjDir}bdf.c.o" \xB6
"{ObjDir}cff.c.o" \xB6
"{ObjDir}type1cid.c.o" \xB6
# "{ObjDir}gxvalid.c.o" \xB6
"{ObjDir}ftgzip.c.o" \xB6
"{ObjDir}ftbzip2.c.o" \xB6
"{ObjDir}ftlzw.c.o" \xB6
"{ObjDir}otvalid.c.o" \xB6
"{ObjDir}pcf.c.o" \xB6
"{ObjDir}pfr.c.o" \xB6
"{ObjDir}psaux.c.o" \xB6
"{ObjDir}pshinter.c.o" \xB6
"{ObjDir}psmodule.c.o" \xB6
"{ObjDir}raster.c.o" \xB6
"{ObjDir}sfnt.c.o" \xB6
"{ObjDir}smooth.c.o" \xB6
"{ObjDir}truetype.c.o" \xB6
"{ObjDir}type1.c.o" \xB6
"{ObjDir}type42.c.o" \xB6
"{ObjDir}winfnt.c.o"
### Libraries ###
LibFiles-68K =
### Default Rules ###
.c.o \xC4 .c {\xA5MondoBuild\xA5}
{C} {depDir}{default}.c -o {targDir}{default}.c.o {COptions}
### Build Rules ###
:builds:mac:ftbase.c \xC4\xC4 :src:base:ftbase.c
Duplicate :src:base:ftbase.c :builds:mac:ftbase.c
"{ObjDir}ftbase.c.o" \xC4\xC4 :builds:mac:ftbase.c
{C} :builds:mac:ftbase.c -o "{ObjDir}ftbase.c.o" \xB6
-i :builds:mac: \xB6
-i :src:base: \xB6
{COptions}
FreeType.m68k_cfm \xC4\xC4 FreeType.m68k_cfm.o
FreeType.m68k_cfm.o \xC4\xC4 {ObjFiles-68K} {LibFiles-68K} {\xA5MondoBuild\xA5}
Lib \xB6
-o {Targ} \xB6
{ObjFiles-68K} \xB6
{LibFiles-68K} \xB6
{Sym-68K} \xB6
-mf -d
### Required Dependencies ###
"{ObjDir}autofit.c.o" \xC4 :src:autofit:autofit.c
# "{ObjDir}ftbase.c.o" \xC4 :src:base:ftbase.c
"{ObjDir}ftbbox.c.o" \xC4 :src:base:ftbbox.c
"{ObjDir}ftbdf.c.o" \xC4 :src:base:ftbdf.c
"{ObjDir}ftbitmap.c.o" \xC4 :src:base:ftbitmap.c
"{ObjDir}ftdebug.c.o" \xC4 :src:base:ftdebug.c
"{ObjDir}ftfstype.c.o" \xC4 :src:base:ftfstype.c
"{ObjDir}ftglyph.c.o" \xC4 :src:base:ftglyph.c
"{ObjDir}ftgxval.c.o" \xC4 :src:base:ftgxval.c
"{ObjDir}ftinit.c.o" \xC4 :src:base:ftinit.c
"{ObjDir}ftmm.c.o" \xC4 :src:base:ftmm.c
"{ObjDir}ftotval.c.o" \xC4 :src:base:ftotval.c
"{ObjDir}ftpfr.c.o" \xC4 :src:base:ftpfr.c
"{ObjDir}ftstroke.c.o" \xC4 :src:base:ftstroke.c
"{ObjDir}ftsynth.c.o" \xC4 :src:base:ftsynth.c
"{ObjDir}ftsystem.c.o" \xC4 :src:base:ftsystem.c
"{ObjDir}fttype1.c.o" \xC4 :src:base:fttype1.c
"{ObjDir}ftwinfnt.c.o" \xC4 :src:base:ftwinfnt.c
"{ObjDir}ftcache.c.o" \xC4 :src:cache:ftcache.c
"{ObjDir}bdf.c.o" \xC4 :src:bdf:bdf.c
"{ObjDir}cff.c.o" \xC4 :src:cff:cff.c
"{ObjDir}type1cid.c.o" \xC4 :src:cid:type1cid.c
# "{ObjDir}gxvalid.c.o" \xC4 :src:gxvalid:gxvalid.c
"{ObjDir}ftgzip.c.o" \xC4 :src:gzip:ftgzip.c
"{ObjDir}ftbzip2.c.o" \xC4 :src:bzip2:ftbzip2.c
"{ObjDir}ftlzw.c.o" \xC4 :src:lzw:ftlzw.c
"{ObjDir}otvalid.c.o" \xC4 :src:otvalid:otvalid.c
"{ObjDir}pcf.c.o" \xC4 :src:pcf:pcf.c
"{ObjDir}pfr.c.o" \xC4 :src:pfr:pfr.c
"{ObjDir}psaux.c.o" \xC4 :src:psaux:psaux.c
"{ObjDir}pshinter.c.o" \xC4 :src:pshinter:pshinter.c
"{ObjDir}psmodule.c.o" \xC4 :src:psnames:psmodule.c
"{ObjDir}raster.c.o" \xC4 :src:raster:raster.c
"{ObjDir}sfnt.c.o" \xC4 :src:sfnt:sfnt.c
"{ObjDir}smooth.c.o" \xC4 :src:smooth:smooth.c
"{ObjDir}truetype.c.o" \xC4 :src:truetype:truetype.c
"{ObjDir}type1.c.o" \xC4 :src:type1:type1.c
"{ObjDir}type42.c.o" \xC4 :src:type42:type42.c
"{ObjDir}winfnt.c.o" \xC4 :src:winfonts:winfnt.c
### Optional Dependencies ###
### Build this target to generate "include file" dependencies. ###
Dependencies \xC4 $OutOfDate
MakeDepend \xB6
-append {MAKEFILE} \xB6
-ignore "{CIncludes}" \xB6
-objdir "{ObjDir}" \xB6
-objext .o \xB6
{Includes} \xB6
{SrcFiles}

View File

@ -0,0 +1,208 @@
# File: FreeType.m68k_far.make
# Target: FreeType.m68k_far
# Created: Tuesday, October 25, 2005 03:34:05 PM
MAKEFILE = FreeType.m68k_far.make
\xA5MondoBuild\xA5 = {MAKEFILE} # Make blank to avoid rebuilds when makefile is modified
ObjDir = :objs:
Includes = \xB6
-includes unix \xB6
-i :include: \xB6
-i :src: \xB6
-i :include:freetype:config:
Sym-68K = -sym off
COptions = \xB6
-d FT_MACINTOSH=1 \xB6
-d HAVE_FSSPEC=1 \xB6
-d HAVE_FSREF=0 \xB6
-d HAVE_QUICKDRAW_TOOLBOX=1 \xB6
-d HAVE_QUICKDRAW_CARBON=0 \xB6
-d HAVE_ATS=0 \xB6
-d FT2_BUILD_LIBRARY \xB6
-d FT_CONFIG_CONFIG_H="<ftconfig.h>" \xB6
-d FT_CONFIG_MODULES_H="<ftmodule.h>" \xB6
{Includes} {Sym-68K} -model far
### Source Files ###
SrcFiles = \xB6
:src:autofit:autofit.c \xB6
:builds:mac:ftbase.c \xB6
:src:base:ftbbox.c \xB6
:src:base:ftbdf.c \xB6
:src:base:ftbitmap.c \xB6
:src:base:ftdebug.c \xB6
:src:base:ftfstype.c \xB6
:src:base:ftglyph.c \xB6
:src:base:ftgxval.c \xB6
:src:base:ftinit.c \xB6
:src:base:ftmm.c \xB6
:src:base:ftotval.c \xB6
:src:base:ftpfr.c \xB6
:src:base:ftstroke.c \xB6
:src:base:ftsynth.c \xB6
:src:base:ftsystem.c \xB6
:src:base:fttype1.c \xB6
:src:base:ftwinfnt.c \xB6
:src:cache:ftcache.c \xB6
:src:bdf:bdf.c \xB6
:src:cff:cff.c \xB6
:src:cid:type1cid.c \xB6
:src:gxvalid:gxvalid.c \xB6
:src:gzip:ftgzip.c \xB6
:src:bzip2:ftbzip2.c \xB6
:src:lzw:ftlzw.c \xB6
:src:otvalid:otvalid.c \xB6
:src:pcf:pcf.c \xB6
:src:pfr:pfr.c \xB6
:src:psaux:psaux.c \xB6
:src:pshinter:pshinter.c \xB6
:src:psnames:psmodule.c \xB6
:src:raster:raster.c \xB6
:src:sfnt:sfnt.c \xB6
:src:smooth:smooth.c \xB6
:src:truetype:truetype.c \xB6
:src:type1:type1.c \xB6
:src:type42:type42.c \xB6
:src:winfonts:winfnt.c
### Object Files ###
ObjFiles-68K = \xB6
"{ObjDir}autofit.c.o" \xB6
"{ObjDir}ftbase.c.o" \xB6
"{ObjDir}ftbbox.c.o" \xB6
"{ObjDir}ftbdf.c.o" \xB6
"{ObjDir}ftbitmap.c.o" \xB6
"{ObjDir}ftdebug.c.o" \xB6
"{ObjDir}ftfstype.c.o" \xB6
"{ObjDir}ftglyph.c.o" \xB6
"{ObjDir}ftgxval.c.o" \xB6
"{ObjDir}ftinit.c.o" \xB6
"{ObjDir}ftmm.c.o" \xB6
"{ObjDir}ftotval.c.o" \xB6
"{ObjDir}ftpfr.c.o" \xB6
"{ObjDir}ftstroke.c.o" \xB6
"{ObjDir}ftsynth.c.o" \xB6
"{ObjDir}ftsystem.c.o" \xB6
"{ObjDir}fttype1.c.o" \xB6
"{ObjDir}ftwinfnt.c.o" \xB6
"{ObjDir}ftcache.c.o" \xB6
"{ObjDir}bdf.c.o" \xB6
"{ObjDir}cff.c.o" \xB6
"{ObjDir}type1cid.c.o" \xB6
"{ObjDir}gxvalid.c.o" \xB6
"{ObjDir}ftgzip.c.o" \xB6
"{ObjDir}ftbzip2.c.o" \xB6
"{ObjDir}ftlzw.c.o" \xB6
"{ObjDir}otvalid.c.o" \xB6
"{ObjDir}pcf.c.o" \xB6
"{ObjDir}pfr.c.o" \xB6
"{ObjDir}psaux.c.o" \xB6
"{ObjDir}pshinter.c.o" \xB6
"{ObjDir}psmodule.c.o" \xB6
"{ObjDir}raster.c.o" \xB6
"{ObjDir}sfnt.c.o" \xB6
"{ObjDir}smooth.c.o" \xB6
"{ObjDir}truetype.c.o" \xB6
"{ObjDir}type1.c.o" \xB6
"{ObjDir}type42.c.o" \xB6
"{ObjDir}winfnt.c.o"
### Libraries ###
LibFiles-68K =
### Default Rules ###
.c.o \xC4 .c {\xA5MondoBuild\xA5}
{C} {depDir}{default}.c -o {targDir}{default}.c.o {COptions} \xB6
-ansi strict
### Build Rules ###
:builds:mac:ftbase.c \xC4\xC4 :src:base:ftbase.c
Duplicate :src:base:ftbase.c :builds:mac:ftbase.c
"{ObjDir}ftbase.c.o" \xC4\xC4 :builds:mac:ftbase.c
{C} :builds:mac:ftbase.c -o "{ObjDir}ftbase.c.o" \xB6
-i :builds:mac: \xB6
-i :src:base: \xB6
{COptions}
FreeType.m68k_far \xC4\xC4 FreeType.m68k_far.o
FreeType.m68k_far.o \xC4\xC4 {ObjFiles-68K} {LibFiles-68K} {\xA5MondoBuild\xA5}
Lib \xB6
-o {Targ} \xB6
{ObjFiles-68K} \xB6
{LibFiles-68K} \xB6
{Sym-68K} \xB6
-mf -d
### Required Dependencies ###
"{ObjDir}autofit.c.o" \xC4 :src:autofit:autofit.c
# "{ObjDir}ftbase.c.o" \xC4 :src:base:ftbase.c
"{ObjDir}ftbbox.c.o" \xC4 :src:base:ftbbox.c
"{ObjDir}ftbdf.c.o" \xC4 :src:base:ftbdf.c
"{ObjDir}ftbitmap.c.o" \xC4 :src:base:ftbitmap.c
"{ObjDir}ftdebug.c.o" \xC4 :src:base:ftdebug.c
"{ObjDir}ftfstype.c.o" \xC4 :src:base:ftfstype.c
"{ObjDir}ftglyph.c.o" \xC4 :src:base:ftglyph.c
"{ObjDir}ftgxval.c.o" \xC4 :src:base:ftgxval.c
"{ObjDir}ftinit.c.o" \xC4 :src:base:ftinit.c
"{ObjDir}ftmm.c.o" \xC4 :src:base:ftmm.c
"{ObjDir}ftotval.c.o" \xC4 :src:base:ftotval.c
"{ObjDir}ftpfr.c.o" \xC4 :src:base:ftpfr.c
"{ObjDir}ftstroke.c.o" \xC4 :src:base:ftstroke.c
"{ObjDir}ftsynth.c.o" \xC4 :src:base:ftsynth.c
"{ObjDir}ftsystem.c.o" \xC4 :src:base:ftsystem.c
"{ObjDir}fttype1.c.o" \xC4 :src:base:fttype1.c
"{ObjDir}ftwinfnt.c.o" \xC4 :src:base:ftwinfnt.c
"{ObjDir}ftcache.c.o" \xC4 :src:cache:ftcache.c
"{ObjDir}bdf.c.o" \xC4 :src:bdf:bdf.c
"{ObjDir}cff.c.o" \xC4 :src:cff:cff.c
"{ObjDir}type1cid.c.o" \xC4 :src:cid:type1cid.c
"{ObjDir}gxvalid.c.o" \xC4 :src:gxvalid:gxvalid.c
"{ObjDir}ftgzip.c.o" \xC4 :src:gzip:ftgzip.c
"{ObjDir}ftbzip2.c.o" \xC4 :src:bzip2:ftbzip2.c
"{ObjDir}ftlzw.c.o" \xC4 :src:lzw:ftlzw.c
"{ObjDir}otvalid.c.o" \xC4 :src:otvalid:otvalid.c
"{ObjDir}pcf.c.o" \xC4 :src:pcf:pcf.c
"{ObjDir}pfr.c.o" \xC4 :src:pfr:pfr.c
"{ObjDir}psaux.c.o" \xC4 :src:psaux:psaux.c
"{ObjDir}pshinter.c.o" \xC4 :src:pshinter:pshinter.c
"{ObjDir}psmodule.c.o" \xC4 :src:psnames:psmodule.c
"{ObjDir}raster.c.o" \xC4 :src:raster:raster.c
"{ObjDir}sfnt.c.o" \xC4 :src:sfnt:sfnt.c
"{ObjDir}smooth.c.o" \xC4 :src:smooth:smooth.c
"{ObjDir}truetype.c.o" \xC4 :src:truetype:truetype.c
"{ObjDir}type1.c.o" \xC4 :src:type1:type1.c
"{ObjDir}type42.c.o" \xC4 :src:type42:type42.c
"{ObjDir}winfnt.c.o" \xC4 :src:winfonts:winfnt.c
### Optional Dependencies ###
### Build this target to generate "include file" dependencies. ###
Dependencies \xC4 $OutOfDate
MakeDepend \xB6
-append {MAKEFILE} \xB6
-ignore "{CIncludes}" \xB6
-objdir "{ObjDir}" \xB6
-objext .o \xB6
{Includes} \xB6
{SrcFiles}

View File

@ -0,0 +1,212 @@
# File: FreeType.ppc_carbon.make
# Target: FreeType.ppc_carbon
# Created: Friday, October 28, 2005 03:40:06 PM
MAKEFILE = FreeType.ppc_carbon.make
\xA5MondoBuild\xA5 = {MAKEFILE} # Make blank to avoid rebuilds when makefile is modified
ObjDir = :objs:
Includes = \xB6
-ansi strict \xB6
-includes unix \xB6
-i :include: \xB6
-i :src: \xB6
-i :include:freetype:config:
Sym-PPC = -sym off
PPCCOptions = \xB6
-d FT_MACINTOSH=1 \xB6
-d HAVE_FSSPEC=1 \xB6
-d HAVE_FSREF=1 \xB6
-d HAVE_QUICKDRAW_TOOLBOX=1 \xB6
-d HAVE_QUICKDRAW_CARBON=1 \xB6
-d HAVE_ATS=0 \xB6
-d FT2_BUILD_LIBRARY \xB6
-d FT_CONFIG_CONFIG_H="<ftconfig.h>" \xB6
-d FT_CONFIG_MODULES_H="<ftmodule.h>" \xB6
{Includes} {Sym-PPC} -d TARGET_API_MAC_CARBON=1
### Source Files ###
SrcFiles = \xB6
:src:autofit:autofit.c \xB6
:builds:mac:ftbase.c \xB6
:src:base:ftbbox.c \xB6
:src:base:ftbdf.c \xB6
:src:base:ftbitmap.c \xB6
:src:base:ftdebug.c \xB6
:src:base:ftfstype.c \xB6
:src:base:ftglyph.c \xB6
:src:base:ftgxval.c \xB6
:src:base:ftinit.c \xB6
:src:base:ftmm.c \xB6
:src:base:ftotval.c \xB6
:src:base:ftpfr.c \xB6
:src:base:ftstroke.c \xB6
:src:base:ftsynth.c \xB6
:src:base:ftsystem.c \xB6
:src:base:fttype1.c \xB6
:src:base:ftwinfnt.c \xB6
:src:cache:ftcache.c \xB6
:src:bdf:bdf.c \xB6
:src:cff:cff.c \xB6
:src:cid:type1cid.c \xB6
:src:gxvalid:gxvalid.c \xB6
:src:gzip:ftgzip.c \xB6
:src:bzip2:ftbzip2.c \xB6
:src:lzw:ftlzw.c \xB6
:src:otvalid:otvalid.c \xB6
:src:pcf:pcf.c \xB6
:src:pfr:pfr.c \xB6
:src:psaux:psaux.c \xB6
:src:pshinter:pshinter.c \xB6
:src:psnames:psmodule.c \xB6
:src:raster:raster.c \xB6
:src:sfnt:sfnt.c \xB6
:src:smooth:smooth.c \xB6
:src:truetype:truetype.c \xB6
:src:type1:type1.c \xB6
:src:type42:type42.c \xB6
:src:winfonts:winfnt.c
### Object Files ###
ObjFiles-PPC = \xB6
"{ObjDir}autofit.c.x" \xB6
"{ObjDir}ftbase.c.x" \xB6
"{ObjDir}ftbbox.c.x" \xB6
"{ObjDir}ftbdf.c.x" \xB6
"{ObjDir}ftbitmap.c.x" \xB6
"{ObjDir}ftdebug.c.x" \xB6
"{ObjDir}ftfstype.c.x" \xB6
"{ObjDir}ftglyph.c.x" \xB6
"{ObjDir}ftgxval.c.x" \xB6
"{ObjDir}ftinit.c.x" \xB6
"{ObjDir}ftmm.c.x" \xB6
"{ObjDir}ftotval.c.x" \xB6
"{ObjDir}ftpfr.c.x" \xB6
"{ObjDir}ftstroke.c.x" \xB6
"{ObjDir}ftsynth.c.x" \xB6
"{ObjDir}ftsystem.c.x" \xB6
"{ObjDir}fttype1.c.x" \xB6
"{ObjDir}ftwinfnt.c.x" \xB6
"{ObjDir}ftcache.c.x" \xB6
"{ObjDir}bdf.c.x" \xB6
"{ObjDir}cff.c.x" \xB6
"{ObjDir}type1cid.c.x" \xB6
"{ObjDir}gxvalid.c.x" \xB6
"{ObjDir}ftgzip.c.x" \xB6
"{ObjDir}ftbzip2.c.x" \xB6
"{ObjDir}ftlzw.c.x" \xB6
"{ObjDir}otvalid.c.x" \xB6
"{ObjDir}pcf.c.x" \xB6
"{ObjDir}pfr.c.x" \xB6
"{ObjDir}psaux.c.x" \xB6
"{ObjDir}pshinter.c.x" \xB6
"{ObjDir}psmodule.c.x" \xB6
"{ObjDir}raster.c.x" \xB6
"{ObjDir}sfnt.c.x" \xB6
"{ObjDir}smooth.c.x" \xB6
"{ObjDir}truetype.c.x" \xB6
"{ObjDir}type1.c.x" \xB6
"{ObjDir}type42.c.x" \xB6
"{ObjDir}winfnt.c.x"
### Libraries ###
LibFiles-PPC =
### Default Rules ###
.c.x \xC4 .c {\xA5MondoBuild\xA5}
{PPCC} {depDir}{default}.c -o {targDir}{default}.c.x {PPCCOptions}
### Build Rules ###
:builds:mac:ftbase.c \xC4\xC4 :src:base:ftbase.c
Duplicate :src:base:ftbase.c :builds:mac:ftbase.c
"{ObjDir}ftbase.c.x" \xC4\xC4 :builds:mac:ftbase.c
{PPCC} :builds:mac:ftbase.c -o {ObjDir}ftbase.c.x \xB6
-i :builds:mac: \xB6
-i :src:base: \xB6
{PPCCOptions}
FreeType.ppc_carbon \xC4\xC4 FreeType.ppc_carbon.o
FreeType.ppc_carbon.o \xC4\xC4 {ObjFiles-PPC} {LibFiles-PPC} {\xA5MondoBuild\xA5}
PPCLink \xB6
-o {Targ} \xB6
{ObjFiles-PPC} \xB6
{LibFiles-PPC} \xB6
{Sym-PPC} \xB6
-mf -d \xB6
-t 'XCOF' \xB6
-c 'MPS ' \xB6
-xm l
### Required Dependencies ###
"{ObjDir}autofit.c.x" \xC4 :src:autofit:autofit.c
# "{ObjDir}ftbase.c.x" \xC4 :builds:mac:ftbase.c
"{ObjDir}ftbbox.c.x" \xC4 :src:base:ftbbox.c
"{ObjDir}ftbdf.c.x" \xC4 :src:base:ftbdf.c
"{ObjDir}ftbitmap.c.x" \xC4 :src:base:ftbitmap.c
"{ObjDir}ftdebug.c.x" \xC4 :src:base:ftdebug.c
"{ObjDir}ftfstype.c.x" \xC4 :src:base:ftfstype.c
"{ObjDir}ftglyph.c.x" \xC4 :src:base:ftglyph.c
"{ObjDir}ftgxval.c.x" \xC4 :src:base:ftgxval.c
"{ObjDir}ftinit.c.x" \xC4 :src:base:ftinit.c
"{ObjDir}ftmm.c.x" \xC4 :src:base:ftmm.c
"{ObjDir}ftotval.c.x" \xC4 :src:base:ftotval.c
"{ObjDir}ftpfr.c.x" \xC4 :src:base:ftpfr.c
"{ObjDir}ftstroke.c.x" \xC4 :src:base:ftstroke.c
"{ObjDir}ftsynth.c.x" \xC4 :src:base:ftsynth.c
"{ObjDir}ftsystem.c.x" \xC4 :src:base:ftsystem.c
"{ObjDir}fttype1.c.x" \xC4 :src:base:fttype1.c
"{ObjDir}ftwinfnt.c.x" \xC4 :src:base:ftwinfnt.c
"{ObjDir}ftcache.c.x" \xC4 :src:cache:ftcache.c
"{ObjDir}bdf.c.x" \xC4 :src:bdf:bdf.c
"{ObjDir}cff.c.x" \xC4 :src:cff:cff.c
"{ObjDir}type1cid.c.x" \xC4 :src:cid:type1cid.c
"{ObjDir}gxvalid.c.x" \xC4 :src:gxvalid:gxvalid.c
"{ObjDir}ftgzip.c.x" \xC4 :src:gzip:ftgzip.c
"{ObjDir}ftbzip2.c.x" \xC4 :src:bzip2:ftbzip2.c
"{ObjDir}ftlzw.c.x" \xC4 :src:lzw:ftlzw.c
"{ObjDir}otvalid.c.x" \xC4 :src:otvalid:otvalid.c
"{ObjDir}pcf.c.x" \xC4 :src:pcf:pcf.c
"{ObjDir}pfr.c.x" \xC4 :src:pfr:pfr.c
"{ObjDir}psaux.c.x" \xC4 :src:psaux:psaux.c
"{ObjDir}pshinter.c.x" \xC4 :src:pshinter:pshinter.c
"{ObjDir}psmodule.c.x" \xC4 :src:psnames:psmodule.c
"{ObjDir}raster.c.x" \xC4 :src:raster:raster.c
"{ObjDir}sfnt.c.x" \xC4 :src:sfnt:sfnt.c
"{ObjDir}smooth.c.x" \xC4 :src:smooth:smooth.c
"{ObjDir}truetype.c.x" \xC4 :src:truetype:truetype.c
"{ObjDir}type1.c.x" \xC4 :src:type1:type1.c
"{ObjDir}type42.c.x" \xC4 :src:type42:type42.c
"{ObjDir}winfnt.c.x" \xC4 :src:winfonts:winfnt.c
### Optional Dependencies ###
### Build this target to generate "include file" dependencies. ###
Dependencies \xC4 $OutOfDate
MakeDepend \xB6
-append {MAKEFILE} \xB6
-ignore "{CIncludes}" \xB6
-objdir "{ObjDir}" \xB6
-objext .x \xB6
{Includes} \xB6
{SrcFiles}

View File

@ -0,0 +1,213 @@
# File: FreeType.ppc_classic.make
# Target: FreeType.ppc_classic
# Created: Thursday, October 27, 2005 07:42:43 PM
MAKEFILE = FreeType.ppc_classic.make
\xA5MondoBuild\xA5 = {MAKEFILE} # Make blank to avoid rebuilds when makefile is modified
ObjDir = :objs:
Includes = \xB6
-ansi strict \xB6
-includes unix \xB6
-i :include: \xB6
-i :src: \xB6
-i :include:freetype:config:
Sym-PPC = -sym off
PPCCOptions = \xB6
-d FT_MACINTOSH=1 \xB6
-d HAVE_FSSPEC=1 \xB6
-d HAVE_FSREF=0 \xB6
-d HAVE_QUICKDRAW_TOOLBOX=1 \xB6
-d HAVE_QUICKDRAW_CARBON=0 \xB6
-d HAVE_ATS=0 \xB6
-d FT2_BUILD_LIBRARY \xB6
-d FT_CONFIG_CONFIG_H="<ftconfig.h>" \xB6
-d FT_CONFIG_MODULES_H="<ftmodule.h>" \xB6
{Includes} {Sym-PPC}
### Source Files ###
SrcFiles = \xB6
:src:autofit:autofit.c \xB6
:builds:mac:ftbase.c \xB6
:src:base:ftbbox.c \xB6
:src:base:ftbdf.c \xB6
:src:base:ftbitmap.c \xB6
:src:base:ftdebug.c \xB6
:src:base:ftfstype.c \xB6
:src:base:ftglyph.c \xB6
:src:base:ftgxval.c \xB6
:src:base:ftinit.c \xB6
:src:base:ftmm.c \xB6
:src:base:ftotval.c \xB6
:src:base:ftpfr.c \xB6
:src:base:ftstroke.c \xB6
:src:base:ftsynth.c \xB6
:src:base:ftsystem.c \xB6
:src:base:fttype1.c \xB6
:src:base:ftwinfnt.c \xB6
:src:cache:ftcache.c \xB6
:src:bdf:bdf.c \xB6
:src:cff:cff.c \xB6
:src:cid:type1cid.c \xB6
:src:gxvalid:gxvalid.c \xB6
:src:gzip:ftgzip.c \xB6
:src:bzip2:ftbzip2.c \xB6
:src:lzw:ftlzw.c \xB6
:src:otvalid:otvalid.c \xB6
:src:pcf:pcf.c \xB6
:src:pfr:pfr.c \xB6
:src:psaux:psaux.c \xB6
:src:pshinter:pshinter.c \xB6
:src:psnames:psmodule.c \xB6
:src:raster:raster.c \xB6
:src:sfnt:sfnt.c \xB6
:src:smooth:smooth.c \xB6
:src:truetype:truetype.c \xB6
:src:type1:type1.c \xB6
:src:type42:type42.c \xB6
:src:winfonts:winfnt.c
### Object Files ###
ObjFiles-PPC = \xB6
"{ObjDir}autofit.c.x" \xB6
"{ObjDir}ftbase.c.x" \xB6
"{ObjDir}ftbbox.c.x" \xB6
"{ObjDir}ftbdf.c.x" \xB6
"{ObjDir}ftbitmap.c.x" \xB6
"{ObjDir}ftdebug.c.x" \xB6
"{ObjDir}ftfstype.c.x" \xB6
"{ObjDir}ftglyph.c.x" \xB6
"{ObjDir}ftgxval.c.x" \xB6
"{ObjDir}ftinit.c.x" \xB6
"{ObjDir}ftmm.c.x" \xB6
"{ObjDir}ftotval.c.x" \xB6
"{ObjDir}ftpfr.c.x" \xB6
"{ObjDir}ftstroke.c.x" \xB6
"{ObjDir}ftsynth.c.x" \xB6
"{ObjDir}ftsystem.c.x" \xB6
"{ObjDir}fttype1.c.x" \xB6
"{ObjDir}ftwinfnt.c.x" \xB6
"{ObjDir}ftcache.c.x" \xB6
"{ObjDir}bdf.c.x" \xB6
"{ObjDir}cff.c.x" \xB6
"{ObjDir}type1cid.c.x" \xB6
"{ObjDir}gxvalid.c.x" \xB6
"{ObjDir}ftgzip.c.x" \xB6
"{ObjDir}ftbzip2.c.x" \xB6
"{ObjDir}ftlzw.c.x" \xB6
"{ObjDir}otvalid.c.x" \xB6
"{ObjDir}pcf.c.x" \xB6
"{ObjDir}pfr.c.x" \xB6
"{ObjDir}psaux.c.x" \xB6
"{ObjDir}pshinter.c.x" \xB6
"{ObjDir}psmodule.c.x" \xB6
"{ObjDir}raster.c.x" \xB6
"{ObjDir}sfnt.c.x" \xB6
"{ObjDir}smooth.c.x" \xB6
"{ObjDir}truetype.c.x" \xB6
"{ObjDir}type1.c.x" \xB6
"{ObjDir}type42.c.x" \xB6
"{ObjDir}winfnt.c.x"
### Libraries ###
LibFiles-PPC =
### Default Rules ###
.c.x \xC4 .c {\xA5MondoBuild\xA5}
{PPCC} {depDir}{default}.c -o {targDir}{default}.c.x {PPCCOptions}
### Build Rules ###
:builds:mac:ftbase.c \xC4\xC4 :src:base:ftbase.c
Duplicate :src:base:ftbase.c :builds:mac:ftbase.c
"{ObjDir}ftbase.c.x" \xC4\xC4 :builds:mac:ftbase.c
{PPCC} :builds:mac:ftbase.c -o "{ObjDir}ftbase.c.x" \xB6
-i :builds:mac: \xB6
-i :src:base: \xB6
{PPCCOptions}
FreeType.ppc_classic \xC4\xC4 FreeType.ppc_classic.o
FreeType.ppc_classic.o \xC4\xC4 {ObjFiles-PPC} {LibFiles-PPC} {\xA5MondoBuild\xA5}
PPCLink \xB6
-o {Targ} \xB6
{ObjFiles-PPC} \xB6
{LibFiles-PPC} \xB6
{Sym-PPC} \xB6
-mf -d \xB6
-t 'XCOF' \xB6
-c 'MPS ' \xB6
-xm l
### Required Dependencies ###
"{ObjDir}autofit.c.x" \xC4 :src:autofit:autofit.c
# "{ObjDir}ftbase.c.x" \xC4 :builds:mac:ftbase.c
"{ObjDir}ftbbox.c.x" \xC4 :src:base:ftbbox.c
"{ObjDir}ftbdf.c.x" \xC4 :src:base:ftbdf.c
"{ObjDir}ftbitmap.c.x" \xC4 :src:base:ftbitmap.c
"{ObjDir}ftdebug.c.x" \xC4 :src:base:ftdebug.c
"{ObjDir}ftfstype.c.x" \xC4 :src:base:ftfstype.c
"{ObjDir}ftglyph.c.x" \xC4 :src:base:ftglyph.c
"{ObjDir}ftgxval.c.x" \xC4 :src:base:ftgxval.c
"{ObjDir}ftinit.c.x" \xC4 :src:base:ftinit.c
"{ObjDir}ftmm.c.x" \xC4 :src:base:ftmm.c
"{ObjDir}ftotval.c.x" \xC4 :src:base:ftotval.c
"{ObjDir}ftpfr.c.x" \xC4 :src:base:ftpfr.c
"{ObjDir}ftstroke.c.x" \xC4 :src:base:ftstroke.c
"{ObjDir}ftsynth.c.x" \xC4 :src:base:ftsynth.c
"{ObjDir}ftsystem.c.x" \xC4 :src:base:ftsystem.c
"{ObjDir}fttype1.c.x" \xC4 :src:base:fttype1.c
"{ObjDir}ftwinfnt.c.x" \xC4 :src:base:ftwinfnt.c
"{ObjDir}ftcache.c.x" \xC4 :src:cache:ftcache.c
"{ObjDir}bdf.c.x" \xC4 :src:bdf:bdf.c
"{ObjDir}cff.c.x" \xC4 :src:cff:cff.c
"{ObjDir}type1cid.c.x" \xC4 :src:cid:type1cid.c
"{ObjDir}gxvalid.c.x" \xC4 :src:gxvalid:gxvalid.c
"{ObjDir}ftgzip.c.x" \xC4 :src:gzip:ftgzip.c
"{ObjDir}ftbzip2.c.x" \xC4 :src:bzip2:ftbzip2.c
"{ObjDir}ftlzw.c.x" \xC4 :src:lzw:ftlzw.c
"{ObjDir}otvalid.c.x" \xC4 :src:otvalid:otvalid.c
"{ObjDir}pcf.c.x" \xC4 :src:pcf:pcf.c
"{ObjDir}pfr.c.x" \xC4 :src:pfr:pfr.c
"{ObjDir}psaux.c.x" \xC4 :src:psaux:psaux.c
"{ObjDir}pshinter.c.x" \xC4 :src:pshinter:pshinter.c
"{ObjDir}psmodule.c.x" \xC4 :src:psnames:psmodule.c
"{ObjDir}raster.c.x" \xC4 :src:raster:raster.c
"{ObjDir}sfnt.c.x" \xC4 :src:sfnt:sfnt.c
"{ObjDir}smooth.c.x" \xC4 :src:smooth:smooth.c
"{ObjDir}truetype.c.x" \xC4 :src:truetype:truetype.c
"{ObjDir}type1.c.x" \xC4 :src:type1:type1.c
"{ObjDir}type42.c.x" \xC4 :src:type42:type42.c
"{ObjDir}winfnt.c.x" \xC4 :src:winfonts:winfnt.c
### Optional Dependencies ###
### Build this target to generate "include file" dependencies. ###
Dependencies \xC4 $OutOfDate
MakeDepend \xB6
-append {MAKEFILE} \xB6
-ignore "{CIncludes}" \xB6
-objdir "{ObjDir}" \xB6
-objext .x \xB6
{Includes} \xB6
{SrcFiles}

View File

@ -0,0 +1,401 @@
This folder contains
* Makefile skeletons for Apple MPW (Macintosh's Programmer's Workshop)
* Python script to generate MPW makefile from skeleton
* Metrowerks CodeWarrior 9.0 project file in XML format
------------------------------------------------------------
1. What is this
---------------
Files in this directory are designed to build FreeType
running on classic MacOS. To build FreeType running on
Mac OS X, build as the system is UNIX.
However, Mac OS X is most useful to manipulate files in
vanilla FreeType to fit classic MacOS.
The information about MacOS specific API is written in
appendix of this document.
2. Requirement
--------------
You can use MPW: a free-charged developer environment
by Apple, or CodeWarrior: a commercial developer
environment by Metrowerks. GCC for MPW and Symantec
"Think C" are not tested at present.
2-1. Apple MPW
--------------
Following C compilers are tested:
m68k target: Apple SC 8.9.0d3e1
ppc target: Apple MrC 5.0.0d3c1
The final MPW-GM (official release on 1999/Dec) is too
old and cannot compile FreeType, because bundled C
compilers cannot search header files in sub directories.
Updating by the final MPW-PR (pre-release on 2001/Feb)
is required.
Required files are downloadable from:
http://macintoshgarden.org/apps/macintosh-programmers-workshop
Also you can find documents how to update by MPW-PR.
Python is required to restore MPW makefiles from the
skeletons. Python bundled to Mac OS X is enough. For
classic MacOS, MacPython is available:
https://homepages.cwi.nl/~jack/macpython/
MPW requires all files are typed by resource fork.
ResEdit bundled to MPW is enough. In Mac OS X,
/Developer/Tools/SetFile of DevTool is useful to
manipulate from commandline.
2-2. Metrowerks CodeWarrior
---------------------------
XML project file is generated and tested by
CodeWarrior 9.0. Older versions are not tested
at all. At present, static library for ppc target
is available in the project file.
3. How to build
---------------
3-1. Apple MPW
--------------
Detailed building procedure by Apple MPW is
described in following.
3-1-1. Generate MPW makefiles from the skeletons
------------------------------------------------
Here are 4 skeletons for following targets are
included.
- FreeType.m68k_far.make.txt
Ancient 32bit binary executable format for
m68k MacOS: System 6, with 32bit addressing
mode (far-pointer-model) So-called "Toolbox"
API is used.
- FreeType.m68k_cfm.make.txt
CFM binary executable format for m68k MacOS:
System 7. So-called "Toolbox" API is used.
- FreeType.ppc_classic.make.txt
CFM binary executable format for ppc MacOS:
System 7, MacOS 8, MacOS 9. So-called "Toolbox"
API is used.
- FreeType.ppc_carbon.make.txt
CFM binary executable format for ppc MacOS:
MacOS 9. Carbon API is used.
At present, static library is only supported,
although targets except of m68k_far are capable
to use shared library.
MPW makefile syntax uses 8bit characters. To keep
from violating them during version control, here
we store skeletons in pure ASCII format. You must
generate MPW makefile by Python script ascii2mpw.py.
In Mac OS X terminal, you can convert as:
python builds/mac/ascii2mpw.py \
< builds/mac/FreeType.m68k_far.make.txt \
> FreeType.m68k_far.make
The skeletons are designed to use in the top
directory where there are builds, include, src etc.
You must name the generated MPW makefile by removing
".txt" from source skeleton name.
3-1-2. Add resource forks to related files
------------------------------------------
MPW's Make and C compilers cannot recognize files
without resource fork. You have to add resource
fork to the files that MPW uses. In Mac OS X
terminal of the system, you can do as:
find . -name '*.[ch]' -exec \
/Developer/Tools/SetFile -a l -c "MPS " -t TEXT \{\} \;
find . -name '*.make' -exec \
/Developer/Tools/SetFile -a l -c "MPS " -t TEXT \{\} \;
3-1-3. Open MPW shell and build
-------------------------------
Open MPW shell and go to the top directory that
FreeType sources are extracted (MPW makefile must
be located in there), from "Set Directory" in
"Directory" menu.
Choose "Build" from "Build" menu, and type the
name of project by removing ".make" from MPW
makefile, as: FreeType.m68k_far
If building is successfully finished, you can find
built library in objs/ directory.
3-2. Metrowerks CodeWarrior
---------------------------
Detailed building procedure by Metrowerks
CodeWarrior (CW) 9.0 is described in following.
3-2-1. Import XML project file
------------------------------
CW XML project file is not ready for double-
click. Start CodeWarrior IDE, and choose
"Import project" in "File" menu. Choose XML
project file: builds/mac/ftlib.prj.xml.
In next, you will be asked where to save CW
native project file: you must choose
"builds/mac/ftlib.prj". The project file is
designed with relative path from there. After
CW native project file is generated, it is
automatically loaded, small project window
titled "ftlib.prj" is displayed.
3-2-2. Building
---------------
Choose "Make" from "Project" menu. If building
is successfully finished, you can find built
library at objs/FreeTypeLib.
4. TODO
-------
4-1. All modules should be included
-----------------------------------
At present, MPW makefiles and CW project file are
just updated versions of these by Leonard. Some
modules are added after the last maintenance, they
are not included.
4-2. Working test with ftdemos
------------------------------
At present, MPW makefiles and CW project file can
build FreeType for classic MacOS. But their working
behaviours are not tested at all. Building ftdemos
for classic MacOS and working test is required.
4-3. Porting Jam onto MPW
-------------------------
FreeType uses Jam (and FT-Jam) for unified cross-
platform building tool. At present, Jam is not ported
to MPW. To update classic MacOS support easily,
building by Jam is expected on MPW.
APPENDIX I
----------
A-1. Framework dependencies
---------------------------
src/base/ftmac.c adds two Mac-specific features to
FreeType. These features are based on MacOS libraries.
* accessing resource-fork font
The fonts for classic MacOS store their graphical data
in resource forks which cannot be accessed via ANSI C
functions. FreeType2 provides functions to handle such
resource fork fonts, they are based on File Manager
framework of MacOS. In addition, HFS and HFS+ file
system driver of Linux is supported. Following
functions are for this purpose.
FT_New_Face_From_Resource()
FT_New_Face_From_FSSpec()
FT_New_Face_From_FSRef()
* resolving font name to font file
The font menu of MacOS application prefers font name
written in FOND resource than sfnt resource. FreeType2
provides functions to find font file by name in MacOS
application, they are based on QuickDraw Font Manager
and Apple Type Service framework of MacOS.
FT_GetFile_From_Mac_Name()
FT_GetFile_From_Mac_ATS_Name()
Working functions for each MacOS are summarized as
following.
upto MacOS 6:
not tested (you have to obtain MPW 2.x)
MacOS 7.x, 8.x, 9.x (without CarbonLib):
FT_GetFile_From_Mac_Name()
FT_New_Face_From_Resource()
FT_New_Face_From_FSSpec()
MacOS 9.x (with CarbonLib):
FT_GetFile_From_Mac_Name()
FT_New_Face_From_Resource()
FT_New_Face_From_FSSpec()
FT_New_Face_From_FSRef()
Mac OS X upto 10.4.x:
FT_GetFile_From_Mac_Name() deprecated
FT_New_Face_From_FSSpec() deprecated
FT_GetFile_From_Mac_ATS_Name() deprecated?
FT_New_Face_From_FSRef()
A-2. Deprecated Functions
-------------------------
A-2-1. FileManager
------------------
For convenience to write MacOS application, ftmac.c
provides functions to specify a file by FSSpec and FSRef,
because the file identification pathname had ever been
unrecommended method in MacOS programming.
Toward to MacOS X 10.4 & 5, Carbon functions using FSSpec
datatype is noticed as deprecated, and recommended to
migrate to FSRef datatype. The big differences of FSRef
against FSSpec are explained in Apple TechNotes 2078.
https://developer.apple.com/library/archive/technotes/tn2078/
- filename length: the max length of file
name of FSRef is 255 chars (it is limit of HFS+),
that of FSSpec is 31 chars (it is limit of HFS).
- filename encoding: FSSpec is localized by
legacy encoding for each language system,
FSRef is Unicode enabled.
A-2-2. FontManager
------------------
Following functions receive QuickDraw fontname:
FT_GetFile_From_Mac_Name()
QuickDraw is deprecated and replaced by Quartz
since Mac OS X 10.4. They are still kept for
backward compatibility. By undefinition of
HAVE_QUICKDRAW in building, you can change these
functions to return FT_Err_Unimplemented always.
Replacement functions are added for migration.
FT_GetFile_From_Mac_ATS_Name()
They are usable on Mac OS X only. On older systems,
these functions return FT_Err_Unimplemented always.
The detailed incompatibilities and possibility
of FontManager emulation without QuickDraw is
explained in
http://gyvern.ipc.hiroshima-u.ac.jp/~mpsuzuki/ats_benchmark.html
A-3. Framework Availabilities
-----------------------------
The framework of MacOS are often revised, especially
when new format of binary executable is introduced.
Following table is the minimum version of frameworks
to use functions used in FreeType2. The table is
extracted from MPW header files for assembly language.
*** NOTE ***
The conditional definition of available data type
in MPW compiler is insufficient. You can compile
program using FSRef data type for older systems
(MacOS 7, 8) that don't know FSRef data type.
+-------------------+-----------------------------+
CPU | mc680x0 | PowerPC |
+---------+---------+---------+---------+---------+
Binary Executable Format | Classic | 68K-CFM | CFM | CFM | Mach-O |
+---------+---------+---------+---------+---------+
Framework API | Toolbox | Toolbox | Toolbox | Carbon | Carbon |
+---------+---------+---------+---------+---------+
+---------+---------+---------+---------+---------+
| ?(*) |Interface|Interface|CarbonLib|Mac OS X |
| |Lib |Lib | | |
* Files.h +---------+---------+---------+---------+---------+
PBGetFCBInfoSync() | o | 7.1- | 7.1- | 1.0- | o |
FSMakeFSSpec() | o | 7.1- | 7.1- | 1.0- | o |
FSGetForkCBInfo() | o | (**) | 9.0- | 1.0- | o |
FSpMakeFSRef() | o | (**) | 9.0- | 1.0- | o |
FSGetCatalogInfo() | o | (**) | 9.0- | 1.0- | -10.3 |
FSPathMakeRef() | x | x | x | 1.1- | -10.3 |
+---------+---------+---------+---------+---------+
+---------+---------+---------+---------+---------+
| ?(*) |Font |Font |CarbonLib|Mac OS X |
| |Manager |Manager | | |
* Fonts.h +---------+---------+---------+---------+---------+
FMCreateFontFamilyIterator() | x | x | 9.0- | 1.0- | -10.3 |
FMDisposeFontFamilyIterator() | x | x | 9.0- | 1.0- | -10.3 |
FMGetNextFontFamily() | x | x | 9.0- | 1.0- | -10.3 |
FMGetFontFamilyName() | x | x | 9.0- | 1.0- | -10.3 |
FMCreateFontFamilyInstanceIterator() | x | x | 9.0- | 1.0- | -10.3 |
FMDisposeFontFamilyInstanceIterator() | x | x | 9.0- | 1.0- | -10.3 |
FMGetNextFontFamilyInstance() | x | x | 9.0- | 1.0- | -10.3 |
+---------+---------+---------+---------+---------+
+---------+---------+---------+---------+---------+
| - | - | - |CarbonLib|Mac OS X |
* ATSFont.h (***) +---------+---------+---------+---------+---------+
ATSFontFindFromName() | x | x | x | x | o |
ATSFontGetFileSpecification() | x | x | x | x | o |
+---------+---------+---------+---------+---------+
(*)
In the "Classic": the original binary executable
format, these framework functions are directly
transformed to MacOS system call. Therefore, the
exact availability should be checked by running
system.
(**)
InterfaceLib is bundled to MacOS and its version
is usually equal to MacOS. There's no separate
update for InterfaceLib. It is supposed that
there's no InterfaceLib 9.x for m68k platforms.
In fact, these functions are FSRef dependent.
(***)
ATSUI framework is available on ATSUnicode 8.5 on
ppc Toolbox CFM, CarbonLib 1.0 too. But its base:
ATS font manager is not published in these versions.
------------------------------------------------------------
Last update: 2013-Nov-03.
Currently maintained by
suzuki toshiya, <mpsuzuki@hiroshima-u.ac.jp>
Originally prepared by
Leonard Rosenthol, <leonardr@lazerware.com>
Just van Rossum, <just@letterror.com>

View File

@ -0,0 +1,24 @@
#!/usr/bin/env python
import sys
import string
if len( sys.argv ) == 1 :
for asc_line in sys.stdin.readlines():
mpw_line = string.replace(asc_line, "\\xA5", "\245")
mpw_line = string.replace(mpw_line, "\\xB6", "\266")
mpw_line = string.replace(mpw_line, "\\xC4", "\304")
mpw_line = string.replace(mpw_line, "\\xC5", "\305")
mpw_line = string.replace(mpw_line, "\\xFF", "\377")
mpw_line = string.replace(mpw_line, "\n", "\r")
mpw_line = string.replace(mpw_line, "\\n", "\n")
sys.stdout.write(mpw_line)
elif sys.argv[1] == "-r" :
for mpw_line in sys.stdin.readlines():
asc_line = string.replace(mpw_line, "\n", "\\n")
asc_line = string.replace(asc_line, "\r", "\n")
asc_line = string.replace(asc_line, "\245", "\\xA5")
asc_line = string.replace(asc_line, "\266", "\\xB6")
asc_line = string.replace(asc_line, "\304", "\\xC4")
asc_line = string.replace(asc_line, "\305", "\\xC5")
asc_line = string.replace(asc_line, "\377", "\\xFF")
sys.stdout.write(asc_line)

View File

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"https://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>freetype</string>
<key>CFBundleGetInfoString</key>
<string>FreeType ${PROJECT_VERSION}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>FreeType</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>${PROJECT_VERSION}</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>${PROJECT_VERSION}</string>
</dict>
</plist>

Some files were not shown because too many files have changed in this diff Show More