Skip to content
This repository has been archived by the owner on Jan 30, 2023. It is now read-only.

Make libprio easier to build on Windows #37

Closed
rhelmer opened this issue Sep 13, 2018 · 0 comments
Closed

Make libprio easier to build on Windows #37

rhelmer opened this issue Sep 13, 2018 · 0 comments
Labels
ARCHIVED CLOSED at time of archiving good first issue Good for newcomers

Comments

@rhelmer
Copy link
Contributor

rhelmer commented Sep 13, 2018

The README has working instructions for Debian-flavored Linux (Travis-CI uses Ubuntu Trusty), and I've been keeping the macOS instructions up-to-date (we could have Travis-CI check this too FWIW but it hasn't been a priority for me at least :) )

However building on Windows is super painful:

  1. there aren't convenient NSS packages AFAIK, and that is a pain to build (it's being worked on)... https://bugzilla.mozilla.org/show_bug.cgi?id=1434943 helps a lot for getting it working w/ MSVC, but I don't think there's a great way to build with clang-cl outside of mozilla-central

Even in the presence of convenient Windows NSS packages, it is sometimes desirable to do debug builds of NSS or otherwise modify the NSS source, and getting this going took the most time.

  1. msgpack requires CMake which can be pretty hairy to get going and working with MSVC (I haven't even tried w/ clang yet)

  2. libprio requires the latest SCons and Python 2.7 or so, which is doable but can be pretty tricky to get right

We have all of the above building in mozilla-central using our moz.build build system only and Clang for everything, which is nice but really hard to reuse anywhere else.

However, I think we could take a few notes from it:

I am wondering if we could reduce the problem just to getting Python 2.7 + SCons + Clang installed on Windows, and drive the rest from SCons... those are probably the least painful dependencies involved here :)

I think the process could look like this:

  1. install git, python 2.7, clang on Windows (there are installers for these)
  2. from Windows command line, pip install scons gyp then scons build

Then SCons would:

  • check out NSS/NSPR and build them using gyp, passing along the DEBUG flag
  • check out msgpack and just include sources from it similar to how m-c works

libprio could stop having a vendored copy of the NSS mpi files too since it would know where the NSS sources were.

Travis-CI unfortunately does not support Windows and I don't know of any solid plans to do so - I think that https://github.com/marketplace/appveyor is an option however.

@rhelmer rhelmer added the good first issue Good for newcomers label Sep 23, 2018
@cknowles-admin cknowles-admin added the ARCHIVED CLOSED at time of archiving label Jan 30, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
ARCHIVED CLOSED at time of archiving good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

2 participants