Changes between Version 1 and Version 2 of CMake


Ignore:
Timestamp:
Oct 22, 2011, 6:44:50 PM (13 years ago)
Author:
Mateusz Łoskot
Comment:

Formatting

Legend:

Unmodified
Added
Removed
Modified
  • CMake

    v1 v2  
    1616
    1717The basic idea is outlined below:
    18 * GDAL is formed of core implementation and large number of configurable modules (drivers).
    19 * GDAL depends on large number of third-party software libraries.
    20 * There is 1:1 dependency between GDAL driver and third-party library. Many drivers share common dependencies like zlib or libjpeg libraries.
    21 * I suggest to divide configuration into three steps (see SOCI approach):
    22   1. Basic configuration which determines architecture, system, building toolset, etc.
    23   2. Look for all third-party libraries used by GDAL, required and optional.
    24   3. Depending on results of the step 2., switch on/off building of GDAL features and drivers.
    25 * If any of GDAL dependencies (third-party libraries) are explicitly switched off, then relevant lookup in step 2. is skipped.
    26 * If any of GDAL features or drivers are explicitly switched off, then it does not affect lookup in step 2. but only decisions in step 3. Means, lookup of corresponding dependencies is performed.
    27 * This way we don't care about solving the whole graph dependencies.
    28   * For example, if user switches off JPEG driver, We don't want to have to check: are there any other drivers enabled that depend on libjpeg? Shall we turn off libjpeg lookup?
    29   * Disabling a driver is decision that solely affects step 3. but does not affect any part of step 2.
    30   * But, configuration choices by user which switch off/on dependencies lookup in step 2. will do affect checks performed in step 3. automatically.
    31   * For example, if user switches off libjpeg, then all features and drivers depending on JPEG support will be switched off automatically in step 3.
     18 * GDAL is formed of core implementation and large number of configurable modules (drivers).
     19 * GDAL depends on large number of third-party software libraries.
     20 * There is 1:1 dependency between GDAL driver and third-party library. Many drivers share common dependencies like zlib or libjpeg libraries.
     21 * I suggest to divide configuration into three steps (see SOCI approach):
     22   1. Basic configuration which determines architecture, system, building toolset, etc.
     23   2. Look for all third-party libraries used by GDAL, required and optional.
     24   3. Depending on results of the step 2., switch on/off building of GDAL features and drivers.
     25 * If any of GDAL dependencies (third-party libraries) are explicitly switched off, then relevant lookup in step 2. is skipped.
     26 * If any of GDAL features or drivers are explicitly switched off, then it does not affect lookup in step 2. but only decisions in step 3. Means, lookup of corresponding dependencies is performed.
     27 * This way we don't care about solving the whole graph dependencies.
     28   * For example, if user switches off JPEG driver, We don't want to have to check: are there any other drivers enabled that depend on libjpeg? Shall we turn off libjpeg lookup?
     29   * Disabling a driver is decision that solely affects step 3. but does not affect any part of step 2.
     30   * But, configuration choices by user which switch off/on dependencies lookup in step 2. will do affect checks performed in step 3. automatically.
     31   * For example, if user switches off libjpeg, then all features and drivers depending on JPEG support will be switched off automatically in step 3.
    3232