docs: List MSYS2 packages required to build PDF documentation on Windows now that TeX Live is available.

This commit is contained in:
Vas Crabb 2022-01-12 05:33:59 +11:00
parent 11320fc88d
commit 3184beda90
3 changed files with 20 additions and 11 deletions

View file

@ -115,6 +115,11 @@ with MSYS2 and the **pacman** package manager.
``mingw-w64-i686-python-sphinx``, ``mingw-w64-i686-python-sphinx_rtd_theme`` ``mingw-w64-i686-python-sphinx``, ``mingw-w64-i686-python-sphinx_rtd_theme``
and ``mingw-w64-x86_64-python-sphinxcontrib-svg2pdfconverter`` a 32-bit MinGW and ``mingw-w64-x86_64-python-sphinxcontrib-svg2pdfconverter`` a 32-bit MinGW
environment). environment).
* To build the PDF documentation, youll additionally need
``mingw-w64-x86_64-texlive-latex-extra`` and
``mingw-w64-x86_64-texlive-fonts-recommended`` (or
``mingw-w64-i686-texlive-latex-extra`` and
``mingw-w64-i686-texlive-fonts-recommended`` for a 32-but MinGW environment).
* To generate API documentation from source, youll need ``doxygen``. * To generate API documentation from source, youll need ``doxygen``.
* If you plan to rebuild bgfx shaders and you want to rebuild the GLSL parser, * If you plan to rebuild bgfx shaders and you want to rebuild the GLSL parser,
youll need ``bison``. youll need ``bison``.
@ -405,8 +410,12 @@ can install these packages with
pacman -S mingw-w64-x86_64-librsvg mingw-w64-x86_64-python-sphinx mingw-w64-x86_64-python-sphinxcontrib-svg2pdfconverter pacman -S mingw-w64-x86_64-librsvg mingw-w64-x86_64-python-sphinx mingw-w64-x86_64-python-sphinxcontrib-svg2pdfconverter
Note that no LaTeX packages currently exist for MSYS2 so you will not be able to If you intend to make a PDF via LaTeX, youll need to install a LaTeX
generate a PDF file without using external tools. distribution such as TeX Live:
.. code-block:: bash
pacman -S mingw-w64-x86_64-texlive-fonts-recommended mingw-w64-x86_64-texlive-latex-extra
.. _compiling-docs-debian: .. _compiling-docs-debian:

View file

@ -208,7 +208,7 @@ u32 coco_os9_image::pick_integer_be(const u8 *data, int length)
{ {
u32 result = 0; u32 result = 0;
for (int i = 0; i < length; i++) for (int i = 0; i < length; i++)
result |= ((u32)data[length - i - 1]) << i * 8; result |= u32(data[length - i - 1]) << i * 8;
return result; return result;
} }
@ -406,7 +406,7 @@ std::vector<u8> coco_os9_image::impl::read_file_data(const file_header &header)
for (u32 lsn = start_lsn; lsn < start_lsn + count; lsn++) for (u32 lsn = start_lsn; lsn < start_lsn + count; lsn++)
{ {
auto block = m_blockdev.get(lsn); auto block = m_blockdev.get(lsn);
size_t block_size = std::min(std::min((u32)m_volume_header.sector_size(), block.size()), header.file_size() - (u32)data.size()); size_t block_size = std::min(std::min(u32(m_volume_header.sector_size()), block.size()), header.file_size() - u32(data.size()));
for (auto i = 0; i < block_size; i++) for (auto i = 0; i < block_size; i++)
data.push_back(block.rodata()[i]); data.push_back(block.rodata()[i]);
} }
@ -525,7 +525,7 @@ std::vector<dir_entry> coco_os9_image::impl::directory::contents()
filesystem_t::file_t coco_os9_image::impl::directory::file_get(u64 key) filesystem_t::file_t coco_os9_image::impl::directory::file_get(u64 key)
{ {
file_header header(m_fs.m_blockdev.get((u32) key)); file_header header(m_fs.m_blockdev.get(u32(key)));
return file_t(new file(m_fs, std::move(header))); return file_t(new file(m_fs, std::move(header)));
} }
@ -536,7 +536,7 @@ filesystem_t::file_t coco_os9_image::impl::directory::file_get(u64 key)
filesystem_t::dir_t coco_os9_image::impl::directory::dir_get(u64 key) filesystem_t::dir_t coco_os9_image::impl::directory::dir_get(u64 key)
{ {
return dir_t(m_fs.open_directory((u32) key)); return dir_t(m_fs.open_directory(u32(key)));
} }
} } // namespace fs

View file

@ -116,7 +116,7 @@ u8 coco_rsdos_image::impl::maximum_granules() const
{ {
u32 sector_count = m_blockdev.block_count(); u32 sector_count = m_blockdev.block_count();
u32 granule_count = (sector_count / 9) - 2; u32 granule_count = (sector_count / 9) - 2;
return granule_count <= 0xFF ? (u8)granule_count : 0xFF; return granule_count <= 0xFF ? u8(granule_count) : 0xFF;
} }
std::string coco_rsdos_image::impl::get_filename_from_dirent(const rsdos_dirent &dirent) std::string coco_rsdos_image::impl::get_filename_from_dirent(const rsdos_dirent &dirent)
@ -180,7 +180,7 @@ coco_rsdos_image::impl::granule_iterator::granule_iterator(impl &fs, const rsdos
: m_granule_map(fs.read_sector(17, 2)) : m_granule_map(fs.read_sector(17, 2))
, m_current_granule(dirent.m_first_granule) , m_current_granule(dirent.m_first_granule)
, m_maximum_granules(fs.maximum_granules()) , m_maximum_granules(fs.maximum_granules())
, m_last_sector_bytes(((u16) dirent.m_last_sector_bytes_msb << 8) | dirent.m_last_sector_bytes_lsb) , m_last_sector_bytes((u16(dirent.m_last_sector_bytes_msb) << 8) | dirent.m_last_sector_bytes_lsb)
{ {
} }
@ -206,7 +206,7 @@ bool coco_rsdos_image::impl::granule_iterator::next(u8 &granule, u16 &byte_count
// this is the last granule in the file // this is the last granule in the file
success = true; success = true;
granule = *m_current_granule; granule = *m_current_granule;
u16 sector_count = std::max(granule_map_data[*m_current_granule], (u8)0xC1) - 0xC1; u16 sector_count = std::max(granule_map_data[*m_current_granule], u8(0xC1)) - 0xC1;
byte_count = sector_count * 256 + m_last_sector_bytes; byte_count = sector_count * 256 + m_last_sector_bytes;
m_current_granule = std::nullopt; m_current_granule = std::nullopt;
} }
@ -280,7 +280,7 @@ std::vector<u8> coco_rsdos_image::impl::file::read_all()
// read this sector // read this sector
auto block = m_fs.read_sector(track, sector); auto block = m_fs.read_sector(track, sector);
const u8 *data = block.rodata(); const u8 *data = block.rodata();
u16 data_length = std::min(byte_count, (u16)256); u16 data_length = std::min(byte_count, u16(256));
// and append it to the results // and append it to the results
memcpy(result.data() + current_size, data, data_length); memcpy(result.data() + current_size, data, data_length);