Coverage Report

Created: 2025-06-13 06:18

/src/gdal/frmts/gdalallregister.cpp
Line
Count
Source (jump to first uncovered line)
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
0
#ifdef FRMT_vrt
317
0
    GDALRegister_VRT();
318
0
#endif
319
320
#ifdef FRMT_derived
321
    GDALRegister_Derived();
322
#endif
323
324
#ifdef FRMT_gti
325
    GDALRegister_GTI();
326
#endif
327
328
#ifdef FRMT_snap_tiff
329
    GDALRegister_SNAP_TIFF();
330
#endif
331
332
0
#ifdef FRMT_gtiff
333
0
    GDALRegister_GTiff();
334
0
    GDALRegister_COG();
335
0
#endif
336
337
#ifdef FRMT_libertiff
338
    GDALRegister_LIBERTIFF();
339
#endif
340
341
#ifdef FRMT_nitf
342
    GDALRegister_NITF();
343
    GDALRegister_RPFTOC();
344
    GDALRegister_ECRGTOC();
345
#endif
346
347
#ifdef FRMT_hfa
348
    GDALRegister_HFA();
349
#endif
350
351
#ifdef FRMT_ceos2
352
    GDALRegister_SAR_CEOS();
353
#endif
354
355
#ifdef FRMT_ceos
356
    GDALRegister_CEOS();
357
#endif
358
359
#ifdef FRMT_jaxapalsar
360
    GDALRegister_PALSARJaxa();
361
#endif
362
363
#ifdef FRMT_gff
364
    GDALRegister_GFF();
365
#endif
366
367
#ifdef FRMT_esric
368
    GDALRegister_ESRIC();
369
#endif
370
371
#ifdef FRMT_aigrid
372
    //    GDALRegister_AIGrid2();
373
    GDALRegister_AIGrid();
374
#endif
375
376
#ifdef FRMT_aaigrid
377
    GDALRegister_AAIGrid();
378
    GDALRegister_GRASSASCIIGrid();
379
    GDALRegister_ISG();
380
#endif
381
382
#ifdef FRMT_dted
383
    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
    GDALRegister_JPEG();
400
#endif
401
402
0
#ifdef FRMT_mem
403
0
    GDALRegister_MEM();
404
0
#endif
405
406
#ifdef FRMT_jdem
407
    GDALRegister_JDEM();
408
#endif
409
410
#ifdef FRMT_gif
411
    GDALRegister_GIF();
412
    GDALRegister_BIGGIF();
413
#endif
414
415
#ifdef FRMT_envisat
416
    GDALRegister_Envisat();
417
#endif
418
419
#ifdef FRMT_fits
420
    GDALRegister_FITS();
421
#endif
422
423
#ifdef FRMT_bsb
424
    GDALRegister_BSB();
425
#endif
426
427
#ifdef FRMT_bmp
428
    GDALRegister_BMP();
429
#endif
430
431
#ifdef FRMT_dimap
432
    GDALRegister_DIMAP();
433
#endif
434
435
#ifdef FRMT_airsar
436
    GDALRegister_AirSAR();
437
#endif
438
439
#ifdef FRMT_rs2
440
    GDALRegister_RS2();
441
#endif
442
443
#ifdef FRMT_safe
444
    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
    GDALRegister_ILWIS();
457
#endif
458
459
#ifdef FRMT_srtmhgt
460
    GDALRegister_SRTMHGT();
461
#endif
462
463
#ifdef FRMT_leveller
464
    GDALRegister_Leveller();
465
#endif
466
467
#ifdef FRMT_terragen
468
    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
    GDALRegister_ISIS3();
482
    GDALRegister_ISIS2();
483
    GDALRegister_PDS();
484
    GDALRegister_PDS4();
485
    GDALRegister_VICAR();
486
#endif
487
488
#ifdef FRMT_til
489
    GDALRegister_TIL();
490
#endif
491
492
#ifdef FRMT_ers
493
    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
    GDALRegister_L1B();
518
#endif
519
520
#ifdef FRMT_grib
521
    GDALRegister_GRIB();
522
#endif
523
524
#ifdef FRMT_mrsid
525
    GDALRegister_MrSID();
