Skip to content
Snippets Groups Projects
Commit 85801614 authored by Andreas Dedner's avatar Andreas Dedner
Browse files

fix the order in which dune modules are processed when calling `make...

fix the order in which dune modules are processed when calling `make install_python` with `setup-dunepy`.
Also add a `pyproject.toml` to make sure `wheel` is available when installing dune-common. Also added `wheel`
to python dependencies in dune.module so that downstream modules can rely on `wheel` being available.
parent c350155d
No related branches found
No related tags found
No related merge requests found
......@@ -10,7 +10,7 @@ import logging
logger = logging.getLogger(__name__)
try:
from dune.common.module import build_dune_py_module, get_dune_py_dir, make_dune_py_module, select_modules, resolve_dependencies
from dune.common.module import build_dune_py_module, get_dune_py_dir, make_dune_py_module, select_modules, resolve_dependencies, resolve_order
except ImportError:
import os
here = os.path.dirname(os.path.abspath(__file__))
......@@ -19,7 +19,7 @@ except ImportError:
sys.path.append(modsB)
sys.path.append(modsA)
if os.path.exists(os.path.join(modsB, "module.py")):
from module import build_dune_py_module, get_dune_py_dir, make_dune_py_module, select_modules, resolve_dependencies
from module import build_dune_py_module, get_dune_py_dir, make_dune_py_module, select_modules, resolve_dependencies, resolve_order
else:
raise
......@@ -94,10 +94,12 @@ def main(argv):
# use mod and all its dependencies only. Otherwise use all found modules
# as dependencies.
if masterModule is None:
deps = [m[0] for m in duneModules[0].items()]
deps = resolve_order(duneModules[0])
else:
deps = resolve_dependencies(duneModules[0], masterModule)
deps.add(masterModule)
depsList = resolve_dependencies(duneModules[0], masterModule)
deps = {k:v for k,v in duneModules[0].items() if k in depsList}
deps = resolve_order(deps)
deps += [masterModule]
foundModule = make_dune_py_module(dunepy, deps)
......
......@@ -9,4 +9,5 @@ dune_add_test(SOURCES test_embed1.cc
)
add_executable(test_embed2 EXCLUDE_FROM_ALL test_embed2.cc)
target_link_libraries(test_embed2 PUBLIC ${DUNE_LIBS} ${Python3_LIBRARIES})
# target_link_libraries(test_embed2 PUBLIC ${DUNE_LIBS} ${Python3_LIBRARIES})
target_link_libraries(test_embed2 PRIVATE Python3::Python)
add_subdirectory(dune)
configure_file(setup.py.in setup.py)
configure_file(pyproject.toml.in pyproject.toml)
......@@ -113,7 +113,7 @@ def resolve_order(deps):
def resolve(m):
if m not in order:
for d in deps[m]:
for d, r in deps[m].depends:
if d not in order:
resolve(d)
order.append(m)
......
[build-system]
requires = ["setuptools", "wheel"]
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment