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