| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248 |
- # Building Polycode and dependencies #
- Polycode uses a CMake build generator for automatically downloading and
- building required 3rd party packages and Polycode itself. Polycode is
- setup for preferring custom static libraries over system ones, so
- please use the dependency build system even if you have all of the
- dependencies installed on your computer.
- The first dependency is CMake. It can be downloaded from
- http://cmake.org/cmake/resources/software.html or installed using apt
- or rpm on most Linux distributions. CMake 2.8.8 or greater is now required.
- When Polycode and its Dependencies are built, they will be available
- in the Release/YourArchitecture folder under the main source tree in
- a structure that should mimic the main binary release.
- If you wish to build a 32-bit version on a 64-bit machine in OS X, pass
- -DCMAKE_OSX_ARCHITECTURES=i386 as an argument to cmake
- ## Building dependencies ##
- Polycode depends on a number of third party packages that are not
- included in the Polycode source tree:
- * [Lua](http://www.lua.org/)
- * [Freetype](http://www.freetype.org/)
- * [zlib](http://www.zlib.net/)
- * [libpng](http://www.libpng.org/pub/png/libpng.html)
- * [PhysicsFS](http://icculus.org/physfs/)
- * [Ogg Vorbis](http://www.vorbis.com/)
- * [OpenAL](http://www.openal.org/)
- * [SDL](http://www.libsdl.org/)
- * [Box2D](http://www.box2d.org/)
- * [Bullet Physics](http://bulletphysics.org/)
- * [Assimp](http://assimp.sourceforge.net/)
- The CMake dependency build system will download and install static
- version of these libraries into the Polycode source tree. It will NOT
- attempt to install any of these packages into your system.
- All dependenices will be installed into the Polycode source tree under
- Release/<Platform>/Framework/
- Instructions describe using CMake on the command line, you
- may prefer to use the CMake GUI if unfamiliar with CMake.
- ### Mac OS X and Xcode ###
- NOTE: If you are using the new Xcode that is downloaded from the AppStore
- and cmake complains about not finding Xcode in /Developer, you have to run this
- command to update the Xcode path:
- sudo /usr/bin/xcode-select -switch /Applications/Xcode.app/Contents/Developer
- To generate an Xcode project for building Polycode dependencies, perform
- the following steps in the Polycode directory from a terminal:
- cd Dependencies
- mkdir Build
- cd Build
- cmake -G Xcode ..
-
- This generates a PolycodeDependencies Xcode project in the Build
- directory. Building this project in Xcode will download, build and
- install the dependencies (make sure you build the ALL_BUILD target).
- Note that you need to build both Debug and
- Release in Xcode
- Note: Release is "Build for Archiving" in Xcode4.
- ### Windows and Visual Studio ###
- To generate a Microsoft Visual Studio (any version) project for building
- Polycode dependencies, perform the following steps in the Polycode
- directory from a command prompt (for VS2010):
- cd Dependencies
- mkdir Build
- cd Build
- cmake -G "Visual Studio 10" ..
-
- This generates a PolycodeDependencies.sln in the Build directory.
- Building the ALL_BUILD project in the solution in Visual Studio will download, build and
- install the dependencies. Note that you need to build both Debug and
- Release.
- You will also need to manually build the "glext" and "wglext" projects.
- ### Unix Makefiles ###
- To generate and build Debug and Release builds with Unix Makefiles
- perform the following steps in the Polycode directory from a terminal:
- cd Dependencies
- mkdir Build
- cd Build
- mkdir Debug
- cd Debug
- cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug ../..
- make
- cd ..
- mkdir Release
- cd Release
- cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ../..
- make
-
- ## Building Polycode ##
- ### Notes ###
- The Polycode CMake build will look for dependencies installed as
- static libraries in the Release folder by the above
- dependency build step. It will not use system level versions
- of these libraries, even if you have them installed. The only exception to
- this is SDL for the Linux build, which you must manually install on
- the system level.
- If you want to build documentation, you must have Doxygen installed
- and in your run path. You can get Doxygen from http://www.doxygen.org
- or install it using a package manager.
- ### Mac OS X and Xcode ###
- To generate an Xcode project for building Polycode, perform the
- following steps in the Polycode directory from a terminal:
- mkdir Build
- cd Build
- cmake -G Xcode ..
- This generates a Polycode Xcode project in the Build directory.
- Build the "ALL_BUILD" target in this project in both Debug and Release
- and then build the "install" target, also in Debug and Release. This
- will install Polycode into the Release/Darwin/Framework directory,
- which should mirror the binary download from the website and contain
- templates and examples that will build out of the box.
- ### Windows and Visual Studio ###
- To generate a Microsoft Visual Studio project for building Polycode,
- perform the following steps in the Polycode directory from a
- command prompt:
- mkdir Build
- cd Build
- cmake -G "Visual Studio 10" ..
-
- Build the "ALL_BUILD" target in this project in both Debug and Release
- and then build the "install" target, also in Debug and Release. This
- will install Polycode into the Release/Windows/Framework directory,
- which should mirror the binary download from the website and contain
- templates and examples that will build out of the box.
- ### Linux ###
- To generate and build Debug and Release builds with Unix Makefiles
- perform the following steps in the Polycode directory from a terminal:
- NOTE: You need to install SDL development libraries on your system
- before doing this as they are not automatically installed by the
- Dependencies project above. You can get SDL from http://www.libsdl.org
- or using the package manager of your distribution.
- mkdir Build
- cd Build
- mkdir Debug
- cd Debug
- cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug ../..
- make
- make install
- cd ..
- mkdir Release
- cd Release
- cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ../..
- make
- make install
- This will install Polycode into the Release/Linux/Framework directory,
- which should mirror the binary download from the website and contain
- templates and examples that will build out of the box.
- ## Building Polycode Lua ##
- Note: To build a complete distribution of the standalone Lua tools
- as it appears in the binary release, you will need to build it on all
- supported platforms and copy the module libraries and deployment
- templates from all three into the folder. If you do not have access
- to all the supported platforms, you will not be able to build a complete
- distribution!
- To build Polycode Lua, you need to build the bindings and the player,
- which are disabled by default. To do this, you need to add a couple
- of variables to the cmake commands above. To build the bindings, you
- need a python installation with the PLY python module. You can get
- the PLY module at http://www.dabeaz.com/ply/
- Note: You will need python 2 for this step. If you have python 3 installed,
- pass -DPYTHON_EXECUTABLE=/usr/bin/python2 or whatever the full path to
- the python2 executable is on your system.
- To enable the bindings and the player, add the following options to the
- cmake command. Otherwise, the steps are exactly the same as the regular
- Polycode build for your system.
- -DPOLYCODE_BUILD_BINDINGS=ON -DPOLYCODE_BUILD_PLAYER=ON
- Note: You need to build the "PolycodeLua" target before you build the "install" target.
- After building the install build or running 'make install', perform the
- following commands in the Polycode source root:
- ### Mac and Linux ###
- cd Standalone
- mkdir Build
- cd Build
- cmake -G "Unix Makefiles" ..
- make install
- This will create a Release/YourArchitecture/Standalone folder with the
- same structure as the binary Polycode Lua release.
- ### Windows ###
-
- cd Standalone
- mkdir Build
- cd Build
- cmake -G "Visual Studio 10" ..
- This will create a Standalone.sln solution in the Build directory. Build the
- "install" target of this solution.
- This will create a Release/Windows/Standalone folder with the
- same structure as the binary Polycode Lua release.
- ### Final steps ###
- Since the standalone Lua distribution is supposed to compile packages for
- all platforms, you need to do this build step on all of the platforms and
- merge the Standalone/Modules and Standalone/Publish folders with the one
- you just built.
- ## TODO ##
- It would be good to create a CMake build template for people to create
- new Polycode applications with.
|