diff --git a/Documentation/DeveloperHelpSources/building.docu b/Documentation/DeveloperHelpSources/building.docu
index c6aa0846da65d450124d3a65d2f70209791f5b20..f7545eaba5c6d23db6230ed3695a94e88aba43ce 100644
--- a/Documentation/DeveloperHelpSources/building.docu
+++ b/Documentation/DeveloperHelpSources/building.docu
@@ -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
-- 5.9 >= Qt >= 5.5.1 ( http://www.qt.io/download/ ) Use the OpenGL version for Qt >= 5.0
-- GLEW (>=1.6) ( http://glew.sourceforge.net )
+- 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.
\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.
- First install the required libraries via your linux distributions package management e.g. apt or rpm (for the list of packages see above)
- Extract the source code or get it via git:
- git clone --recursive https://graphics.rwth-aachen.de:9000/OpenFlipper-Free/OpenFlipper-Free.git OpenFlipper
-- Create a build directory (e.g. build) in the toplevel directory:
mkdir build
-- Change to the newly created directory
cd build
and type cmake ..
+ git clone --recursive https://graphics.rwth-aachen.de:9000/OpenFlipper-Free/OpenFlipper-Free.git OpenFlipper-Free
+- Create a build directory (e.g. build) next to the OpenFlipper source directory
mkdir build
+- Change to the newly created directory
cd build
and type cmake ../OpenFlipper-Free
- Now call make to build OpenFlipper
To switch between debug and release build, use
-cmake -DCMAKE_BUILD_TYPE=Release ..
+cmake -DCMAKE_BUILD_TYPE=Release ../OpenFlipper-Free
To change the install path use
-DCMAKE_INSTALL_PREFIX=[path]
@@ -54,33 +51,22 @@ directory.
\subsection cmake_bwin Building OpenFlipper under Windows
-- Get Visual Studio 2008/2010 or 2013 we recommend 2015
-- Get and Install Qt ( >= 5.5.1 , Visual Studio Version matching your installation )
+- Get Visual Studio 2015 or higher (We recommend 2017)
+- Get and Install Qt ( >= 5.8) , Visual Studio Version matching your installation )
- Set the QTDIR Variable to your Qt Installation directory:
- 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.
- Windows Vista/7:
+ Windows Vista/7/10:
Open the Control Panel
Select System and Security -> System -> Advanced System settings
Click on "Advanced" tab
At the bottom click on "Environment Variables"
In the bottom window,check if there is already a QTDIR entry and modify it or use "Add" to create it
Set the path to your QT installation directory
-
- Windows XP:
- Open the Control Panel
- Select System
- Click on "Advanced" tab
- At the bottom click on "Environment Variables"
- In the bottom window,check if there is already a QTDIR entry and modify it or use "Add" to create it
- Set the path to your QT installation directory
- Extract OpenFlipper source code. ( If you want to use svn you can get a free svn client from http://tortoisesvn.net/downloads )
-- Download the glew library and install it (The best way is to install it to c:\\libs\\glew directory ).)
- The c:\\libs\\glew\\lib subdirectory should contain the dll and the *.lib files)
- The headers should be located in the c:\\libs\\glew\\include\\gl subdirectory
- Get cmake for windows from http://www.cmake.org/cmake/resources/software.html
- Start the cmake gui and select the OpenFlipper toplevel directory as source directory
\image html cmake-source.png
@@ -100,8 +86,7 @@ You can change view modes of cmake-gui via the select box on the top.
- Now you can build OpenFlipper from within Visual Studio using the newly created project file by starting Build Solution.
-\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
Install at least the following ports:
qt4-mac +debug
- glew
cmake
br />
As additional ports we recommend the following
@@ -125,9 +109,9 @@ br />
subversion
doxygen
Extract the source code or get it via svn:
- svn co http://www-i8.informatik.rwth-aachen.de/svnrepo/OpenFlipper/branches/Free OpenFlipper
- Create a build directory (e.g. build) in the toplevel directory: mkdir build
- Change to the newly created directory ( cd build
) and type cmake ..
or if you want to build in release mode type cmake -DCMAKE_BUILD_TYPE=Release ..
+ git clone --recursive https://graphics.rwth-aachen.de:9000/OpenFlipper-Free/OpenFlipper-Free.git OpenFlipper-Free
+ Create a build directory (e.g. build) next to the OpenFlipper-Free directory: mkdir build
+ Change to the newly created directory ( cd build
) and type cmake ../OpenFlipper-Free
or if you want to build in release mode type cmake -DCMAKE_BUILD_TYPE=Release ../OpenFlipper-Free
You can also enable bundle creation by adding -DOPENFLIPPER_CALL_FIX_BUNDLE=true
to the cmake command line (If you want a bundle containing all required libraries. Otherwise, the libraries will be used at their original locations.)
Now call make to build OpenFlipper
diff --git a/Documentation/DeveloperHelpSources/example/cmake_plugin_usage.txt b/Documentation/DeveloperHelpSources/example/cmake_plugin_usage.txt
index aa45ddffe54af8c2b849715003ab98abe7fedbcc..748df4a27b922669767850ccf34b06d3a8d8bd24 100644
--- a/Documentation/DeveloperHelpSources/example/cmake_plugin_usage.txt
+++ b/Documentation/DeveloperHelpSources/example/cmake_plugin_usage.txt
@@ -1,35 +1,47 @@
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_ 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_ 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