[ 
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)

Reply via email to