526
#endif
527
528
#ifdef FRMT_rmf
529
    GDALRegister_RMF();
530
#endif
531
532
#ifdef FRMT_wcs
533
    GDALRegister_WCS();
534
#endif
535
536
#ifdef FRMT_wms
537
    GDALRegister_WMS();
538
#endif
539
540
#ifdef FRMT_msgn
541
    GDALRegister_MSGN();
542
#endif
543
544
#ifdef FRMT_msg
545
    GDALRegister_MSG();
546
#endif
547
548
#ifdef FRMT_idrisi
549
    GDALRegister_IDRISI();
550
#endif
551
552
#ifdef FRMT_gsg
553
    GDALRegister_GSBG();
554
    GDALRegister_GS7BG();
555
#endif
556
557
#ifdef FRMT_cosar
558
    GDALRegister_COSAR();
559
#endif
560
561
#ifdef FRMT_tsx
562
    GDALRegister_TSX();
563
#endif
564
565
#ifdef FRMT_coasp
566
    GDALRegister_COASP();
567
#endif
568
569
#ifdef FRMT_map
570
    GDALRegister_MAP();
571
#endif
572
573
#ifdef FRMT_kmlsuperoverlay
574
    GDALRegister_KMLSUPEROVERLAY();
575
#endif
576
577
#ifdef FRMT_webp
578
    GDALRegister_WEBP();
579
#endif
580
581
#ifdef FRMT_pdf
582
    GDALRegister_PDF();
583
#endif
584
585
#ifdef FRMT_mbtiles
586
    GDALRegister_MBTiles();
587
#endif
588
589
#ifdef FRMT_plmosaic
590
    GDALRegister_PLMOSAIC();
591
#endif
592
593
#ifdef FRMT_cals
594
    GDALRegister_CALS();
595
#endif
596
597
#ifdef FRMT_wmts
598
    GDALRegister_WMTS();
599
#endif
600
601
#ifdef FRMT_sentinel2
602
    GDALRegister_SENTINEL2();
603
#endif
604
605
#ifdef FRMT_mrf
606
    GDALRegister_mrf();
607
#endif
608
609
#ifdef FRMT_tiledb
610
    GDALRegister_TileDB();
611
#endif
612
613
#ifdef FRMT_rdb
614
    GDALRegister_RDB();
615
#endif
616
    /* -------------------------------------------------------------------- */
617
    /*      Put raw formats at the end of the list. These drivers support   */
618
    /*      various ASCII-header labeled formats, so the driver could be    */
619
    /*      confused if you have files in some of above formats and such    */
620
    /*      ASCII-header in the same directory.                             */
621
    /* -------------------------------------------------------------------- */
622
623
#ifdef FRMT_raw
624
    GDALRegister_raw_no_sidecar();
625
#endif
626
627
    /* -------------------------------------------------------------------- */
628
    /*      Our test for the following is weak or expensive so we try       */
629
    /*      them last.                                                      */
630
    /* -------------------------------------------------------------------- */
631
632
#ifdef FRMT_rik
633
    GDALRegister_RIK();
634
#endif
635
636
#ifdef FRMT_usgsdem
637
    GDALRegister_USGSDEM();
638
#endif
639
640
#ifdef FRMT_gxf
641
    GDALRegister_GXF();
642
#endif
643
644
/* Register KEA before HDF5 */
645
#ifdef FRMT_kea
646
    GDALRegister_KEA();
647
#endif
648
649
#ifdef FRMT_hdf5
650
    GDALRegister_BAG();
651
    GDALRegister_S102();
652
    GDALRegister_S104();
653
    GDALRegister_S111();
654
    GDALRegister_HDF5();
655
    GDALRegister_HDF5Image();
656
#endif
657
658
#ifdef FRMT_northwood
659
    GDALRegister_NWT_GRD();
660
    GDALRegister_NWT_GRC();
661
#endif
662
663
#ifdef FRMT_adrg
664
    GDALRegister_ADRG();
665
    GDALRegister_SRP();
666
#endif
667
668
#ifdef FRMT_georaster
669
    GDALRegister_GEOR();
670
#endif
671
672
#ifdef FRMT_postgisraster
673
    GDALRegister_PostGISRaster();
