Line data Source code
1 : /****************************************************************************** 2 : * 3 : * Project: GDAL Core 4 : * Purpose: Implementation of GDALAllRegister(), primary format registration. 5 : * Author: Frank Warmerdam, warmerdam@pobox.com 6 : * 7 : ****************************************************************************** 8 : * Copyright (c) 1998, Frank Warmerdam 9 : * Copyright (c) 2007-2014, Even Rouault <even dot rouault at spatialys.com> 10 : * 11 : * SPDX-License-Identifier: MIT 12 : ****************************************************************************/ 13 : 14 : #include "gdal_priv.h" 15 : #include "gdal_frmts.h" 16 : #include "ogrsf_frmts.h" 17 : 18 : #ifdef GNM_ENABLED 19 : #include "gnm_frmts.h" 20 : #endif 21 : 22 : #if defined(HAVE_EXTERNAL_DEFERRED_PLUGINS) 23 : // The above define and the below functions are set and generated by 24 : // frmts/CMakeLists.txt when a CMake ADD_EXTERNAL_DEFERRED_PLUGIN_XXXX 25 : // variable is set. 26 : extern "C" void DeclareExternalDeferredPlugins(void); 27 : #endif 28 : 29 : extern "C" void CPL_DLL GDALRegister_raw_no_sidecar(); 30 : extern "C" void CPL_DLL GDALRegister_raw_with_sidecar(); 31 : 32 : /************************************************************************/ 33 : /* GDALRegisterPlugin() */ 34 : /* */ 35 : /* Register a plugin by name, returning an error if not found */ 36 : /************************************************************************/ 37 : 38 : /** 39 : * \brief Register a plugin by name, returning an error if not found 40 : * 41 : * This function will call GDALDriverManager::LoadPlugin() to register a 42 : * specific plugin by name. 43 : * 44 : * This method is intended to be called instead of GDALAllRegister() or 45 : * GDALRegisterPlugins() when fine tuning which drivers are needed at runtime. 46 : * 47 : * @see GDALDriverManager::LoadPlugin() 48 : * @see GDALDriverManager::AutoLoadDrivers() 49 : * @since GDAL 3.8 50 : */ 51 1 : CPLErr GDALRegisterPlugin(const char *name) 52 : { 53 1 : auto poDriverManager = GetGDALDriverManager(); 54 : // LoadPlugin is a no-op if compiled with GDAL_NO_AUTOLOAD defined. 55 1 : return poDriverManager->LoadPlugin(name); 56 : } 57 : 58 : /************************************************************************/ 59 : /* GDALRegisterPlugins() */ 60 : /* */ 61 : /* Register drivers and support code available as a plugin. */ 62 : /************************************************************************/ 63 : 64 : /** 65 : * \brief Register drivers and support code available as a plugin. 66 : * 67 : * This function will call GDALDriverManager::AutoLoadDrivers() to 68 : * register all drivers or supporting code (for example VRT pixelfunctions 69 : * or VSI adapters) that have not been compiled into the GDAL core but instead 70 : * are made available through GDAL's plugin mechanism. 71 : * 72 : * This method is intended to be called instead of GDALAllRegister() when 73 : * fine tuning which drivers are needed at runtime. 74 : * 75 : * @see GDALDriverManager::AutoLoadDrivers() 76 : * @since GDAL 3.8 77 : */ 78 1 : void CPL_DLL GDALRegisterPlugins(void) 79 : { 80 1 : auto poDriverManager = GetGDALDriverManager(); 81 : // AutoLoadDrivers is a no-op if compiled with GDAL_NO_AUTOLOAD defined. 82 1 : poDriverManager->AutoLoadDrivers(); 83 1 : poDriverManager->AutoLoadPythonDrivers(); 84 : 85 : /* -------------------------------------------------------------------- */ 86 : /* Deregister any drivers explicitly marked as suppressed by the */ 87 : /* GDAL_SKIP environment variable. */ 88 : /* -------------------------------------------------------------------- */ 89 1 : poDriverManager->AutoSkipDrivers(); 90 : 91 1 : poDriverManager->ReorderDrivers(); 92 1 : } 93 : 94 : /************************************************************************/ 95 : /* GDALAllRegister() */ 96 : /* */ 97 : /* Register all identifiably supported formats. */ 98 : /************************************************************************/ 99 : 100 : /** 101 : * Register all known configured GDAL drivers. 102 : * 103 : * This function will drive any of the following that are configured into 104 : * GDAL. See <a href="http://gdal.org/formats_list.html">raster list</a> and 105 : * <a href="http://gdal.org/ogr_formats.html">vector full list</a> 106 : * 107 : * This function should generally be called once at the beginning of the 108 : * application. 109 : */ 110 : 111 2068 : void CPL_STDCALL GDALAllRegister() 112 : 113 : { 114 2068 : auto poDriverManager = GetGDALDriverManager(); 115 : 116 : #if defined(HAVE_EXTERNAL_DEFERRED_PLUGINS) 117 : DeclareExternalDeferredPlugins(); 118 : #endif 119 : 120 : #if defined(DEFERRED_ARROW_DRIVER) 121 2068 : DeclareDeferredOGRArrowPlugin(); 122 : #endif 123 : #if defined(DEFERRED_BASISU_KTX2_DRIVER) 124 2068 : DeclareDeferredBASISU_KTX2Plugin(); 125 : #endif 126 : #if defined(DEFERRED_CAD_DRIVER) 127 2068 : DeclareDeferredOGRCADPlugin(); 128 : #endif 129 : #if defined(DEFERRED_CARTO_DRIVER) 130 : DeclareDeferredOGRCartoPlugin(); 131 : #endif 132 : #if defined(DEFERRED_DDS_DRIVER) 133 : DeclareDeferredDDSPlugin(); 134 : #endif 135 : #if defined(DEFERRED_DWG_DRIVER) 136 : DeclareDeferredOGRDWGPlugin(); 137 : DeclareDeferredOGRDGNV8Plugin(); 138 : #endif 139 : #if defined(DEFERRED_ELASTIC_DRIVER) 140 : DeclareDeferredOGRElasticPlugin(); 141 : #endif 142 : #if defined(DEFERRED_EXR_DRIVER) 143 2068 : DeclareDeferredEXRPlugin(); 144 : #endif 145 : #if defined(DEFERRED_ECW_DRIVER) 146 2068 : DeclareDeferredECWPlugin(); 147 : #endif 148 : #if defined(DEFERRED_FILEGDB_DRIVER) 149 2068 : DeclareDeferredOGRFileGDBPlugin(); 150 : #endif 151 : #if defined(DEFERRED_FITS_DRIVER) 152 2068 : DeclareDeferredFITSPlugin(); 153 : #endif 154 : #if defined(DEFERRED_GEOR_DRIVER) 155 : DeclareDeferredGEORPlugin(); 156 : #endif 157 : #if defined(DEFERRED_GIF_DRIVER) 158 2068 : DeclareDeferredGIFPlugin(); 159 : #endif 160 : #if defined(DEFERRED_GMLAS_DRIVER) 161 : DeclareDeferredOGRGMLASPlugin(); 162 : #endif 163 : #if defined(DEFERRED_GRIB_DRIVER) 164 : DeclareDeferredGRIBPlugin(); 165 : #endif 166 : #if defined(DEFERRED_GTA_DRIVER) 167 : DeclareDeferredGTAPlugin(); 168 : #endif 169 : #if defined(DEFERRED_HANA_DRIVER) 170 2068 : DeclareDeferredOGRHANAPlugin(); 171 : #endif 172 : #if defined(DEFERRED_AVIF_DRIVER) 173 : DeclareDeferredAVIFPlugin(); 174 : #endif 175 : #if defined(DEFERRED_HEIF_DRIVER) 176 2068 : DeclareDeferredHEIFPlugin(); 177 : #endif 178 : #if defined(DEFERRED_HDF4_DRIVER) 179 2068 : DeclareDeferredHDF4Plugin(); 180 : #endif 181 : #if defined(DEFERRED_KEA_DRIVER) 182 : // Must be registered before HDF5 so that when the plugin is not 183 : // installer the proper suggestion message is displayed 184 2068 : DeclareDeferredKEAPlugin(); 185 : #endif 186 : #if defined(DEFERRED_HDF5_DRIVER) 187 2068 : DeclareDeferredHDF5Plugin(); 188 : #endif 189 : #if defined(DEFERRED_IDB_DRIVER) 190 : DeclareDeferredOGRIDBPlugin(); 191 : #endif 192 : #if defined(DEFERRED_JP2Grok_DRIVER) 193 : DeclareDeferredJP2GrokPlugin(); 194 : #endif 195 : #if defined(DEFERRED_JP2KAK_DRIVER) 196 : DeclareDeferredJP2KAKPlugin(); 197 : #endif 198 : #if defined(DEFERRED_JP2OPENJPEG_DRIVER) 199 2068 : DeclareDeferredOPENJPEGPlugin(); 200 : #endif 201 : #if defined(DEFERRED_JPEG_DRIVER) 202 : DeclareDeferredJPEGPlugin(); 203 : #endif 204 : #if defined(DEFERRED_JPEGXL_DRIVER) 205 2068 : DeclareDeferredJPEGXLPlugin(); 206 : #endif 207 : #if defined(DEFERRED_JPIPKAK_DRIVER) 208 : DeclareDeferredJPIPKAKPlugin(); 209 : #endif 210 : #if defined(DEFERRED_LIBKML_DRIVER) 211 2068 : DeclareDeferredOGRLIBKMLPlugin(); 212 : #endif 213 : #if defined(DEFERRED_MONGODBV3_DRIVER) 214 : DeclareDeferredOGRMongoDBv3Plugin(); 215 : #endif 216 : #if defined(DEFERRED_MRF_DRIVER) 217 : DeclareDeferredMRFPlugin(); 218 : #endif 219 : #if defined(DEFERRED_MRSID_DRIVER) 220 : DeclareDeferredMrSIDPlugin(); 221 : #endif 222 : #if defined(DEFERRED_MSG_DRIVER) 223 : DeclareDeferredMSGPlugin(); 224 : #endif 225 : #if defined(DEFERRED_MSSQLSPATIAL_DRIVER) 226 2068 : DeclareDeferredOGRMSSQLSpatialPlugin(); 227 : #endif 228 : #if defined(DEFERRED_MYSQL_DRIVER) 229 2068 : DeclareDeferredOGRMySQLPlugin(); 230 : #endif 231 : #if defined(DEFERRED_NETCDF_DRIVER) 232 2068 : DeclareDeferredNetCDFPlugin(); 233 : #endif 234 : #if defined(DEFERRED_NITF_DRIVER) 235 : DeclareDeferredNITFPlugin(); 236 : #endif 237 : #if defined(DEFERRED_OCI_DRIVER) 238 : DeclareDeferredOGROCIPlugin(); 239 : #endif 240 : #if defined(DEFERRED_ODBC_DRIVER) 241 2068 : DeclareDeferredOGRODBCPlugin(); 242 : #endif 243 : #if defined(DEFERRED_OGDI_DRIVER) 244 : DeclareDeferredOGROGDIPlugin(); 245 : #endif 246 : #if defined(DEFERRED_OPENFILEGDB_DRIVER) 247 : DeclareDeferredOGROpenFileGDBPlugin(); 248 : #endif 249 : #if defined(DEFERRED_PARQUET_DRIVER) 250 2068 : DeclareDeferredOGRParquetPlugin(); 251 : #endif 252 : #if defined(DEFERRED_PCIDSK_DRIVER) 253 2068 : DeclareDeferredPCIDSKPlugin(); 254 : #endif 255 : #if defined(DEFERRED_PCRASTER_DRIVER) 256 2068 : DeclareDeferredPCRasterPlugin(); 257 : #endif 258 : #if defined(DEFERRED_POSTGISRASTER_DRIVER) 259 2068 : DeclareDeferredPostGISRasterPlugin(); 260 : #endif 261 : #if defined(DEFERRED_PLSCENES_DRIVER) 262 : DeclareDeferredOGRPLSCENESPlugin(); 263 : #endif 264 : #if defined(DEFERRED_PDF_DRIVER) 265 2068 : DeclareDeferredPDFPlugin(); 266 : #endif 267 : #if defined(DEFERRED_PDS_DRIVER) 268 : DeclareDeferredPDSPlugin(); 269 : #endif 270 : #if defined(DEFERRED_PG_DRIVER) 271 2068 : DeclareDeferredOGRPGPlugin(); 272 : #endif 273 : #if defined(DEFERRED_PNG_DRIVER) 274 2068 : DeclareDeferredPNGPlugin(); 275 : #endif 276 : #if defined(DEFERRED_RASTERLITE_DRIVER) 277 : DeclareDeferredRasterlitePlugin(); 278 : #endif 279 : #if defined(DEFERRED_SOSI_DRIVER) 280 2068 : DeclareDeferredOGRSOSIPlugin(); 281 : #endif 282 : #if defined(DEFERRED_TILEDB_DRIVER) 283 2068 : DeclareDeferredTileDBPlugin(); 284 : #endif 285 : #if defined(DEFERRED_VFK_DRIVER) 286 2068 : DeclareDeferredOGRVFKPlugin(); 287 : #endif 288 : #if defined(DEFERRED_WCS_DRIVER) 289 : DeclareDeferredWCSPlugin(); 290 : #endif 291 : #if defined(DEFERRED_WEBP_DRIVER) 292 2068 : DeclareDeferredWEBPPlugin(); 293 : #endif 294 : #if defined(DEFERRED_WMS_DRIVER) 295 2068 : DeclareDeferredWMSPlugin(); 296 : #endif 297 : #if defined(DEFERRED_WMTS_DRIVER) 298 : DeclareDeferredWMTSPlugin(); 299 : #endif 300 : #if defined(DEFERRED_XLS_DRIVER) 301 2068 : DeclareDeferredOGRXLSPlugin(); 302 : #endif 303 : #if defined(DEFERRED_ZARR_DRIVER) 304 : DeclareDeferredZarrPlugin(); 305 : #endif 306 : #if defined(DEFERRED_XODR_DRIVER) 307 2068 : DeclareDeferredOGRXODRPlugin(); 308 : #endif 309 : #if defined(DEFERRED_ADBC_DRIVER) 310 2068 : DeclareDeferredOGRADBCPlugin(); 311 : #endif 312 : #if defined(DEFERRED_S101_DRIVER) 313 : DeclareDeferredOGRS101Plugin(); 314 : #endif 315 : 316 : // AutoLoadDrivers is a no-op if compiled with GDAL_NO_AUTOLOAD defined. 317 2068 : poDriverManager->AutoLoadDrivers(); 318 : 319 : // NOTE: frmts/drivers.ini in the same directory should be kept in same 320 : // order as this file 321 : 322 : #ifdef FRMT_derived 323 2068 : GDALRegister_Derived(); 324 : #endif 325 : 326 : #ifdef FRMT_gti 327 2068 : GDALRegister_GTI(); 328 : #endif 329 : 330 : #ifdef FRMT_snap_tiff 331 2068 : GDALRegister_SNAP_TIFF(); 332 : #endif 333 : 334 : #ifdef FRMT_gtiff 335 2068 : GDALRegister_GTiff(); 336 2068 : GDALRegister_COG(); 337 : #endif 338 : 339 : #ifdef FRMT_libertiff 340 2068 : GDALRegister_LIBERTIFF(); 341 : #endif 342 : 343 : // VRT needs to be registered after GeoTIFF as it queries its metadata 344 : #ifdef FRMT_vrt 345 2068 : GDALRegister_VRT(); 346 : #endif 347 : 348 : #ifdef FRMT_nitf 349 2068 : GDALRegister_NITF(); 350 2068 : GDALRegister_RPFTOC(); 351 2068 : GDALRegister_ECRGTOC(); 352 : #endif 353 : 354 : #ifdef FRMT_hfa 355 2068 : GDALRegister_HFA(); 356 : #endif 357 : 358 : #ifdef FRMT_ceos2 359 2068 : GDALRegister_SAR_CEOS(); 360 : #endif 361 : 362 : #ifdef FRMT_ceos 363 2068 : GDALRegister_CEOS(); 364 : #endif 365 : 366 : #ifdef FRMT_jaxapalsar 367 2068 : GDALRegister_PALSARJaxa(); 368 : #endif 369 : 370 : #ifdef FRMT_gff 371 2068 : GDALRegister_GFF(); 372 : #endif 373 : 374 : #ifdef FRMT_esric 375 2068 : GDALRegister_ESRIC(); 376 : #endif 377 : 378 : #ifdef FRMT_aigrid 379 : // GDALRegister_AIGrid2(); 380 2068 : GDALRegister_AIGrid(); 381 : #endif 382 : 383 : #ifdef FRMT_aaigrid 384 2068 : GDALRegister_AAIGrid(); 385 2068 : GDALRegister_GRASSASCIIGrid(); 386 2068 : GDALRegister_ISG(); 387 : #endif 388 : 389 : #ifdef FRMT_dted 390 2068 : GDALRegister_DTED(); 391 : #endif 392 : 393 : #ifdef FRMT_png 394 : GDALRegister_PNG(); 395 : #endif 396 : 397 : #ifdef FRMT_dds 398 : GDALRegister_DDS(); 399 : #endif 400 : 401 : #ifdef FRMT_gta 402 : GDALRegister_GTA(); 403 : #endif 404 : 405 : #ifdef FRMT_jpeg 406 2068 : GDALRegister_JPEG(); 407 : #endif 408 : 409 : #ifdef FRMT_mem 410 2068 : GDALRegister_MEM(); 411 : #endif 412 : 413 : #ifdef FRMT_jdem 414 2068 : GDALRegister_JDEM(); 415 : #endif 416 : 417 : #ifdef FRMT_gif 418 : GDALRegister_GIF(); 419 : GDALRegister_BIGGIF(); 420 : #endif 421 : 422 : #ifdef FRMT_envisat 423 2068 : GDALRegister_Envisat(); 424 : #endif 425 : 426 : #ifdef FRMT_fits 427 : GDALRegister_FITS(); 428 : #endif 429 : 430 : #ifdef FRMT_bsb 431 2068 : GDALRegister_BSB(); 432 : #endif 433 : 434 : #ifdef FRMT_bmp 435 2068 : GDALRegister_BMP(); 436 : #endif 437 : 438 : #ifdef FRMT_dimap 439 2068 : GDALRegister_DIMAP(); 440 : #endif 441 : 442 : #ifdef FRMT_airsar 443 2068 : GDALRegister_AirSAR(); 444 : #endif 445 : 446 : #ifdef FRMT_rs2 447 2068 : GDALRegister_RS2(); 448 : #endif 449 : 450 : #ifdef FRMT_safe 451 2068 : GDALRegister_SAFE(); 452 : #endif 453 : 454 : #ifdef FRMT_pcidsk 455 : GDALRegister_PCIDSK(); 456 : #endif 457 : 458 : #ifdef FRMT_pcraster 459 : GDALRegister_PCRaster(); 460 : #endif 461 : 462 : #ifdef FRMT_ilwis 463 2068 : GDALRegister_ILWIS(); 464 : #endif 465 : 466 : #ifdef FRMT_srtmhgt 467 2068 : GDALRegister_SRTMHGT(); 468 : #endif 469 : 470 : #ifdef FRMT_leveller 471 2068 : GDALRegister_Leveller(); 472 : #endif 473 : 474 : #ifdef FRMT_terragen 475 2068 : GDALRegister_Terragen(); 476 : #endif 477 : 478 : #ifdef FRMT_netcdf 479 : GDALRegister_netCDF(); 480 : #endif 481 : 482 : #ifdef FRMT_hdf4 483 : GDALRegister_HDF4(); 484 : GDALRegister_HDF4Image(); 485 : #endif 486 : 487 : #ifdef FRMT_pds 488 2068 : GDALRegister_ISIS3(); 489 2068 : GDALRegister_ISIS2(); 490 2068 : GDALRegister_PDS(); 491 2068 : GDALRegister_PDS4(); 492 2068 : GDALRegister_VICAR(); 493 : #endif 494 : 495 : #ifdef FRMT_til 496 2068 : GDALRegister_TIL(); 497 : #endif 498 : 499 : #ifdef FRMT_ers 500 2068 : GDALRegister_ERS(); 501 : #endif 502 : 503 : #ifdef FRMT_jp2grok 504 : GDALRegister_JP2Grok(); 505 : #endif 506 : 507 : #ifdef FRMT_jp2kak 508 : // JPEG2000 support using Kakadu toolkit 509 : GDALRegister_JP2KAK(); 510 : #endif 511 : 512 : #ifdef FRMT_jpipkak 513 : // JPEG2000 support using Kakadu toolkit 514 : GDALRegister_JPIPKAK(); 515 : #endif 516 : 517 : #ifdef FRMT_ecw 518 : GDALRegister_ECW(); 519 : GDALRegister_JP2ECW(); 520 : #endif 521 : 522 : #ifdef FRMT_openjpeg 523 : // JPEG2000 support using OpenJPEG library 524 : GDALRegister_JP2OpenJPEG(); 525 : #endif 526 : 527 : #ifdef FRMT_l1b 528 2068 : GDALRegister_L1B(); 529 : #endif 530 : 531 : #ifdef FRMT_grib 532 2068 : GDALRegister_GRIB(); 533 : #endif 534 : 535 : #ifdef FRMT_mrsid 536 2068 : GDALRegister_MrSID(); 537 : #endif 538 : 539 : #ifdef FRMT_rmf 540 2068 : GDALRegister_RMF(); 541 : #endif 542 : 543 : #ifdef FRMT_wcs 544 2068 : GDALRegister_WCS(); 545 : #endif 546 : 547 : #ifdef FRMT_wms 548 : GDALRegister_WMS(); 549 : #endif 550 : 551 : #ifdef FRMT_msgn 552 2068 : GDALRegister_MSGN(); 553 : #endif 554 : 555 : #ifdef FRMT_msg 556 : GDALRegister_MSG(); 557 : #endif 558 : 559 : #ifdef FRMT_idrisi 560 2068 : GDALRegister_IDRISI(); 561 : #endif 562 : 563 : #ifdef FRMT_gsg 564 2068 : GDALRegister_GSAG(); 565 2068 : GDALRegister_GSBG(); 566 2068 : GDALRegister_GS7BG(); 567 : #endif 568 : 569 : #ifdef FRMT_cosar 570 2068 : GDALRegister_COSAR(); 571 : #endif 572 : 573 : #ifdef FRMT_tsx 574 2068 : GDALRegister_TSX(); 575 : #endif 576 : 577 : #ifdef FRMT_coasp 578 2068 : GDALRegister_COASP(); 579 : #endif 580 : 581 : #ifdef FRMT_map 582 2068 : GDALRegister_MAP(); 583 : #endif 584 : 585 : #ifdef FRMT_kmlsuperoverlay 586 2068 : GDALRegister_KMLSUPEROVERLAY(); 587 : #endif 588 : 589 : #ifdef FRMT_webp 590 : GDALRegister_WEBP(); 591 : #endif 592 : 593 : #ifdef FRMT_pdf 594 : GDALRegister_PDF(); 595 : #endif 596 : 597 : #ifdef FRMT_mbtiles 598 2068 : GDALRegister_MBTiles(); 599 : #endif 600 : 601 : #ifdef FRMT_plmosaic 602 2068 : GDALRegister_PLMOSAIC(); 603 : #endif 604 : 605 : #ifdef FRMT_cals 606 2068 : GDALRegister_CALS(); 607 : #endif 608 : 609 : #ifdef FRMT_wmts 610 2068 : GDALRegister_WMTS(); 611 : #endif 612 : 613 : #ifdef FRMT_sentinel2 614 2068 : GDALRegister_SENTINEL2(); 615 : #endif 616 : 617 : #ifdef FRMT_mrf 618 2068 : GDALRegister_MRF(); 619 : #endif 620 : 621 : #ifdef FRMT_rdb 622 : GDALRegister_RDB(); 623 : #endif 624 : /* -------------------------------------------------------------------- */ 625 : /* Put raw formats at the end of the list. These drivers support */ 626 : /* various ASCII-header labeled formats, so the driver could be */ 627 : /* confused if you have files in some of above formats and such */ 628 : /* ASCII-header in the same directory. */ 629 : /* -------------------------------------------------------------------- */ 630 : 631 : #ifdef FRMT_raw 632 2068 : GDALRegister_raw_no_sidecar(); 633 : #endif 634 : 635 : #ifdef FRMT_tiledb 636 : GDALRegister_TileDB(); 637 : #endif 638 : 639 : /* -------------------------------------------------------------------- */ 640 : /* Our test for the following is weak or expensive so we try */ 641 : /* them last. */ 642 : /* -------------------------------------------------------------------- */ 643 : 644 : #ifdef FRMT_rik 645 2068 : GDALRegister_RIK(); 646 : #endif 647 : 648 : #ifdef FRMT_usgsdem 649 2068 : GDALRegister_USGSDEM(); 650 : #endif 651 : 652 : #ifdef FRMT_gxf 653 2068 : GDALRegister_GXF(); 654 : #endif 655 : 656 : /* Register KEA before HDF5 */ 657 : #ifdef FRMT_kea 658 : GDALRegister_KEA(); 659 : #endif 660 : 661 : #ifdef FRMT_hdf5 662 : GDALRegister_BAG(); 663 : GDALRegister_S102(); 664 : GDALRegister_S104(); 665 : GDALRegister_S111(); 666 : GDALRegister_HDF5(); 667 : GDALRegister_HDF5Image(); 668 : #endif 669 : 670 : #ifdef FRMT_northwood 671 2068 : GDALRegister_NWT_GRD(); 672 2068 : GDALRegister_NWT_GRC(); 673 : #endif 674 : 675 : #ifdef FRMT_adrg 676 2068 : GDALRegister_ADRG(); 677 2068 : GDALRegister_SRP(); 678 : #endif 679 : 680 : #ifdef FRMT_georaster 681 : GDALRegister_GEOR(); 682 : #endif 683 : 684 : #ifdef FRMT_postgisraster 685 : GDALRegister_PostGISRaster(); 686 : #endif 687 : 688 : #ifdef FRMT_saga 689 2068 : GDALRegister_SAGA(); 690 : #endif 691 : 692 : #ifdef FRMT_xyz 693 2068 : GDALRegister_XYZ(); 694 : #endif 695 : 696 : #ifdef FRMT_hf2 697 2068 : GDALRegister_HF2(); 698 : #endif 699 : 700 : #ifdef FRMT_ctg 701 2068 : GDALRegister_CTG(); 702 : #endif 703 : 704 : #ifdef FRMT_zmap 705 2068 : GDALRegister_ZMap(); 706 : #endif 707 : 708 : #ifdef FRMT_ngsgeoid 709 2068 : GDALRegister_NGSGEOID(); 710 : #endif 711 : 712 : #ifdef FRMT_iris 713 2068 : GDALRegister_IRIS(); 714 : #endif 715 : 716 : #ifdef FRMT_prf 717 2068 : GDALRegister_PRF(); 718 : #endif 719 : 720 : #ifdef FRMT_eeda 721 2068 : GDALRegister_EEDAI(); 722 2068 : GDALRegister_EEDA(); 723 : #endif 724 : 725 : #ifdef FRMT_daas 726 2068 : GDALRegister_DAAS(); 727 : #endif 728 : 729 : #ifdef FRMT_null 730 2068 : GDALRegister_NULL(); 731 : #endif 732 : 733 : #ifdef FRMT_sigdem 734 2068 : GDALRegister_SIGDEM(); 735 : #endif 736 : 737 : #ifdef FRMT_exr 738 : GDALRegister_EXR(); 739 : #endif 740 : 741 : #ifdef FRMT_avif 742 : GDALRegister_AVIF(); 743 : #endif 744 : 745 : #ifdef FRMT_heif 746 : GDALRegister_HEIF(); 747 : #endif 748 : 749 : #ifdef FRMT_tga 750 2068 : GDALRegister_TGA(); 751 : #endif 752 : 753 : #ifdef FRMT_ogcapi 754 2068 : GDALRegister_OGCAPI(); 755 : #endif 756 : 757 : #ifdef FRMT_stacta 758 2068 : GDALRegister_STACTA(); 759 : #endif 760 : 761 : #ifdef FRMT_stacit 762 2068 : GDALRegister_STACIT(); 763 : #endif 764 : 765 : #ifdef FRMT_jpegxl 766 : GDALRegister_JPEGXL(); 767 : #endif 768 : 769 : #ifdef FRMT_basisu_ktx2 770 : GDALRegister_BASISU(); 771 : GDALRegister_KTX2(); 772 : #endif 773 : 774 : #ifdef FRMT_gdalg 775 2068 : GDALRegister_GDALG(); 776 : #endif 777 : 778 : #ifdef FRMT_e57 779 2068 : GDALRegister_E57(); 780 : #endif 781 : 782 : // NOTE: you need to generally insert your own driver before that line. 783 : 784 : // NOTE: frmts/drivers.ini in the same directory should be kept in same 785 : // order as this file 786 : 787 : /* -------------------------------------------------------------------- */ 788 : /* GNM and OGR drivers */ 789 : /* -------------------------------------------------------------------- */ 790 : #ifdef GNM_ENABLED 791 2068 : GNMRegisterAllInternal(); 792 : #endif 793 : 794 2068 : OGRRegisterAllInternal(); 795 : 796 : /* -------------------------------------------------------------------- */ 797 : /* Put here drivers that absolutely need to look for side car */ 798 : /* files in their Identify()/Open() procedure. */ 799 : /* -------------------------------------------------------------------- */ 800 : 801 : #ifdef FRMT_raw 802 2068 : GDALRegister_raw_with_sidecar(); 803 : #endif 804 : 805 : #ifdef FRMT_zarr 806 2068 : GDALRegister_Zarr(); 807 : #endif 808 : 809 : #ifdef FRMT_rcm 810 2068 : GDALRegister_RCM(); 811 : #endif 812 : 813 : #ifdef FRMT_miramon 814 2068 : GDALRegister_MiraMon(); 815 : #endif 816 : 817 : /* -------------------------------------------------------------------- */ 818 : /* Register GDAL HTTP last, to let a chance to other drivers */ 819 : /* accepting URL to handle them before. */ 820 : /* -------------------------------------------------------------------- */ 821 : #ifdef FRMT_http 822 2068 : GDALRegister_HTTP(); 823 : #endif 824 : 825 2068 : poDriverManager->AutoLoadPythonDrivers(); 826 : 827 : /* -------------------------------------------------------------------- */ 828 : /* Deregister any drivers explicitly marked as suppressed by the */ 829 : /* GDAL_SKIP environment variable. */ 830 : /* -------------------------------------------------------------------- */ 831 2068 : poDriverManager->AutoSkipDrivers(); 832 : 833 2068 : poDriverManager->ReorderDrivers(); 834 2068 : }