Move global vars from .h to separate TU

These global variables were instantiated in the image_sio.h header
and included into multiple translation units, violating ODR.
They are now marked as 'extern' and declared in a separate TU.
LT1AB
Ryan Burns 2020-07-09 12:23:34 -07:00
parent e751732c0f
commit f65f26e3cc
7 changed files with 70 additions and 34 deletions

View File

@ -67,7 +67,7 @@ Python_add_library(alos MODULE
src/ALOS_pre_process/data_ALOS.h src/ALOS_pre_process/data_ALOS.h
src/ALOS_pre_process/data_ALOSE.h src/ALOS_pre_process/data_ALOSE.h
src/ALOS_pre_process/hermite_c.c src/ALOS_pre_process/hermite_c.c
src/ALOS_pre_process/image_sio.h src/ALOS_pre_process/image_sio.c
src/ALOS_pre_process/init_from_PRM.c src/ALOS_pre_process/init_from_PRM.c
src/ALOS_pre_process/interpolate_ALOS_orbit.c src/ALOS_pre_process/interpolate_ALOS_orbit.c
src/ALOS_pre_process/null_sio_struct.c src/ALOS_pre_process/null_sio_struct.c

View File

@ -10,7 +10,10 @@ headerFiles = ['data_ALOS.h','data_ALOSE.h','image_sio.h','orbit_ALOS.h','sarlea
sourceFiles = ['ALOSE_orbits_utils.c','ALOS_ldr_orbit.c','ALOS_pre_process.c','calc_dop.c','hermite_c.c','init_from_PRM.c', sourceFiles = ['ALOSE_orbits_utils.c','ALOS_ldr_orbit.c','ALOS_pre_process.c','calc_dop.c','hermite_c.c','init_from_PRM.c',
'interpolate_ALOS_orbit.c','null_sio_struct.c','parse_ALOS_commands.c','polyfit.c','read_ALOSE_data.c', 'interpolate_ALOS_orbit.c','null_sio_struct.c','parse_ALOS_commands.c','polyfit.c','read_ALOSE_data.c',
'read_ALOS_data.c','read_ALOS_sarleader.c','roi_utils.c','set_ALOS_defaults.c','siocomplex.c', 'read_ALOS_data.c','read_ALOS_sarleader.c','roi_utils.c','set_ALOS_defaults.c','siocomplex.c',
'swap_ALOS_data_info.c','utils.c','write_ALOS_prm.c','readOrbitPulse.f','readOrbitPulseState.f','readOrbitPulseSetState.f'] 'swap_ALOS_data_info.c','utils.c','write_ALOS_prm.c',
'readOrbitPulse.f','readOrbitPulseState.f',
'readOrbitPulseSetState.f','image_sio.c',
]
lib = envSensorSrc1.Library(target = 'alos', source = sourceFiles) lib = envSensorSrc1.Library(target = 'alos', source = sourceFiles)
envSensorSrc1.Install(install,lib) envSensorSrc1.Install(install,lib)
envSensorSrc1.Alias('install',install) envSensorSrc1.Alias('install',install)

View File

@ -0,0 +1,16 @@
#include "image_sio.h"
int verbose;
int debug;
int roi;
int swap;
int quad_pol;
int ALOS_format;
int force_slope;
int dopp;
int quiet_flag;
int SAR_mode;
double forced_slope;
double tbias;

View File

@ -146,19 +146,19 @@ radar_wavelength lambda
rng_spec_wgt rhww rng_spec_wgt rhww
*/ */
int verbose; /* controls minimal level of output */ extern int verbose; /* controls minimal level of output */
int debug; /* more output */ extern int debug; /* more output */
int roi; /* more output */ extern int roi; /* more output */
int swap; /* whether to swap bytes */ extern int swap; /* whether to swap bytes */
int quad_pol; /* quad polarization data */ extern int quad_pol; /* quad polarization data */
int ALOS_format; /* AUIG: ALOS_format = 0 */ extern int ALOS_format; /* AUIG: ALOS_format = 0 */
/* ERSDAC: ALOS_format = 1 */ /* ERSDAC: ALOS_format = 1 */
int force_slope; /* whether to set the slope */ extern int force_slope; /* whether to set the slope */
int dopp; /* whether to calculate doppler */ extern int dopp; /* whether to calculate doppler */
int quiet_flag; /* reduce output */ extern int quiet_flag; /* reduce output */
int SAR_mode; /* 0 => high-res */ extern int SAR_mode; /* 0 => high-res */
/* 1 => wide obs */ /* 1 => wide obs */
/* 2 => polarimetry */ /* 2 => polarimetry */
/* from ALOS Product Format 3-2 */ /* from ALOS Product Format 3-2 */
double forced_slope; /* value to set chirp_slope to */ extern double forced_slope; /* value to set chirp_slope to */
double tbias; /* time bias for bad orbit data */ extern double tbias; /* time bias for bad orbit data */

View File

@ -0,0 +1,16 @@
#include "image_sio.h"
int verbose;
int debug;
int roi;
int swap;
int quad_pol;
int ALOS_format;
int force_slope;
int dopp;
int quiet_flag;
int SAR_mode;
double forced_slope;
double tbias;

View File

@ -1,6 +1,7 @@
isce2_add_staticlib(alosLib isce2_add_staticlib(alosLib
ALOS_lib/src/cfft1d.c ALOS_lib/src/cfft1d.c
ALOS_lib/src/find_fft_length.c ALOS_lib/src/find_fft_length.c
ALOS_lib/src/image_sio.c
ALOS_lib/src/utils.c ALOS_lib/src/utils.c
ALOS_lib/src/ALOS_ldr_orbit.c ALOS_lib/src/ALOS_ldr_orbit.c
ALOS_lib/src/calc_dop.c ALOS_lib/src/calc_dop.c

View File

@ -146,19 +146,19 @@ radar_wavelength lambda
rng_spec_wgt rhww rng_spec_wgt rhww
*/ */
int verbose; /* controls minimal level of output */ extern int verbose; /* controls minimal level of output */
int debug; /* more output */ extern int debug; /* more output */
int roi; /* more output */ extern int roi; /* more output */
int swap; /* whether to swap bytes */ extern int swap; /* whether to swap bytes */
int quad_pol; /* quad polarization data */ extern int quad_pol; /* quad polarization data */
int ALOS_format; /* AUIG: ALOS_format = 0 */ extern int ALOS_format; /* AUIG: ALOS_format = 0 */
/* ERSDAC: ALOS_format = 1 */ /* ERSDAC: ALOS_format = 1 */
int force_slope; /* whether to set the slope */ extern int force_slope; /* whether to set the slope */
int dopp; /* whether to calculate doppler */ extern int dopp; /* whether to calculate doppler */
int quiet_flag; /* reduce output */ extern int quiet_flag; /* reduce output */
int SAR_mode; /* 0 => high-res */ extern int SAR_mode; /* 0 => high-res */
/* 1 => wide obs */ /* 1 => wide obs */
/* 2 => polarimetry */ /* 2 => polarimetry */
/* from ALOS Product Format 3-2 */ /* from ALOS Product Format 3-2 */
double forced_slope; /* value to set chirp_slope to */ extern double forced_slope; /* value to set chirp_slope to */
double tbias; /* time bias for bad orbit data */ extern double tbias; /* time bias for bad orbit data */