2014-04-17 14:19:07 +00:00
|
|
|
# Build compiler using CMake
|
|
|
|
|
2014-06-17 10:36:39 +00:00
|
|
|
Use the following steps to build using cmake:
|
2014-04-17 14:19:07 +00:00
|
|
|
|
2014-06-14 19:59:24 +00:00
|
|
|
mkdir build
|
|
|
|
cd build
|
|
|
|
cmake ..
|
|
|
|
make
|
2014-04-17 14:19:07 +00:00
|
|
|
|
2014-06-17 10:36:39 +00:00
|
|
|
|
|
|
|
### Create an eclipse project
|
|
|
|
|
|
|
|
mkdir build_ec && cd build_ec
|
|
|
|
cmake -G "Eclipse CDT4 - Unix Makefiles" ..
|
|
|
|
make
|
|
|
|
|
|
|
|
Now open the folder build_ec using eclipse.
|
|
|
|
|
|
|
|
|
2014-08-17 20:24:30 +00:00
|
|
|
### Cross compile using mingw32 and generate a Windows Installer with CPack
|
2014-06-17 10:36:39 +00:00
|
|
|
|
|
|
|
mkdir build_mingw32 && cd build_mingw32
|
2014-09-30 22:14:14 +00:00
|
|
|
cmake -DCMAKE_TOOLCHAIN_FILE=../../../contrib/mingw32-toolchain.cmake ..
|
2014-08-15 20:16:02 +00:00
|
|
|
cpack
|
|
|
|
|
2014-04-17 14:19:07 +00:00
|
|
|
## Build on windows
|
|
|
|
|
2015-05-15 10:01:38 +00:00
|
|
|
### using Git Bash
|
|
|
|
Git Bash provides flex and bison, so you just need to do this:
|
|
|
|
|
|
|
|
mkdir build_vs && cd build_vs
|
|
|
|
cmake -DWITH_SHARED_LIB=off ..
|
|
|
|
|
|
|
|
### using Win flex-bison
|
|
|
|
|
|
|
|
In order to build on windows with winflexbison a few additional steps are necessary:
|
2014-04-17 14:19:07 +00:00
|
|
|
|
|
|
|
1. Download winflexbison from http://sourceforge.net/projects/winflexbison/
|
|
|
|
2. Extract the winflex bison files to for e.g. C:\winflexbison
|
|
|
|
3. Make the CMake variables point to the correct binaries.
|
2015-01-28 23:30:08 +00:00
|
|
|
* FLEX_EXECUTABLE = C:/winbuild/win_flex.exe
|
|
|
|
* BISON_EXECUTABLE = C:/winbuild/win_bison.exe
|
2015-05-15 10:01:38 +00:00
|
|
|
4. Generate a Visual Studio project:
|
|
|
|
```
|
|
|
|
mkdir build_vs && cd build_vs
|
|
|
|
cmake -G "Visual Studio 12" -DWITH_SHARED_LIB=off ..
|
|
|
|
```
|
|
|
|
5. Now open the folder build_vs using Visual Studio 2013.
|
2014-06-17 10:36:39 +00:00
|
|
|
|
2014-06-14 19:59:24 +00:00
|
|
|
# Building the Thrift IDL compiler in Windows
|
|
|
|
|
2014-06-17 10:36:39 +00:00
|
|
|
If you don't want to use CMake you can use the already available Visual Studio
|
|
|
|
2010 solution.
|
2014-06-14 19:59:24 +00:00
|
|
|
The Visual Studio project contains pre-build commands to generate the
|
|
|
|
thriftl.cc, thrifty.cc and thrifty.hh files which are necessary to build
|
|
|
|
the compiler. These depend on bison, flex and their dependencies to
|
|
|
|
work properly. If this doesn't work on a system, try these manual
|
|
|
|
pre-build steps.
|
|
|
|
|
|
|
|
Open compiler.sln and remove the Pre-build commands under the project's
|
|
|
|
Properties -> Build Events -> Pre-Build Events.
|
|
|
|
|
|
|
|
Download flex & bison from http://jaisantonyk.wordpress.com/2008/03/16/lex-and-yaccbison-in-windows/
|
|
|
|
Download bison.simple in addition to bison.exe . This build of bison is easier to use
|
|
|
|
than the one on sourceforge which has a myriad of dependencies.
|
|
|
|
Place these binaries somewhere in the path.
|
|
|
|
|
|
|
|
From a command prompt:
|
|
|
|
> cd thrift/compiler/cpp
|
|
|
|
> flex -osrc\thriftl.cc src\thriftl.ll
|
|
|
|
In the generated thriftl.cc, comment out #include <unistd.h>
|
|
|
|
|
|
|
|
Place a copy of bison.simple in thrift/compiler/cpp
|
|
|
|
> bison -y -o "src/thrifty.cc" --defines src/thrifty.yy
|
|
|
|
> move src\thrifty.cc.hh src\thrifty.hh
|
|
|
|
|
|
|
|
Bison might generate the yacc header file "thrifty.cc.h" with just one h ".h" extension; in this case you'll have to rename to "thrifty.h".
|
|
|
|
|
|
|
|
> move src\windows\version.h.in src\windows\version.h
|
|
|
|
|
|
|
|
Download inttypes.h from the interwebs and place it in an include path
|
|
|
|
location (e.g. thrift/compiler/cpp/src).
|
|
|
|
|
|
|
|
Build the compiler in Visual Studio.
|