1ee05e790Sjeremylt# Copyright (c) 2017, Lawrence Livermore National Security, LLC. Produced at 2ee05e790Sjeremylt# the Lawrence Livermore National Laboratory. LLNL-CODE-734707. All Rights 3ee05e790Sjeremylt# reserved. See files LICENSE and NOTICE for details. 4ee05e790Sjeremylt# 5ee05e790Sjeremylt# This file is part of CEED, a collection of benchmarks, miniapps, software 6ee05e790Sjeremylt# libraries and APIs for efficient high-order finite element and spectral 7ee05e790Sjeremylt# element discretizations for exascale applications. For more information and 8ee05e790Sjeremylt# source code availability see http://github.com/ceed. 9ee05e790Sjeremylt# 10ee05e790Sjeremylt# The CEED research is supported by the Exascale Computing Project 17-SC-20-SC, 11ee05e790Sjeremylt# a collaborative effort of two U.S. Department of Energy organizations (Office 12ee05e790Sjeremylt# of Science and the National Nuclear Security Administration) responsible for 13ee05e790Sjeremylt# the planning and preparation of a capable exascale ecosystem, including 14ee05e790Sjeremylt# software, applications, hardware, advanced system engineering and early 15ee05e790Sjeremylt# testbed platforms, in support of the nation"s exascale computing imperative. 16ee05e790Sjeremylt# pylint: disable=no-name-in-module,import-error,unused-variable 17ee05e790Sjeremyltimport os 18ee05e790Sjeremyltfrom setuptools import setup 1937c134eaSJed Brownfrom setuptools.command.build_ext import build_ext 20ee05e790Sjeremylt 21ee05e790Sjeremylt# ------------------------------------------------------------------------------ 22ee05e790Sjeremylt# Setup 23ee05e790Sjeremylt# ------------------------------------------------------------------------------ 24ee05e790Sjeremyltdef version(): 25ee05e790Sjeremylt with open(os.path.abspath("ceed.pc.template")) as template: 26ee05e790Sjeremylt ceed_version = [line.split("Version:", 1)[1].strip() for line in template if 27ee05e790Sjeremylt line.startswith("Version: ")] 28ee05e790Sjeremylt return ceed_version[0] 29ee05e790Sjeremylt 3037c134eaSJed Browndef requirements(): 3137c134eaSJed Brown with open('requirements.txt') as f: 3237c134eaSJed Brown return f.readlines() 3337c134eaSJed Brown 3437c134eaSJed Brownclass libceed_build_ext(build_ext): 3537c134eaSJed Brown def run(self): 3637c134eaSJed Brown self.make_libceed_so() 3737c134eaSJed Brown build_ext.run(self) 3837c134eaSJed Brown 3937c134eaSJed Brown def make_libceed_so(self): 4037c134eaSJed Brown import subprocess 41*dabe13fcSJed Brown subprocess.check_call(['make', '-j', '-B']) 4237c134eaSJed Brown subprocess.check_call(['make', 'install', 'prefix=' + os.path.join(self.build_lib, 'libceed')]) 4337c134eaSJed Brown 44ee05e790Sjeremyltdescription = """ 4537c134eaSJed BrownlibCEED: Code for Efficient Extensible Discretization 4637c134eaSJed Brown===================================================== 47ee05e790Sjeremylt 4837c134eaSJed BrownlibCEED is a lightweight library for expressing and manipulating operators that 4937c134eaSJed Brownarise in high-order element-based discretization of partial differential 5037c134eaSJed Brownequations. libCEED's representations are much for efficient than assembled 5137c134eaSJed Brownsparse matrices, and can achieve very high performance on modern CPU and GPU 5237c134eaSJed Brownhardware. This approach is applicable to a broad range of linear and nonlinear 5337c134eaSJed Brownproblems, and includes facilities for preconditioning. libCEED is meant to be 5437c134eaSJed Browneasy to incorporate into existing libraries and applications, and to build new 5537c134eaSJed Browntools on top of. 56ee05e790Sjeremylt 5737c134eaSJed BrownlibCEED has been developed as part of the DOE Exascale Computing Project 5837c134eaSJed Brownco-design Center for Efficient Exascale Discretizations (CEED). 59ee05e790Sjeremylt""" 60ee05e790Sjeremylt 61ee05e790Sjeremyltclassifiers = """ 6237c134eaSJed BrownDevelopment Status :: 4 - Beta 63ee05e790SjeremyltIntended Audience :: Developers 64ee05e790SjeremyltIntended Audience :: Science/Research 65ee05e790SjeremyltLicense :: OSI Approved :: BSD License 66ee05e790SjeremyltOperating System :: POSIX 67ee05e790SjeremyltProgramming Language :: C 68ee05e790SjeremyltProgramming Language :: C++ 69ee05e790SjeremyltProgramming Language :: Fortran 70ee05e790SjeremyltProgramming Language :: Python 7137c134eaSJed BrownProgramming Language :: Python :: 3.5 7237c134eaSJed BrownProgramming Language :: Python :: 3.6 7337c134eaSJed BrownProgramming Language :: Python :: 3.7 7437c134eaSJed BrownProgramming Language :: Python :: 3.8 7537c134eaSJed BrownProgramming Language :: Python :: 3 :: Only 76ee05e790SjeremyltTopic :: Scientific/Engineering 77ee05e790SjeremyltTopic :: Software Development :: Libraries 78ee05e790Sjeremylt""" 79ee05e790Sjeremylt 80ee05e790Sjeremyltsetup(name="libceed", 81ee05e790Sjeremylt version=version(), 8237c134eaSJed Brown description="libCEED: Code for Efficient Extensible Discretization", 8337c134eaSJed Brown long_description=description, 8437c134eaSJed Brown long_description_content_type='text/x-rst', 85ee05e790Sjeremylt classifiers= classifiers.split("\n")[1:-1], 86ee05e790Sjeremylt keywords=["libCEED"], 87ee05e790Sjeremylt platforms=["POSIX"], 88ee05e790Sjeremylt license="BSD 2", 8937c134eaSJed Brown license_file='LICENSE', 9037c134eaSJed Brown url="https://libceed.readthedocs.io", 9137c134eaSJed Brown download_url="https://github.com/CEED/libCEED/releases", 9237c134eaSJed Brown project_urls={ 9337c134eaSJed Brown "Bug Tracker": "https://github.com/CEED/libCEED/issues", 9437c134eaSJed Brown "Documentation": "https://libceed.readthedocs.io", 9537c134eaSJed Brown "Source Code": "https://github.com/CEED/libCEED", 9637c134eaSJed Brown }, 97ee05e790Sjeremylt author="libCEED Team", 98ee05e790Sjeremylt author_email="ceed-users@llnl.gov", 99ee05e790Sjeremylt 10037c134eaSJed Brown install_requires=requirements(), 101ee05e790Sjeremylt packages=["libceed"], 102ee05e790Sjeremylt package_dir={"libceed": "python"}, 10337c134eaSJed Brown include_package_data=True, 104ee05e790Sjeremylt 105ee05e790Sjeremylt setup_requires=["cffi"], 106ee05e790Sjeremylt cffi_modules=["python/build_ceed_cffi.py:ffibuilder"], 10737c134eaSJed Brown cmdclass={'build_ext': libceed_build_ext}, 108ee05e790Sjeremylt) 109ee05e790Sjeremylt 110ee05e790Sjeremylt# ------------------------------------------------------------------------------ 111