Changes between Version 10 and Version 11 of Documentation/DevelopmentCenter/DownloadAndBuildSource


Ignore:
Timestamp:
06/26/14 10:47:35 (5 years ago)
Author:
abeham
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Documentation/DevelopmentCenter/DownloadAndBuildSource

    v10 v11  
    1 This quickstart covers how to obtain and set up the development environment in order to start extending HeuristicLab. The following points will be treated
     1== For the impatient ==
    22
    3  * Obtaining the source
    4  * Building HeuristicLab
    5  * Creating our own plugin
    6  * For the experienced
     3 * 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]]
     4 * Build `HeuristicLab.ExtLibs.sln` then build `HeuristicLab 3.3.sln`
     5
     6For the not so impatient, this quickstart covers how to obtain and set up the development environment in order to extend HeuristicLab. If you have troubles please check the [[Documentation/FAQ|FAQ]].
    77
    88== Obtaining the source ==
    99[[Image(StableRoot.png, 45%, align=right, margin-left=30)]]
    1010
    11 Here we will use the sources of the current stable build. The advantage is that these can be built without any prerequisites. You only require a current version of Visual Studio or SharpDevelop and the .NET framework.
     11We 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.
    1212
    13  * Download the latest stable branch sources: [[http://builder.heuristiclab.com:8080/repository/download/bt11/.lastSuccessful/HeuristicLab%20stable%20sources%20r%7Bbuild.number%7D.zip?guest=1| Source zip]]
    14  * Unpack the archive into the folder HeuristicLab\stable somewhere on your hard drive
     13 * 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]]
     14 * Unpack it into the folder `HeuristicLab\stable` somewhere on your hard drive
    1515
    16 We will refer to the HeuristicLab folder as //HLRoot//, likewise we'll call the stable folder //StableRoot//. Please remember where HLRoot is located. The explorer should look like in the image to the right.
     16We 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.
    1717
    1818== Building HeuristicLab ==
    19 There are two important solutions in the StableRoot. The one that needs to be built first is called `HeuristicLab.ExtLibs.sln`. This will create a `bin` folder directly in StableRoot and add plugins of external libraries to which the rest of HeuristicLab depends upon. After this has been built successfully, `HeuristicLab 3.3.sln` will be used to build the main application. This will also add plugins and the HeuristicLab.exe into the common `bin` folder.
    2019
    21 === Using the Build.cmd script ===
     20'''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. Read that again.
     21
     22=== Option 1: Using the Build.cmd script ===
    2223[[Image(buildcmd.png, align=right, margin-left=30)]]
    2324
    2425If you have Visual Studio 2012 or later installed you can use the Build.cmd script in StableRoot.
    2526
    26  * Double click Build.cmd and type the number that is associated with the HeuristicLab.ExtLibs.sln
     27 * Double click Build.cmd and type the number associated with HeuristicLab.ExtLibs.sln
    2728
    28 Then hit <Enter> and each time it prompts for configuration, platform and if a clean should be performed. It will then perform a Release build not specific to a CPU architecture.
     29Then hit <Enter> and each time it prompts again. Default options are given in brackets [].
    2930
    30  * Double click Build.cmd again and this time type the number associated with the HeuristicLab 3.3.sln solution.
     31 * Double click Build.cmd again and type the number associated with HeuristicLab 3.3.sln
    3132
    32 Perform the same steps as above and the build should succeed. You now have built HeuristicLab into StableRoot\bin. We can now write our own plugin and link against these assemblies.
     33You now have built HeuristicLab and its plugins into `StableRoot\bin`.
    3334
    34 In the next section we will set up a new solution and add our own plugin.
     35=== Option 2: Using an IDE ===
    3536
    36 === Using an IDE ===
     37Building 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 <F6>, in SharpDevelop the shortcut is <F8>.
    3738
    38 Building using Visual Studio or SharpDevelop is very simple and only 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.
     39 * Open and build `HeuristicLab.ExtLibs.sln`
     40 * Open and build `HeuristicLab 3.3.sln`
    3941
    40  * Open the solution file HeuristicLab.ExtLibs.sln and build it
    41  * Open the solution file HeuristicLab 3.3.sln and build it
     42=== Adding a shortcut ===
     43
     44It is convenient to add a shortcut to the `HeuristicLab.exe` file that directly starts the Optimizer and bypasses the starter window.
     45
     46 * Create a shortcut from `StableRoot\bin\HeuristicLab.exe` by right-clicking it and choosing "Create Shortcut"
     47 * Open the properties of the new shortcut by right-clicking it
     48 * Append the following switches `/start:Optimizer /hideStarter` to the "Target" box
     49 * Move the shortcut to HLRoot or another convenient place and rename it to "HeuristicLab 3.3 Optimizer"
    4250
    4351== Creating our own plugin ==
    4452
    45 We now want to extend the functionality of HeuristicLab. For this purpose we add a new folder "extension" to the StableRoot.
     53We now want to extend the functionality of HeuristicLab.
     54
     55 * Create a new folder `extension` in HLRoot
     56
     57=== New plugin with Visual Studio ===
     58
     59=== New plugin with SharpDevelop ===
     60
     61We can now build HeuristicLab and extends it with own plugins. Below are some remarks for experienced developers.
    4662
    4763== For the experienced ==
    48 At some point it might be beneficial for you to build against the code in our SVN repositories. The advantage is that you can update it and get new features as we release them. Also you will get notice of breaking changes to our API earlier. 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 binary path (bin) of TortoiseSVN (usually `C:\Program Files\TortoiseSVN\bin`) in your PATH environment variable.
     64At some point it might be beneficial for you to build against the code in our SVN repositories. The advantage is that you can update it and get new features as we release them. Also you will get notice of breaking changes to our API earlier. 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 binary path (bin) 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.
    4965
    50  * Check out the SVN repository of the stable branch at `​http://dev.heuristiclab.com/svn/hl/core/stable`.
     66 * Stable branch: `​http://dev.heuristiclab.com/svn/hl/core/stable` (recommended, tested and reviewed changes only)
     67 * Main trunk: `http://dev.heuristiclab.com/svn/hl/core/trunk/sources` (not recommended, frequent and unreviewed changes, moderate testing)
    5168