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