Coverage Report

Created: 2026-07-25 06:50

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/gdal/frmts/gdalallregister.cpp
Line
Count
Source
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
CPLErr GDALRegisterPlugin(const char *name)
52
0
{
53
0
    auto poDriverManager = GetGDALDriverManager();
54
    // LoadPlugin is a no-op if compiled with GDAL_NO_AUTOLOAD defined.
55
0
    return poDriverManager->LoadPlugin(name);
56
0
}
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
void CPL_DLL GDALRegisterPlugins(void)
79
0
{
80
0
    auto poDriverManager = GetGDALDriverManager();
81
    // AutoLoadDrivers is a no-op if compiled with GDAL_NO_AUTOLOAD defined.
82
0
    poDriverManager->AutoLoadDrivers();
83
0
    poDriverManager->AutoLoadPythonDrivers();
84
85
    /* -------------------------------------------------------------------- */
86
    /*      Deregister any drivers explicitly marked as suppressed by the   */
87
    /*      GDAL_SKIP environment variable.                                 */
88
    /* -------------------------------------------------------------------- */
89
0
    poDriverManager->AutoSkipDrivers();
90
91
0
    poDriverManager->ReorderDrivers();
92
0
}
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
void CPL_STDCALL GDALAllRegister()
112
113
0
{
114
0
    auto poDriverManager = GetGDALDriverManager();
115
116
#if defined(HAVE_EXTERNAL_DEFERRED_PLUGINS)
117
    DeclareExternalDeferredPlugins();
118
#endif
119
120
#if defined(DEFERRED_ARROW_DRIVER)
121
    DeclareDeferredOGRArrowPlugin();
122
#endif
123
#if defined(DEFERRED_BASISU_KTX2_DRIVER)
124
    DeclareDeferredBASISU_KTX2Plugin();
125
#endif
126
#if defined(DEFERRED_CAD_DRIVER)
127
    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
    DeclareDeferredEXRPlugin();
144
#endif
145
#if defined(DEFERRED_ECW_DRIVER)
146
    DeclareDeferredECWPlugin();
147
#endif
148
#if defined(DEFERRED_FILEGDB_DRIVER)
149
    DeclareDeferredOGRFileGDBPlugin();
150
#endif
151
#if defined(DEFERRED_FITS_DRIVER)
152
    DeclareDeferredFITSPlugin();
153
#endif
154
#if defined(DEFERRED_GEOR_DRIVER)
155
    DeclareDeferredGEORPlugin();
156
#endif
157
#if defined(DEFERRED_GIF_DRIVER)
158
    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
    DeclareDeferredOGRHANAPlugin();
171
#endif
172
#if defined(DEFERRED_AVIF_DRIVER)
173
    DeclareDeferredAVIFPlugin();
174
#endif
175
#if defined(DEFERRED_HEIF_DRIVER)
176
    DeclareDeferredHEIFPlugin();
177
#endif
178
#if defined(DEFERRED_HDF4_DRIVER)
179
    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
    DeclareDeferredKEAPlugin();
185
#endif
186
#if defined(DEFERRED_HDF5_DRIVER)
187
    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
    DeclareDeferredOPENJPEGPlugin();
200
#endif
201
#if defined(DEFERRED_JPEG_DRIVER)
202
    DeclareDeferredJPEGPlugin();
203
#endif
204
#if defined(DEFERRED_JPEGXL_DRIVER)
205
    DeclareDeferredJPEGXLPlugin();
206
#endif
207
#if defined(DEFERRED_JPIPKAK_DRIVER)
208
    DeclareDeferredJPIPKAKPlugin();
209
#endif
210
#if defined(DEFERRED_LIBKML_DRIVER)
211
    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
    DeclareDeferredOGRMSSQLSpatialPlugin();
230
#endif
231
#if defined(DEFERRED_MYSQL_DRIVER)
232
    DeclareDeferredOGRMySQLPlugin();
233
#endif
234
#if defined(DEFERRED_NETCDF_DRIVER)
235
    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
    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
    DeclareDeferredOGRParquetPlugin();
254
#endif
255
#if defined(DEFERRED_PCIDSK_DRIVER)
256
    DeclareDeferredPCIDSKPlugin();
257
#endif
258
#if defined(DEFERRED_PCRASTER_DRIVER)
259
    DeclareDeferredPCRasterPlugin();
260
#endif
261
#if defined(DEFERRED_POSTGISRASTER_DRIVER)
262
    DeclareDeferredPostGISRasterPlugin();
263
#endif
264
#if defined(DEFERRED_PLSCENES_DRIVER)
265
    DeclareDeferredOGRPLSCENESPlugin();
266
#endif
267
#if defined(DEFERRED_PDF_DRIVER)
268
    DeclareDeferredPDFPlugin();
269
#endif
270
#if defined(DEFERRED_PDS_DRIVER)
271
    DeclareDeferredPDSPlugin();
272
#endif
273
#if defined(DEFERRED_PG_DRIVER)
274
    DeclareDeferredOGRPGPlugin();
275
#endif
276
#if defined(DEFERRED_PNG_DRIVER)
277
    DeclareDeferredPNGPlugin();
278
#endif
279
#if defined(DEFERRED_RASTERLITE_DRIVER)
280
    DeclareDeferredRasterlitePlugin();
281
#endif
282
#if defined(DEFERRED_SOSI_DRIVER)
283
    DeclareDeferredOGRSOSIPlugin();
284
#endif
285
#if defined(DEFERRED_TILEDB_DRIVER)
286
    DeclareDeferredTileDBPlugin();
287
#endif
288
#if defined(DEFERRED_VFK_DRIVER)
289
    DeclareDeferredOGRVFKPlugin();
290
#endif
291
#if defined(DEFERRED_WCS_DRIVER)
292
    DeclareDeferredWCSPlugin();
293
#endif
294
#if defined(DEFERRED_WEBP_DRIVER)
295
    DeclareDeferredWEBPPlugin();
296
#endif
297
#if defined(DEFERRED_WMS_DRIVER)
298
    DeclareDeferredWMSPlugin();
299
#endif
300
#if defined(DEFERRED_WMTS_DRIVER)
301
    DeclareDeferredWMTSPlugin();
302
#endif
303
#if defined(DEFERRED_XLS_DRIVER)
304
    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
    DeclareDeferredOGRXODRPlugin();
314
#endif
315
#if defined(DEFERRED_ADBC_DRIVER)
316
    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
0
    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
    GDALRegister_Derived();
330
#endif
331
332
#ifdef FRMT_gti
333
    GDALRegister_GTI();
334
#endif
335
336
#ifdef FRMT_snap_tiff
337
    GDALRegister_SNAP_TIFF();
338
#endif
339
340
0
#ifdef FRMT_gtiff
341
0
    GDALRegister_GTiff();
342
0
    GDALRegister_COG();
343
0
#endif
344
345
#ifdef FRMT_libertiff
346
    GDALRegister_LIBERTIFF();
347
#endif
348
349
    // VRT needs to be registered after GeoTIFF as it queries its metadata
350
0
#ifdef FRMT_vrt
351
0
    GDALRegister_VRT();
352
0
#endif
353
354
#ifdef FRMT_nitf
355
    GDALRegister_NITF();
356
    GDALRegister_RPFTOC();
357
    GDALRegister_ECRGTOC();
358
#endif
359
360
#ifdef FRMT_hfa
361
    GDALRegister_HFA();
362
#endif
363
364
#ifdef FRMT_ceos2
365
    GDALRegister_SAR_CEOS();
366
#endif
367
368
#ifdef FRMT_ceos
369
    GDALRegister_CEOS();
370
#endif
371
372
#ifdef FRMT_jaxapalsar
373
    GDALRegister_PALSARJaxa();
374
#endif
375
376
#ifdef FRMT_gff
377
    GDALRegister_GFF();
378
#endif
379
380
#ifdef FRMT_esric
381
    GDALRegister_ESRIC();
382
#endif
383
384
#ifdef FRMT_aigrid
385
    //    GDALRegister_AIGrid2();
386
    GDALRegister_AIGrid();
387
#endif
388
389
#ifdef FRMT_aaigrid
390
    GDALRegister_AAIGrid();
391
    GDALRegister_GRASSASCIIGrid();
392
    GDALRegister_ISG();
393
#endif
394
395
#ifdef FRMT_dted
396
    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
    GDALRegister_JPEG();
413
#endif
414
415
0
#ifdef FRMT_mem
416
0
    GDALRegister_MEM();
417
0
#endif
418
419
#ifdef FRMT_jdem
420
    GDALRegister_JDEM();
421
#endif
422
423
#ifdef FRMT_gif
424
    GDALRegister_GIF();
425
    GDALRegister_BIGGIF();
426
#endif
427
428
#ifdef FRMT_envisat
429
    GDALRegister_Envisat();
430
#endif
431
432
#ifdef FRMT_fits
433
    GDALRegister_FITS();
434
#endif
435
436
#ifdef FRMT_bsb
437
    GDALRegister_BSB();
438
#endif
439
440
#ifdef FRMT_bmp
441
    GDALRegister_BMP();
442
#endif
443
444
#ifdef FRMT_dimap
445
    GDALRegister_DIMAP();
446
#endif
447
448
#ifdef FRMT_airsar
449
    GDALRegister_AirSAR();
450
#endif
451
452
#ifdef FRMT_rs2
453
    GDALRegister_RS2();
454
#endif
455
456
#ifdef FRMT_safe
457
    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
    GDALRegister_ILWIS();
470
#endif
471
472
#ifdef FRMT_srtmhgt
473
    GDALRegister_SRTMHGT();
474
#endif
475
476
#ifdef FRMT_leveller
477
    GDALRegister_Leveller();
478
#endif
479
480
#ifdef FRMT_terragen
481
    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
    GDALRegister_ISIS3();
495
    GDALRegister_ISIS2();
496
    GDALRegister_PDS();
497
    GDALRegister_PDS4();
498
    GDALRegister_VICAR();
499
#endif
500
501
#ifdef FRMT_til
502
    GDALRegister_TIL();
503
#endif
504
505
#ifdef FRMT_ers
506
    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
    GDALRegister_L1B();
535
#endif
536
537
#ifdef FRMT_grib
538
    GDALRegister_GRIB();
539
#endif
540
541
#ifdef FRMT_mrsid
542
    GDALRegister_MrSID();
543
#endif
544
545
#ifdef FRMT_rmf
546
    GDALRegister_RMF();
547
#endif
548
549
#ifdef FRMT_wcs
550
    GDALRegister_WCS();
551
#endif
552
553
#ifdef FRMT_wms
554
    GDALRegister_WMS();
555
#endif
556
557
#ifdef FRMT_msgn
558
    GDALRegister_MSGN();
559
#endif
560
561
#ifdef FRMT_msg
562
    GDALRegister_MSG();
563
#endif
564
565
#ifdef FRMT_idrisi
566
    GDALRegister_IDRISI();
567
#endif
568
569
#ifdef FRMT_gsg
570
    GDALRegister_GSAG();
571
    GDALRegister_GSBG();
572
    GDALRegister_GS7BG();
573
#endif
574
575
#ifdef FRMT_cosar
576
    GDALRegister_COSAR();
577
#endif
578
579
#ifdef FRMT_tsx
580
    GDALRegister_TSX();
581
#endif
582
583
#ifdef FRMT_coasp
584
    GDALRegister_COASP();
585
#endif
586
587
#ifdef FRMT_map
588
    GDALRegister_MAP();
589
#endif
590
591
#ifdef FRMT_kmlsuperoverlay
592
    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
    GDALRegister_MBTiles();
605
#endif
606
607
#ifdef FRMT_plmosaic
608
    GDALRegister_PLMOSAIC();
609
#endif
610
611
#ifdef FRMT_cals
612
    GDALRegister_CALS();
613
#endif
614
615
#ifdef FRMT_wmts
616
    GDALRegister_WMTS();
617
#endif
618
619
#ifdef FRMT_sentinel2
620
    GDALRegister_SENTINEL2();
621
#endif
622
623
#ifdef FRMT_lerc
624
    GDALRegister_LERC();
625
#endif
626
627
#ifdef FRMT_mrf
628
    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
    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
    GDALRegister_RIK();
656
#endif
657
658
#ifdef FRMT_usgsdem
659
    GDALRegister_USGSDEM();
660
#endif
661
662
#ifdef FRMT_gxf
663
    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
    GDALRegister_NWT_GRD();
682
    GDALRegister_NWT_GRC();
683
#endif
684
685
#ifdef FRMT_adrg
686
    GDALRegister_ADRG();
687
    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
    GDALRegister_SAGA();
700
#endif
701
702
#ifdef FRMT_xyz
703
    GDALRegister_XYZ();
704
#endif
705
706
#ifdef FRMT_hf2
707
    GDALRegister_HF2();
708
#endif
709
710
#ifdef FRMT_ctg
711
    GDALRegister_CTG();
712
#endif
713
714
#ifdef FRMT_zmap
715
    GDALRegister_ZMap();
716
#endif
717
718
#ifdef FRMT_ngsgeoid
719
    GDALRegister_NGSGEOID();
720
#endif
721
722
#ifdef FRMT_iris
723
    GDALRegister_IRIS();
724
#endif
725
726
#ifdef FRMT_prf
727
    GDALRegister_PRF();
728
#endif
729
730
#ifdef FRMT_eeda
731
    GDALRegister_EEDAI();
732
    GDALRegister_EEDA();
733
#endif
734
735
#ifdef FRMT_daas
736
    GDALRegister_DAAS();
737
#endif
738
739
#ifdef FRMT_null
740
    GDALRegister_NULL();
741
#endif
742
743
#ifdef FRMT_sigdem
744
    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
    GDALRegister_TGA();
761
#endif
762
763
#ifdef FRMT_ogcapi
764
    GDALRegister_OGCAPI();
765
#endif
766
767
#ifdef FRMT_stacta
768
    GDALRegister_STACTA();
769
#endif
770
771
#ifdef FRMT_stacit
772
    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
    GDALRegister_GDALG();
786
#endif
787
788
#ifdef FRMT_e57
789
    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
0
#ifdef GNM_ENABLED
801
0
    GNMRegisterAllInternal();
802
0
#endif
803
804
0
    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
    GDALRegister_raw_with_sidecar();
813
#endif
814
815
#ifdef FRMT_zarr
816
    GDALRegister_Zarr();
817
#endif
818
819
#ifdef FRMT_icechunk
820
    GDALRegister_Icechunk();
821
#endif
822
823
#ifdef FRMT_rcm
824
    GDALRegister_RCM();
825
#endif
826
827
#ifdef FRMT_miramon
828
    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
    GDALRegister_HTTP();
837
#endif
838
839
0
    poDriverManager->AutoLoadPythonDrivers();
840
841
    /* -------------------------------------------------------------------- */
842
    /*      Deregister any drivers explicitly marked as suppressed by the   */
843
    /*      GDAL_SKIP environment variable.                                 */
844
    /* -------------------------------------------------------------------- */
845
0
    poDriverManager->AutoSkipDrivers();
846
847
0
    poDriverManager->ReorderDrivers();
848
0
}