Go to file
whitequark c84a3b6de3 Call constructors and destructors in List and IdList.
This is necessary to store non-POD classes in these containers.

Note that List and IdList do not use MemRealloc anymore;
this is necessarily (slightly) less efficient, but is the right
semantics, as you cannot just move non-POD types, e.g. std::string,
around in memory. All STL containers provide the same guarantees
and share the performance hit.

The slowdown is mostly mitigated by moving the contained objects,
so that no additional heap allocations or copies occur beyond
that of the object itself.
2016-01-13 06:45:16 +00:00
cmake Rewrite ttf2c to use GNU Unifont and merge with pngchar2c.pl. 2015-12-29 11:15:50 +08:00
debian Rewrite ttf2c to use GNU Unifont and merge with pngchar2c.pl. 2015-12-29 11:15:50 +08:00
exposed Replace all ZERO and memset with C++11 brace-initialization. 2016-01-13 06:45:16 +00:00
extlib Update libpng to 1.6.20. 2015-12-26 14:07:11 +08:00
include Add a new length-difference constraint. 2015-12-28 21:37:07 +08:00
src Call constructors and destructors in List and IdList. 2016-01-13 06:45:16 +00:00
tools Rewrite ttf2c to use GNU Unifont and merge with pngchar2c.pl. 2015-12-29 11:15:50 +08:00
.gitattributes Added a .gitattributes file 2013-11-19 18:17:55 -05:00
.gitignore Add Debian nightly builds. 2015-12-28 21:37:07 +08:00
.gitmodules Make in-tree zlib more robust. 2015-12-28 21:37:06 +08:00
.travis.yml Rewrite ttf2c to use GNU Unifont and merge with pngchar2c.pl. 2015-12-29 11:15:50 +08:00
CMakeLists.txt Rewrite ttf2c to use GNU Unifont and merge with pngchar2c.pl. 2015-12-29 11:15:50 +08:00
COPYING.txt Changes in preparation for the release of SolveSpace under the GPL, 2013-07-28 14:08:34 -08:00
README.md Rewrite png2c.pl in C++. 2015-12-29 11:15:50 +08:00
appveyor.yml Rewrite ttf2c to use GNU Unifont and merge with pngchar2c.pl. 2015-12-29 11:15:50 +08:00
wishlist.txt Make oops() calls exit instead of entering debugger by default, 2011-03-05 12:52:57 -08:00

README.md

SolveSpace

This repository contains the official repository of SolveSpace.

Installation

Debian (>=jessie) and Ubuntu (>=trusty)

Binary packages for Ubuntu trusty and later versions are available in ~whitequark/solvespace PPA.

Mac OS X (>=10.6 64-bit)

Binary packages for Mac OS X are available via GitHub releases.

Other systems

See below.

Building on Linux

Building for Linux

You will need CMake, libpng, zlib, json-c, fontconfig, gtkmm 2.4, pangomm 1.4, OpenGL and OpenGL GLU. On a Debian derivative (e.g. Ubuntu) these can be installed with:

apt-get install libpng12-dev libjson-c-dev libfontconfig1-dev \
                libgtkmm-2.4-dev libpangomm-1.4-dev libgl-dev libglu-dev \
                libglew-dev cmake

After that, build SolveSpace as following:

mkdir cbuild
cd cbuild
cmake ..
make
sudo make install

A fully functional port to GTK3 is available, but not recommended for use due to bugs in this toolkit.

Building for Windows

You will need CMake, a Windows cross-compiler, and Wine with binfmt support. On a Debian derivative (e.g. Ubuntu) these can be installed with:

apt-get install cmake mingw-w64 wine-binfmt

Before building, check out the submodules:

git submodule update --init

After that, build 32-bit SolveSpace as following:

mkdir cbuild
cd cbuild
cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-mingw32.cmake ..
make solvespace

Or, build 64-bit SolveSpace as following:

mkdir cbuild
cd cbuild
cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-mingw64.cmake ..
make solvespace

The application is built as cbuild/src/solvespace.exe.

Space Navigator support will not be available.

Building on Mac OS X

You will need XCode tools, CMake and libpng. Assuming you use homebrew, these can be installed with:

brew install cmake libpng

XCode has to be installed via AppStore; it requires a free Apple ID.

After that, build SolveSpace as following:

mkdir cbuild
cd cbuild
cmake ..
make

The app bundle is built in cbuild/src/solvespace.app.

Building on Windows

You will need cmake and Visual C++.

You will also need to check out the git submodules.

After installing them, create a directory build in the source tree and point cmake-gui to the source tree and that directory. Press "Configure" and "Generate", then open build\solvespace.sln with Visual C++ and build it.

Alternatively it is possible to build SolveSpace using MinGW. Run cmake-gui as described above but after pressing "Configure" select the "MSYS Makefiles" generator. After that, run make in the build directory; make sure that the MinGW compiler is in your PATH.

License

SolveSpace is distributed under the terms of the GPL3 license.