- Directories
- highlight: Highlight source files, makefiles, and its dependencies.
- Smdn.LibHighlightSharp: .NET wrapper assembly/package project.
- Smdn.LibHighlightSharp: The source codes for the wrapper classes.
- Smdn.LibHighlightSharp.Xhtml: The source codes for the wrapper classes, specific to the XHTML output.
- Smdn.LibHighlightSharp.Bindings: NuGet package project for the Highlight native libraries (
libhighlight
), and its managed bindings.- runtimes: The native libraries targetted to each platforms, generated from highlight directory. See Smdn.LibHighlightSharp.Bindings/NativeBinaries.targets and highlight/native-binaries.mk for detail.
- Smdn.LibHighlightSharp.Bindings: C# binding codes generated by SWIG. See Smdn.LibHighlightSharp.Bindings/Bindings.targets and highlight/bindings.mk for detail.
- Smdn.LibHighlightSharp.LangDefs: NuGet package project for the Highlight syntax files (
*.lang
) andfiletypes.conf
. - Smdn.LibHighlightSharp.Themes: NuGet package project for the Highlight theme files (
*.theme
).
- Files
- Highlight.Build.props: A file for build configuration properties common to the each projects and makefiles, such as the build output directory or the source tree version.
- highlight/configure.ps1: A script file for generating a file (
.config.mk
) which defines the variables common to the each makefiles under the highlight directory.
highlight/native-binaries.mk is configured to output native binaries for different targets depending on the platform on which they are run.
The following table shows the correspondence between the build platform (GitHub Actions runner images) and the target RIDs of native binaries.
Runner image | Target platform (RID) |
---|---|
Ubuntu 24.04 | ubuntu.24.04-x64 win-x64 |
Ubuntu 22.04 | ubuntu.22.04-x64 |
Ubuntu 20.04 | ubuntu.20.04-x64 |
macOS 11 | osx-x64 |
Native binaries targeted to Windows are built using MinGW g++ on Ubuntu.
If you want to build on platforms other than the above or build for other targets, especially to build on Windows, you will need to add modifications to the Makefiles.
The toolset required to build or run native binaries can be installed by /eng/dependencies/install-deps.mk. (Excluding tools that are installed by default in GitHub Actions runner images like .NET SDK, g++, etc.)
APT package dependencies for build on Ubuntu 22.04.
- Smdn.LibHighlightSharp.* (.NET Assemblies)
dotnet-sdk-6.0
- Highlight shared library
autoconf
automake
autotools-dev
*git
libboost-dev
*liblua5.3
*liblua5.3-dev
*libtool
pkg-config
powershell
swig
- Cross compiling Windows DLL
curl
g++-mingw-w64-x86-64
*g++-multilib
*zip
* Not installed in GitHub Actions' ubuntu-22.04 runner image by default