#!/usr/bin/env python # # Public Domain 2014-present MongoDB, Inc. # Public Domain 2008-2014 WiredTiger, Inc. # # This is free and unencumbered software released into the public domain. # # Anyone is free to copy, modify, publish, use, compile, sell, or # distribute this software, either in source code form or as a compiled # binary, for any purpose, commercial or non-commercial, and by any # means. # # In jurisdictions that recognize copyright laws, the author or authors # of this software dedicate any and all copyright interest in the # software to the public domain. We make this dedication for the benefit # of the public at large and to the detriment of our heirs and # successors. We intend this dedication to be an overt act of # relinquishment in perpetuity of all present and future rights to this # software under copyright law. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. # IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR # OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR # OTHER DEALINGS IN THE SOFTWARE. # from __future__ import print_function import re, os, sys from distutils.core import setup, Extension # OS X hack: turn off the Universal binary support that is built into the # Python build machinery, just build for the default CPU architecture. if not 'ARCHFLAGS' in os.environ: os.environ['ARCHFLAGS'] = '' # Suppress warnings building SWIG generated code extra_cflags = [ '-w', '-Wno-sign-conversion', '-I../../src/include', \ '-I../../test/utility'] dir = os.path.dirname(__file__) abs_dir = os.path.dirname(os.path.abspath(__file__)) if abs_dir.endswith(os.sep + os.path.join('bench', 'workgen')): wt_dir = os.path.dirname(os.path.dirname(abs_dir)) else: print(os.path.basename(__file__) + ": running from unknown dir", \ file=sys.stderr) sys.exit(1) build_dir = os.path.join(wt_dir, 'build_posix') # Read the version information from the RELEASE_INFO file for l in open(os.path.join(dir, '..', '..', 'RELEASE_INFO')): if re.match(r'WIREDTIGER_VERSION_(?:MAJOR|MINOR|PATCH)=', l): exec(l) wt_ver = '%d.%d' % (WIREDTIGER_VERSION_MAJOR, WIREDTIGER_VERSION_MINOR) setup(name='workgen', version=wt_ver, ext_modules=[Extension('_workgen', [os.path.join(dir, 'workgen_wrap.cxx')], # The ordering of libraries is significant, and matters to some linkers. libraries=['workgen', 'wiredtiger', 'pthread'], extra_compile_args=extra_cflags, )], package_dir={'' : dir}, packages=['workgen'], )