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

[Python] parse env variable for cmake flags to use when generating dune-py

parent 9fd59291
No related branches found
No related tags found
1 merge request!1066[python] dynamically print progress during build
Pipeline #41889 passed
Pipeline: Dune Nightly Test

#41890

    ......@@ -13,7 +13,8 @@ import dune
    from dune.packagemetadata import (
    getDunePyDir, Description,
    getBuildMetaData, getCMakeFlags, getExternalPythonModules
    getBuildMetaData, getCMakeFlags, envCMakeFlags,
    getExternalPythonModules
    )
    from dune.common import comm
    ......@@ -119,7 +120,7 @@ class Builder:
    outfile.write(env.get_template(relative_template_file).render(**context))
    # configure dune-py
    Builder.callCMake(["cmake", "."],
    Builder.callCMake(["cmake"]+envCMakeFlags()+["."],
    cwd=dunepy_dir,
    infoTxt="Configuring dune-py with CMake",
    active=True, # print details anyway
    ......
    ......@@ -274,6 +274,15 @@ def cmakeArguments(cmakeArgs):
    else:
    raise ValueError('definitions must be a list or a dictionary.')
    def envCMakeFlags(flags=[]):
    cmakeFlags = os.environ.get('DUNE_CMAKE_FLAGS')
    # split cmakeFlags and add them to flags
    if cmakeFlags is not None:
    flags += shlex.split(cmakeFlags)
    cmakeFlags = os.environ.get('CMAKE_FLAGS')
    if cmakeFlags is not None:
    flags += shlex.split(cmakeFlags)
    return flags
    def defaultCMakeFlags():
    # defaults
    ......@@ -290,13 +299,7 @@ def defaultCMakeFlags():
    # flags['DUNE_PYTHON_VIRTUALENV_PATH'] = sys.prefix
    flags = cmakeArguments(flags) # make cmake command line out of dict
    # test environment for additional flags
    cmakeFlags = os.environ.get('DUNE_CMAKE_FLAGS')
    # split cmakeFlags and add them to flags
    if cmakeFlags is not None:
    flags += shlex.split(cmakeFlags)
    cmakeFlags = os.environ.get('CMAKE_FLAGS')
    if cmakeFlags is not None:
    flags += shlex.split(cmakeFlags)
    flags = envCMakeFlags(flags)
    return flags
    ......@@ -554,6 +557,7 @@ def _extractCMakeFlags():
    stdout, _ = proc.communicate()
    cmakeArgs = shlex.split(stdout.decode('utf-8'))
    """
    # check environment variable
    cmakeArgs += shlex.split(os.environ.get('CMAKE_FLAGS', ''))
    ......@@ -565,6 +569,7 @@ def _extractCMakeFlags():
    cmakeFlags[k] = v.strip()
    except ValueError: # no '=' in line
    pass
    """
    # try to unify 'ON' and 'OFF' values
    for k, v in cmakeFlags.items():
    ......
    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