Files
2025-03-12 16:24:20 +08:00

115 lines
6.8 KiB
Python

# component/SConscript
Import('env')
import os
with open(env['PROJECT_TOOL_S']) as f:
exec(f.read())
if 'CONFIG_MONGO_C_DRIVER_ENABLED' in os.environ:
check_component('mongo-c-driver')
SRCS=[]
INCLUDE=[ADir('include'), ADir('../../github_source/mongo-c-driver/src/common/src')]
PRIVATE_INCLUDE=[]
REQUIREMENTS=[]
STATIC_LIB=[]
DYNAMIC_LIB=[]
DEFINITIONS=[]
DEFINITIONS_PRIVATE=['-O2']
LDFLAGS=[]
LINK_SEARCH_PATH=[]
if 'CONFIG_LIBBSON_ENABLED' in os.environ:
_SRCS = AGlob('../../github_source/mongo-c-driver/src/common/src/*.c*')
_SRCS += AGlob('../../github_source/mongo-c-driver/src/libbson/src/bson/*.c*')
_SRCS += AGlob('../../github_source/mongo-c-driver/src/libbson/src/jsonsl/*.c*')
_INCLUDE = [ADir('../../github_source/mongo-c-driver/src/libbson/src')]
_DEFINITIONS_PRIVATE = ['-DBSON_COMPILATION', '-DBSON_STATIC', '-DJSONSL_PARSE_NAN', '-DMCOMMON_NAME_PREFIX=_bson_mcommon', '-D_BSD_SOURCE', '-D_DEFAULT_SOURCE', '-D_MLIB_BUILD_CONFIG=RelWithDebInfo', '-D_XOPEN_SOURCE=700']
env['COMPONENTS'].append({'target':'bson',
'SRCS':SRCS + _SRCS,
'INCLUDE':INCLUDE + _INCLUDE,
'PRIVATE_INCLUDE':PRIVATE_INCLUDE,
'REQUIREMENTS':REQUIREMENTS,
'STATIC_LIB':STATIC_LIB,
'DYNAMIC_LIB':DYNAMIC_LIB,
'DEFINITIONS':DEFINITIONS,
'DEFINITIONS_PRIVATE':DEFINITIONS_PRIVATE + _DEFINITIONS_PRIVATE,
'LDFLAGS':LDFLAGS,
'LINK_SEARCH_PATH':LINK_SEARCH_PATH,
'REGISTER':'static'
})
if 'CONFIG_LIBZLIB_ENABLED' in os.environ:
_SRCS = AGlob('../../github_source/mongo-c-driver/src/zlib-1.3.1/*.c')
_INCLUDE = [ADir('../../github_source/mongo-c-driver/src/zlib-1.3.1')]
env['COMPONENTS'].append({'target':'zlib',
'SRCS':SRCS + _SRCS,
'INCLUDE':INCLUDE + _INCLUDE,
'PRIVATE_INCLUDE':PRIVATE_INCLUDE,
'REQUIREMENTS':REQUIREMENTS,
'STATIC_LIB':STATIC_LIB,
'DYNAMIC_LIB':DYNAMIC_LIB,
'DEFINITIONS':DEFINITIONS,
'DEFINITIONS_PRIVATE':DEFINITIONS_PRIVATE,
'LDFLAGS':LDFLAGS,
'LINK_SEARCH_PATH':LINK_SEARCH_PATH,
'REGISTER':'static'
})
if 'CONFIG_KMS_MESSAGE_ENABLED' in os.environ:
_SRCS = AGlob('../../github_source/mongo-c-driver/src/kms-message/src/*.c')
_INCLUDE = [ADir('../../github_source/mongo-c-driver/src/kms-message/src')]
_DEFINITIONS_PRIVATE = ['-DBSON_STATIC' ,'-DHAVE_STDARG_H' ,'-DHAVE_UNISTD_H' ,'-DKMS_MESSAGE_ENABLE_CRYPTO' ,'-DKMS_MESSAGE_ENABLE_CRYPTO_LIBCRYPTO' ,'-DKMS_MESSAGE_LITTLE_ENDIAN' ,'-DKMS_MSG_STATIC' ,'-DMCOMMON_NAME_PREFIX=_mongoc_mcommon' ,'-DMONGOC_COMPILATION' ,'-DMONGOC_STATIC' ,'-DUTF8PROC_STATIC' ,'-D_BSD_SOURCE' ,'-D_DEFAULT_SOURCE' ,'-D_MLIB_BUILD_CONFIG=RelWithDebInfo' ,'-D_XOPEN_SOURCE=700']
_SRCS = list(filter(lambda x: not str(x).endswith('kms_kmip_reader_writer.c'), _SRCS))
env['COMPONENTS'].append({'target':'kms-message',
'SRCS':SRCS + _SRCS,
'INCLUDE':INCLUDE + _INCLUDE,
'PRIVATE_INCLUDE':PRIVATE_INCLUDE ,
'REQUIREMENTS':REQUIREMENTS + ['ssl', 'crypto'],
'STATIC_LIB':STATIC_LIB,
'DYNAMIC_LIB':DYNAMIC_LIB,
'DEFINITIONS':DEFINITIONS,
'DEFINITIONS_PRIVATE':DEFINITIONS_PRIVATE + _DEFINITIONS_PRIVATE,
'LDFLAGS':LDFLAGS,
'LINK_SEARCH_PATH':LINK_SEARCH_PATH,
'REGISTER':'static'
})
if 'CONFIG_LIBMONGOC_ENABLED' in os.environ:
_PRIVATE_INCLUDE = [ADir('../../github_source/mongo-c-driver/src/uthash'), ADir('../../github_source/mongo-c-driver/src/libbson/src'), ADir('../../github_source/mongo-c-driver/src/kms-message/src'), ADir('../../github_source/mongo-c-driver/src/utf8proc-2.8.0')]
_SRCS = AGlob('../../github_source/mongo-c-driver/src/common/src/*.c*')
_SRCS += AGlob('../../github_source/mongo-c-driver/src/libmongoc/src/mongoc/*.c')
_SRCS += [AFile('../../github_source/mongo-c-driver/src/utf8proc-2.8.0/utf8proc.c')]
_INCLUDE = [ADir('../../github_source/mongo-c-driver/src/libmongoc/src')]
_DEFINITIONS_PRIVATE = ['-DBSON_STATIC', '-DHAVE_STDARG_H', '-DHAVE_UNISTD_H', '-DKMS_MESSAGE_ENABLE_CRYPTO', '-DKMS_MESSAGE_ENABLE_CRYPTO_LIBCRYPTO', '-DKMS_MESSAGE_LITTLE_ENDIAN', '-DKMS_MSG_STATIC', '-DMCOMMON_NAME_PREFIX=_mongoc_mcommon', '-DMONGOC_COMPILATION', '-DMONGOC_STATIC', '-DUTF8PROC_STATIC', '-D_BSD_SOURCE', '-D_DEFAULT_SOURCE', '-D_MLIB_BUILD_CONFIG=RelWithDebInfo', '-D_XOPEN_SOURCE=700']
env['COMPONENTS'].append({'target':'mongoc',
'SRCS':SRCS + _SRCS,
'INCLUDE':INCLUDE + _INCLUDE,
'PRIVATE_INCLUDE':PRIVATE_INCLUDE + _PRIVATE_INCLUDE,
'REQUIREMENTS':REQUIREMENTS + ['kms-message', 'bson', 'zlib', 'zstd', 'resolv'],
'STATIC_LIB':STATIC_LIB,
'DYNAMIC_LIB':DYNAMIC_LIB,
'DEFINITIONS':DEFINITIONS ,
'DEFINITIONS_PRIVATE':DEFINITIONS_PRIVATE + _DEFINITIONS_PRIVATE ,
'LDFLAGS':LDFLAGS,
'LINK_SEARCH_PATH':LINK_SEARCH_PATH,
'REGISTER':'static'
})
env['COMPONENTS'].append({'target':os.path.basename(env['component_dir']),
'SRCS':SRCS,
'INCLUDE':INCLUDE,
'PRIVATE_INCLUDE':PRIVATE_INCLUDE,
'REQUIREMENTS':REQUIREMENTS,
'STATIC_LIB':STATIC_LIB,
'DYNAMIC_LIB':DYNAMIC_LIB,
'DEFINITIONS':DEFINITIONS,
'DEFINITIONS_PRIVATE':DEFINITIONS_PRIVATE,
'LDFLAGS':LDFLAGS,
'LINK_SEARCH_PATH':LINK_SEARCH_PATH,
'REGISTER':'static'
})