From fc5e34f6bc23f9df774c816d006c4ca0e86996f7 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner <inform@tiker.net> Date: Wed, 28 May 2014 18:21:28 -0500 Subject: [PATCH] Add support for (and default to) building against imath-based isl --- .gitmodules | 2 +- MANIFEST.in | 2 ++ isl | 2 +- setup.py | 32 +++++++++++++++++++++++++++----- 4 files changed, 31 insertions(+), 7 deletions(-) diff --git a/.gitmodules b/.gitmodules index 082cca8..cf8c41b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,6 +1,6 @@ [submodule "isl"] path = isl - url = git://repo.or.cz/isl.git + url = git://github.com/inducer/isl-mirror [submodule "bpl-subset"] path = bpl-subset url = git://github.com/inducer/bpl-subset diff --git a/MANIFEST.in b/MANIFEST.in index 115b795..8050086 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,5 +1,7 @@ include isl/*.c include isl/*.h +include isl/imath/*.c +include isl/imath/*.h include isl/include/isl/*.h include isl/include/isl/deprecated/*.h include isl-supplementary/isl/*.h diff --git a/isl b/isl index 52c2b11..16930c8 160000 --- a/isl +++ b/isl @@ -1 +1 @@ -Subproject commit 52c2b1154c6b757bc819a1e45f5a5e93806598cb +Subproject commit 16930c8cff710948fe82c436b65efdba1e11e51c diff --git a/setup.py b/setup.py index df076f7..1087bd1 100644 --- a/setup.py +++ b/setup.py @@ -11,6 +11,7 @@ def get_config_schema(): Switch("USE_SHIPPED_BOOST", True, "Use included Boost library"), Switch("USE_SHIPPED_ISL", True, "Use included copy of isl"), + Switch("USE_SHIPPED_IMATH", True, "Use included copy of imath in isl"), IncludeDir("GMP", []), LibraryDir("GMP", []), @@ -60,6 +61,13 @@ def main(): elif "piplib" in fn: blacklisted = True + if "gmp" in fn: + if conf["USE_SHIPPED_IMATH"]: + continue + if "imath" in fn: + if not conf["USE_SHIPPED_IMATH"]: + continue + inf = open(fn, "rt") try: contents = inf.read() @@ -70,15 +78,29 @@ def main(): EXTRA_OBJECTS.append(fn) conf["ISL_INC_DIR"] = ["isl-supplementary", "isl/include", "isl"] + + if conf["USE_SHIPPED_IMATH"]: + EXTRA_OBJECTS.extend([ + "isl/imath/imath.c", + "isl/imath/imrat.c", + "isl/imath/gmp_compat.c", + ]) + EXTRA_DEFINES["USE_IMATH_FOR_MP"] = 1 + + conf["ISL_INC_DIR"].append("isl/imath") + else: + EXTRA_DEFINES["USE_GMP_FOR_MP"] = 1 + else: LIBRARY_DIRS.extend(conf["ISL_LIB_DIR"]) LIBRARIES.extend(conf["ISL_LIBNAME"]) INCLUDE_DIRS.extend(conf["ISL_INC_DIR"]) - INCLUDE_DIRS.extend(conf["GMP_INC_DIR"]) - LIBRARY_DIRS.extend(conf["GMP_LIB_DIR"]) - LIBRARIES.extend(conf["GMP_LIBNAME"]) + if not (conf["USE_SHIPPED_ISL"] and conf["USE_SHIPPED_IMATH"]): + INCLUDE_DIRS.extend(conf["GMP_INC_DIR"]) + LIBRARY_DIRS.extend(conf["GMP_LIB_DIR"]) + LIBRARIES.extend(conf["GMP_LIBNAME"]) init_filename = "islpy/version.py" exec(compile(open(init_filename, "r").read(), init_filename, "exec"), conf) @@ -132,12 +154,12 @@ def main(): ext_modules=[ Extension( "islpy._isl", - [ + EXTRA_OBJECTS + [ "src/wrapper/wrap_isl.cpp", "src/wrapper/wrap_isl_part1.cpp", "src/wrapper/wrap_isl_part2.cpp", "src/wrapper/wrap_isl_part3.cpp", - ] + EXTRA_OBJECTS, + ], include_dirs=INCLUDE_DIRS, library_dirs=LIBRARY_DIRS, libraries=LIBRARIES, -- GitLab