diff --git a/src/SConscript b/src/SConscript index 794934cd50..ea7534f3f0 100644 --- a/src/SConscript +++ b/src/SConscript @@ -1,5 +1,6 @@ from buildutils import * from pathlib import Path +import re Import('env', 'build', 'install', 'libraryTargets') @@ -128,10 +129,23 @@ localenv.Append(LIBS=localenv['external_libs'], def create_def_file(target, source, env): # Adapted from https://stackoverflow.com/a/58958294 startPoint = False - # Exclude standard API like sprintf to avoid multiple definition link error - excluded_functions = {'sprintf', 'snprintf', 'sscanf', 'fprintf'} + # Avoid exporting some unnecessary symbols + exclusions = [ + lambda name: name.startswith(('??_G', '??_E')), # deleting destructors; generate warning LNK4102 + lambda name: name.startswith(('??_C', '__real@', '__xmm')), # various constants + lambda name: name.startswith(('??$forward', '??$addressof', '??$construct', '??$destroy')), + lambda name: name.startswith(('SUN', 'N_V', 'CV', 'cv', 'IDA', 'ida')), # Sundials + lambda name: '