Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Get the test suite running on Windows #231

Merged
merged 11 commits into from
Sep 14, 2018
Merged

Conversation

pkgw
Copy link
Collaborator

@pkgw pkgw commented Sep 14, 2018

At least, on my test rig. Will AppVeyor like it???

pkgw added 11 commits September 14, 2018 13:33
This macro was being used in a gross way to hide an offset in the array
indexing. Make it a bit clearer what's going on, and importantly change some
magic hardcoded numbers into symbolic constants. Also fix an off-by-one in the
size that was exposed in the port to Winows.
Could probably remove some of these #includes outright, but at the moment it's
easier just to #ifdef them.
In particular, on Windows we force static linking, since the DLL loading story
is *gross*.
First, there's a quirk about file locking that we need to work around. Second,
we need to add a racy check to the code that saves files under their MD5sum
names, since on Windows we can't rename one file onto another file that's
read-only.
Windows provides a getenv() call but it seems that it only looks at
libc-internal data structures, such that we don't see the values of
environment variables changed at runtime through Rust. This breaks the test
suite. So, use GetEnvironmentVariable instead.
Of course, all file I/O should be going through Rust, so *really* we should be
ripping this code out. But I want to get us working on Windows and this seems
like the fastest path forward.
This is more code that should probably disappear anyway -- I think it only
exists for shelling out to Ghostscript and other stuff along those lines that
we definitely don't want to do in Tectonic. It used <dirent.h> and so was
going to be annoying to compile on Windows, so, sayonara.
This shelled out to Ghostscript to calculate bounding boxes or something.
There's no way we wanted to do that anyway, so kill the code. It wouldn't
build on Windows due to the use of popen().
@pkgw pkgw changed the title Get the test suite running on MSVC Get the test suite running on Windows Sep 14, 2018
@pkgw pkgw merged commit 1ac491d into tectonic-typesetting:master Sep 14, 2018
@pkgw pkgw deleted the msvc branch September 14, 2018 20:44
@pkgw pkgw mentioned this pull request Sep 14, 2018
Mrmaxmeier added a commit to Mrmaxmeier/tectonic that referenced this pull request Dec 13, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant