[118088] trunk/dports/math/eigen3
eborisch at macports.org
eborisch at macports.org
Fri Mar 21 12:46:39 PDT 2014
Revision: 118088
https://trac.macports.org/changeset/118088
Author: eborisch at macports.org
Date: 2014-03-21 12:46:39 -0700 (Fri, 21 Mar 2014)
Log Message:
-----------
eigen3: Move to cmake-based installs by default. Add missing unsupported directories to cmake install. Use compilers portgroup to support compiler variants (for +blas)
Modified Paths:
--------------
trunk/dports/math/eigen3/Portfile
Added Paths:
-----------
trunk/dports/math/eigen3/files/
trunk/dports/math/eigen3/files/CMakeLists-eigenvalues.txt
trunk/dports/math/eigen3/files/unsupported.patch
Modified: trunk/dports/math/eigen3/Portfile
===================================================================
--- trunk/dports/math/eigen3/Portfile 2014-03-21 19:27:20 UTC (rev 118087)
+++ trunk/dports/math/eigen3/Portfile 2014-03-21 19:46:39 UTC (rev 118088)
@@ -2,11 +2,12 @@
# $Id$
PortSystem 1.0
+PortGroup compilers 1.0
name eigen3
version 3.2.1
-revision 0
-license {{MPL-2} {LGPL-3+}}
+revision 1
+license MPL-2 LGPL-3+
categories math science
maintainers eborisch \
openmaintainer
@@ -34,11 +35,13 @@
livecheck.url ${homepage}index.php?title=Main_Page
livecheck.regex {stable release.*Eigen (\d+(?:\.\d+)*).}
+patchfiles unsupported.patch
+
subport eigen3-devel {
conflicts eigen3
# No current development version (other than rolling snapshot)
version 3.2.1
- revision 0
+ revision 1
# rc version seen as older than beta
epoch 1
distname ${version}
@@ -49,140 +52,77 @@
{development release.*Eigen (([\d]|\.|beta|rc|-)+)\.}
}
-# Install via CMake by default. Slower than a header-only install, but makes
-# other CMake-based builds happy
-default_variants +cmake
-
-# Variants
-variant gcc44 description {Use MacPorts' gcc44 compilers for +blas} \
- conflicts gcc45 gcc46 gcc47 gcc48 gcc49 {
- configure.compiler macports-gcc-4.4
-}
-
-variant gcc45 description {Use MacPorts' gcc45 compilers for +blas} \
- conflicts gcc44 gcc46 gcc47 gcc48 gcc49 {
- configure.compiler macports-gcc-4.5
-}
-
-variant gcc46 description {Use MacPorts' gcc46 compilers for +blas} \
- conflicts gcc44 gcc45 gcc47 gcc48 gcc49 {
- configure.compiler macports-gcc-4.6
-}
-
-variant gcc47 description {Use MacPorts' gcc47 compilers for +blas} \
- conflicts gcc44 gcc45 gcc46 gcc48 gcc49 {
- configure.compiler macports-gcc-4.7
-}
-
-variant gcc48 description {Use MacPorts' gcc48 compilers for +blas} \
- conflicts gcc44 gcc45 gcc46 gcc47 gcc49 {
- configure.compiler macports-gcc-4.8
-}
-
-variant gcc49 description {Use MacPorts' gcc49 compilers for +blas} \
- conflicts gcc44 gcc45 gcc46 gcc47 gcc48 {
- configure.compiler macports-gcc-4.9
-}
-
-variant doc \
- description \
- {Place local documentation into <prefix>/share/doc/eigen3/html}\
- requires cmake {
+variant doc description \
+ {Place local documentation into <prefix>/share/doc/eigen3/html} {
depends_build-append port:doxygen \
port:texlive-latex \
path:bin/dot:graphviz
build.target-append doc
-
}
variant blas description \
- {Build eigen-based blas (libeigen_blas*) : needs +gcc4N} \
- requires cmake {
- if {![variant_isset gcc44] &&
- ![variant_isset gcc45] &&
- ![variant_isset gcc46] &&
- ![variant_isset gcc47] &&
- ![variant_isset gcc48] &&
- ![variant_isset gcc49]} {
- ui_error "eigen3: To use +blas please select +gcc4\[456789\]!!!"
- return -code error
- } else {
+ {Build eigen's blas (libeigen_blas*) : needs +gccNN, +g95, or +gfortan} {
PortGroup muniversal 1.0
build.target-append blas
universal_variant yes
configure.universal_args ""
- }
}
-if {([variant_isset gcc44] ||
- [variant_isset gcc45] ||
- [variant_isset gcc46] ||
- [variant_isset gcc47] ||
- [variant_isset gcc48] ||
- [variant_isset gcc49]) && ![variant_isset blas]} {
- ui_warn "eigen3: gcc4* only impacts +blas"
-}
+### CMAKE SUPPORT
-variant cmake description \
-{CMake-based install: Disabling removes CMake support} {
- # Not using cmake portgroup as it sets -DCMAKE_OSX_ARCHITECTURES
- # in a way we don't seem to be able disable.
- set cmake_share_module_dir ${prefix}/share/cmake/modules
+# Install is only done via cmake (depends_build) now. Since packages are
+# available for the default install -- which is essentially just headers --
+# users who just install the default won't need. Users who wanted more than
+# default (+doc, +blas) would have needed cmake in the past, anyway.
- depends_build-append port:cmake
+# Not using cmake portgroup as it sets -DCMAKE_OSX_ARCHITECTURES in a way we
+# don't seem to be able disable.
+set cmake_share_module_dir ${prefix}/share/cmake/modules
- configure.cmd cmake
+depends_build-append port:cmake
- configure.pre_args -DCMAKE_INSTALL_PREFIX=${prefix}
+configure.cmd cmake
- configure.args -DCMAKE_VERBOSE_MAKEFILE=ON \
- -DCMAKE_COLOR_MAKEFILE=ON \
- -DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON \
- -DCMAKE_INSTALL_NAME_DIR=${prefix}/lib \
- -DCMAKE_SYSTEM_PREFIX_PATH=\"${prefix}\;/usr\" \
- -DCMAKE_MODULE_PATH=${cmake_share_module_dir} \
- -Wno-dev
+configure.pre_args -DCMAKE_INSTALL_PREFIX=${prefix}
- # Out of source build
- configure.args-append ../eigen_src
+configure.args -DCMAKE_VERBOSE_MAKEFILE=ON \
+ -DCMAKE_COLOR_MAKEFILE=ON \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON \
+ -DCMAKE_INSTALL_NAME_DIR=${prefix}/lib \
+ -DCMAKE_SYSTEM_PREFIX_PATH=\"${prefix}\;/usr\" \
+ -DCMAKE_MODULE_PATH=${cmake_share_module_dir} \
+ -Wno-dev
- # Enable test cases if we've actually configured
- test.run yes
- test.target check
- test.env-append EIGEN_MAKE_ARGS=-j{build.jobs} \
- EIGEN_CTEST_ARGS=-j{build.jobs}
+# Out of source build
+configure.args-append ../eigen_src
- # Enable parallel builds
- build.env-append EIGEN_MAKE_ARGS=-j{build.jobs}
-}
+test.run yes
+test.target check
+test.env-append EIGEN_MAKE_ARGS=-j{build.jobs} \
+ EIGEN_CTEST_ARGS=-j{build.jobs}
-# Conditional phase modifications
-if {![variant_isset blas]} {
+# Enable parallel builds
+build.env-append EIGEN_MAKE_ARGS=-j{build.jobs}
+
+### END CMAKE SUPPORT
+
+# Setup compilers support / requirements
+
+if {[variant_isset blas]} {
+ compilers.choose cc cxx cpp fc f77 f90
+ compilers.setup require_fortran
+} elseif {[variant_isset doc]} {
+ compilers.choose cc cxx cpp
+ compilers.setup
+} else {
# No architecture-dependent files installed; set noarch
supported_archs noarch
+ compilers.setup
}
-# Are we doing a header-only or cmake (for 'port test' or +doc/+blas) build?
-if {![variant_isset cmake]} {
- # We can skip everything and just copy the headers -- fast!
- use_configure no
- build {}
- destroot {
- set incldir ${destroot}${prefix}/include/${name}
- xinstall -d ${incldir}
- file copy ${workpath}/eigen_src/Eigen ${incldir}
- file copy ${workpath}/eigen_src/unsupported ${incldir}
- }
+### Extra phases
- # Fail with message if user tries to test
- test.run yes
- test {
- ui_error "!!! TESTING IS UNSUPPORTED WITHOUT +cmake VARIANT !!!"
- }
-}
-
-# Phase modifications
pre-extract {
file mkdir ${worksrcpath}
}
@@ -193,10 +133,12 @@
post-patch {
# Move directory for out-of-source build
move ${worksrcpath} ${workpath}/eigen_src
+ copy ${filespath}/CMakeLists-eigenvalues.txt \
+ ${workpath}/eigen_src/unsupported/Eigen/src/Eigenvalues/CMakeLists.txt
file mkdir ${worksrcpath}
}
-# Install licenses and documentation (if +doc)
+# Install licenses and (if +doc) documentation
pre-destroot {
set build_suffix {}
if {![info exists universal_archs_to_use]} {
@@ -233,4 +175,16 @@
}
}
+# Grab extra items install doesn't out of unsupported
+post-destroot {
+ foreach n {README.txt bench doc test} {
+ file copy ${workpath}/eigen_src/unsupported/${n} \
+ ${destroot}${prefix}/include/${name}/unsupported
+ }
+}
+notes {
+ This product includes software developed by the University of Chicago, as
+ Operator of Argonne National Laboratory.
+}
+
Added: trunk/dports/math/eigen3/files/CMakeLists-eigenvalues.txt
===================================================================
--- trunk/dports/math/eigen3/files/CMakeLists-eigenvalues.txt (rev 0)
+++ trunk/dports/math/eigen3/files/CMakeLists-eigenvalues.txt 2014-03-21 19:46:39 UTC (rev 118088)
@@ -0,0 +1,6 @@
+FILE(GLOB Eigen_Eigenvalues_SRCS "*.h")
+
+INSTALL(FILES
+ ${Eigen_Eigenvalues_SRCS}
+ DESTINATION ${INCLUDE_INSTALL_DIR}/unsupported/Eigen/src/Eigenvalues COMPONENT Devel
+ )
Added: trunk/dports/math/eigen3/files/unsupported.patch
===================================================================
--- trunk/dports/math/eigen3/files/unsupported.patch (rev 0)
+++ trunk/dports/math/eigen3/files/unsupported.patch 2014-03-21 19:46:39 UTC (rev 118088)
@@ -0,0 +1,50 @@
+--- unsupported/Eigen/CMakeLists.txt.orig 2014-03-14 10:36:53.000000000 -0500
++++ unsupported/Eigen/CMakeLists.txt 2014-03-14 10:38:30.000000000 -0500
+@@ -1,6 +1,6 @@
+-set(Eigen_HEADERS AdolcForward BVH IterativeSolvers MatrixFunctions MoreVectorization AutoDiff AlignedVector3 Polynomials
++set(Eigen_HEADERS AdolcForward ArpackSupport BVH IterativeSolvers MatrixFunctions MoreVectorization AutoDiff AlignedVector3 Polynomials
+ FFT NonLinearOptimization SparseExtra IterativeSolvers
+- NumericalDiff Skyline MPRealSupport OpenGLSupport KroneckerProduct Splines LevenbergMarquardt
++ NumericalDiff Skyline SVD MPRealSupport OpenGLSupport KroneckerProduct Splines LevenbergMarquardt
+ )
+
+ install(FILES
+--- unsupported/Eigen/src/CMakeLists.txt.orig 2014-03-14 10:39:42.000000000 -0500
++++ unsupported/Eigen/src/CMakeLists.txt 2014-03-14 10:44:53.000000000 -0500
+@@ -1,7 +1,9 @@
+ ADD_SUBDIRECTORY(AutoDiff)
+ ADD_SUBDIRECTORY(BVH)
++ADD_SUBDIRECTORY(Eigenvalues)
+ ADD_SUBDIRECTORY(FFT)
+ ADD_SUBDIRECTORY(IterativeSolvers)
++ADD_SUBDIRECTORY(LevenbergMarquardt)
+ ADD_SUBDIRECTORY(MatrixFunctions)
+ ADD_SUBDIRECTORY(MoreVectorization)
+ ADD_SUBDIRECTORY(NonLinearOptimization)
+@@ -9,5 +11,6 @@
+ ADD_SUBDIRECTORY(Polynomials)
+ ADD_SUBDIRECTORY(Skyline)
+ ADD_SUBDIRECTORY(SparseExtra)
++ADD_SUBDIRECTORY(SVD)
+ ADD_SUBDIRECTORY(KroneckerProduct)
+ ADD_SUBDIRECTORY(Splines)
+--- unsupported/Eigen/src/SVD/CMakeLists.txt.orig 2014-03-14 10:56:38.000000000 -0500
++++ unsupported/Eigen/src/SVD/CMakeLists.txt 2014-03-14 10:56:51.000000000 -0500
+@@ -2,5 +2,5 @@
+
+ INSTALL(FILES
+ ${Eigen_SVD_SRCS}
+- DESTINATION ${INCLUDE_INSTALL_DIR}unsupported/Eigen/src/SVD COMPONENT Devel
++ DESTINATION ${INCLUDE_INSTALL_DIR}/unsupported/Eigen/src/SVD COMPONENT Devel
+ )
+--- unsupported/Eigen/src/LevenbergMarquardt/CMakeLists.txt.orig 2014-03-14 10:57:24.000000000 -0500
++++ unsupported/Eigen/src/LevenbergMarquardt/CMakeLists.txt 2014-03-14 10:57:06.000000000 -0500
+@@ -1,6 +1,6 @@
+-FILE(GLOB Eigen_LevenbergMarquardt_SRCS "*.h")
++FILE(GLOB Eigen_LevenbergMarquardt_SRCS "*.h" "Copyright*.txt")
+
+ INSTALL(FILES
+ ${Eigen_LevenbergMarquardt_SRCS}
+- DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen/src/LevenbergMarquardt COMPONENT Devel
++ DESTINATION ${INCLUDE_INSTALL_DIR}/unsupported/Eigen/src/LevenbergMarquardt COMPONENT Devel
+ )
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/macports-changes/attachments/20140321/ad56bcf6/attachment.html>
More information about the macports-changes
mailing list