Coverage Report

Created: 2025-12-31 06:48

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