On May 11, 2009, at 20:59, [email protected] wrote:
Revision: 50870
http://trac.macports.org/changeset/50870
Author: [email protected]
Date: 2009-05-11 18:59:13 -0700 (Mon, 11 May 2009)
Log Message:
-----------
bug-fix for py26 library path; currently working on database support
Modified Paths:
--------------
trunk/dports/graphics/vtk-devel/Portfile
Modified: trunk/dports/graphics/vtk-devel/Portfile
===================================================================
--- trunk/dports/graphics/vtk-devel/Portfile 2009-05-12 01:57:43
UTC (rev 50869)
+++ trunk/dports/graphics/vtk-devel/Portfile 2009-05-12 01:59:13
UTC (rev 50870)
@@ -38,7 +38,7 @@
build.type gnu
build.dir ${workpath}/${distname}-build
-# Using this dummy stage to inspect MacPorts variables (using
'port -d fetch vtk-devel')
+# Using this dummy stage to inspect macport variables (using 'port
-d fetch vtk-devel')
#fetch { system "echo ${distfiles} && echo ${checksums}" }
post-extract {
@@ -344,11 +344,11 @@
# --- Language wrappers: java, python, tcl
#
-# VTK has its own language parser, it doesn't depend on swig or
cableswig (as
+# VTK has it's own language parser, it doesn't depend on swig or
cableswig (as
# of May 2009). Since the VTK CVS repository and source
distributions include
# the output of byacc and flex, there is no need for a dependency
on these
# to build VTK. If that were to change at some point, use byacc
and not bison,
-# i.e.: depends_build-append port:byacc port:flex
+# ie: depends_build-append port:byacc port:flex
variant java description {java wrapper} {
@@ -358,7 +358,7 @@
-DVTK_WRAP_JAVA:BOOL=ON
#
# All of the following were detected automatically by cmake.
They use the
- # system java framework. To replace them with a MacPorts
java, reset
+ # system java framework. To replace them with a macports
java, reset
# these variables and add the required dependencies.
#
#JAVA_ARCHIVE:FILEPATH=/usr/bin/jar
@@ -376,7 +376,7 @@
# that may require separate ports because the build and install
process for vtk
# can only work with one at a time. The build is a lengthy
process and there
# may be no easy way to short-circuit it with a dependency on a
prior binary
-# install of vtk. If there are separate ports of vtk for
different versions of
+# install of vtk. If there are seperate ports of vtk for
different versions of
# python, each port will incur a lengthy build process. Moreover,
it's not
# clear that the install process can be specifically selected for
python only,
# without also installing all of vtk. For that reason, it may be
best to avoid
The above part of your commit undid the changes I made in r50785 and
r50786. I redid them in r50880. Please be careful to look at the diff
before you commit and make sure every change listed is in fact one
you intend to make with that commit.
@@ -387,6 +387,16 @@
# py25 variant could disappear. Likewise py26 could disappear if
vtk works in
# python 3.x
+# Note: currently vtkpython depends on libutil and finds it in:
+# // Utility library needed for vtkpython
+# PYTHON_UTIL_LIBRARY:FILEPATH=/usr/lib/libutil.dylib
+# I don't see a macport for libutil. If one arises, it should
become a
+# dependency for any python variant.
+#
+#// Extra libraries to link when linking to python (such as "z"
for zlib). Separate multiple libraries with semicolons.
+#PYTHON_EXTRA_LIBS:STRING=
+#
+
variant py25 conflicts py26 requires shared description {python
2.5 wrapper} {
set pyver 2.5
set python python${pyver}
@@ -444,7 +454,7 @@
configure.args-append \
-DVTK_WRAP_PYTHON:BOOL=ON \
-DVTK_NO_PYTHON_THREADS:BOOL=OFF \
- -DPYTHON_INCLUDE_PATH:FILEPATH=${prefix}/Library/
Frameworks/Python.framework/Headers \
+ -DPYTHON_INCLUDE_PATH:FILEPATH=${prefix}/Library/
Frameworks/Python.framework/Versions/${pyver}/Headers \
-DPYTHON_LIBRARY:FILEPATH=${prefix}/lib/lib${python}.dylib \
-DPYTHON_DEBUG_LIBRARY:FILEPATH=${prefix}/lib/lib$
{python}.dylib \
-DPYTHON_EXECUTABLE:FILEPATH=${prefix}/bin/${python} \
@@ -518,35 +528,67 @@
# --- Database variants
-#
-#variant mysql description {build the MySQL driver for
vtkSQLDatabase} {
-# depends_lib-append \
-# port:mysql5
-# configure.args-append \
-# -DVTK_USE_MYSQL:BOOL=ON
-# #MYSQL_INCLUDE_DIRECTORIES
-# #MYSQL_LIBRARY
-#}
-#
-#
-#variant pgsql description {build the PostgreSQL driver for
vtkSQLDatabase} {
-# depends_lib-append \
-# port:libpqxx
-# configure.args-append \
-# -DVTK_USE_POSTGRES:BOOL=ON
-# #POSTGRES_INCLUDE_DIRECTORIES
-# #POSTGRES_LIBRARIES
-#}
-#
-#
-#variant odbc description {build the ODBC database interface} {
-# depends_lib-append \
-# port:unixODBC
-# configure.args-append \
-# -DVTK_USE_ODBC:BOOL=ON
-#}
+variant mysql5 description {build the MySQL driver for
vtkSQLDatabase} {
+ # Find the directory containing mysql.h
+ set includePath [exec ${prefix}/bin/mysql_config5 --include]
+ set includePath [exec ${prefix}/bin/mysql_config5 --include]
+ set includePath [string trim ${includePath} -I ]
+ #if [ exec find $includePath -name "mysql.h" ]
+ set libs [exec ${prefix}/bin/mysql_config5 --libs]
+ set libIdx [lsearch -regex $libs "${prefix}/lib/mysql"]
+ set libPath [lindex $libs $libIdx]
+ set libPath [string trim ${libPath} -L ]
+ set libFile [exec find ${libPath} -name "libmysqlclient.dylib"]
Note that you shouldn't call mysql_config5 here, because mysql5 might
not yet be installed. If it is not, an error will occur, because
variants are evaluated before dependencies are computed.
$ sudo port deactivate mysql5
Password:
---> Deactivating mysql5
$ port install vtk-devel +mysql5
Error: Error executing mysql5: couldn't execute "/mp/bin/
mysql_config5": no such file or directory
Error: Unable to open port: Error evaluating variants
$
To fix this, all the above and the configure.args-append below can be
moved into a pre-configure block in this variant. I made this change
in r50884.
+ depends_build-append \
+ path:bin/mysql_config5:mysql5
+ depends_lib-append \
+ port:mysql5 \
+ port:zlib
Adding something to depends_lib is the same as adding it to
depends_build and depends_run. Therefore there's no need to add
mysql5 to depends_build since it's already in depends_lib. The
preferred dependency style to use is the path: one, not the port:
one, so that mysql5-devel could also satisfy the dependency. I fixed
this in r50881.
+ configure.args-append \
+ -DVTK_USE_MYSQL:BOOL=ON \
+ -DMYSQL_INCLUDE_DIRECTORIES:PATH=${includePath} \
+ -DMYSQL_LIBRARY:FILEPATH=${libFile} \
+ -DMYSQL_EXTRA_LIBRARIES:FILEPATH=${prefix}/lib/libz.dylib
+ # A URL for a MySQL server of the form
+ # mysql://[[username[:passwo...@]hostname[:port]]/[dbname]
+ #VTK_MYSQL_TEST_URL:STRING=
+}
+
+variant pgsql83 description {build the PostgreSQL 8.3 driver for
vtkSQLDatabase} {
+ set pgconf [exec ${prefix}/lib/postgresql83/bin/pg_config ]
+ set includeIdx [lsearch -regex ${pgconf} "^INCLUDEDIR"]
+ set includePath [lindex ${pgconf} [expr ${includeIdx} + 2]]
+ set libIdx [lsearch -regex $pgconf "^LIBDIR"]
+ set libPath [lindex $pgconf [expr $libIdx + 2]]
+ set libFile [exec find ${libPath} -name "libpq.dylib"]
+ depends_build-append \
+ path:lib/postgresql83/bin/pg_config:postgresql83
+ depends_lib-append \
+ port:postgresql83
+ configure.args-append \
+ -DVTK_USE_POSTGRES:BOOL=ON \
+ -DPOSTGRES_INCLUDE_DIRECTORIES:PATH=${includePath} \
+ -DPOSTGRES_LIBRARIES:FILEPATH=${libFile}
+ #// A URL for a PostgreSQL server of the form
+ #// psql://[[username[:passwo...@]hostname[:port]]/[dbname]
+ #VTK_PSQL_TEST_URL:STRING=
+}
The same comments as for the mysql5 variant apply to the pgsql83
variant and were also fixed by r50884 and r50881.
+
+
+variant odbc description {build the ODBC database interface} {
+ depends_lib-append \
+ port:unixODBC
+ configure.args-append \
+ -DVTK_USE_ODBC:BOOL=ON \
+ -DODBC_INCLUDE_DIRECTORIES:PATH=/opt/local/include \
+ -DODBC_LIBRARY:FILEPATH=/opt/local/lib/libodbc.dylib
+ #// A data source name (DSN) for an ODBC database
connection to use for testing.
+ #-DVTK_ODBC_TEST_DSN:STRING=
+}
/opt/local should not be hardcoded. I changed this to ${prefix} in
r50883.
_______________________________________________
macports-dev mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/macports-dev