Development/Building MatterControl
From MatterControl Manual
Revision as of 09:49, 4 December 2015 by MatterHackers (Talk | contribs)
Dependencies
- Git
- Nuget
- .NET Framework or Mono (Usually installed with IDEs)
- Development Environment (MonoDevelop, Visual Studio, Xamarin Studio, etc...)
Quick Summary
~ $ git clone --recursive https://github.com/MatterHackers/MatterControl.git ~ $ cd MatterControl ~/MatterControl (master) $ nuget restore MatterControl.sln ~/MatterControl (master *) $ xbuild MatterControl.sln ~/MatterControl (master) $ mono ./bin/Debug/MatterControl.exe
Detailed Instructions
- Create a new folder for the MatterControl source
mkdir MatterDevelop
- Change to the new directory
cd MatterDevelop
- Checkout the latest source code:
git clone --recursive https://github.com/MatterHackers/MatterControl.git
- Install MonoDevelop.
sudo apt-get install monodevelop
- Add Mono SSL Support - Copy in Mozilla Root certificates to enable NuGet and MatterControl SSL requests
mozroots --import --sync
- Restore NuGet packages - On MonoDevelop 4.0 or older you can install [NuGet Addin](https://github.com/mrward/monodevelop-nuget-addin). If you are on Mint, also install libmono-cairo2.0-cil. Alternatively you can run the command line NuGet application to restore the project packages:
nuget restore MatterControl/MatterControl.sln
- Optionally switch to a target branch
git -C MatterControl/ checkout master
git -C MatterControl/ submodule update --init --recursive
- As a single command line statement:
targetBranch=master && git -C MatterControl/ checkout $targetBranch && git -C MatterControl/ submodule update --init --recursive
- Build MatterControl
mdtool build -c:Release MatterControl/MatterControl.sln
orxbuild MatterCControl/MatterControl.sln
- After MatterControl has been built in MonoDevelop it is recommended that you run the application via command line or via a shell script to invoke mono.
mono MatterControl/bin/Release/MatterControl.exe
- If you'd like to log errors for troubleshooting
mono MatterControl/bin/Release/MatterControl.exe > log.txt
- If you want detailed error logging and tracing
MONO_LOG_LEVEL=debug mono MatterControl/bin/Release/MatterControl.exe > log.txt
- In order for MatterControl to access the serial ports, you will need to give your user the appropriate permissions. On Debian based distros, add yourself to the dialout group. On Arch, add yourself the the uucp and lock groups instead.
gpasswd -a $USER dialout
Serial Helper
- Change to the SerialHelper directory
cd MatterControl/Submodules/agg-sharp/SerialPortCommunication/SerialHelper
- Run the build script
./build.sh
- If your receive errors you may need to install libc6-dev-i386 for x86 compilation
sudo apt-get install libc6-dev-i386
Note: Single command lines statements assume the use of the Bash shell