Marble 2.0: Difference between revisions
Earthwings (talk | contribs) (Created page with "Refactoring goals towards a Marble 2.0 version. == Marble Library Split == Split libmarblewidget into several libraries: * libMarbleCore ** Non-interactive classes, e.g. geod...") |
Earthwings (talk | contribs) No edit summary |
||
Line 21: | Line 21: | ||
* During compilation, the subdirectories of marble/ are not added to the compiler search path anymore, so #include statements need to use the full path marble/$module/$class.h for files outside their directory. | * During compilation, the subdirectories of marble/ are not added to the compiler search path anymore, so #include statements need to use the full path marble/$module/$class.h for files outside their directory. | ||
* Headers follow the directory structure marble/$module/$path, where $path is either a filename or a directory + filename, but not deeper nested | * Headers follow the directory structure marble/$module/$path, where $path is either a filename or a directory + filename, but not deeper nested | ||
== Qt version dependency bump == | |||
* Require at least Qt 5.0 to avoid a maintenance nightmare | |||
* Require KDE Frameworks 5 (optional, but kdelibs 4.x not supported) | |||
* Require Qt Quick 2.0 (optional, but Qt Quick 1.1 not supported) |
Revision as of 13:01, 19 May 2014
Refactoring goals towards a Marble 2.0 version.
Marble Library Split
Split libmarblewidget into several libraries:
- libMarbleCore
- Non-interactive classes, e.g. geodata, file parsing
- No dependency to QWidgets or Qt Quick
- libMarbleMap
- Interactive, UI toolkit independent classes, e.g. layers, graphicsview
- Dependency to MarbleCore
- No dependency to QWidgets or Qt Quick
- libMarbleWidgets
- QWidget related interactive classes
- Dependency to QWidget, libMarbleMap, libMarbleCore
- libMarbleQuick
- Qt Quick 2.0 related interactive classes
- Dependency to QtQuick, libMarbleMap, libMarbleCore
Header normalization
- The header structure in src/lib/ should match the exported headers in include/. No "flattening" as it happens currently where e.g. marble/geodata/* is copied to /marble/.
- During compilation, the subdirectories of marble/ are not added to the compiler search path anymore, so #include statements need to use the full path marble/$module/$class.h for files outside their directory.
- Headers follow the directory structure marble/$module/$path, where $path is either a filename or a directory + filename, but not deeper nested
Qt version dependency bump
- Require at least Qt 5.0 to avoid a maintenance nightmare
- Require KDE Frameworks 5 (optional, but kdelibs 4.x not supported)
- Require Qt Quick 2.0 (optional, but Qt Quick 1.1 not supported)