[ 
https://issues.apache.org/jira/browse/THRIFT-2850?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14506428#comment-14506428
 ] 

ASF GitHub Bot commented on THRIFT-2850:
----------------------------------------

GitHub user jeking3 reopened a pull request:

    https://github.com/apache/thrift/pull/456

    THRIFT-2850 cmake win cpp library and unit tests

    I made changes to the cmake environment so that cmake can build the 
compiler, static libraries and unit tests on Windows.  In my testing I found 
that the shared thrift library build is not exporting any symbols so no IMPLIB 
is being generated (that would be thrift.lib or thriftd.lib), so none of the 
unit tests would link, nor would thriftz.
    
    Here's the command I used to generate the environment:
    
    mkdir thrift-build
    cd thrift-build
    "C:\Program Files (x86)\CMake\bin\cmake.exe" ..\thrift -G"NMake Makefiles" 
-DWITH_SHARED_LIB=OFF -DWITH_BOOSTTHREADS=ON -DBOOST_ROOT=C:\Boost 
-DZLIB_ROOT=C:\win3p\tools\x64\zlib-1.2.5 
-DOPENSSL_ROOT_DIR=C:\win3p\tools\x64\openssl-1.0.1b 
-DFLEX_EXECUTABLE=C:\Users\Jim\workspace\winflexbison\win_flex.exe 
-DBISON_EXECUTABLE=C:\Users\Jim\workspace\winflexbison\win_bison.exe
    
    You can also use -G"Visual Studio 10 Win64" to get a thrift.sln file that 
you can use to load visual studio, this example is for Visual Studio 2010.  
Visual Studio 2013 would be -G"Visual Studio 12 Win64".
    
    I was not able to get the nonblocking server to build because libevent 
requires autoconf to generate a "event-config.h", and the libevent nmake 
project does not produce one of these, so I could not compile the non-blocking 
server; further the libevent header "event.h" conflicts with the Windows 
Platform SDK header Event.h, so FindLibevent.cmake always finds the Platform 
SDK as an include directory, so I did not attempt to get it working right now.
    
    Tested this on Windows and on Ubuntu 12.04 using CMake-3.2.2.
    
    When running the tests on Windows you need to put the library paths into 
your PATH environment for boost, openssl so that they can be found.  The CMake 
environment does not copy required libraries into the "bin" directory at this 
time.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/jeking3/thrift 
feature/cmake-win-cpp-library-build

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/thrift/pull/456.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #456
    
----
commit 4f27ece54ef90358ea2efe529786196c92d1a493
Author: Jim King <jim.k...@simplivity.com>
Date:   2015-04-21T15:39:08Z

    cmake changes for windows to build through unit tests, WITH_STATIC_LIBS 
only, and resolve some compiler warnings

commit 63f9fd1ed4dd18cf531f0015750cca1773603583
Author: Jim King <jim.k...@simplivity.com>
Date:   2015-04-21T16:00:02Z

    fix cmake changes from windows on linux

commit 3027c3e674575d2072dc01ebaece37855dec135a
Author: Jim King <jim.k...@simplivity.com>
Date:   2015-04-21T16:24:40Z

    put unicode definitions back where they were

commit ea41263f5d2e9deaecb5d933ea1996704cb42d79
Author: Jim King <jim.k...@simplivity.com>
Date:   2015-04-21T16:25:41Z

    Merge branch 'master' into feature/cmake-win-cpp-library-build

commit ac894b9d5d822834fd019fd0c9d7eaa16fcd97da
Author: Jim King <jim.k...@simplivity.com>
Date:   2015-04-21T20:48:29Z

    fix cmake windows debug unit test environment

commit 82bb8d73c1bda126ca570615de9951a09ad8277e
Author: Jim King <jim.k...@simplivity.com>
Date:   2015-04-22T04:29:15Z

    on windows, disable much of the TFDTransport test due to MSVCRT assertions

----


> CMake for Apache Thrift
> -----------------------
>
>                 Key: THRIFT-2850
>                 URL: https://issues.apache.org/jira/browse/THRIFT-2850
>             Project: Thrift
>          Issue Type: Improvement
>          Components: Build Process
>         Environment: all platforms
>            Reporter: Roger Meier
>            Assignee: Roger Meier
>              Labels: cmake, travis
>         Attachments: 0001-THRIFT-2850-CMake-for-Apache-Thrift.patch
>
>
> Goal: Extend Apache Thrift's *make cross* approach to the build system.
> Due to growing the field of operating system support, a proper executable
> and library detection mechanism running on as much platforms as possible
> becomes required. The other aspect is simplify the release process and
> package generation process.
> As nice side benefit of CMake is the generation of development environment
> specific solution files(VisualStudio, Eclipse, Xcode, etc. ). => No solution 
> files within source tree.
> We are already building Apache Thrift with CMake for Linux-ARM, Linux-x86, 
> Windows CE and Windows.
> We are in preparation phase for a pull request here:
> https://github.com/siemens/thrift/commits/cmake-master



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to