Opened 17 years ago

Last modified 6 years ago

#169 new defect

Standard build system should support omega and bindings for windows with MSVC

Reported by: Richard Boulton Owned by: Olly Betts
Priority: normal Milestone:
Component: Build system Version: git master
Severity: normal Keywords:
Cc: Olly Betts, James Aylett, Mark Hammond Blocked By:
Blocking: Operating System: Microsoft Windows

Description (last modified by Olly Betts)

The standard build system (ie, configure, autotools, etc) should be able to detect and use MSVC on a windows system. This will require some unix support stuff to be installed, but MSys & Mingw should suffice (ie, a full cygwin installation shouldn't be needed).

Mark has made some progress in this direction, and Richard made a start at looking at it, so this bug is intended as a place to collaborate.

Olly says: "I don't know if libtool's support has bitrotted though. If it has, there's a (very poorly named) wrapper called "wgcc" which translated gcc options to msvc"

Change History (6)

comment:1 by Richard Boulton, 17 years ago

Cc: mhammond@… added
Owner: changed from Olly Betts to Richard Boulton

comment:2 by Olly Betts, 17 years ago

Cc: olly@… added

Slightly random thought - assuming you want to support builds from SVN, if SWIG is reluctant to build with MSVC, it would be easy to tweak bootstrap to get it to configure SWIG to build with mingw or cygwin GCC instead, while Xapian is built with MSVC...

comment:3 by Richard Boulton, 17 years ago

Operating System: Microsoft Windows
Status: newassigned

comment:4 by Olly Betts, 9 years ago

Cc: James Aylett added
Description: modified (diff)

james filed #683, which is a duplicate of this:

It should be possible to drive the MSVC tools (principally the compiler & linker) from autotools, which would provide us with a single build chain for all platforms.

This thread suggests it is mostly a matter of installing MSYS (from mingw, but not using its compiler) and passing suitable options to configure:

https://lists.gnu.org/archive/html/automake/2011-09/msg00003.html

comment:5 by Olly Betts, 6 years ago

Owner: changed from Richard Boulton to Olly Betts
Status: assignednew
Version: SVN trunkgit master

You can now build git master with MSVC (either MSVS 2015 or 2017; older versions probably lack sufficient C++11 support) using our standard build system.

I've also set up appveyor CI, testing mingw, mingw64, cygwin, msvs2015 and msvs2017:

https://ci.appveyor.com/project/ojwb/xapian

The config for that is in .appveyor.yml in the top level of the repo, which should provide hints on how to perform such builds.

Currently xapian-core builds and its testsuite passes for all builds.

I haven't really tried to build omega or the bindings, mostly because sorting out dependencies is tedious on platforms I don't actually use myself (omega needs libmagic and PCRE; the bindings needs the various languages we target). Patches to enable more would be very welcome as once we have CI it'll be easier to keep the builds working.

comment:6 by Olly Betts, 6 years ago

Summary: Standard build system should support windows with MSVCStandard build system should support omega and bindings for windows with MSVC

Retitling to reflect what's left to do

There are now details of how to build xapian-core using MSVC in xapian-core's INSTALL file.

1.4.6 (coming soon) will include all the necessary changes to support this for xapian-core, including that documentation.

Note: See TracTickets for help on using tickets.