2021-12-22 17:07:09 +00:00
|
|
|
# SolveSpace
|
|
|
|
|
2021-01-09 22:30:13 +00:00
|
|
|
<img src="res/freedesktop/solvespace-scalable.svg" width="70" height="70" alt="SolveSpace Logo" align="left">
|
2020-10-28 18:51:46 +00:00
|
|
|
|
2020-12-08 17:19:33 +00:00
|
|
|
[![Build Status](https://github.com/solvespace/solvespace/workflows/CD/badge.svg)](https://github.com/solvespace/solvespace/actions)
|
2020-10-28 17:26:19 +00:00
|
|
|
[![solvespace](https://snapcraft.io/solvespace/badge.svg)](https://snapcraft.io/solvespace)
|
|
|
|
[![solvespace](https://snapcraft.io/solvespace/trending.svg?name=0)](https://snapcraft.io/solvespace)
|
2015-03-20 09:34:53 +00:00
|
|
|
|
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
|
|
|
|
2021-12-12 18:12:20 +00:00
|
|
|
[solvespace]: https://solvespace.com
|
2015-03-20 09:34:53 +00:00
|
|
|
|
2021-12-22 17:07:09 +00:00
|
|
|
## Community
|
2018-07-12 20:58:40 +00:00
|
|
|
|
|
|
|
The official SolveSpace [website][sswebsite] has [tutorials][sstutorial],
|
|
|
|
[reference manual][ssref] and a [forum][ssforum]; there is also an official
|
2021-12-12 18:12:20 +00:00
|
|
|
IRC channel [#solvespace at web.libera.chat][ssirc].
|
2018-07-12 20:58:40 +00:00
|
|
|
|
|
|
|
[sswebsite]: http://solvespace.com/
|
|
|
|
[ssref]: http://solvespace.com/ref.pl
|
|
|
|
[sstutorial]: http://solvespace.com/tutorial.pl
|
|
|
|
[ssforum]: http://solvespace.com/forum.pl
|
2021-12-12 18:12:20 +00:00
|
|
|
[ssirc]: https://web.libera.chat/#solvespace
|
2018-07-12 20:58:40 +00:00
|
|
|
|
2021-12-22 17:07:09 +00:00
|
|
|
## Installation
|
2015-03-20 09:34:53 +00:00
|
|
|
|
2018-07-31 17:35:21 +00:00
|
|
|
### Via official binary packages
|
2015-03-20 09:34:53 +00:00
|
|
|
|
2021-12-22 17:07:09 +00:00
|
|
|
_Official_ release binary packages for macOS (>=10.6 64-bit) and Windows
|
|
|
|
(>=Vista 32-bit) are available via [GitHub releases][rel]. These packages are
|
|
|
|
automatically built by the SolveSpace maintainers for each stable release.
|
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
|
|
|
|
2020-01-23 17:05:13 +00:00
|
|
|
### Via Snap Store
|
|
|
|
|
2021-04-19 12:48:16 +00:00
|
|
|
Official releases can be installed from the `stable` channel.
|
2020-01-23 17:05:13 +00:00
|
|
|
|
2021-12-22 17:07:09 +00:00
|
|
|
Builds from master are automatically released to the `edge` channel in the Snap
|
|
|
|
Store. Those packages contain the latest improvements, but receive less testing
|
|
|
|
than release builds.
|
2020-01-23 17:05:13 +00:00
|
|
|
|
|
|
|
[![Get it from the Snap Store](https://snapcraft.io/static/images/badges/en/snap-store-black.svg)](https://snapcraft.io/solvespace)
|
|
|
|
|
|
|
|
Or install from a terminal:
|
|
|
|
|
2021-12-22 17:07:09 +00:00
|
|
|
```sh
|
2021-04-19 12:48:16 +00:00
|
|
|
# for the latest stable release:
|
2021-12-22 17:07:09 +00:00
|
|
|
snap install solvespace
|
|
|
|
|
2021-04-19 12:48:16 +00:00
|
|
|
# for the bleeding edge builds from master:
|
|
|
|
snap install solvespace --edge
|
2020-01-23 17:05:13 +00:00
|
|
|
```
|
|
|
|
|
2018-07-31 17:35:21 +00:00
|
|
|
### Via third-party binary packages
|
|
|
|
|
2021-12-22 17:07:09 +00:00
|
|
|
_Third-party_ nightly binary packages for Debian and Ubuntu are available via
|
|
|
|
[notesalexp.org][notesalexp]. These packages are automatically built from
|
|
|
|
non-released source code. The SolveSpace maintainers do not control the contents
|
|
|
|
of these packages and cannot guarantee their functionality.
|
2018-07-31 17:35:21 +00:00
|
|
|
|
|
|
|
[notesalexp]: https://notesalexp.org/packages/en/source/solvespace/
|
|
|
|
|
2021-10-29 19:06:42 +00:00
|
|
|
### Via automated edge builds
|
|
|
|
|
2021-12-22 17:07:09 +00:00
|
|
|
> :warning: **Edge builds might be unstable or contain severe bugs!**
|
2021-10-29 19:06:42 +00:00
|
|
|
> They are intended for experienced users to test new features or verify bugfixes.
|
|
|
|
|
2021-12-22 17:07:09 +00:00
|
|
|
Cutting edge builds from the latest master commit are available as zip archives
|
|
|
|
from the following links:
|
2021-10-29 19:06:42 +00:00
|
|
|
|
|
|
|
- [macOS](https://nightly.link/solvespace/solvespace/workflows/cd/master/macos.zip)
|
|
|
|
- [Windows](https://nightly.link/solvespace/solvespace/workflows/cd/master/windows.zip)
|
|
|
|
- [Windows with OpenMP enabled](https://nightly.link/solvespace/solvespace/workflows/cd/master/windows-openmp.zip)
|
|
|
|
|
2021-12-22 17:07:09 +00:00
|
|
|
Extract the downloaded archive and install or execute the contained file as is
|
|
|
|
appropriate for your platform.
|
2021-10-29 19:06:42 +00:00
|
|
|
|
2018-07-31 17:35:21 +00:00
|
|
|
### Via source code
|
2015-03-20 09:34:53 +00:00
|
|
|
|
|
|
|
See below.
|
|
|
|
|
2021-12-22 17:07:09 +00:00
|
|
|
## Building on Linux
|
2015-03-20 09:34:53 +00:00
|
|
|
|
2015-07-05 05:45:39 +00:00
|
|
|
### Building for Linux
|
|
|
|
|
2021-12-22 17:07:09 +00:00
|
|
|
You will need the usual build tools, CMake, zlib, libpng, cairo, freetype. To
|
|
|
|
build the GUI, you will need fontconfig, gtkmm 3.0 (version 3.16 or later),
|
|
|
|
pangomm 1.4, OpenGL and OpenGL GLU, and optionally, the Space Navigator client
|
|
|
|
library. On a Debian derivative (e.g. Ubuntu) these can be installed with:
|
2015-03-20 09:34:53 +00:00
|
|
|
|
2021-12-22 17:07:09 +00:00
|
|
|
```sh
|
|
|
|
sudo apt install git build-essential cmake zlib1g-dev libpng-dev \
|
|
|
|
libcairo2-dev libfreetype6-dev libjson-c-dev \
|
|
|
|
libfontconfig1-dev libgtkmm-3.0-dev libpangomm-1.4-dev \
|
|
|
|
libgl-dev libglu-dev libspnav-dev
|
|
|
|
```
|
2018-11-10 07:45:50 +00:00
|
|
|
|
2021-12-22 17:07:09 +00:00
|
|
|
On a RedHat derivative (e.g. Fedora) the dependencies can be installed with:
|
2018-11-10 07:45:50 +00:00
|
|
|
|
2021-12-22 17:07:09 +00:00
|
|
|
```sh
|
|
|
|
sudo dnf install git gcc-c++ cmake zlib-devel libpng-devel \
|
|
|
|
cairo-devel freetype-devel json-c-devel \
|
|
|
|
fontconfig-devel gtkmm30-devel pangomm-devel \
|
|
|
|
mesa-libGL-devel mesa-libGLU-devel libspnav-devel
|
|
|
|
```
|
2015-03-20 09:34:53 +00:00
|
|
|
|
2017-08-08 12:22:40 +00:00
|
|
|
Before building, check out the project and the necessary submodules:
|
2016-03-16 20:57:00 +00:00
|
|
|
|
2021-12-22 17:07:09 +00:00
|
|
|
```sh
|
|
|
|
git clone https://github.com/solvespace/solvespace
|
|
|
|
cd solvespace
|
2020-12-13 15:28:02 +00:00
|
|
|
git submodule update --init extlib/libdxfrw extlib/mimalloc extlib/eigen
|
2021-12-22 17:07:09 +00:00
|
|
|
```
|
2016-03-16 20:57:00 +00:00
|
|
|
|
2015-03-20 09:34:53 +00:00
|
|
|
After that, build SolveSpace as following:
|
|
|
|
|
2021-12-22 17:07:09 +00:00
|
|
|
```sh
|
|
|
|
mkdir build
|
|
|
|
cd build
|
|
|
|
cmake .. -DCMAKE_BUILD_TYPE=Release -DENABLE_OPENMP=ON
|
|
|
|
make
|
2015-03-20 09:34:53 +00:00
|
|
|
|
2021-12-22 17:07:09 +00:00
|
|
|
# Optionally
|
|
|
|
sudo make install
|
|
|
|
```
|
|
|
|
|
|
|
|
Link Time Optimization is supported by adding `-DENABLE_LTO=ON` to cmake at the
|
2021-01-18 19:57:15 +00:00
|
|
|
expense of longer build time.
|
|
|
|
|
2021-12-22 17:07:09 +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
|
|
|
|
|
2021-12-22 17:07:09 +00:00
|
|
|
Ubuntu will require 20.04 or above. Cross-compiling with WSL is also confirmed
|
|
|
|
to work.
|
2020-11-07 20:54:47 +00:00
|
|
|
|
2021-12-22 17:07:09 +00:00
|
|
|
You will need the usual build tools, CMake, and a Windows cross-compiler. On a
|
|
|
|
Debian derivative (e.g. Ubuntu) these can be installed with:
|
2015-07-05 05:45:39 +00:00
|
|
|
|
2021-12-22 17:07:09 +00:00
|
|
|
```sh
|
|
|
|
apt-get install git build-essential cmake mingw-w64
|
|
|
|
```
|
2015-07-05 05:45:39 +00:00
|
|
|
|
2017-08-08 12:22:40 +00:00
|
|
|
Before building, check out the project and the necessary submodules:
|
2015-07-05 05:45:39 +00:00
|
|
|
|
2021-12-22 17:07:09 +00:00
|
|
|
```sh
|
|
|
|
git clone https://github.com/solvespace/solvespace
|
|
|
|
cd solvespace
|
|
|
|
git submodule update --init
|
|
|
|
```
|
2015-07-05 05:45:39 +00:00
|
|
|
|
2020-11-07 20:54:47 +00:00
|
|
|
Build 64-bit SolveSpace with the following:
|
2015-07-05 05:45:39 +00:00
|
|
|
|
2021-12-22 17:07:09 +00:00
|
|
|
```sh
|
|
|
|
mkdir build
|
|
|
|
cd build
|
|
|
|
cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-mingw64.cmake \
|
|
|
|
-DCMAKE_BUILD_TYPE=Release
|
|
|
|
make
|
|
|
|
```
|
2015-07-05 05:45:39 +00:00
|
|
|
|
2021-12-22 17:07:09 +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.
|
|
|
|
|
2021-12-22 17:07:09 +00:00
|
|
|
## Building on macOS
|
2015-03-20 09:34:53 +00:00
|
|
|
|
2018-07-12 13:38:02 +00:00
|
|
|
You will need git, XCode tools and CMake. Git and CMake can be installed
|
|
|
|
via [Homebrew][]:
|
2015-03-20 09:34:53 +00:00
|
|
|
|
2021-12-22 17:07:09 +00:00
|
|
|
```sh
|
|
|
|
brew install git cmake
|
|
|
|
```
|
2015-03-20 09:34:53 +00:00
|
|
|
|
2017-07-21 14:51:52 +00:00
|
|
|
XCode has to be installed via AppStore or [the Apple website][appledeveloper];
|
|
|
|
it requires a free Apple ID.
|
2015-03-20 09:34:53 +00:00
|
|
|
|
2017-08-08 12:22:40 +00:00
|
|
|
Before building, check out the project and the necessary submodules:
|
2016-03-16 20:57:00 +00:00
|
|
|
|
2021-12-22 17:07:09 +00:00
|
|
|
```sh
|
|
|
|
git clone https://github.com/solvespace/solvespace
|
|
|
|
cd solvespace
|
|
|
|
git submodule update --init
|
|
|
|
```
|
2016-03-16 20:57:00 +00:00
|
|
|
|
2015-03-20 09:34:53 +00:00
|
|
|
After that, build SolveSpace as following:
|
|
|
|
|
2021-12-22 17:07:09 +00:00
|
|
|
```sh
|
|
|
|
mkdir build
|
|
|
|
cd build
|
|
|
|
cmake .. -DCMAKE_BUILD_TYPE=Release -DENABLE_OPENMP=ON
|
|
|
|
make
|
|
|
|
```
|
2015-03-20 09:34:53 +00:00
|
|
|
|
2021-12-22 17:07:09 +00:00
|
|
|
Link Time Optimization is supported by adding `-DENABLE_LTO=ON` to cmake at the
|
2021-01-18 19:57:15 +00:00
|
|
|
expense of longer build time.
|
|
|
|
|
2017-07-21 18:20:59 +00:00
|
|
|
Alternatively, generate an XCode project, open it, and build the "Release" scheme:
|
|
|
|
|
2021-12-22 17:07:09 +00:00
|
|
|
```sh
|
|
|
|
mkdir build
|
|
|
|
cd build
|
|
|
|
cmake .. -G Xcode
|
|
|
|
```
|
2017-07-21 18:20:59 +00:00
|
|
|
|
2018-07-17 12:45:38 +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
|
|
|
|
2017-07-21 14:51:52 +00:00
|
|
|
[homebrew]: https://brew.sh/
|
|
|
|
[appledeveloper]: https://developer.apple.com/download/
|
2015-03-20 09:34:53 +00:00
|
|
|
|
2021-12-22 17:07:09 +00:00
|
|
|
## Building on OpenBSD
|
2017-12-16 02:51:43 +00:00
|
|
|
|
|
|
|
You will need git, cmake, libexecinfo, libpng, gtk3mm and pangomm.
|
|
|
|
These can be installed from the ports tree:
|
|
|
|
|
2021-12-22 17:07:09 +00:00
|
|
|
```sh
|
|
|
|
pkg_add -U git cmake libexecinfo png json-c gtk3mm pangomm
|
|
|
|
```
|
2017-12-16 02:51:43 +00:00
|
|
|
|
|
|
|
Before building, check out the project and the necessary submodules:
|
|
|
|
|
2021-12-22 17:07:09 +00:00
|
|
|
```sh
|
|
|
|
git clone https://github.com/solvespace/solvespace
|
|
|
|
cd solvespace
|
2020-12-13 15:28:02 +00:00
|
|
|
git submodule update --init extlib/libdxfrw extlib/mimalloc extlib/eigen
|
2021-12-22 17:07:09 +00:00
|
|
|
```
|
2017-12-16 02:51:43 +00:00
|
|
|
|
|
|
|
After that, build SolveSpace as following:
|
|
|
|
|
2021-12-22 17:07:09 +00:00
|
|
|
```sh
|
|
|
|
mkdir build
|
|
|
|
cd build
|
|
|
|
cmake .. -DCMAKE_BUILD_TYPE=Release
|
|
|
|
make
|
|
|
|
sudo make install
|
|
|
|
```
|
2017-12-16 02:51:43 +00:00
|
|
|
|
|
|
|
Unfortunately, on OpenBSD, the produced executables are not filesystem location independent
|
|
|
|
and must be installed before use. By default, the graphical interface is installed to
|
|
|
|
`/usr/local/bin/solvespace`, and the command-line interface is built as
|
|
|
|
`/usr/local/bin/solvespace-cli`. It is possible to build only the command-line interface
|
|
|
|
by passing the `-DENABLE_GUI=OFF` flag to the cmake invocation.
|
|
|
|
|
2021-12-22 17:07:09 +00:00
|
|
|
## Building on Windows
|
2015-07-05 05:45:39 +00:00
|
|
|
|
2020-05-10 11:57:50 +00:00
|
|
|
You will need [git][gitwin], [cmake][cmakewin] and a C++ compiler
|
|
|
|
(either Visual C++ or MinGW). If using Visual C++, Visual Studio 2015
|
|
|
|
or later is required.
|
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
|
|
|
|
2021-12-22 17:07:09 +00:00
|
|
|
First, ensure that `git` and `cl` (the Visual C++ compiler driver) are in your
|
2016-02-10 10:48:42 +00:00
|
|
|
`%PATH%`; the latter is usually done by invoking `vcvarsall.bat` from your
|
|
|
|
Visual Studio install. Then, run the following in cmd or PowerShell:
|
|
|
|
|
2021-12-22 17:07:09 +00:00
|
|
|
```bat
|
|
|
|
git clone https://github.com/solvespace/solvespace
|
|
|
|
cd solvespace
|
|
|
|
git submodule update --init
|
|
|
|
mkdir build
|
|
|
|
cd build
|
|
|
|
cmake .. -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release
|
|
|
|
nmake
|
|
|
|
```
|
2016-02-10 10:48:42 +00:00
|
|
|
|
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:
|
|
|
|
|
2021-12-22 17:07:09 +00:00
|
|
|
```sh
|
|
|
|
git clone https://github.com/solvespace/solvespace
|
|
|
|
cd solvespace
|
|
|
|
git submodule update --init
|
|
|
|
mkdir build
|
|
|
|
cd build
|
|
|
|
cmake .. -DCMAKE_BUILD_TYPE=Release
|
|
|
|
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
|
|
|
|
2021-12-22 17:07:09 +00:00
|
|
|
## Contributing
|
2016-11-14 02:34:15 +00:00
|
|
|
|
2017-01-02 22:40:36 +00:00
|
|
|
See the [guide for contributors](CONTRIBUTING.md) for the best way to file issues, contribute code,
|
|
|
|
and debug SolveSpace.
|
2016-11-14 02:34:15 +00:00
|
|
|
|
2021-12-22 17:07:09 +00:00
|
|
|
## License
|
2015-03-20 09:34:53 +00:00
|
|
|
|
2021-02-26 04:37:18 +00:00
|
|
|
SolveSpace is distributed under the terms of the [GPL v3](COPYING.txt) or later.
|