Difference between revisions of "AnyWave:DeveloperCorner"

From WikiMEG
Jump to: navigation, search
 
(113 intermediate revisions by one user not shown)
Line 1: Line 1:
 +
__NOTOC__
 
=Welcome=
 
=Welcome=
This part of the Wiki is dedicated to developers who would like to implement their own plug-ins for AnyWave.
+
This part of the Wiki is dedicated to developers who would like to implement their own plug-ins for AnyWave.<br />
 
+
{| style="text-align: center; margin: auto;"
=[[AnyWave:BuildSDK|Build the SDK]]=
+
|+ Quick Navigation
Before developing a plug-in for AnyWave, the developer must download and build the SDK.<br />
+
|-
The SDK is available here: https://github.com/anywave/aw-sdk<br />
+
| [[File:Menu_matlab_plugin.png|400px|link=AnyWave:MATLAB_Plugin|'''Write a MATLAB Plugin''']] || [[File:Menu_cpp_plugin.png|400px|link=AnyWave:Cpp_Plugin|'''Write a c++ Plugin''']]
Note that you can also try to build the complete AnyWave software which includes the SDK.<br />
+
|-
AnyWave git repository is available here: https://github.com/anywave/anywave<br />
+
| [[File:Menu_matlab_batch.png|400px|link=AnyWave:Plugin_Batch|'''Make your plugin batchable''']] || [[File:Menu_matlab_batch_gui_compatible.png|400px|link=AnyWave:MATLAB_Batch_GUI|'''Make your plugin compatible with the batch GUI of AnyWave''']]
 
+
|}
==Clone the SDK repository==
+
We suggest cloning the repository in a folder named '''AwSDK_src''' (for example) to make a clear difference between source folder and build folder.
+
 
+
* On Linux or Mac systems this can be done in a terminal with the following command: '''git clone https://github.com/anywave/sdk AwSDK_src'''
+
* On Windows, we strongly suggest to install the TortoiseGit Software, freely available at https://code.google.com/p/tortoisegit/wiki/Download
+
 
+
==Software requirements==
+
A C/C++ compiler is required. Linux and Mac versions of AnyWave were built using the gcc/g++ compiler which is the most common compiler on these platforms.<br />
+
 
+
The Windows version was built with '''Visual Studio 2008''', so it is strongly advised to use the same IDE to build plug-ins that will run with the Windows version of AnyWave.<br />
+
However, it is possible to rebuild the complete AnyWave application using another C++ compiler and to set that version as the SDK to build plug-ins.<br />
+
This choice will raise a binary incompatibility with the distributed Windows package and the developed plug-ins. See AnyWave compatibility section.
+
 
+
On Mac OS X, '''XCode''' must be installed to provide access to the gcc/g++ compiler.<br />
+
'''XCode.app''' is freely available on the App Store.
+
 
+
To successfully build the SDK, at least three software must be installed on the computer:
+
* The Qt4 framework
+
* The VTK library (version 5.4.2 to 5.8 will work)
+
* CMake 2.8 or greater.
+
 
+
===Qt Framework===
+
Mac Developers can download the Qt framework here: [http://meg.univ-amu.fr/AnyWave/qt-mac-opensource-4.8.5.dmg Qt Framework for Mac]
+
 
+
Linux developers can install the Qt frameworks by installing the qt4-dev-tools package.
+
 
+
Windows developers can download source versions of Qt here: http://download.qt.io/archive/qt/4.8/4.8.6/
+
 
+
Build Qt from source with Visual Studio to match the binary version of AnyWave.
+
 
+
===VTK Library===
+
Have a look at the [http://www.vtk.org/Wiki/VTK/Configure_and_Build#On_Unix-like_operating_systems VTK Wiki page] to build VTK for your system.
+
 
+
Note that you must build the VTK versions 5.4 to 5.8.
+
 
+
Versions 6.x are not compatible with the current version of AnyWave.
+
 
+
===AnyWave compatibility===
+
When building a plug-in, the developer has two choices:
+
* Build for the currently distributed binary version of AnyWave.
+
* Build for its own AnyWave version built from the sources available on github.
+
 
+
====Plug-ins for the binary distributed package of AnyWave====
+
Pay attention that if the plug-in must work with the distributed binary versions of AnyWave it must match more requirements:
+
* Qt4 must be 4.8.2 to work with the Linux debian packaged version of AnyWave.
+
* Qt4 must be 4.8.1 to 4.8.5 to work with the Mac OS X version.
+
* Qt4 must be 4.8.1 to 4.8.6 to work with the Windows versions. (Note that the Windows version will soon only support 64bit systems)
+
* VTK library must be 5.4.2 to 5.8.xx (VTK 6.x will not work)
+
 
+
The Linux and Mac versions have been built with the gcc compiler and therefore will use the glibc library.<br />
+
On Mac systems, the XCode software must be installed to get access to the gcc compiler.
+
 
+
'''ATTENTION:''' The Windows version of AnyWave was built with Visual Studio 2008. Therefore, the plug-in must also be built using Visual Studio 2008 for binary compatibility.
+
 
+
====Plug-ins for the developer version of AnyWave====
+
If a developer plans to build plug-ins that will stay private, it is up to him/her not to match the requirements previously mentioned.
+
 
+
==Building AnyWave from sources and use it as the SDK==
+
As mentioned before, the developer is free to use the complete AnyWave source code as SDK.<br />
+
The requirements to build AnyWave are the same than for the SDK.<br />
+
Follow the instructions available when cloning [https://github.com/anywave/anywave the anywave repository] to build AnyWave.
+
 
+
==Choose the SDK folder==
+
The first thing to do is to create a build folder with an explicit name, for example: '''AwSDK''', that will be the root of the SDK.<br />
+
 
+
We will consider for the following explanations that the folder is named '''AwSDK''' and is located in '''/home/user/Dev/AwSDK'''<br />
+
We will consider that the git repository was cloned in a folder named '''AwSDK_src'''
+
 
+
===Run cmake===
+
Open a terminal and go to the SDK folder:<br />
+
''cd /home/user/Dev/AwSDK''
+
 
+
Launch cmake from the source repository:<br />
+
''cmake ../AwSDK_src''
+
 
+
If Qt and VTK were successfully detected, then type:<br />
+
''make install''
+
 
+
This will build install headers and libraries in the AwSDK folder.<br />
+
You are ready to build a plug-in.
+
 
+
=How to use the SDK=
+
A regular AnyWave plug-in is a C++ project that will be using C++ objects defined in the SDK.<br />
+
 
+
So, before creating a project to build a plug-in, the SDK must be correctly configured.<br />
+
This is easily done by defining an environment variable called '''AWSDK''' that must contain the path to the SDK folder location.<br />
+
 
+
On Linux and Mac systems this can be accomplished by adding the two following lines to your .bashrc file:<br />
+
''AWSDK=/home/user/Dev/AwSDK''<br />
+
''export AWSDK''
+
 
+
On Windows, this can be done by opening the Security and System/System panel. <br />
+
Then click on the left part of the window on Advanced properties.<br />
+
 
+
'''NOTE:''' close and re-open the terminal for the changes to be applied.
+
 
+
=[[AnyWave:PrepareCMake|Prepare a cmake project to build a plugin]]=
+

Latest revision as of 16:14, 21 April 2020

Welcome

This part of the Wiki is dedicated to developers who would like to implement their own plug-ins for AnyWave.

Quick Navigation
Write a MATLAB Plugin Write a c++ Plugin
Make your plugin batchable Make your plugin compatible with the batch GUI of AnyWave