Commit 31d3efbc authored by Jan Möbius's avatar Jan Möbius

Updated build documentation

parent bac2cff1
......@@ -4,13 +4,12 @@
OpenFlipper is developed on top of the Qt framework. This framework provides
easy cross platform development. Therefore an installed version of QT with
at least version 5.5.1 is required. We use the cmake MakeFile generator to build
at least version 5.8 is required. We use the cmake MakeFile generator to build
OpenFlipper.
\section reqlibs Required libraries
<ul>
<li> 5.9 >= Qt >= 5.5.1 ( http://www.qt.io/download/ ) Use the OpenGL version for Qt >= 5.0</li>
<li> GLEW (>=1.6) ( http://glew.sourceforge.net )</li>
<li> 5.8 <= Qt <= 5.11 ( http://www.qt.io/download/ ) Use the OpenGL version. If you install Qt, please make sure that QtScript is also installed.</li>
</ul>
\section optlibs Optional libraries ( Without these libraries some functionality might not be available)
......@@ -23,12 +22,10 @@ The build system uses cmake to generate all makefiles.
\section build_cmake Building OpenFlipper using Cmake
For the following section CMake >= 2.8.4 has to be installed.
For the following section CMake >= 3.12 has to be installed.
In the toplevel directory of OpenFlipper is a CMakeLists.txt
file that specifies the build configuration and targets. In most cases
this file should be left untouched. Additional functions and environment
settings are to be found in the cmake directory in the toplevel folder.
See following subsections for information on how to build OpenFlipper
file that specifies the build configuration and targets.
See the following subsections for information on how to build OpenFlipper
for your specific operating system.
\subsection cmake_blinux Building OpenFlipper under Linux
......@@ -36,14 +33,14 @@ for your specific operating system.
<ul>
<li> First install the required libraries via your linux distributions package management e.g. apt or rpm (for the list of packages see above)<br />
<li> Extract the source code or get it via git:<br />
<code><b> git clone --recursive https://graphics.rwth-aachen.de:9000/OpenFlipper-Free/OpenFlipper-Free.git OpenFlipper</b></code></li>
<li> Create a build directory (e.g. <b>build</b>) in the toplevel directory: <code><b>mkdir build</b></code></li>
<li> Change to the newly created directory <code><b>cd build</b></code> and type <code><b>cmake ..</b></code></li>
<code><b> git clone --recursive https://graphics.rwth-aachen.de:9000/OpenFlipper-Free/OpenFlipper-Free.git OpenFlipper-Free</b></code></li>
<li> Create a build directory (e.g. <b>build</b>) next to the OpenFlipper source directory <code><b>mkdir build</b></code></li>
<li> Change to the newly created directory <code><b>cd build</b></code> and type <code><b>cmake ../OpenFlipper-Free</b></code></li>
<li> Now call <b>make</b> to build OpenFlipper </li>
</ul>
To switch between debug and release build, use <br />
<b>cmake -DCMAKE_BUILD_TYPE=Release ..</b><br />
<b>cmake -DCMAKE_BUILD_TYPE=Release ../OpenFlipper-Free</b><br />
<br />
To change the install path use<br />
<b>-DCMAKE_INSTALL_PREFIX=[path]</b><br />
......@@ -54,33 +51,22 @@ directory.
\subsection cmake_bwin Building OpenFlipper under Windows
<ul>
<li> Get Visual Studio 2008/2010 or 2013 we recommend 2015 </li>
<li> Get and Install Qt ( >= 5.5.1 , Visual Studio Version matching your installation ) </li>
<li> Get Visual Studio 2015 or higher (We recommend 2017) </li>
<li> Get and Install Qt ( >= 5.8) , Visual Studio Version matching your installation ) </li>
<li> Set the QTDIR Variable to your Qt Installation directory:<br />
<li> For Qt5, you need to add the value "%QTDIR%/bin" to the "Path" variable. Keep in mind: The "QTDIR" variable is the path which includes the "bin", "include", "lib", ... directories.
<br />
<b>Windows Vista/7:</b> <br />
<b>Windows Vista/7/10:</b> <br />
Open the Control Panel<br />
Select System and Security -> System -> Advanced System settings<br />
Click on "Advanced" tab<br />
At the bottom click on "Environment Variables"<br />
In the bottom window,check if there is already a QTDIR entry and modify it or use "Add" to create it<br />
Set the path to your QT installation directory<br />
<br />
<b>Windows XP:</b> <br />
Open the Control Panel<br />
Select System<br />
Click on "Advanced" tab<br />
At the bottom click on "Environment Variables"<br />
In the bottom window,check if there is already a QTDIR entry and modify it or use "Add" to create it<br />
Set the path to your QT installation directory<br />
<br />
</li>
<li> Extract OpenFlipper source code. ( If you want to use svn you can get a free svn client from http://tortoisesvn.net/downloads ) </li>
<li> Download the glew library and install it (The best way is to install it to c:\\libs\\glew directory ).)<br />
The c:\\libs\\glew\\lib subdirectory should contain the dll and the *.lib files)<br />
The headers should be located in the c:\\libs\\glew\\include\\gl subdirectory</li>
<li> Get cmake for windows from http://www.cmake.org/cmake/resources/software.html </li>
<li> Start the cmake gui and select the OpenFlipper toplevel directory as source directory </li>
\image html cmake-source.png
......@@ -100,8 +86,7 @@ You can change view modes of cmake-gui via the select box on the top. </li>
<li> Now you can build OpenFlipper from within Visual Studio using the newly created project file by starting Build Solution. </li>
</ul>
\note If you want to build OpenFlipper as release on windows, you don't have to set the CMAKE_BUILD_TYPE variable to "Release" before configuring
generating the Visual Studio solution file. Instead, choose the build type "Release" in Visual Studio and build the solution. Console outputs are only available in Visual Studio, when the "Debug" configuration is selected, or the -c option is passed as command line option.
\note If you want to build OpenFlipper as release on windows, you don't have to set the CMAKE_BUILD_TYPE variable to "Release" before configuring generating the Visual Studio solution file. Instead, choose the build type "Release" in Visual Studio and build the solution. Console outputs are only available in Visual Studio, when the "Debug" configuration is selected, or the -c option is passed as command line option.
\note If you want to use the intel 16 compiler with VS2013 or newer you can do so by specifying the toolset for cmake and enabling c++11 for intel 16 (e.g. set CXXFLAGS="/Qstd=c++0x" and run cmake with the command line argument -T"Intel C++ Compiler 16.0")
......@@ -116,7 +101,6 @@ Don't forget setting up the "OpenFlipper" target as startup project as shown in
<br />
Install at least the following ports: <br />
qt4-mac +debug<br />
glew<br />
cmake<br />
br />
As additional ports we recommend the following<br />
......@@ -125,9 +109,9 @@ br />
subversion<br />
doxygen<br />
<li> Extract the source code or get it via svn:<br />
<code><b> svn co http://www-i8.informatik.rwth-aachen.de/svnrepo/OpenFlipper/branches/Free OpenFlipper</b></code></li>
<li> Create a build directory (e.g. <b>build</b>) in the toplevel directory: <code><b>mkdir build</b></code></li>
<li> Change to the newly created directory ( <code><b>cd build</b></code> ) and type <code><b>cmake ..</b></code> or if you want to build in release mode type <code><b> cmake -DCMAKE_BUILD_TYPE=Release ..</b></code>
<code><b> git clone --recursive https://graphics.rwth-aachen.de:9000/OpenFlipper-Free/OpenFlipper-Free.git OpenFlipper-Free</b></code></li>
<li> Create a build directory (e.g. <b>build</b>) next to the OpenFlipper-Free directory: <code><b>mkdir build</b></code></li>
<li> Change to the newly created directory ( <code><b>cd build</b></code> ) and type <code><b>cmake ../OpenFlipper-Free</b></code> or if you want to build in release mode type <code><b> cmake -DCMAKE_BUILD_TYPE=Release ../OpenFlipper-Free</b></code>
<br />
You can also enable bundle creation by adding <code><b>-DOPENFLIPPER_CALL_FIX_BUNDLE=true</b></code> to the cmake command line (If you want a bundle containing all required libraries. Otherwise, the libraries will be used at their original locations.) </li>
<li> Now call <b>make</b> to build OpenFlipper </li>
......
openflipper_plugin ( [DIRS dir1 dir2 ...]
[TYPES type1 type2 ...]
[OPT_TYPES type1 type2 ...]
[DEPS dep1 dep2 ...]
[OPTDEPS dep1 dep2 ...]
[LDFLAGSADD flag1 flag2 ...]
[CFLAGSADD flag1 flag2 ...]
[CDEFINITIONSADD definition1 definition2 ...]
[LIBRARIES lib1 lib2 ...]
[ADD_CORE_APP_LIBRARIES lib1 lib2 ...]
[LIBDIRS dir1 dir2 ...]
[INCDIRS dir1 dir2 ...]
[ADDSRC file1 file2 ...]
[INSTALLDATA dir1 dir2 ...]
[TRANSLATION_LANGUAGES lang1 lang2 ...]
[TRANSLATION_ADDFILES file1 file2 ...]
[LICENSEMANAGER])
DIRS = additional directories with source files
DEPS = required dependencies for find_package macro
OPTDEPS = optional dependencies for find_package macro, if found, define ENABLE_<Depname> will be set automatically
LDFLAGSADD = flags added to the link command
CFLAGSADD = flags added to the compile command
LIBRARIES = libraries added to link command
LIBDIRS = additional link directories
INCDIRS = additional include directories
ADDSRC = additional source files
INSTALLDATA = directories that will be installed into the openflipper data directory
[LICENSEMANAGER]
[PYTHONINTERFACE] )
DIRS = additional directories with source files
TYPES = List of datatypes required by this plugin (uppercase)
OPT_TYPES = List of optional datatypes for this plugin (uppercase)
DEPS = required dependencies for find_package macro
OPTDEPS = optional dependencies for find_package macro, if found, a define ENABLE_<Depname> will be added automatically
LDFLAGSADD = flags added to the link command
CFLAGSADD = flags added to the compile command
CDEFINITIONSADD = definitions added to the compile command
LIBRARIES = libraries added to link command
ADD_CORE_APP_LIBRARIES = libraries added to be linked to the core app
LIBDIRS = additional link directories
INCDIRS = additional include directories
ADDSRC = additional source files
INSTALLDATA = directories that will be installed into the openflipper data directory
GLEWDEFINITIONS = Checks glew if it defines the given definitions
TRANSLATION_LANGUAGES = language codes for translation
TRANSLATION_ADDFILES = additional files that should be included into the translation files
LICENSEMANAGER = Compile plugin with license management
LICENSEMANAGER = Compile plugin with license management
PYTHONINTERFACE = if defined, the plugin will try to build a python interface which has to be in a subdirectory called PythonInterface
Plugins can implement a acg_list_filter ("listname") macro to filter out
unneeded headers, sources and ui files from the autogenerated
unneeded headers, sources and ui files from the autogenerated
build sources lists (see common.cmake drop_templates macro)
Translations
......@@ -37,10 +49,12 @@ Create a subdirectory called translations in your Plugin directory
The *.ts files there will be used for the translations
Special DEPS:
CUDA:
CUDA:
If your plugin requires cuda, add "CUDA" to the list of dependencies
and create a subdir called Cuda in your plugin directory
The files in this directory will be compiled by nvcc and linked
into the plugin
The variables PLUGIN_${plugin}_MISSING_DEPS indicate whether any mandatory
dep
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment