Commit Graph

127 Commits

Author SHA1 Message Date
CraftSpider 6754910082
Update comments 2024-03-27 19:00:12 -04:00
Rune Tynan 7cac7b249c
Don't rebuild tectonic(bin) when non-binary files are changed 2024-03-27 19:00:12 -04:00
Peter Williams f876ebe2d8 Fix everything for Rust 1.67's Clippy
It wants format strings to include variables inline, which is a change that
I can get behind.
2023-01-27 20:08:07 -05:00
Peter Williams 8ace0b01e2 Get the main crate building using the new engine crates 2021-03-30 21:54:30 -04:00
Peter Williams 94e2573235 build.rs: tidy this up 2021-01-30 12:13:37 -05:00
Peter Williams f7fb6c8b22 tectonic: main crate no longer needs to explicitly depend on freetype2 2021-01-30 11:56:07 -05:00
Peter Williams 2c1ffcd702 BREAKING: fix up include-dir handling
It turns out that in order to get the C/C++ crate-bridging to work
reliably with headers, we can't get away with exposing just a single
include directory from one crate to another; we have to expose a list of
include directories. So, change all of the relevant cases to be
semicolon-separated lists instead of single directory names. Not my
favorite but I don't see a way around it.
2021-01-30 11:47:09 -05:00
Peter Williams 704117404a Switch the main crate to use tectonic_xetex_layout 2021-01-29 14:32:52 -05:00
Peter Williams 3bc464baf5 Port the main program to the new tectonic_bridge_core 2021-01-17 22:31:59 -05:00
Peter Williams fc94b23b82 crates/bridge_graphite2: export info about GRAPHITE2_STATIC
I don't think this will fix the Windows build failures on CI, but it is
something that we need to take care of anyway.
2021-01-10 11:25:36 -05:00
Peter Williams fca5656ca6 crates/bridge_harfbuzz: add this
Last in the current push. Now that we have bridges for all of these
system libraries, we can start pushing backwards and making it possible
to vendor them.
2021-01-09 18:00:50 -05:00
Peter Williams 7c58e3eb71 crates/bridge_icu: add ICU bridge crate
I was hoping to use `rust_icu_sys` here, since it prints out a Cargo
line that we can use to find its C headers, but the currently released
version requires nightly, has a build bug on my machine, and would add
`bindgen` as a build-time dependency.
2021-01-09 16:03:07 -05:00
Peter Williams 8a8aeac417 crates/bridge_freetype2: add this 2021-01-09 13:41:29 -05:00
Peter Williams aef123eb9c build.rs: start using the new tectonic_dep_support crate 2021-01-03 15:06:05 -05:00
Peter Williams b0e92b6378 Use tectonic_bridge_graphite2 in the toplevel crate. 2021-01-03 14:05:50 -05:00
Peter Williams eecf025335 tectonic_bridge_flate: new bridge crate
Instead of having the C code depend directly on zlib, expose the zlib
functionality through a cbindgen API provided by this new crate, which
links to flate2. By setting the `links` field in Cargo.toml, we can
expose a C include path that can be used by the `tectonic` build.rs
script.

This doesn't actually simplify life right now, but it starts setting us
up to have more control over our C library dependencies. We can't change
anything yet because other C library dependencies link to zlib, so we
can't vendor it without causing symbol clashes, but we set up for
migration in the future as the higher-level dependencies are adapted.
2021-01-01 18:55:55 -05:00
Peter Williams 4048ef67ad Update xdvipdfmx to the TeXLive 2020.0 reference
There is a lot going on here so I hope that I got it all right. There is
new code relating to CMaps that alters the PDF output, so unfortunately
it does not seem practical to try to make it so that the new code can
pass the existing PDF-output test suite.
2020-10-24 16:46:46 -04:00
Peter Williams 0359116b21 build.rs: make `cargo fmt` happy 2020-10-21 10:06:43 -04:00
Jim McGrath 3b25e71504 also emit cargo metadata after tectonic's own when using vcpkg 2020-10-20 22:06:07 -05:00
Peter Williams 47dd4bf664 Place the cbindgen header in $OUT_DIR rather than the source tree 2020-10-01 18:57:52 -04:00
ralismark 8b79d62caf Integrate generated bindings
Had to fix a few constness issues.
2020-09-20 19:45:27 +10:00
ralismark d0d450ed56 Setup cbindgen & build method 2020-09-20 19:45:27 +10:00
Peter Williams a94d005ccd Fix new clippy complaints 2020-05-19 22:43:47 -04:00
Peter Williams 09591ec67a build.rs: fix new clippy complaints in 1.41.0 2020-02-03 08:36:45 -05:00
Peter Williams ab731b836b build.rs: add a mode to go for "semi-static" compilation
By "semi-static" I mean that the final binary is not statically linked, but
that it only dynamically links with core system libraries. Higher-level like
harfbuzz are linked into the executable statically. This is accomplished by an
environment variable TECTONIC_PKGCONFIG_FORCE_SEMI_STATIC=1, since I
discovered that the pkg-config-rs library's logic for encouraging static
linking will turn it off in the common case that our static libraries live in
standard system prefixes.

