5c9c32cfc7
After this commit, SolveSpace deals with paths as follows: * Paths are generally treated as opaque platform-specific strings. This helps on Linux, because paths on Linux don't have any specific encoding and it helps to avoid any operations on them. * The UI in some places wants to get a basename. In this case, the newly introduced PATH_SEP is used. This allows to treat backslash as a regular character, which it is on Linux and OS X. * The only place where any nontrivial operations on paths are performed is the g->impFile/impFileRel logic. Specifically, when saved, g->impFile always contains an absolute path with separators of the current platform, and g->impFileRel always contains a relative path with UNIX separators. This allows to treat backslash as a regular character. Old files will contain g->impFileRel with Windows separators; these are detected by looking for a drive letter in g->impFile and in that case mapping Windows separators to UNIX ones. There is no need to treat UNIX separators (forward slashes) in any special way on Windows because there is no way on Windows, not even via UNC paths, to create or address a directory entry with a forward slash in its name. |
||
---|---|---|
cmake | ||
debian | ||
exposed | ||
extlib | ||
include | ||
src | ||
tools | ||
.gitattributes | ||
.gitignore | ||
.gitmodules | ||
.travis.yml | ||
CMakeLists.txt | ||
COPYING.txt | ||
README.md | ||
appveyor.yml | ||
wishlist.txt |
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.