BUG: Introduce application properties, differentiate Slicer and main app version
Created by: jcfr
This commit improves how custom application specify there version. Previously, custom application were overriding variables like Slicer_VERSION_MAJOR and this was causing build error because the #ifdef" using these variables were not correct anymore.
With this change custom Slicer application can have their own metadata (version number, description, ...) in addition of the Slicer ones.
To address this, this commit introduces application properties file and its companion CMake function "SlicerReadApplicationProperties". This allows to read the properties of a "Slicer application" before having to process the corresponding sources. By using this new CMake function in the SlicerApplicationOptions module included early in the custom application CMakeLists.txt, this allows to display the application metadata without duplicating much code.
The vtkSlicerVersionConfigure.h was extented to include include these new macros:
- Slicer_MAIN_PROJECT_VERSION
- Slicer_MAIN_PROJECT_VERSION_FULL
- Slicer_MAIN_PROJECT_BUILDDATE
- Slicer_MAIN_PROJECT_WC_URL
- Slicer_MAIN_PROJECT__WC_REVISION
when building Slicer, these macros are equivalent to Slicer_VERSION, Slicer_VERSION_FULL, ...