2015-03-20 09:34:53 +00:00
|
|
|
SolveSpace
|
|
|
|
==========
|
|
|
|
|
2016-04-19 16:57:28 +00:00
|
|
|
This repository contains the source code of [SolveSpace][], a parametric
|
|
|
|
2d/3d CAD.
|
2015-03-20 09:34:53 +00:00
|
|
|
|
|
|
|
[solvespace]: http://solvespace.com
|
|
|
|
|
|
|
|
Installation
|
|
|
|
------------
|
|
|
|
|
2017-01-02 22:24:27 +00:00
|
|
|
### macOS (>=10.6 64-bit), Windows (>=Vista 32-bit)
|
2015-03-20 09:34:53 +00:00
|
|
|
|
2016-11-14 02:34:15 +00:00
|
|
|
Binary packages for macOS and Windows are available via
|
2016-07-25 04:21:16 +00:00
|
|
|
[GitHub releases][rel].
|
2015-03-20 09:34:53 +00:00
|
|
|
|
2016-04-19 16:57:28 +00:00
|
|
|
[rel]: https://github.com/solvespace/solvespace/releases
|
2015-03-20 09:34:53 +00:00
|
|
|
|
|
|
|
### Other systems
|
|
|
|
|
|
|
|
See below.
|
|
|
|
|
|
|
|
Building on Linux
|
|
|
|
-----------------
|
|
|
|
|
2015-07-05 05:45:39 +00:00
|
|
|
### Building for Linux
|
|
|
|
|
2017-01-02 22:02:37 +00:00
|
|
|
You will need CMake, zlib, libpng, cairo, freetype. To build the GUI, you will need
|
|
|
|
fontconfig, gtkmm 3.0, pangomm 1.4, OpenGL and OpenGL GLU, and optionally,
|
|
|
|
the Space Navigator client library
|
|
|
|
.
|
2015-07-05 05:45:39 +00:00
|
|
|
On a Debian derivative (e.g. Ubuntu) these can be installed with:
|
2015-03-20 09:34:53 +00:00
|
|
|
|
2017-01-02 22:02:37 +00:00
|
|
|
apt-get install cmake zlib1-dev libpng-dev libcairo2-dev libfreetype6-dev
|
|
|
|
apt-get install libjson-c-dev libfontconfig1-dev libgtkmm-3.0-dev libpangomm-1.4-dev \
|
2016-12-13 09:56:12 +00:00
|
|
|
libgl-dev libglu-dev libspnav-dev
|
2015-03-20 09:34:53 +00:00
|
|
|
|
2016-03-16 20:57:00 +00:00
|
|
|
Before building, check out the necessary submodules:
|
|
|
|
|
|
|
|
git submodule update --init extlib/libdxfrw
|
|
|
|
|
2015-03-20 09:34:53 +00:00
|
|
|
After that, build SolveSpace as following:
|
|
|
|
|
2016-04-19 16:57:28 +00:00
|
|
|
mkdir build
|
|
|
|
cd build
|
2016-07-25 19:37:48 +00:00
|
|
|
cmake .. -DENABLE_TESTS=OFF
|
2015-03-20 09:34:53 +00:00
|
|
|
make
|
|
|
|
sudo make install
|
|
|
|
|
2017-01-02 22:02:37 +00:00
|
|
|
The graphical interface is built as `build/bin/solvespace`, and the command-line interface
|
|
|
|
is built as `build/bin/solvespace-cli`. It is possible to build only the command-line interface
|
|
|
|
by passing the `-DENABLE_GUI=OFF` flag to the cmake invocation.
|
2016-11-14 02:34:15 +00:00
|
|
|
|
2015-07-05 05:45:39 +00:00
|
|
|
### Building for Windows
|
|
|
|
|
2016-07-25 04:21:16 +00:00
|
|
|
You will need CMake and a Windows cross-compiler.
|
2015-07-05 05:45:39 +00:00
|
|
|
On a Debian derivative (e.g. Ubuntu) these can be installed with:
|
|
|
|
|
2016-07-25 04:21:16 +00:00
|
|
|
apt-get install cmake mingw-w64
|
2015-07-05 05:45:39 +00:00
|
|
|
|
2016-03-16 20:57:00 +00:00
|
|
|
Before building, check out the necessary submodules:
|
2015-07-05 05:45:39 +00:00
|
|
|
|
|
|
|
git submodule update --init
|
|
|
|
|
|
|
|
After that, build 32-bit SolveSpace as following:
|
|
|
|
|
2016-04-19 16:57:28 +00:00
|
|
|
mkdir build
|
|
|
|
cd build
|
2016-07-25 19:37:48 +00:00
|
|
|
cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-mingw32.cmake \
|
|
|
|
-DENABLE_TESTS=OFF
|
|
|
|
make
|
2015-07-05 05:45:39 +00:00
|
|
|
|
|
|
|
Or, build 64-bit SolveSpace as following:
|
|
|
|
|
2016-04-19 16:57:28 +00:00
|
|
|
mkdir build
|
|
|
|
cd build
|
2016-07-25 19:37:48 +00:00
|
|
|
cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-mingw64.cmake \
|
|
|
|
-DENABLE_TESTS=OFF
|
|
|
|
make
|
2015-07-05 05:45:39 +00:00
|
|
|
|
2017-01-02 22:02:37 +00:00
|
|
|
The graphical interface is built as `build/bin/solvespace.exe`, and the command-line interface
|
|
|
|
is built as `build/bin/solvespace-cli.exe`.
|
2015-07-05 05:45:39 +00:00
|
|
|
|
|
|
|
Space Navigator support will not be available.
|
|
|
|
|
2016-11-14 02:34:15 +00:00
|
|
|
Building on macOS
|
|
|
|
-----------------
|
2015-03-20 09:34:53 +00:00
|
|
|
|
2016-07-25 19:37:48 +00:00
|
|
|
You will need XCode tools, CMake, libpng and Freetype. To build tests, you
|
|
|
|
will need cairo. Assuming you use
|
2016-03-19 16:36:07 +00:00
|
|
|
[homebrew][], these can be installed with:
|
2015-03-20 09:34:53 +00:00
|
|
|
|
2016-07-25 19:37:48 +00:00
|
|
|
brew install cmake libpng freetype cairo
|
2015-03-20 09:34:53 +00:00
|
|
|
|
|
|
|
XCode has to be installed via AppStore; it requires a free Apple ID.
|
|
|
|
|
2016-03-16 20:57:00 +00:00
|
|
|
Before building, check out the necessary submodules:
|
|
|
|
|
|
|
|
git submodule update --init extlib/libdxfrw
|
|
|
|
|
2015-03-20 09:34:53 +00:00
|
|
|
After that, build SolveSpace as following:
|
|
|
|
|
2016-04-19 16:57:28 +00:00
|
|
|
mkdir build
|
|
|
|
cd build
|
2016-07-25 19:37:48 +00:00
|
|
|
cmake .. -DENABLE_TESTS=OFF
|
2015-03-20 09:34:53 +00:00
|
|
|
make
|
|
|
|
|
2017-01-02 22:02:37 +00:00
|
|
|
The application is built in `build/bin/solvespace.app`, the graphical interface executable
|
|
|
|
is `build/bin/solvespace.app/Contents/MacOS/solvespace`, and the command-line interface executable
|
|
|
|
is `build/bin/solvespace.app/Contents/MacOS/solvespace-cli`.
|
2015-03-20 09:34:53 +00:00
|
|
|
|
|
|
|
[homebrew]: http://brew.sh/
|
|
|
|
|
2015-07-05 05:45:39 +00:00
|
|
|
Building on Windows
|
|
|
|
-------------------
|
|
|
|
|
2017-01-02 22:02:37 +00:00
|
|
|
You will need [git][gitwin], [cmake][cmakewin] and Visual C++.
|
2015-07-05 05:45:39 +00:00
|
|
|
|
2016-08-07 17:19:24 +00:00
|
|
|
### Building with Visual Studio IDE
|
2015-07-05 05:45:39 +00:00
|
|
|
|
2016-02-10 10:48:42 +00:00
|
|
|
Check out the git submodules. 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
|
2015-07-05 05:45:39 +00:00
|
|
|
Visual C++ and build it.
|
|
|
|
|
2016-08-07 17:19:24 +00:00
|
|
|
### Building with Visual Studio in a command prompt
|
2016-02-10 10:48:42 +00:00
|
|
|
|
|
|
|
First, ensure that git and cl (the Visual C++ compiler driver) are in your
|
|
|
|
`%PATH%`; the latter is usually done by invoking `vcvarsall.bat` from your
|
|
|
|
Visual Studio install. Then, run the following in cmd or PowerShell:
|
|
|
|
|
|
|
|
git submodule update --init
|
|
|
|
mkdir build
|
|
|
|
cd build
|
2016-07-25 19:37:48 +00:00
|
|
|
cmake .. -G "NMake Makefiles" -DENABLE_TESTS=OFF
|
2016-02-10 10:48:42 +00:00
|
|
|
nmake
|
|
|
|
|
2016-08-07 17:19:24 +00:00
|
|
|
### Building with MinGW
|
2016-02-10 10:48:42 +00:00
|
|
|
|
|
|
|
It is also possible to build SolveSpace using [MinGW][mingw], though
|
|
|
|
Space Navigator support will be disabled.
|
|
|
|
|
|
|
|
First, ensure that git and gcc are in your `$PATH`. Then, run the following
|
|
|
|
in bash:
|
|
|
|
|
|
|
|
git submodule update --init
|
|
|
|
mkdir build
|
|
|
|
cd build
|
2016-07-25 19:37:48 +00:00
|
|
|
cmake .. -DENABLE_TESTS=OFF
|
2016-02-10 10:48:42 +00:00
|
|
|
make
|
2015-10-27 07:34:13 +00:00
|
|
|
|
2016-08-07 17:19:24 +00:00
|
|
|
[gitwin]: https://git-scm.com/download/win
|
2015-07-05 05:45:39 +00:00
|
|
|
[cmakewin]: http://www.cmake.org/download/#latest
|
2015-10-27 07:34:13 +00:00
|
|
|
[mingw]: http://www.mingw.org/
|
2015-07-05 05:45:39 +00:00
|
|
|
|
2016-11-14 02:34:15 +00:00
|
|
|
Debugging a crash
|
|
|
|
-----------------
|
|
|
|
|
|
|
|
SolveSpace releases are throughly tested but sometimes they contain crash
|
|
|
|
bugs anyway. The reason for such crashes can be determined only if the executable
|
|
|
|
was built with debug information.
|
|
|
|
|
|
|
|
### Debugging a released version
|
|
|
|
|
|
|
|
The Linux distributions usually include separate debug information packages.
|
|
|
|
On a Debian derivative (e.g. Ubuntu), these can be installed with:
|
|
|
|
|
|
|
|
apt-get install solvespace-dbg
|
|
|
|
|
|
|
|
The macOS releases include the debug information, and no further action
|
|
|
|
is needed.
|
|
|
|
|
|
|
|
The Windows releases include the debug information on the GitHub
|
|
|
|
[release downloads page](https://github.com/solvespace/solvespace/releases).
|
|
|
|
|
|
|
|
### Debugging a custom build
|
|
|
|
|
|
|
|
If you are building SolveSpace yourself on a Unix-like platform,
|
|
|
|
configure or re-configure SolveSpace to produce a debug build, and
|
|
|
|
then re-build it:
|
|
|
|
|
|
|
|
cd build
|
|
|
|
cmake .. -DCMAKE_BUILD_TYPE=Debug [other cmake args...]
|
|
|
|
make
|
|
|
|
|
|
|
|
If you are building SolveSpace yourself using the Visual Studio IDE,
|
|
|
|
select Debug from the Solution Configurations list box on the toolbar,
|
|
|
|
and build the solution.
|
|
|
|
|
|
|
|
### Debugging with gdb
|
|
|
|
|
|
|
|
gdb is a debugger that is mostly used on Linux. First, run SolveSpace
|
|
|
|
under debugging:
|
|
|
|
|
|
|
|
gdb [path to solvespace executable]
|
|
|
|
(gdb) run
|
|
|
|
|
|
|
|
Then, reproduce the crash. After the crash, attach the output in
|
|
|
|
the console, as well as output of the following gdb commands to
|
|
|
|
a bug report:
|
|
|
|
|
|
|
|
(gdb) backtrace
|
|
|
|
(gdb) info locals
|
|
|
|
|
|
|
|
If the crash is not easy to reproduce, please generate a core file,
|
|
|
|
which you can use to resume the debugging session later, and provide
|
|
|
|
any other information that is requested:
|
|
|
|
|
|
|
|
(gdb) generate-core-file
|
|
|
|
|
|
|
|
This will generate a large file called like `core.1234` in the current
|
|
|
|
directory; it can be later re-loaded using `gdb --core core.1234`.
|
|
|
|
|
|
|
|
### Debugging with lldb
|
|
|
|
|
|
|
|
lldb is a debugger that is mostly used on macOS. First, run SolveSpace
|
|
|
|
under debugging:
|
|
|
|
|
|
|
|
lldb [path to solvespace executable]
|
|
|
|
(lldb) run
|
|
|
|
|
|
|
|
Then, reproduce the crash. After the crash, attach the output in
|
|
|
|
the console, as well as output of the following gdb commands to
|
|
|
|
a bug report:
|
|
|
|
|
|
|
|
(lldb) backtrace all
|
|
|
|
(lldb) frame variable
|
|
|
|
|
|
|
|
If the crash is not easy to reproduce, please generate a core file,
|
|
|
|
which you can use to resume the debugging session later, and provide
|
|
|
|
any other information that is requested:
|
|
|
|
|
|
|
|
(lldb) process save-core "core"
|
|
|
|
|
|
|
|
This will generate a large file called `core` in the current
|
|
|
|
directory; it can be later re-loaded using `lldb -c core`.
|
|
|
|
|
2015-03-20 09:34:53 +00:00
|
|
|
License
|
|
|
|
-------
|
|
|
|
|
|
|
|
SolveSpace is distributed under the terms of the [GPL3 license](COPYING.txt).
|