SqlCipher Build on Windows

I just finished going through the process of building OpenSSL 1.1.1g and SqlCipher from the 4.4.0 branch, on Windows 10 and Visual Studio 2019 Community Edition, with the current Windows SDK. I ran into multiple what turned out to be small issues. But at the end all seems to be working in initial tests.

The info I could find for building on Windows was mostly outdated or incorrect in a variety of blog posts and other stuff I found. Does anyone think there would be interest in me writing up the build process for both OpenSSL and for SqlCipher 4.4.0 in the above environment? If so, I’m open to suggestions on where to publish, what to publish, etc.

Also I think I hit at least two small bugs in the Makefile.msc for Windows that I could file an issue for, if that is worthwhile to anyone. If this is worth posting an issue, I’d be willing to do that and to make the related pull request for a possible fix.

Thanks in advance for any info/reactions :slight_smile:

Hello @skolson5903, Thanks for trying out SQLCipher! Due to the very wide variety of configuration and build options for Windows, we don’t provide build instructions or public support for compilation on that platform on our sites. We only directly support the official Commercial Edition packages we distribute .

That said, you are still certainly welcome to build things on your own under the Community Edition license, and of course to publish any documentation you come up with. If you do, since these would be third-party build instructions, we would suggest posting it on your own website or blog. This way it is clear that they reflect your results and requirements, etc. It will also make it easier for you to keep things updated as things inevitably change, and for people to contact you directly if they have questions or need support.

Finally, with respect to changes in Makefile.msc, we’d need to review the proposed changes to determine whether we could accept them. Makefile.msc is based on the upstream SQLite project. As a general rule, we don’t accept changes to “shared” files that would make them materially different than the upstream baseline. If a change is generally applicable to SQLite and not just SQLCipher, the change must first be submitted upstream to the SQLite project. After it is incorporated into SQLite as part of an official release we would bring it down into SQLCipher via our standard release process. If you are interested in providing patches or improvements to SQLCipher itself the project contributor agreement is also a prerequisite.

Thanks for using SQLCipher and let us know if you have any questions!