[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