import commands
from glob import glob
import os

compiler = commands.getoutput('pkg-config --variable=compiler dolfin')
env      = Environment(CXX = compiler)



# Get compiler flags from pkg-config
flags = commands.getoutput('pkg-config --variable=compiler dolfin')
env.ParseConfig("echo $PKG_CONFIG_PATH 1>&2; pkg-config dolfin --cflags --libs")

# Get all source files
sources = []
#sources += glob(os.path.join('forms', '*.cpp'))

# Add Form Implementations
sources += Split("""
forms/grade2/TaylorHood/P2THG2Vel.cpp
forms/grade2/TaylorHood/P2THG2GalZ.cpp
forms/grade2/TaylorHood/P2THG2RegZ.cpp
forms/grade2/TaylorHood/P2THG2StrZ.cpp
forms/grade2/TaylorHood/P2THG2SymStrZ.cpp
forms/grade2/TaylorHood/P2THG2SymZ.cpp
forms/grade2/ScottVogelius/P4SVG2Vel.cpp
forms/grade2/ScottVogelius/P4SVG2GalZ.cpp
forms/grade2/ScottVogelius/P4SVG2RegZ.cpp
forms/grade2/ScottVogelius/P4SVG2StrZ.cpp
forms/grade2/ScottVogelius/P4SVG2SymStrZ.cpp
forms/grade2/ScottVogelius/P4SVG2SymZ.cpp

forms/Stokes/TaylorHood/P2THStokes.cpp
forms/Stokes/ScottVogelius/P4SVStokes.cpp

forms/norms/P2L2.cpp
forms/norms/P4L2.cpp
forms/norms/P2VecL2.cpp
forms/norms/P4VecL2.cpp
forms/norms/P2L2Diff.cpp
forms/norms/P4L2Diff.cpp
forms/norms/P2VecL2Diff.cpp
forms/norms/P4VecL2Diff.cpp
forms/norms/P2VecH1Diff.cpp
forms/norms/P4VecDivL2.cpp

forms/projections/P4VecDiv.cpp
forms/projections/P4VecDiff.cpp
forms/projections/P4Diff.cpp
forms/projections/P2VecDiff.cpp
forms/projections/P2Diff.cpp
forms/projections/P1Diff.cpp
""")

# List of source files
sources += Split("""Fluid.cpp
StokesSolver.cpp
Grade2Solver.cpp""")
#                   P2THG2Galerkin.cpp
#                   P2THStokes.cpp""")

# Library name
env.SharedLibrary('dolfin-grade2', sources)
