[
https://issues.apache.org/jira/browse/THRIFT-3973?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15861413#comment-15861413
]
James E. King, III commented on THRIFT-3973:
--------------------------------------------
In this approach I took a “build your own third party libraries” approach to
support windows. One of the reasons for this is that they have dependencies on
each-other, for example boost uses zlib; libevent uses openssl and zlib;
openssl uses zlib, so you want a single zlib library base for all of them.
It’s a bit purist, I’ll admit… The instructions are pretty lengthy in this
repsect and there are a lot of batch files necessary to detect the environment
and pass options to cmake to “find” things properly.
I think a turn of the crank on this would make the cmake build process on
windows more automated:
# Use chocolatey to download third party libraries like zlib, openssl,
libevent, boost. Hopefully they all exist...
# Augment the cmake “find” scripts so that they can automatically find those
items.
# Augment the cmake “platform” script so that it can automatically identify the
build environment on Windows, whether that is MinGW/MSYS2 with gcc, or Visual
Studio 2010/2012/2013/2015/2017 and generate the best output (overridable of
course).
The goal would be to clean up the relative complexity of running cmake on
windows (see that pull request and how many options have to be passed in) so
that you could just run “cmake” and in the majority of cases it would find
everything and do the right thing... eventually the Appveyor CI job would be as
simple.
So the question remains - is the existing pull request enough of a value add on
the path to eliminating the need to store visual studio solution files in the
git repo that I merge it and then work towards the goal above?
> Remove MSVC C++ projects to improve maintainability; document building Thrift
> on Windows using CMake to generate project files
> ------------------------------------------------------------------------------------------------------------------------------
>
> Key: THRIFT-3973
> URL: https://issues.apache.org/jira/browse/THRIFT-3973
> Project: Thrift
> Issue Type: Story
> Components: C++ - Compiler, C++ - Library
> Affects Versions: 0.10.0
> Environment: Windows
> Reporter: James E. King, III
> Assignee: James E. King, III
>
> A class of issues has popped up where the project files checked into the
> project have become stale and/or the instructions for building on windows
> need to be updated.
> These issues are linked to this item. The purpose of this story is to
> eliminate these issues by getting rid of the project files checked into the
> project for windows (C++ specifically) and to update the web site
> documentation on how to build the thrift libraries for windows (native, not
> MinGW - those instructions will remain as-is).
> Acceptance Criteria:
> # Instructions for, and supporting tools (if any) are provided by the
> project. This must include support for:
> ## Compiler executable builds in debug and release form
> ## Static library builds in debug and release form (due to DLL export issues,
> windows builds do not support dynamic library generation today)
> ## Support for optional library support like zlib, libevent, boost, std
> (threads)
> ## Support for MSVC 2010 or later
> ## Support for CMake 3.6 or later
> # MSVC project files for C++ are removed from the project.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)