mirror of
https://github.com/tfussell/xlnt.git
synced 2024-03-22 13:11:17 +08:00
90 lines
2.5 KiB
CMake
90 lines
2.5 KiB
CMake
import os
|
|
import sys
|
|
from distutils.core import setup, Extension
|
|
from distutils import sysconfig
|
|
|
|
description = """
|
|
xlntpyarrow allows Apache Arrow tables to be written to and read from an XLSX
|
|
file efficiently using the C++ library xlnt.
|
|
""".strip()
|
|
|
|
cfg_vars = sysconfig.get_config_vars()
|
|
if 'CFLAGS' in cfg_vars:
|
|
cfg_vars['CFLAGS'] = cfg_vars['CFLAGS'].replace('-Wstrict-prototypes', '')
|
|
|
|
project_root = '${CMAKE_SOURCE_DIR}'
|
|
conda_root = '${CONDA_ROOT}'
|
|
|
|
include_dirs = [
|
|
os.path.join(project_root, 'include'),
|
|
os.path.join(project_root, 'xlntpyarrow'),
|
|
os.path.join(conda_root, 'include')
|
|
]
|
|
|
|
subdirectory = ''
|
|
library_dir = 'lib'
|
|
|
|
if os.name == 'nt':
|
|
subdirectory = '/Release'
|
|
library_dir = 'Lib/site-packages'
|
|
|
|
library_dirs = [
|
|
os.path.join(project_root, 'build/source' + subdirectory),
|
|
os.path.join(conda_root, 'lib')
|
|
]
|
|
|
|
compile_args = '${CMAKE_CXX_FLAGS}'.split()
|
|
|
|
xlntpyarrow_extension = Extension(
|
|
'xlntpyarrow',
|
|
['${CMAKE_CURRENT_SOURCE_DIR}/xlntpyarrow.cpp'],
|
|
language = 'c++',
|
|
include_dirs = include_dirs,
|
|
libraries = [
|
|
'arrow',
|
|
'xlnt'
|
|
],
|
|
library_dirs = library_dirs,
|
|
extra_compile_args = compile_args
|
|
)
|
|
|
|
classifiers = [
|
|
'Development Status :: 5 - Production/Stable',
|
|
'Environment :: Plugins',
|
|
'Intended Audience :: Science/Research',
|
|
'License :: OSI Approved :: MIT License',
|
|
'Natural Language :: English',
|
|
'Operating System :: Microsoft :: Windows',
|
|
'Operating System :: MacOS :: MacOS X',
|
|
'Operating System :: POSIX :: Linux',
|
|
'Programming Language :: C',
|
|
'Programming Language :: C++',
|
|
'Programming Language :: Python :: 2.7',
|
|
'Programming Language :: Python :: 3.6',
|
|
'Programming Language :: Python :: Implementation :: CPython',
|
|
'Topic :: Database',
|
|
'Topic :: Office/Business :: Financial :: Spreadsheet',
|
|
'Topic :: Scientific/Engineering :: Information Analysis',
|
|
'Topic :: Software Development :: Libraries :: Python Modules'
|
|
]
|
|
|
|
data_files = []
|
|
|
|
for arg in sys.argv:
|
|
if arg[:2] == '--' and arg.split('=')[0][2:] == 'xlntlib':
|
|
data_files.append(os.path.relpath(arg.split('=')[1]).replace('\\', '/'))
|
|
sys.argv.remove(arg)
|
|
break
|
|
|
|
setup(
|
|
name = 'xlntpyarrow',
|
|
version = '1.1.0',
|
|
classifiers = classifiers,
|
|
description = description,
|
|
ext_modules = [xlntpyarrow_extension],
|
|
author = 'Thomas Fussell',
|
|
author_email = 'thomas.fussell@gmail.com',
|
|
url = 'https://github.com/tfussell/xlnt',
|
|
data_files = [(library_dir, data_files)]
|
|
)
|