UseUFC.cmake path incorrect: ffc build directory appended to the location

Issue #54 resolved
Mike Welland created an issue

I compiled the latest dev. When I got to run, eg the cahn-hilliard demo I get:

[mwelland@blogin3 python]$ python demo_cahn-hilliard.py 
Calling FFC just-in-time (JIT) compiler, this may take some time.
In instant.recompile: The module did not compile with command 'cmake -DDEBUG=TRUE .', see '/home/mwelland/.instant/error/ffc_form_ef13d5bda471cfabf7048a483c13eb2fbf75dd38/compile.log'
Traceback (most recent call last):
  File "demo_cahn-hilliard.py", line 62, in <module>
    V = FunctionSpace(mesh, "Lagrange", 1)
  File "/home/mwelland/fenics_14dev081014/lib/python2.7/site-packages/dolfin/functions/functionspace.py", line 468, in __init__
    FunctionSpaceBase.__init__(self, mesh, element, constrained_domain)
  File "/home/mwelland/fenics_14dev081014/lib/python2.7/site-packages/dolfin/functions/functionspace.py", line 153, in __init__
    ufc_element, ufc_dofmap = jit(self._ufl_element)
  File "/home/mwelland/fenics_14dev081014/lib/python2.7/site-packages/dolfin/compilemodules/jit.py", line 63, in mpi_jit
    return local_jit(*args, **kwargs)
  File "/home/mwelland/fenics_14dev081014/lib/python2.7/site-packages/dolfin/compilemodules/jit.py", line 127, in jit
    return form_compiler.jit(form, parameters=p)
  File "/home/mwelland/fenics_14dev081014/lib/python2.7/site-packages/ffc/jitcompiler.py", line 72, in jit
    return jit_element(ufl_object, parameters)
  File "/home/mwelland/fenics_14dev081014/lib/python2.7/site-packages/ffc/jitcompiler.py", line 177, in jit_element
    compiled_form, module, prefix = jit_form(form, parameters)
  File "/home/mwelland/fenics_14dev081014/lib/python2.7/site-packages/ffc/jitcompiler.py", line 148, in jit_form
    cache_dir = cache_dir)
  File "/home/mwelland/fenics_14dev081014/lib/python2.7/site-packages/ffc/backends/ufc/build.py", line 73, in build_ufc_module
    **kwargs)
  File "/home/mwelland/fenics_14dev081014/lib/python2.7/site-packages/instant/build.py", line 563, in build_module
    recompile(modulename, module_path, new_compilation_checksum, build_system)
  File "/home/mwelland/fenics_14dev081014/lib/python2.7/site-packages/instant/build.py", line 152, in recompile
    instant_error(msg % (cmd, compile_log_filename_dest))
  File "/home/mwelland/fenics_14dev081014/lib/python2.7/site-packages/instant/output.py", line 85, in instant_error
    raise RuntimeError(text)
RuntimeError: In instant.recompile: The module did not compile with command 'cmake -DDEBUG=TRUE .', see '/home/mwelland/.instant/error/ffc_form_ef13d5bda471cfabf7048a483c13eb2fbf75dd38/compile.log'

With the error log:

[mwelland@blogin3 python]$ cat /home/mwelland/.instant/error/ffc_form_ef13d5bda471cfabf7048a483c13eb2fbf75dd38/compile.log
-- The C compiler identification is GNU 4.7.2
-- The CXX compiler identification is GNU 4.7.2
-- Check for working C compiler: /software/mvapich2-gnu-psm-1.9.5/bin/mpicc
-- Check for working C compiler: /software/mvapich2-gnu-psm-1.9.5/bin/mpicc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /software/mvapich2-gnu-psm-1.9.5/bin/mpicxx
-- Check for working CXX compiler: /software/mvapich2-gnu-psm-1.9.5/bin/mpicxx -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
CMake Error at CMakeLists.txt:12 (INCLUDE):
  include could not find load file:

    /fusion/gpfs/home/mwelland/programs/git/ffc/~/fenics_14dev081014/share/ufc/UseUFC.cmake


-- Found SWIG: /home/mwelland/local_gnu_sequential/bin/swig (found version "2.0.12") 
-- Configuring incomplete, errors occurred!
See also "/tmp/tmpVoYzuZ2014-10-8-09-49_instant_4dda0c05b2a97162cf6f888068f4d464667ff7a9/ffc_form_ef13d5bda471cfabf7048a483c13eb2fbf75dd38/CMakeFiles/CMakeOutput.log".

UseUFC.cmake does exist at "~/fenics_14dev081014/share/ufc/UseUFC.cmake" but for some reason the directory ffc was compiled in is appended to the location.

Manually changing share/ufc/UFCConfig.cmake fixes this problem.

Comments (6)

  1. Johannes Ring

    @mwelland - Could you please give us the exact commands you used to install FFC? Also, do you set any special environment variables at runtime, like CMAKE_PREFIX_PATH or UFC_DIR?

  2. Mike Welland reporter

    From the ffc directory, I issued:

    python setup.py install --prefix=~/fenics_14dev081014
    

    neither CMAKE_PREFIX_PATH and UFC_DIR were set.

    I've built fenics a few times now and only had that problem with yesterday's dev. I also rebuilt the stable 1.4.0 yesterday (after this incident) without issue.

  3. Johannes Ring

    Please try the following patch:

    diff --git a/setup.py b/setup.py
    index c733dd2..4d1e189 100644
    --- a/setup.py
    +++ b/setup.py
    @@ -43,7 +43,7 @@ def get_installation_prefix():
                 prefix = sys.argv[sys.argv.index("--prefix")+1]
             except:
                 prefix = sys.prefix
    -    return os.path.abspath(prefix)
    +    return os.path.abspath(os.path.expanduser(prefix))
    
     def get_swig_executable():
         "Get SWIG executable"
    
  4. Log in to comment