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 2135 : void CPL_STDCALL GDALAllRegister() 112 : 113 : { 114 2135 : auto poDriverManager = GetGDALDriverManager(); 115 : 116 : #if defined(HAVE_EXTERNAL_DEFERRED_PLUGINS) 117 : DeclareExternalDeferredPlugins(); 118 : #endif 119 : 120 : #if defined(DEFERRED_ARROW_DRIVER) 121 2135 : DeclareDeferredOGRArrowPlugin(); 122 : #endif 123 : #if defined(DEFERRED_BASISU_KTX2_DRIVER) 124 2135 : DeclareDeferredBASISU_KTX2Plugin(); 125 : #endif 126 : #if defined(DEFERRED_CAD_DRIVER) 127 2135 : 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 2135 : DeclareDeferredEXRPlugin(); 144 : #endif 145 : #if defined(DEFERRED_ECW_DRIVER) 146 2135 : DeclareDeferredECWPlugin(); 147 : #endif 148 : #if defined(DEFERRED_FILEGDB_DRIVER) 149 2135 : DeclareDeferredOGRFileGDBPlugin(); 150 : #endif 151 : #if defined(DEFERRED_FITS_DRIVER) 152 2135 : DeclareDeferredFITSPlugin(); 153 : #endif 154 : #if defined(DEFERRED_GEOR_DRIVER) 155 : DeclareDeferredGEORPlugin(); 156 : #endif 157 : #if defined(DEFERRED_GIF_DRIVER) 158 2135 : 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 2135 : DeclareDeferredOGRHANAPlugin(); 171 : #endif 172 : #if defined(DEFERRED_AVIF_DRIVER) 173 : DeclareDeferredAVIFPlugin(); 174 : #endif 175 : #if defined(DEFERRED_HEIF_DRIVER) 176 2135 : DeclareDeferredHEIFPlugin(); 177 : #endif 178 : #if defined(DEFERRED_HDF4_DRIVER) 179 2135 : 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 2135 : DeclareDeferredKEAPlugin(); 185 : #endif 186 : #if defined(DEFERRED_HDF5_DRIVER) 187 2135 : 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 2135 : DeclareDeferredOPENJPEGPlugin(); 200 : #endif 201 : #if defined(DEFERRED_JPEG_DRIVER) 202 : DeclareDeferredJPEGPlugin(); 203 : #endif 204 : #if defined(DEFERRED_JPEGXL_DRIVER) 205 2135 : DeclareDeferredJPEGXLPlugin(); 206 : #endif 207 : #if defined(DEFERRED_JPIPKAK_DRIVER) 208 : DeclareDeferredJPIPKAKPlugin(); 209 : #endif 210 : #if defined(DEFERRED_LIBKML_DRIVER) 211 2135 : DeclareDeferredOGRLIBKMLPlugin(); 212 : #endif 213 : #if defined(DEFERRED_MONGODBV3_DRIVER) 214 : DeclareDeferredOGRMongoDBv3Plugin(); 215 : #endif 216 : #if defined(DEFERRED_LERC_DRIVER) 217 : DeclareDeferredLERCPlugin(); 218 : #endif 219 : #if defined(DEFERRED_MRF_DRIVER) 220 : DeclareDeferredMRFPlugin(); 221 : #endif 222 : #if defined(DEFERRED_MRSID_DRIVER) 223 : DeclareDeferredMrSIDPlugin(); 224 : #endif 225 : #if defined(DEFERRED_MSG_DRIVER) 226 : DeclareDeferredMSGPlugin(); 227 : #endif 228 : #if defined(DEFERRED_MSSQLSPATIAL_DRIVER) 229 2135 : DeclareDeferredOGRMSSQLSpatialPlugin(); 230 : #endif 231 : #if defined(DEFERRED_MYSQL_DRIVER) 232 2135 : DeclareDeferredOGRMySQLPlugin(); 233 : #endif 234 : #if defined(DEFERRED_NETCDF_DRIVER) 235 2135 : DeclareDeferredNetCDFPlugin(); 236 : #endif 237 : #if defined(DEFERRED_NITF_DRIVER) 238 : DeclareDeferredNITFPlugin(); 239 : #endif 240 : #if defined(DEFERRED_OCI_DRIVER) 241 : DeclareDeferredOGROCIPlugin(); 242 : #endif 243 : #if defined(DEFERRED_ODBC_DRIVER) 244 2135 : DeclareDeferredOGRODBCPlugin(); 245 : #endif 246 : #if defined(DEFERRED_OGDI_DRIVER) 247 : DeclareDeferredOGROGDIPlugin(); 248 : #endif 249 : #if defined(DEFERRED_OPENFILEGDB_DRIVER) 250 : DeclareDeferredOGROpenFileGDBPlugin(); 251 : #endif 252 : #if defined(DEFERRED_PARQUET_DRIVER) 253 2135 : DeclareDeferredOGRParquetPlugin(); 254 : #endif 255 : #if defined(DEFERRED_PCIDSK_DRIVER) 256 2135 : DeclareDeferredPCIDSKPlugin(); 257 : #endif 258 : #if defined(DEFERRED_PCRASTER_DRIVER) 259 2135 : DeclareDeferredPCRasterPlugin(); 260 : #endif 261 : #if defined(DEFERRED_POSTGISRASTER_DRIVER) 262 2135 : DeclareDeferredPostGISRasterPlugin(); 263 : #endif 264 : #if defined(DEFERRED_PLSCENES_DRIVER) 265 : DeclareDeferredOGRPLSCENESPlugin(); 266 : #endif 267 : #if defined(DEFERRED_PDF_DRIVER) 268 2135 : DeclareDeferredPDFPlugin(); 269 : #endif 270 : #if defined(DEFERRED_PDS_DRIVER) 271 : DeclareDeferredPDSPlugin(); 272 : #endif 273 : #if defined(DEFERRED_PG_DRIVER) 274 2135 : DeclareDeferredOGRPGPlugin(); 275 : #endif 276 : #if defined(DEFERRED_PNG_DRIVER) 277 2135 : DeclareDeferredPNGPlugin(); 278 : #endif 279 : #if defined(DEFERRED_RASTERLITE_DRIVER) 280 : DeclareDeferredRasterlitePlugin(); 281 : #endif 282 : #if defined(DEFERRED_SOSI_DRIVER) 283 2135 : DeclareDeferredOGRSOSIPlugin(); 284 : #endif 285 : #if defined(DEFERRED_TILEDB_DRIVER) 286 2135 : DeclareDeferredTileDBPlugin(); 287 : #endif 288 : #if defined(DEFERRED_VFK_DRIVER) 289 2135 : DeclareDeferredOGRVFKPlugin(); 290 : #endif 291 : #if defined(DEFERRED_WCS_DRIVER) 292 : DeclareDeferredWCSPlugin(); 293 : #endif 294 : #if defined(DEFERRED_WEBP_DRIVER) 295 2135 : DeclareDeferredWEBPPlugin(); 296 : #endif 297 : #if defined(DEFERRED_WMS_DRIVER) 298 2135 : DeclareDeferredWMSPlugin(); 299 : #endif 300 : #if defined(DEFERRED_WMTS_DRIVER) 301 : DeclareDeferredWMTSPlugin(); 302 : #endif 303 : #if defined(DEFERRED_XLS_DRIVER) 304 2135 : DeclareDeferredOGRXLSPlugin(); 305 : #endif 306 : #if defined(DEFERRED_ZARR_DRIVER) 307 : DeclareDeferredZarrPlugin(); 308 : #endif 309 : #if defined(DEFERRED_ICECHUNK_DRIVER) 310 : DeclareDeferredIcechunkPlugin(); 311 : #endif 312 : #if defined(DEFERRED_XODR_DRIVER) 313 2135 : DeclareDeferredOGRXODRPlugin(); 314 : #endif 315 : #if defined(DEFERRED_ADBC_DRIVER) 316 2135 : DeclareDeferredOGRADBCPlugin(); 317 : #endif 318 : #if defined(DEFERRED_S101_DRIVER) 319 : DeclareDeferredOGRS101Plugin(); 320 : #endif 321 : 322 : // AutoLoadDrivers is a no-op if compiled with GDAL_NO_AUTOLOAD defined. 323 2135 : poDriverManager->AutoLoadDrivers(); 324 : 325 : // NOTE: frmts/drivers.ini in the same directory should be kept in same 326 : // order as this file 327 : 328 : #ifdef FRMT_derived 329 2135 : GDALRegister_Derived(); 330 : #endif 331 : 332 : #ifdef FRMT_gti 333 2135 : GDALRegister_GTI(); 334 : #endif 335 : 336 : #ifdef FRMT_snap_tiff 337 2135 : GDALRegister_SNAP_TIFF(); 338 : #endif 339 : 340 : #ifdef FRMT_gtiff 341 2135 : GDALRegister_GTiff(); 342 2135 : GDALRegister_COG(); 343 : #endif 344 : 345 : #ifdef FRMT_libertiff 346 2135 : GDALRegister_LIBERTIFF(); 347 : #endif 348 : 349 : // VRT needs to be registered after GeoTIFF as it queries its metadata 350 : #ifdef FRMT_vrt 351 2135 : GDALRegister_VRT(); 352 : #endif 353 : 354 : #ifdef FRMT_nitf 355 2135 : GDALRegister_NITF(); 356 2135 : GDALRegister_RPFTOC(); 357 2135 : GDALRegister_ECRGTOC(); 358 : #endif 359 : 360 : #ifdef FRMT_hfa 361 2135 : GDALRegister_HFA(); 362 : #endif 363 : 364 : #ifdef FRMT_ceos2 365 2135 : GDALRegister_SAR_CEOS(); 366 : #endif 367 : 368 : #ifdef FRMT_ceos 369 2135 : GDALRegister_CEOS(); 370 : #endif 371 : 372 : #ifdef FRMT_jaxapalsar 373 2135 : GDALRegister_PALSARJaxa(); 374 : #endif 375 : 376 : #ifdef FRMT_gff 377 2135 : GDALRegister_GFF(); 378 : #endif 379 : 380 : #ifdef FRMT_esric 381 2135 : GDALRegister_ESRIC(); 382 : #endif 383 : 384 : #ifdef FRMT_aigrid 385 : // GDALRegister_AIGrid2(); 386 2135 : GDALRegister_AIGrid(); 387 : #endif 388 : 389 : #ifdef FRMT_aaigrid 390 2135 : GDALRegister_AAIGrid(); 391 2135 : GDALRegister_GRASSASCIIGrid(); 392 2135 : GDALRegister_ISG(); 393 : #endif 394 : 395 : #ifdef FRMT_dted 396 2135 : GDALRegister_DTED(); 397 : #endif 398 : 399 : #ifdef FRMT_png 400 : GDALRegister_PNG(); 401 : #endif 402 : 403 : #ifdef FRMT_dds 404 : GDALRegister_DDS(); 405 : #endif 406 : 407 : #ifdef FRMT_gta 408 : GDALRegister_GTA(); 409 : #endif 410 : 411 : #ifdef FRMT_jpeg 412 2135 : GDALRegister_JPEG(); 413 : #endif 414 : 415 : #ifdef FRMT_mem 416 2135 : GDALRegister_MEM(); 417 : #endif 418 : 419 : #ifdef FRMT_jdem 420 2135 : GDALRegister_JDEM(); 421 : #endif 422 : 423 : #ifdef FRMT_gif 424 : GDALRegister_GIF(); 425 : GDALRegister_BIGGIF(); 426 : #endif 427 : 428 : #ifdef FRMT_envisat 429 2135 : GDALRegister_Envisat(); 430 : #endif 431 : 432 : #ifdef FRMT_fits 433 : GDALRegister_FITS(); 434 : #endif 435 : 436 : #ifdef FRMT_bsb 437 2135 : GDALRegister_BSB(); 438 : #endif 439 : 440 : #ifdef FRMT_bmp 441 2135 : GDALRegister_BMP(); 442 : #endif 443 : 444 : #ifdef FRMT_dimap 445 2135 : GDALRegister_DIMAP(); 446 : #endif 447 : 448 : #ifdef FRMT_airsar 449 2135 : GDALRegister_AirSAR(); 450 : #endif 451 : 452 : #ifdef FRMT_rs2 453 2135 : GDALRegister_RS2(); 454 : #endif 455 : 456 : #ifdef FRMT_safe 457 2135 : GDALRegister_SAFE(); 458 : #endif 459 : 460 : #ifdef FRMT_pcidsk 461 : GDALRegister_PCIDSK(); 462 : #endif 463 : 464 : #ifdef FRMT_pcraster 465 : GDALRegister_PCRaster(); 466 : #endif 467 : 468 : #ifdef FRMT_ilwis 469 2135 : GDALRegister_ILWIS(); 470 : #endif 471 : 472 : #ifdef FRMT_srtmhgt 473 2135 : GDALRegister_SRTMHGT(); 474 : #endif 475 : 476 : #ifdef FRMT_leveller 477 2135 : GDALRegister_Leveller(); 478 : #endif 479 : 480 : #ifdef FRMT_terragen 481 2135 : GDALRegister_Terragen(); 482 : #endif 483 : 484 : #ifdef FRMT_netcdf 485 : GDALRegister_netCDF(); 486 : #endif 487 : 488 : #ifdef FRMT_hdf4 489 : GDALRegister_HDF4(); 490 : GDALRegister_HDF4Image(); 491 : #endif 492 : 493 : #ifdef FRMT_pds 494 2135 : GDALRegister_ISIS3(); 495 2135 : GDALRegister_ISIS2(); 496 2135 : GDALRegister_PDS(); 497 2135 : GDALRegister_PDS4(); 498 2135 : GDALRegister_VICAR(); 499 : #endif 500 : 501 : #ifdef FRMT_til 502 2135 : GDALRegister_TIL(); 503 : #endif 504 : 505 : #ifdef FRMT_ers 506 2135 : GDALRegister_ERS(); 507 : #endif 508 : 509 : #ifdef FRMT_jp2grok 510 : GDALRegister_JP2Grok(); 511 : #endif 512 : 513 : #ifdef FRMT_jp2kak 514 : // JPEG2000 support using Kakadu toolkit 515 : GDALRegister_JP2KAK(); 516 : #endif 517 : 518 : #ifdef FRMT_jpipkak 519 : // JPEG2000 support using Kakadu toolkit 520 : GDALRegister_JPIPKAK(); 521 : #endif 522 : 523 : #ifdef FRMT_ecw 524 : GDALRegister_ECW(); 525 : GDALRegister_JP2ECW(); 526 : #endif 527 : 528 : #ifdef FRMT_openjpeg 529 : // JPEG2000 support using OpenJPEG library 530 : GDALRegister_JP2OpenJPEG(); 531 : #endif 532 : 533 : #ifdef FRMT_l1b 534 2135 : GDALRegister_L1B(); 535 : #endif 536 : 537 : #ifdef FRMT_grib 538 2135 : GDALRegister_GRIB(); 539 : #endif 540 : 541 : #ifdef FRMT_mrsid 542 2135 : GDALRegister_MrSID(); 543 : #endif 544 : 545 : #ifdef FRMT_rmf 546 2135 : GDALRegister_RMF(); 547 : #endif 548 : 549 : #ifdef FRMT_wcs 550 2135 : GDALRegister_WCS(); 551 : #endif 552 : 553 : #ifdef FRMT_wms 554 : GDALRegister_WMS(); 555 : #endif 556 : 557 : #ifdef FRMT_msgn 558 2135 : GDALRegister_MSGN(); 559 : #endif 560 : 561 : #ifdef FRMT_msg 562 : GDALRegister_MSG(); 563 : #endif 564 : 565 : #ifdef FRMT_idrisi 566 2135 : GDALRegister_IDRISI(); 567 : #endif 568 : 569 : #ifdef FRMT_gsg 570 2135 : GDALRegister_GSAG(); 571 2135 : GDALRegister_GSBG(); 572 2135 : GDALRegister_GS7BG(); 573 : #endif 574 : 575 : #ifdef FRMT_cosar 576 2135 : GDALRegister_COSAR(); 577 : #endif 578 : 579 : #ifdef FRMT_tsx 580 2135 : GDALRegister_TSX(); 581 : #endif 582 : 583 : #ifdef FRMT_coasp 584 2135 : GDALRegister_COASP(); 585 : #endif 586 : 587 : #ifdef FRMT_map 588 2135 : GDALRegister_MAP(); 589 : #endif 590 : 591 : #ifdef FRMT_kmlsuperoverlay 592 2135 : GDALRegister_KMLSUPEROVERLAY(); 593 : #endif 594 : 595 : #ifdef FRMT_webp 596 : GDALRegister_WEBP(); 597 : #endif 598 : 599 : #ifdef FRMT_pdf 600 : GDALRegister_PDF(); 601 : #endif 602 : 603 : #ifdef FRMT_mbtiles 604 2135 : GDALRegister_MBTiles(); 605 : #endif 606 : 607 : #ifdef FRMT_plmosaic 608 2135 : GDALRegister_PLMOSAIC(); 609 : #endif 610 : 611 : #ifdef FRMT_cals 612 2135 : GDALRegister_CALS(); 613 : #endif 614 : 615 : #ifdef FRMT_wmts 616 2135 : GDALRegister_WMTS(); 617 : #endif 618 : 619 : #ifdef FRMT_sentinel2 620 2135 : GDALRegister_SENTINEL2(); 621 : #endif 622 : 623 : #ifdef FRMT_lerc 624 2135 : GDALRegister_LERC(); 625 : #endif 626 : 627 : #ifdef FRMT_mrf 628 2135 : GDALRegister_MRF(); 629 : #endif 630 : 631 : #ifdef FRMT_rdb 632 : GDALRegister_RDB(); 633 : #endif 634 : /* -------------------------------------------------------------------- */ 635 : /* Put raw formats at the end of the list. These drivers support */ 636 : /* various ASCII-header labeled formats, so the driver could be */ 637 : /* confused if you have files in some of above formats and such */ 638 : /* ASCII-header in the same directory. */ 639 : /* -------------------------------------------------------------------- */ 640 : 641 : #ifdef FRMT_raw 642 2135 : GDALRegister_raw_no_sidecar(); 643 : #endif 644 : 645 : #ifdef FRMT_tiledb 646 : GDALRegister_TileDB(); 647 : #endif 648 : 649 : /* -------------------------------------------------------------------- */ 650 : /* Our test for the following is weak or expensive so we try */ 651 : /* them last. */ 652 : /* -------------------------------------------------------------------- */ 653 : 654 : #ifdef FRMT_rik 655 2135 : GDALRegister_RIK(); 656 : #endif 657 : 658 : #ifdef FRMT_usgsdem 659 2135 : GDALRegister_USGSDEM(); 660 : #endif 661 : 662 : #ifdef FRMT_gxf 663 2135 : GDALRegister_GXF(); 664 : #endif 665 : 666 : /* Register KEA before HDF5 */ 667 : #ifdef FRMT_kea 668 : GDALRegister_KEA(); 669 : #endif 670 : 671 : #ifdef FRMT_hdf5 672 : GDALRegister_BAG(); 673 : GDALRegister_S102(); 674 : GDALRegister_S104(); 675 : GDALRegister_S111(); 676 : GDALRegister_HDF5(); 677 : GDALRegister_HDF5Image(); 678 : #endif 679 : 680 : #ifdef FRMT_northwood 681 2135 : GDALRegister_NWT_GRD(); 682 2135 : GDALRegister_NWT_GRC(); 683 : #endif 684 : 685 : #ifdef FRMT_adrg 686 2135 : GDALRegister_ADRG(); 687 2135 : GDALRegister_SRP(); 688 : #endif 689 : 690 : #ifdef FRMT_georaster 691 : GDALRegister_GEOR(); 692 : #endif 693 : 694 : #ifdef FRMT_postgisraster 695 : GDALRegister_PostGISRaster(); 696 : #endif 697 : 698 : #ifdef FRMT_saga 699 2135 : GDALRegister_SAGA(); 700 : #endif 701 : 702 : #ifdef FRMT_xyz 703 2135 : GDALRegister_XYZ(); 704 : #endif 705 : 706 : #ifdef FRMT_hf2 707 2135 : GDALRegister_HF2(); 708 : #endif 709 : 710 : #ifdef FRMT_ctg 711 2135 : GDALRegister_CTG(); 712 : #endif 713 : 714 : #ifdef FRMT_zmap 715 2135 : GDALRegister_ZMap(); 716 : #endif 717 : 718 : #ifdef FRMT_ngsgeoid 719 2135 : GDALRegister_NGSGEOID(); 720 : #endif 721 : 722 : #ifdef FRMT_iris 723 2135 : GDALRegister_IRIS(); 724 : #endif 725 : 726 : #ifdef FRMT_prf 727 2135 : GDALRegister_PRF(); 728 : #endif 729 : 730 : #ifdef FRMT_eeda 731 2135 : GDALRegister_EEDAI(); 732 2135 : GDALRegister_EEDA(); 733 : #endif 734 : 735 : #ifdef FRMT_daas 736 2135 : GDALRegister_DAAS(); 737 : #endif 738 : 739 : #ifdef FRMT_null 740 2135 : GDALRegister_NULL(); 741 : #endif 742 : 743 : #ifdef FRMT_sigdem 744 2135 : GDALRegister_SIGDEM(); 745 : #endif 746 : 747 : #ifdef FRMT_exr 748 : GDALRegister_EXR(); 749 : #endif 750 : 751 : #ifdef FRMT_avif 752 : GDALRegister_AVIF(); 753 : #endif 754 : 755 : #ifdef FRMT_heif 756 : GDALRegister_HEIF(); 757 : #endif 758 : 759 : #ifdef FRMT_tga 760 2135 : GDALRegister_TGA(); 761 : #endif 762 : 763 : #ifdef FRMT_ogcapi 764 2135 : GDALRegister_OGCAPI(); 765 : #endif 766 : 767 : #ifdef FRMT_stacta 768 2135 : GDALRegister_STACTA(); 769 : #endif 770 : 771 : #ifdef FRMT_stacit 772 2135 : GDALRegister_STACIT(); 773 : #endif 774 : 775 : #ifdef FRMT_jpegxl 776 : GDALRegister_JPEGXL(); 777 : #endif 778 : 779 : #ifdef FRMT_basisu_ktx2 780 : GDALRegister_BASISU(); 781 : GDALRegister_KTX2(); 782 : #endif 783 : 784 : #ifdef FRMT_gdalg 785 2135 : GDALRegister_GDALG(); 786 : #endif 787 : 788 : #ifdef FRMT_e57 789 2135 : GDALRegister_E57(); 790 : #endif 791 : 792 : // NOTE: you need to generally insert your own driver before that line. 793 : 794 : // NOTE: frmts/drivers.ini in the same directory should be kept in same 795 : // order as this file 796 : 797 : /* -------------------------------------------------------------------- */ 798 : /* GNM and OGR drivers */ 799 : /* -------------------------------------------------------------------- */ 800 : #ifdef GNM_ENABLED 801 2135 : GNMRegisterAllInternal(); 802 : #endif 803 : 804 2135 : OGRRegisterAllInternal(); 805 : 806 : /* -------------------------------------------------------------------- */ 807 : /* Put here drivers that absolutely need to look for side car */ 808 : /* files in their Identify()/Open() procedure. */ 809 : /* -------------------------------------------------------------------- */ 810 : 811 : #ifdef FRMT_raw 812 2135 : GDALRegister_raw_with_sidecar(); 813 : #endif 814 : 815 : #ifdef FRMT_zarr 816 2135 : GDALRegister_Zarr(); 817 : #endif 818 : 819 : #ifdef FRMT_icechunk 820 2135 : GDALRegister_Icechunk(); 821 : #endif 822 : 823 : #ifdef FRMT_rcm 824 2135 : GDALRegister_RCM(); 825 : #endif 826 : 827 : #ifdef FRMT_miramon 828 2135 : GDALRegister_MiraMon(); 829 : #endif 830 : 831 : /* -------------------------------------------------------------------- */ 832 : /* Register GDAL HTTP last, to let a chance to other drivers */ 833 : /* accepting URL to handle them before. */ 834 : /* -------------------------------------------------------------------- */ 835 : #ifdef FRMT_http 836 2135 : GDALRegister_HTTP(); 837 : #endif 838 : 839 2135 : poDriverManager->AutoLoadPythonDrivers(); 840 : 841 : /* -------------------------------------------------------------------- */ 842 : /* Deregister any drivers explicitly marked as suppressed by the */ 843 : /* GDAL_SKIP environment variable. */ 844 : /* -------------------------------------------------------------------- */ 845 2135 : poDriverManager->AutoSkipDrivers(); 846 : 847 2135 : poDriverManager->ReorderDrivers(); 848 2135 : }