Changeset 19702


Ignore:
Timestamp:
11/09/15 17:58:03 (9 years ago)
Author:
Eric.Larour
Message:

CHG: added new capability to compile javascript modules usable in a webpage (test101.html).
Relies on the emscripten emcc compiler (see m4/issm_options.m4). triangle and TriMesh are the
first modules to be tested. Extensive issues with compiling triangle with em++ and not emcc (C++ vs
C, because of unresolved symbols at link time). We now have a workable model, mesh and triangle
mesher for javascript repliction of test101. Have to work further on parameterize and solve.

Location:
issm/trunk-jpl
Files:
18 added
8 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl

    • Property svn:ignore
      •  

        old new  
         1build-js
         2build-esmf
        13build-gcm
        24build-fw
  • issm/trunk-jpl/configure.ac

    r19579 r19702  
    3737                                          src/wrappers/python/Makefile
    3838                                          src/wrappers/matlab/Makefile
     39                                          src/wrappers/javascript/Makefile
    3940                                          src/mobile/Makefile
    4041                                          src/mobile/native/Makefile
  • issm/trunk-jpl/m4/issm_options.m4

    r19666 r19702  
    304304                   *)
    305305           MEXLINK=$($MATLAB_ROOT/bin/mex -v 2>&1 < /dev/null | grep LDFLAGS     | sed -e "s/         LDFLAGS            = //g")
    306            MEXLIB=$( $MATLAB_ROOT/bin/mex -v 2>&1 < /dev/null | grep CXXLIBS     | sed -e "s/         CXXLIBS            = //g")
     306           MEXLIB="-L$MATLAB_ROOT/bin/maci64  -Wl,$MATLAB_ROOT/bin/maci64/libmx.dylib -lmex -lmat -lstdc++"
    307307                     MEXEXT=$( $MATLAB_ROOT/bin/mex -v 2>&1 < /dev/null | grep LDEXTENSION | sed -e "s/         LDEXTENSION        = //g")
    308308                                dnl version 2014 and up
     
    551551        AM_CONDITIONAL([ISSM_DAKOTA],[test x$DAKOTA_MAJOR = x6])
    552552        dnl }}}
     553        dnl javascript{{{
     554        AC_ARG_WITH([javascript],
     555          AS_HELP_STRING([--with-javascript], [compile javascript wrappers? default is no.]),
     556          [JAVASCRIPT=$withval],[JAVASCRIPT="no"])
     557
     558        dnl Check whether javascript wrappers are desired
     559        AC_MSG_CHECKING([for javascript])
     560        if test "x$JAVASCRIPT" = "xno" ; then
     561                HAVE_JAVASCRIPT=no
     562        else
     563                HAVE_JAVASCRIPT=yes
     564                AC_DEFINE([_HAVE_JAVASCRIPT_],[1],[with javascript])
     565        fi
     566        AC_MSG_RESULT($HAVE_JAVASCRIPT)
     567        AM_CONDITIONAL([JAVASCRIPT],[test x$HAVE_JAVASCRIPT = xyes])
     568        JAVASCRIPTWRAPPEREXT=.js
     569        AC_SUBST([JAVASCRIPTWRAPPEREXT])
     570
     571        dnl }}}
    553572        dnl python{{{
    554573        AC_ARG_WITH([python-dir],
  • issm/trunk-jpl/src/c/Makefile.am

    r19652 r19702  
    636636endif
    637637else
     638if JAVASCRIPT
     639bin_PROGRAMS =
     640else
    638641bin_PROGRAMS = issm
     642endif
    639643endif
    640644
  • issm/trunk-jpl/src/wrappers/Makefile.am

    r18232 r19702  
    66endif
    77
     8if JAVASCRIPT
     9SUBDIRS += javascript
     10endif
     11
    812if PYTHON
    913SUBDIRS += python
  • issm/trunk-jpl/src/wrappers/TriMesh/TriMesh.cpp

    r15335 r19702  
    1414        _printf_("\n");
    1515}/*}}}*/
    16 WRAPPER(TriMesh){
     16WRAPPER(TriMesh,double** pindex, double** px, double** py, int* pnel, int* pnods, double* domainx, double* domainy, int domainnods, double areain){
     17       
    1718
    1819        /*intermediary: */
     
    2728        int    *segments          = NULL;
    2829        int    *segmentmarkerlist = NULL;
    29         int     nels,nods,nsegs;
     30        int     nel,nods,nsegs;
    3031
    3132        /*Boot module: */
     
    4142
    4243        /*call x core: */
    43         TriMeshx(&index,&x,&y,&segments,&segmentmarkerlist,&nels,&nods,&nsegs,domain,rifts,area);
     44        TriMeshx(&index,&x,&y,&segments,&segmentmarkerlist,&nel,&nods,&nsegs,domain,rifts,area);
    4445
    4546        /*write outputs: */
    46         WriteData(INDEX,index,nels,3);
     47        WriteData(INDEX,index,nel,3);
    4748        WriteData(X,x,nods);
    4849        WriteData(Y,y,nods);
  • issm/trunk-jpl/src/wrappers/TriMesh/TriMesh.h

    r14996 r19702  
    5555#endif
    5656
     57#ifdef _HAVE_JAVASCRIPT_MODULES_
     58/* serial input macros: */
     59#define DOMAINOUTLINE domainx,domainy,domainnods
     60#define RIFTSOUTLINE  NULL,NULL,0
     61#define AREA          areain
     62/* serial output macros: */
     63#define INDEX             pindex,pnel
     64#define X                 px,pnods
     65#define Y                 py,pnods
     66#define SEGMENTS          NULL,NULL
     67#define SEGMENTMARKERLIST NULL,NULL
     68#endif
     69
     70
    5771/* serial arg counts: */
    5872#undef NLHS
  • issm/trunk-jpl/src/wrappers/bindings.h

    r14776 r19702  
    2020#endif
    2121
     22#ifdef  _HAVE_JAVASCRIPT_MODULES_
     23#include "./javascript/include/javascriptincludes.h"
     24#include "./javascript/include/wrapper_macros.h"
     25#include "./javascript/io/javascriptio.h"
    2226#endif
     27
     28
     29#endif
Note: See TracChangeset for help on using the changeset viewer.