gmsh : added fltk support

This commit is contained in:
alalazo 2016-01-13 11:26:10 +01:00
parent ffaa4a8922
commit 767f286a9f
3 changed files with 106 additions and 2 deletions

View File

@ -0,0 +1,44 @@
Index: FL/x.H
===================================================================
--- a/FL/x.H (revision 10476)
+++ b/FL/x.H (working copy)
@@ -132,6 +132,7 @@
XFontStruct *ptr;
};
extern FL_EXPORT Fl_XFont_On_Demand fl_xfont;
+extern FL_EXPORT XFontStruct* fl_core_font();
// this object contains all X-specific stuff about a window:
// Warning: this object is highly subject to change!
Index: src/fl_font.cxx
===================================================================
--- a/src/fl_font.cxx (revision 10476)
+++ b/src/fl_font.cxx (working copy)
@@ -55,6 +55,14 @@
# include "fl_font_x.cxx"
#endif // WIN32
+#ifdef WIN32
+#elif defined(__APPLE__)
+#else
+XFontStruct *fl_core_font()
+{
+ return fl_xfont.value();
+}
+#endif
double fl_width(const char* c) {
if (c) return fl_width(c, (int) strlen(c));
Index: src/gl_draw.cxx
===================================================================
--- a/src/gl_draw.cxx (revision 10476)
+++ b/src/gl_draw.cxx (working copy)
@@ -84,7 +84,7 @@
* then sorting through them at draw time (for normal X rendering) to find which one can
* render the current glyph... But for now, just use the first font in the list for GL...
*/
- XFontStruct *font = fl_xfont;
+ XFontStruct *font = fl_core_font();
int base = font->min_char_or_byte2;
int count = font->max_char_or_byte2-base+1;
fl_fontsize->listbase = glGenLists(256);

View File

@ -0,0 +1,58 @@
##############################################################################
# Copyright (c) 2013-2015, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Written by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License (as published by
# the Free Software Foundation) version 2.1 dated February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
class Fltk(Package):
"""
FLTK (pronounced "fulltick") is a cross-platform C++ GUI toolkit for UNIX/Linux (X11), Microsoft Windows, and
MacOS X. FLTK provides modern GUI functionality without the bloat and supports 3D graphics via OpenGL and its
built-in GLUT emulation.
FLTK is designed to be small and modular enough to be statically linked, but works fine as a shared library. FLTK
also includes an excellent UI builder called FLUID that can be used to create applications in minutes.
"""
homepage = 'http://www.fltk.org/'
url = 'http://fltk.org/pub/fltk/1.3.3/fltk-1.3.3-source.tar.gz'
version('1.3.3', '9ccdb0d19dc104b87179bd9fd10822e3')
patch('font.patch', when='@1.3.3')
variant('shared', default=True, description='Enables the build of shared libraries')
def install(self, spec, prefix):
options = ['--prefix=%s' % prefix,
'--enable-localjpeg',
'--enable-localpng',
'--enable-localzlib']
if '+shared' in spec:
options.append('--enable-shared')
# FLTK needs to be built in-source
configure(*options)
make()
make('install')

View File

@ -27,7 +27,7 @@
class Gmsh(Package): class Gmsh(Package):
""" """
Gmsh is a free 3D finite element grid generator with a build-in CAD engine and post-processor. Its design goal is Gmsh is a free 3D finite element grid generator with a built-in CAD engine and post-processor. Its design goal is
to provide a fast, light and user-friendly meshing tool with parametric input and advanced visualization to provide a fast, light and user-friendly meshing tool with parametric input and advanced visualization
capabilities. Gmsh is built around four modules: geometry, mesh, solver and post-processing. The specification of capabilities. Gmsh is built around four modules: geometry, mesh, solver and post-processing. The specification of
any input to these modules is done either interactively using the graphical user interface or in ASCII text files any input to these modules is done either interactively using the graphical user interface or in ASCII text files
@ -38,17 +38,19 @@ class Gmsh(Package):
version('2.11.0', 'f15b6e7ac9ca649c9a74440e1259d0db') version('2.11.0', 'f15b6e7ac9ca649c9a74440e1259d0db')
# FIXME : Misses dependencies on gmm, FLTK, PetsC, TetGen, HDF5 # FIXME : Misses dependencies on gmm, PetsC, TetGen, HDF5
variant('shared', default=True, description='Enables the build of shared libraries') variant('shared', default=True, description='Enables the build of shared libraries')
variant('debug', default=False, description='Builds the library in debug mode') variant('debug', default=False, description='Builds the library in debug mode')
variant('mpi', default=False, description='Builds MPI support for parser and solver') variant('mpi', default=False, description='Builds MPI support for parser and solver')
variant('fltk', default=False, description='Enables the build of the FLTK GUI')
variant('compression', default=True, description='Enables IO compression through zlib') variant('compression', default=True, description='Enables IO compression through zlib')
depends_on('blas') depends_on('blas')
depends_on('lapack') depends_on('lapack')
depends_on('gmp') depends_on('gmp')
depends_on('mpi', when='+mpi') depends_on('mpi', when='+mpi')
depends_on('fltk', when='+fltk') # Assumes OpenGL with GLU is already provided by the system
depends_on('zlib', when='+compression') depends_on('zlib', when='+compression')
def install(self, spec, prefix): def install(self, spec, prefix):