Howdy Kenneth/all,

Will triple quotes still be available for description and *opts
in 3.0?  Is that inherit to Python or something EB goes out
of the way to support.

Being not so good at Python (or Git), I've kinda come
up with a style that is pleasing to the eye, makes pep8
happy, and seems to work (example attached).

And I don't have to write a stupid easyblock for it
(I really do hate a lot of them).

For description, I use the 3x" and a new line
followed with one space on each line (less than 80 chars)
until the closing 3x"

For preconfigopts/configopt/prebuildopts/etc. it looks
so much cleaner than a bunch of '&&' or ';'.  Of course,
remembering where the backslashes are need is important.

patches vs. sed is for another discussion...

I use four spaces on those lines to adhere to something
Pythonesque and it doesn't matter so much (using four
spaces in the "description" makes it look weird.... using
it on a command/configure/make  line, eh, who cares).

Anyway, I think 3.0 needs to be able to support something
cleanish like this... some EasyBuild's easyconfigs are downright
ugly. :)   (and make pep8 very unhappy)

Thanks for everything,

--

Jack Perdue
Lead Systems Administrator
High Performance Research Computing
TAMU Division of Research
[email protected]    http://hprc.tamu.edu
HPRC Helpdesk: [email protected]


p.s. if you want to know why I chose this particular package as an example, 
look me up
     at SC17 in Colorado and we can talk after hours.  I'm not a geoscientist 
(though
     we do have some that want to use it... take that as you like)
.

# Authors:: Jack Perdue <[email protected]> - TAMU HPRC - http://hprc.tamu.edu

easyblock = 'ConfigureMake'

name = 'GRASS'
version = '7.0.4'
versionsuffix = '-Python-%(pyver)s'

homepage = 'https://grass.osgeo.org/'
description = """
 GRASS GIS, commonly referred to as GRASS (Geographic Resources Analysis
 Support System), is a free and open source Geographic Information System
 (GIS) software suite used for geospatial data management and analysis,
 image processing, graphics and maps production, spatial modeling,
 and visualization.
"""

toolchain = {'name': 'intel', 'version': '2016a'}
toolchainopts = {'pic': True, 'opt': True, 'optarch': True}

source_urls = ['https://grass.osgeo.org/grass70/source/']
sources = [SOURCELOWER_TAR_GZ]

builddependencies = [
    ('Bison', '3.0.4'),
    ('flex', '2.6.0'),
]

dependencies = [
    ('cairo', '1.14.6'),
    ('FFmpeg', '2.8.6'),
    ('freetype', '2.6.2'),
    ('GDAL', '2.0.2'),
    ('GEOS', '3.5.0', versionsuffix),
    ('libpng', '1.6.21'),
    ('libpthread-stubs', '0.3'),
    ('libreadline', '6.3'),
    ('LibTIFF', '4.0.6'),
    ('matplotlib', '1.5.1', versionsuffix),
    ('Mesa', '11.1.2'),
    ('netCDF', '4.3.3.1'),
    ('PostgreSQL', '9.5.2', versionsuffix),
    ('PROJ', '4.9.2'),
    ('Python', '2.7.11'),
    ('SQLite', '3.9.2'),
    ('wxPython', '3.0.2.0', versionsuffix),
    ('zlib', '1.2.8'),
]

preconfigopts = """
    ml -t
    sed -e 's/-lfftw3/-lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core/'\
        -i.eb.fftw configure
    sed -e 's/-lblas/-lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core/'\
        -i.eb.blas configure
    sed -e 's/-llapack/-lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core/'\
         -i.eb.lapack configure
"""

configopts = """\
    --with-blas\
    --with-lapack\
    --with-openmp\
    --with-postgres\
    --with-pthread\
    --with-readline\
    --with-x\
    --with-geos=$EBROOTGEOS/bin/geos-config\
    --with-wxwidgets=$EBROOTWXPYTHON/bin/wx-config\
    --with-netcdf=$EBROOTNETCDF/bin/nc-config\
    --with-fftw-includes=$FFTW_INC_DIR\
    --with-fftw-libs=$FFTW_LIB_DIR\
    --with-cairo-includes=$EBROOTCAIRO/include\
    --with-cairo-libs=$EBROOTCAIRO/lib\
    --with-postgres-includes=$EBROOTPOSTGRESQL/include\
    --with-postgres-libs=$EBROOTPOSTGRESQL/lib\
"""

prebuildopts = """
    sed -e 's/LINK_FLAGS\\(.*\\)/LINK_FLAGS\\1 -lpthread -liomp5/'\
        -i.eb.pthread include/Make/Platform.make
"""

sanity_check_paths = {
    'dirs': ['bin', 'grass-7.0.4'],  # could test for more grass* dirs later
    'files': ['bin/grass70'],
}

moduleclass = 'geo'
# EOF

Reply via email to