Skip to content

Commit

Permalink
use conda; install bmiheatf in _inst; create bmiheatf.pc
Browse files Browse the repository at this point in the history
  • Loading branch information
mcflugen committed Mar 9, 2024
1 parent e421ff0 commit f764837
Showing 1 changed file with 37 additions and 12 deletions.
49 changes: 37 additions & 12 deletions noxfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,7 @@ def test(session: nox.Session) -> None:
session.run("pytest", *args)


@nox.session(
name="test-langs",
python=PYTHON_VERSIONS,
venv_backend="mamba",
)
@nox.session(name="test-langs", python=PYTHON_VERSIONS, venv_backend="conda")
@nox.parametrize("lang", ["c", "cxx", "fortran", "python"])
def test_langs(session: nox.session, lang) -> None:
datadir = ROOT / "external" / "tests" / f"test_{lang}"
Expand All @@ -40,11 +36,30 @@ def test_langs(session: nox.session, lang) -> None:
session.debug(library)
session.debug(config_file)

build_examples(session, lang)
instdir = build_examples(session, lang)

session.install("bmi-tester>=0.5.4", "ninja")
session.conda_install("pip", "cmake", "make", "pkg-config")

session.conda_install("pip", "bmi-tester>=0.5.4", "cmake")
session.install(".[testing]")

bmiheatf_pc = f"""\
prefix={instdir!s}
exec_prefix=${{prefix}}
libdir=${{exec_prefix}}/lib
includedir=${{prefix}}/include
Name: bmiheatf
Description: BMI Heat Fortran
Version: 1.0.0
Libs: -L${{libdir}} -lheatf -lbmiheatf
Cflags: -I${{includedir}}
"""

os.makedirs(instdir / "lib" / "pkgconfig", exist_ok=True)
with open(instdir / "lib" / "pkgconfig" / "bmiheatf.pc", "w") as fp:
print(bmiheatf_pc, file=fp)

with session.chdir(tmpdir):
session.run(
"babelize",
Expand All @@ -56,7 +71,14 @@ def test_langs(session: nox.session, lang) -> None:
session.debug(f"{k}: {v!r}")

with session.chdir(package):
session.run("python", "-m", "pip", "install", "-e", ".")
session.run(
"python",
"-m",
"pip",
"install",
".[dev]",
env={"PKG_CONFIG_PATH": os.path.join(instdir, "lib", "pkgconfig")},
)

with session.chdir(testdir):
shutil.copy(datadir / config_file, ".")
Expand Down Expand Up @@ -85,17 +107,19 @@ def _get_package_metadata(datadir):
return package, library, config_files[0]


@nox.session(name="build-examples", venv_backend="mamba")
@nox.session(name="build-examples", venv_backend="conda")
@nox.parametrize("lang", ["c", "cxx", "fortran", "python"])
def build_examples(session: nox.Session, lang):
"""Build the language examples."""
srcdir = ROOT / "external" / f"bmi-example-{lang}"
builddir = pathlib.Path(session.create_tmp()) / "_build"
tmpdir = ROOT / pathlib.Path(session.create_tmp())
builddir = tmpdir / "_build"
instdir = tmpdir / "_inst"

if lang == "python":
session.conda_install("bmipy", "make")
else:
session.conda_install(f"bmi-{lang}", "cmake", "make", "pkg-config")
session.conda_install(f"bmi-{lang}", "make", "pkg-config")

for k, v in sorted(session.env.items()):
session.debug(f"{k}: {v!r}")
Expand All @@ -111,9 +135,10 @@ def build_examples(session: nox.Session, lang):
str(srcdir),
"-B",
".",
f"-DCMAKE_INSTALL_PREFIX={session.env['CONDA_PREFIX']}",
f"-DCMAKE_INSTALL_PREFIX={instdir}",
)
session.run("make", "install")
return instdir


@nox.session(name="test-cli")
Expand Down

0 comments on commit f764837

Please sign in to comment.