[53613] users/dweber/devel

dweber at macports.org dweber at macports.org
Thu Jul 9 13:20:37 PDT 2009


Revision: 53613
          http://trac.macports.org/changeset/53613
Author:   dweber at macports.org
Date:     2009-07-09 13:20:36 -0700 (Thu, 09 Jul 2009)
Log Message:
-----------


Added Paths:
-----------
    users/dweber/devel/cableswig/
    users/dweber/devel/cableswig/Portfile

Copied: users/dweber/devel/cableswig/Portfile (from rev 51598, trunk/dports/devel/cableswig/Portfile)
===================================================================
--- users/dweber/devel/cableswig/Portfile	                        (rev 0)
+++ users/dweber/devel/cableswig/Portfile	2009-07-09 20:20:36 UTC (rev 53613)
@@ -0,0 +1,78 @@
+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
+# $Id$
+
+PortSystem  1.0
+
+name        cableswig
+version     20090521
+# CableSwig is only available from cvs and there are no release tags, using date
+# of cvs checkout for the version number.
+
+categories  devel
+maintainers dweber openmaintainer
+
+description CableSwig creates interfaces to interpreted languages such as Tcl and Python.  
+
+long_description    \
+CableSwig is used to create interfaces (i.e. wrappers) to interpreted languages such as Tcl and Python. It was created to produce wrappers for ITK because the toolkit uses C++ structures that SWIG cannot parse (deeply nested template instantiations). CableSwig is a combination tool that uses  GCC_XML as the c++ parser. The input files are  Cable style input files.  The XML produced from the Cable/GCC_XML input files are then parsed and feed into a modified version of SWIG. SWIG is a software development tool that connects programs written in C and C++ with a variety of high-level programming languages. It is used to generate the language bindings to the target language.  Currently, Tcl and Python are supported.  CableSwig consists of four executables: 1) cswig - the main cable swig executable, that takes an xml file from gccxml as input. The xml file should be created from a cable config input file. This program is a modified version of the standard SWIG main. It uses CABLE 
 libraries to parse the input XML from gccxml to create SWIG data structures describing the C++ code to be wrapped.  2) cableidx - a program to generate index files from gccxml xml files. The index files tell cswig what classes are wrapped in which libraries.  This is important because swig needs to know if a class is not wrapped or wrapped in another module, and if it is wrapped which module it is wrapped in.  3) gccxml_cc1plus - A patched version of gcc that has the -fxml option to convert c++ into xml.  4) gccxml - ( www.gccxml.org) the front end program to gccxml_cc1plus.  CableSwig was developed to support ITK, and has not been widely used elsewhere. Not all features of SWIG are currently accessible through CableSwig. Features known to be missing are: * Wrapping of public data members in structs and classes, no accessor routines are created, the original source must provide access methods.
+
+homepage        http://www.itk.org/ITK/resources/CableSwig.html
+platforms       darwin
+
+fetch.type      cvs
+cvs.root        :pserver:anonymous at public.kitware.com:/cvsroot/CableSwig
+cvs.module      CableSwig
+cvs.date        "21-May-2009"
+
+post-extract {
+    move ${workpath}/CableSwig ${worksrcpath}
+}
+
+depends_build   port:cmake \
+                port:gmake \
+                port:bison \
+                port:gawk
+
+# Use gmake and build in a separate directory from the source
+build.type      gnu
+build.dir       ${workpath}/cableswig-build
+
+configure {
+    xinstall -d -m 755 ${build.dir}
+    system "cd ${build.dir} && cmake ${configure.args} ${worksrcpath}"
+}
+
+configure.args-append \
+    -DBISON_YACC:FILEPATH=${prefix}/bin/bison \
+    -DCMAKE_BUILD_TYPE:STRING=Release \
+    -DCMAKE_INSTALL_PREFIX:PATH=${prefix} \
+    -DCMAKE_OSX_SYSROOT=${universal_sysroot} \
+    -DCMAKE_SKIP_RPATH:BOOL=OFF \
+    -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
+    -DCSWIG_USE_SYSTEM_GCCXML:BOOL=OFF \
+    -DSWIG_BUILD_EXAMPLES:BOOL=OFF \
+    -DBUILD_TESTING:BOOL=OFF
+
+variant examples description "provide examples" {
+    configure.args-delete \
+        -DSWIG_BUILD_EXAMPLES:BOOL=OFF
+    configure.args-append \
+        -DSWIG_BUILD_EXAMPLES:BOOL=ON
+}
+
+variant testing description "provide testing" {
+    configure.args-delete \
+        -DBUILD_TESTING:BOOL=OFF
+    configure.args-append \
+        -DBUILD_TESTING:BOOL=ON
+}
+
+variant gccxml description "use port:gccxml" {
+    depends_lib-append \
+        port:gccxml
+    configure.args-delete \
+        -DCSWIG_USE_SYSTEM_GCCXML:BOOL=OFF
+    configure.args-append \
+        -DCSWIG_USE_SYSTEM_GCCXML:BOOL=ON
+}
+
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20090709/a4fd0c7e/attachment.html>


More information about the macports-changes mailing list