Unfortunately, graphite2 seems to have issues with its various static builds
(e.g. https://github.com/silnrsi/graphite/pull/54) so we won't always get a
super-minimal list of dependencies, but this seems to get us most of the way
there, and I've coded it so that we should start doing better if/when
graphite2 is fixed.
2019-12-22 23:15:15 -05:00
Peter Williams 8c8c09f6c6 tests/executable.rs: attempt to honor CARGO_TARGET_@TARGET@_RUNNER if set 2019-12-22 20:24:37 -05:00
Peter Williams dedf65066a build.rs: use our new fancy target_cfg macro parser! 2019-12-04 23:14:09 -05:00
matt rice ceb9755396 Call target_cfg!() with supported invocation. 2019-12-04 23:14:09 -05:00
matt rice 27a273b3b5 Add a profile build feature for developers. 2019-12-04 23:14:09 -05:00
Peter Williams c64b0d5537 cfg_support: rebuild this with a fully flexible macro
I got a little obsessed with the challenge of developing a macro that could
support fully general `cfg!` syntax. I came up with something, but the
solution involves basically restructuring the entire module. In the end,
though, we have a single static initialization of the environment variables
and don't need to build complex structures representing each test, so it feels
like a nice solution.
2019-12-03 09:41:49 -05:00
matt rice 41c55b28a1 tectonic_cfg_support: Add macros, comments, docs, various cleanup, rename.
build.rs: use aformentioned macros
2019-10-08 16:01:56 -07:00
matt rice 8ff7bd2e3c move target directed cfg! target checks to using a cfg_support module. 2019-10-06 19:14:24 -07:00
Marco A L Barbosa 87f90c7a7c Disable exceptions and rtti for C++ code 2019-08-20 16:57:19 -03:00
Peter Williams 17065f68fa build.rs: abstract over dep-finding backend more explicitly 2019-08-18 11:44:29 -04:00
CrLF0710 bf44db9e27 Do necessary changes to load the dependencies using vcpkg-rs.
Squash merge of commits by @CrLF0710 and @mcgoo.
2019-08-18 11:44:11 -04:00
Mrmaxmeier db65ad2f4e 2018 edition: replace `extern crate`
https://doc.rust-lang.org/edition-guide/rust-2018/module-system/path-clarity.html
2019-06-09 15:12:22 +02:00
Mrmaxmeier 9c16d7151b enable and fix extra-semi warnings 2019-02-27 17:08:50 +01:00
Peter Williams 84ba464623 rustfmt everything. 2018-12-29 18:51:57 -05:00
Peter Williams 3470708ff3 tectonic/xetex-pagebuilder.c: isolate pagebuilder code here
A lot of mainly-pagebuilder-y variables show in all over the code, though.
2018-10-16 23:20:39 -04:00
Peter Williams f952de790a tectonic/xetex-pic.c: rename from XeTeX_pic.c 2018-09-30 13:34:11 -04:00
Peter Williams c85c0436d3 tectonic/xetex-macos.c: rename from XeTeX_mac.c 2018-09-30 13:32:10 -04:00
Peter Williams 695add133d tectonic/xetex-ini.c: rename from xetexini.c 2018-09-30 13:30:24 -04:00
Peter Williams 6bed3b512b tecteonic: rename the C++ files with a "xetex-" prefix
Final file names are along the lines of "xetex-XeTeXFontMgr.h" Note that the
classes that these files define have names such as `XeTeXFontMgr`, so it seems
best to keep the "XeTeX" in the filename.
2018-09-30 13:27:40 -04:00
Peter Williams fa97ed816d tectonic/xetex-ext.[ch]: rename from XeTeX_ext.[ch] 2018-09-30 13:19:29 -04:00
Peter Williams 283e920efc tectonic/xetex-xetex0.c: rename from xetex0.c 2018-09-30 13:10:00 -04:00
Peter Williams 0c2feade2d tectonic/xetex-texmfmp.c: rename from texmfmp.c 2018-09-30 13:07:41 -04:00
Peter Williams 51ab79700d tectonic/xetex-synctex.[ch]: rename from synctex.[ch] 2018-09-30 12:56:43 -04:00
Peter Williams 2a3e6a99aa tectonic/xetex-output.c: rename from output.c 2018-09-30 12:54:18 -04:00
Peter Williams 11f23d514e tectonic: rename all TECKit files to a common format
At first I wasn't sure whether to fold these files into the `xetex-` prefix or
not, but they really do form an isolated subsystem. There was also some
confusion because there are essentially two Engine.h files -- one pure C, one
C++.
2018-09-30 12:49:43 -04:00
Peter Williams 12fee667c8 tectonic/core-memory.c: rename from core-kpathsea.c
The last bit in "internals.h" was some dynamic memory routines. Break those
out into their own files. Now "internals.h" is basicaly superfluous.
2018-09-30 11:57:20 -04:00