674
#endif
675
676
#ifdef FRMT_saga
677
    GDALRegister_SAGA();
678
#endif
679
680
#ifdef FRMT_xyz
681
    GDALRegister_XYZ();
682
#endif
683
684
#ifdef FRMT_hf2
685
    GDALRegister_HF2();
686
#endif
687
688
#ifdef FRMT_ctg
689
    GDALRegister_CTG();
690
#endif
691
692
#ifdef FRMT_zmap
693
    GDALRegister_ZMap();
694
#endif
695
696
#ifdef FRMT_ngsgeoid
697
    GDALRegister_NGSGEOID();
698
#endif
699
700
#ifdef FRMT_iris
701
    GDALRegister_IRIS();
702
#endif
703
704
#ifdef FRMT_prf
705
    GDALRegister_PRF();
706
#endif
707
708
#ifdef FRMT_eeda
709
    GDALRegister_EEDAI();
710
    GDALRegister_EEDA();
711
#endif
712
713
#ifdef FRMT_daas
714
    GDALRegister_DAAS();
715
#endif
716
717
#ifdef FRMT_null
718
    GDALRegister_NULL();
719
#endif
720
721
#ifdef FRMT_sigdem
722
    GDALRegister_SIGDEM();
723
#endif
724
725
#ifdef FRMT_exr
726
    GDALRegister_EXR();
727
#endif
728
729
#ifdef FRMT_avif
730
    GDALRegister_AVIF();
731
#endif
732
733
#ifdef FRMT_heif
734
    GDALRegister_HEIF();
735
#endif
736
737
#ifdef FRMT_tga
738
    GDALRegister_TGA();
739
#endif
740
741
#ifdef FRMT_ogcapi
742
    GDALRegister_OGCAPI();
743
#endif
744
745
#ifdef FRMT_stacta
746
    GDALRegister_STACTA();
747
#endif
748
749
#ifdef FRMT_stacit
750
    GDALRegister_STACIT();
751
#endif
752
753
#ifdef FRMT_jpegxl
754
    GDALRegister_JPEGXL();
755
#endif
756
757
#ifdef FRMT_basisu_ktx2
758
    GDALRegister_BASISU();
759
    GDALRegister_KTX2();
760
#endif
761
762
#ifdef FRMT_gdalg
763
    GDALRegister_GDALG();
764
#endif
765
766
    // NOTE: you need to generally insert your own driver before that line.
767
768
    // NOTE: frmts/drivers.ini in the same directory should be kept in same
769
    // order as this file
770
771
/* -------------------------------------------------------------------- */
772
/*     GNM and OGR drivers                                              */
773
/* -------------------------------------------------------------------- */
774
0
#ifdef GNM_ENABLED
775
0
    GNMRegisterAllInternal();
776
0
#endif
777
778
0
    OGRRegisterAllInternal();
779
780
    /* -------------------------------------------------------------------- */
781
    /*      Put here drivers that absolutely need to look for side car      */
782
    /*      files in their Identify()/Open() procedure.                     */
783
    /* -------------------------------------------------------------------- */
784
785
#ifdef FRMT_raw
786
    GDALRegister_raw_with_sidecar();
787
#endif
788
789
#ifdef FRMT_zarr
790
    GDALRegister_Zarr();
791
#endif
792
793
#ifdef FRMT_rcm
794
    GDALRegister_RCM();
795
#endif
796
797
/* -------------------------------------------------------------------- */
798
/*      Register GDAL HTTP last, to let a chance to other drivers       */
799
/*      accepting URL to handle them before.                            */
800
/* -------------------------------------------------------------------- */
801
#ifdef FRMT_http
802
    GDALRegister_HTTP();
803
#endif
804
805
0
    poDriverManager->AutoLoadPythonDrivers();
806
807
    /* -------------------------------------------------------------------- */
808
    /*      Deregister any drivers explicitly marked as suppressed by the   */
809
    /*      GDAL_SKIP environment variable.                                 */
810
    /* -------------------------------------------------------------------- */
811
0
    poDriverManager->AutoSkipDrivers();
812
813
0
    poDriverManager->ReorderDrivers();
814
0
}