= Quick guide: Download and build the sources = [[PageOutline]] == For the impatient == * Download the [[http://builder.heuristiclab.com:8080/repository/download/bt11/.lastSuccessful/HeuristicLab%20stable%20sources%20r%7Bbuild.number%7D.zip?guest=1|stable branch source zip]] * Build `HeuristicLab.ExtLibs.sln` then build `HeuristicLab 3.3.sln` For the not so impatient, the rest of this quick guide covers how to obtain and set up the development environment in order to extend HeuristicLab with new plugins. If you have troubles please check the [[Documentation/FAQ|FAQ]]. HL core developers should familiarize them with the build process, but must use the SVN repository (see "For the experienced"). == Obtaining the source == [[Image(StableRoot.png, 45%, align=right, margin-left=30)]] We will use the sources of the //current stable build// as these can be built without any prerequisites. You require a current version of Visual Studio or SharpDevelop and the .NET framework. * Download the [[http://builder.heuristiclab.com:8080/repository/download/bt11/.lastSuccessful/HeuristicLab%20stable%20sources%20r%7Bbuild.number%7D.zip?guest=1|stable branch source zip]] * Unpack it into the folder `HeuristicLab\stable` somewhere on your hard drive We will refer to the HeuristicLab folder as //HLRoot//, likewise we'll call the stable folder //StableRoot//. The explorer should look like in the image to the right. * Create a new folder `extension` in HLRoot for your own plugins == Building HeuristicLab == '''Important:''' HeuristicLab is split into two solutions. The one that rarely changes and needs to be built first is called `HeuristicLab.ExtLibs.sln`. The second one that changes more often is called `HeuristicLab 3.3.sln`. The rest can be ignored for now. Both solutions build into a common `bin` folder directly inside StableRoot. ''All assembly references to plugins that are not projects of the same solution reference assemblies in that bin folder.'' === Option 1: Using the Build.cmd script === [[Image(buildcmd.png, align=right, margin-left=30)]] If you have Visual Studio 2012, Visual Studio 2012 Express, or later installed you can use the Build.cmd script in StableRoot. Visual Studio 2012 Express is free, but does not support unit tests. * Double click Build.cmd and type the number associated with HeuristicLab.ExtLibs.sln Then hit and each time it prompts again. Default options are given in brackets []. * Double click Build.cmd again and type the number associated with HeuristicLab 3.3.sln You now have built HeuristicLab and its plugins into `StableRoot\bin`. === Option 2: Using an IDE === Building using Visual Studio or SharpDevelop requires that you build the solutions in the correct order. The HeuristicLab 3.3.sln is quite large, please be patient until it is loaded. Solutions in Visual Studio can be built by pressing , in SharpDevelop the shortcut is . * Open and build `HeuristicLab.ExtLibs.sln` * Open and build `HeuristicLab 3.3.sln` === Adding a shortcut === It is convenient to add a shortcut to the `HeuristicLab.exe` file that directly starts the Optimizer and bypasses the starter window. * Create a shortcut from `StableRoot\bin\HeuristicLab.exe` by right-clicking it and choosing "Create Shortcut" * Open the properties of the new shortcut by right-clicking it * Append the following switches `/start:Optimizer /hideStarter` to the "Target" box * Move the shortcut to HLRoot or another convenient place and rename it to "HeuristicLab 3.3 Optimizer" == Creating a new plugin == If you want to extend HeuristicLab with own plugins, please have a look at the following quick guides which explain this process using either Visual Studio or SharpDevelop. * Follow the instructions on how to [[Documentation/DevelopmentCenter/CreateNewPluginUsingVS|create HeuristicLab plugins with Visual Studio]] * Follow the instructions on how to [[Documentation/DevelopmentCenter/CreateNewPluginUsingSD|create HeuristicLab plugins with SharpDevelop]] == For the experienced == At some point it might be beneficial for you to build against the code in our SVN repositories or fork the project on GitHub. For SVN you'll have to install [[http://tortoisesvn.net|Tortoise SVN]] because the build process makes use of one of its tools (SubWCRev). You need to have the bin folder of TortoiseSVN (usually `C:\Program Files\TortoiseSVN\bin`) in your PATH environment variable. Changing the PATH variable requires you to re-login to your Windows account to put them into effect. * SVN repository stable branch: [[https://svn.heuristiclab.com/svn/core/stable]] (recommended: tested and reviewed changes only) * SVN repository main trunk: [[https://svn.heuristiclab.com/svn/core/trunk/sources]] (not recommended: frequent and unreviewed changes, moderate testing) * Full SVN repository: [[https://svn.heuristiclab.com/svn/core]] (only for HL core developers! It is recommended to perform a partial checkout and exclude several or all branches, but not the branches directory itself) * GitHub: [[https://github.com/HeuristicLab/HeuristicLab]] (only releases are pushed to GitHub - note that we do not accept pull requests on GitHub, we only use it for publishing)