Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 15 Oct 2016 23:53:45 +0000 (UTC)
From:      Jan Beich <jbeich@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r424034 - in head/math: . ceres-solver
Message-ID:  <201610152353.u9FNrjpR086787@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jbeich
Date: Sat Oct 15 23:53:45 2016
New Revision: 424034
URL: https://svnweb.freebsd.org/changeset/ports/424034

Log:
  math/ceres-solver: add new port
  
  Based on:	Gentoo (1.11.0 ebuild)
  Tested on:	graphics/openmvg from @outpaddling's repo (build on 10.3 amd64)
  
  Ceres Solver is an open source C++ library for modeling and solving
  large, complicated optimization problems. It is a feature rich, mature
  and performant library which has been used in production at Google
  since 2010. Ceres Solver can solve two kinds of problems.
  
  1. Non-linear Least Squares problems with bounds constraints.
  2. General unconstrained optimization problems.
  
  http://ceres-solver.org/

Added:
  head/math/ceres-solver/
  head/math/ceres-solver/Makefile   (contents, props changed)
  head/math/ceres-solver/distinfo   (contents, props changed)
  head/math/ceres-solver/pkg-descr   (contents, props changed)
  head/math/ceres-solver/pkg-plist   (contents, props changed)
Modified:
  head/math/Makefile   (contents, props changed)

Modified: head/math/Makefile
==============================================================================
--- head/math/Makefile	Sat Oct 15 21:30:37 2016	(r424033)
+++ head/math/Makefile	Sat Oct 15 23:53:45 2016	(r424034)
@@ -107,6 +107,7 @@
     SUBDIR += carve
     SUBDIR += cblas
     SUBDIR += ccmath
+    SUBDIR += ceres-solver
     SUBDIR += cgal
     SUBDIR += chaco
     SUBDIR += chryzodus

Added: head/math/ceres-solver/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/math/ceres-solver/Makefile	Sat Oct 15 23:53:45 2016	(r424034)
@@ -0,0 +1,109 @@
+# $FreeBSD$
+
+PORTNAME=	ceres-solver
+DISTVERSION=	1.12.0rc1
+CATEGORIES=	math
+
+MAINTAINER=	jbeich@FreeBSD.org
+COMMENT=	Nonlinear least squares minimizer
+
+LICENSE=	BSD3CLAUSE
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+BUILD_DEPENDS=	eigen>=3.2.2:math/eigen3
+LIB_DEPENDS=	libglog.so:devel/glog
+RUN_DEPENDS:=	${BUILD_DEPENDS:Meigen*}
+
+USES=		cmake:outsource compiler:${OPENMP}c++11-lib localbase shebangfix
+USE_GITHUB=	yes
+USE_LDCONFIG=	yes
+SHEBANG_FILES=	examples/slam/pose_graph_*/plot_results.py \
+		scripts/make_docs.py
+CMAKE_ARGS=	-DCXX11=on -DBUILD_SHARED_LIBS=on
+LDFLAGS+=	-Wl,--as-needed # -lccolamd -lcholmod -lrt from suitesparse
+PLIST_SUB=	VERSION=${PORTVERSION:R}
+EXAMPLESDIR=	${PREFIX}/share/examples/${PORTNAME:S/-solver//}
+DOCSDIR=	${PREFIX}/share/doc/${PORTNAME:S/-solver//}
+PORTDOCS=	*
+PORTEXAMPLES=	*
+
+OPTIONS_DEFINE=	CUSTOM_BLAS EXAMPLES DOCS GFLAGS LAPACK OPENMP SCHUR TEST
+OPTIONS_DEFAULT=CUSTOM_BLAS NETLIB OPENMP SCHUR ${OPTIONS_GROUP_SPARSE}
+OPTIONS_RADIO=	LAPACK
+OPTIONS_RADIO_LAPACK=	ATLAS GOTOBLAS NETLIB OPENBLAS
+OPTIONS_GROUP=	SPARSE
+OPTIONS_GROUP_SPARSE=	CXSPARSE EIGENSPARSE SUITESPARSE
+
+CUSTOM_BLAS_DESC=	Handcoded BLAS routines instead of Eigen
+CUSTOM_BLAS_CMAKE_BOOL=	CUSTOM_BLAS
+
+DOCS_BUILD_DEPENDS=	sphinx-build:textproc/py-sphinx
+DOCS_USES=		python:build
+DOCS_CMAKE_BOOL=	BUILD_DOCUMENTATION
+
+EXAMPLES_CMAKE_BOOL=	BUILD_EXAMPLES
+EXAMPLES_IMPLIES=	GFLAGS
+
+GFLAGS_DESC=		Google Flags support
+GFLAGS_LIB_DEPENDS=	libgflags.so:devel/gflags
+GFLAGS_CMAKE_BOOL=	GFLAGS
+
+OPENMP_USES=		compiler:openmp
+OPENMP_CMAKE_BOOL=	OPENMP
+OPENMP_VARS=		OPENMP=gcc- # XXX ports/210337
+
+SCHUR_DESC=		Fixed-size schur specializations
+SCHUR_CMAKE_BOOL=	SCHUR_SPECIALIZATIONS
+
+# XXX Unbundle googletest/googlemock
+TEST_CMAKE_BOOL=	BUILD_TESTING
+TEST_TEST_TARGET=	test ARGS="-V"
+TEST_IMPLIES=		GFLAGS
+# XXX Move to USES=cmake
+TEST_VARS=		TEST_WRKSRC="${CONFIGURE_WRKSRC}"
+
+LAPACK_DESC=		Linear Algebra PACKage
+LAPACK_USES=		fortran # LDFLAGS
+LAPACK_CMAKE_ON=	-DBLAS_LIBRARIES="${BLASLIB}" -DLAPACK_LIBRARIES="${LAPACKLIB}"
+LAPACK_CMAKE_BOOL=	LAPACK
+ATLAS_USES=		blaslapack:atlas
+ATLAS_CMAKE_ARGS=	-DBLA_VENDOR="ATLAS"
+ATLAS_IMPLIES=		LAPACK
+GOTOBLAS_DESC=		Goto blas implementation
+GOTOBLAS_CMAKE_ARGS=	-DBLA_VENDOR="Goto"
+GOTOBLAS_IMPLIES=	LAPACK
+GOTOBLAS_USES=		blaslapack:gotoblas
+NETLIB_USES=		blaslapack:netlib
+NETLIB_CMAKE_ARGS=	-DBLA_VENDOR="Generic"
+NETLIB_IMPLIES=		LAPACK
+OPENBLAS_USES=		blaslapack:openblas
+OPENBLAS_CMAKE_ARGS=	-DBLA_VENDOR="OpenBLAS"
+OPENBLAS_IMPLIES=	LAPACK
+
+SPARSE_DESC=		Sparse linear algebra library
+CXSPARSE_DESC=		CXSparse support
+CXSPARSE_LIB_DEPENDS=	libcxsparse.so:math/suitesparse
+CXSPARSE_CMAKE_ON=	-DCXSPARSE_INCLUDE_DIR="${LOCALBASE}/include/suitesparse"
+CXSPARSE_CMAKE_BOOL=	CXSPARSE
+EIGENSPARSE_DESC=	Eigen support
+EIGENSPARSE_CMAKE_BOOL=	EIGENSPARSE
+SUITESPARSE_DESC=	SuiteSparse support
+SUITESPARSE_LIB_DEPENDS=libspqr.so:math/suitesparse
+SUITESPARSE_CMAKE_BOOL=	SUITESPARSE
+SUITESPARSE_IMPLIES=	LAPACK
+
+post-patch-DOCS-on:
+	@${REINPLACE_CMD} -e 's,python,${PYTHON_CMD:T},' \
+		${WRKSRC}/docs/source/CMakeLists.txt
+
+pre-install-TEST-on: do-test
+
+post-install-EXAMPLES-on:
+# Copy examples (stripped), their source and sample data but not tests programs
+	(cd ${WRKSRC}/examples && ${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR})
+	(cd ${WRKSRC} && ${COPYTREE_SHARE} data ${STAGEDIR}${EXAMPLESDIR})
+	(cd ${BUILD_WRKSRC} && ${COPYTREE_SHARE} bin ${STAGEDIR}${EXAMPLESDIR})
+	@${RM} -r ${STAGEDIR}${EXAMPLESDIR}/bin/*_test
+	-@${STRIP_CMD} ${STAGEDIR}${EXAMPLESDIR}/bin/* # may fail for non-root
+
+.include <bsd.port.mk>

Added: head/math/ceres-solver/distinfo
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/math/ceres-solver/distinfo	Sat Oct 15 23:53:45 2016	(r424034)
@@ -0,0 +1,3 @@
+TIMESTAMP = 1474949998
+SHA256 (ceres-solver-ceres-solver-1.12.0rc1_GH0.tar.gz) = 71c4af1d9dc434327b4af509d9a5cd4f509cc60c7f349bc0fac20ca51c02569b
+SIZE (ceres-solver-ceres-solver-1.12.0rc1_GH0.tar.gz) = 3413229

Added: head/math/ceres-solver/pkg-descr
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/math/ceres-solver/pkg-descr	Sat Oct 15 23:53:45 2016	(r424034)
@@ -0,0 +1,9 @@
+Ceres Solver is an open source C++ library for modeling and solving
+large, complicated optimization problems. It is a feature rich, mature
+and performant library which has been used in production at Google
+since 2010. Ceres Solver can solve two kinds of problems.
+
+1. Non-linear Least Squares problems with bounds constraints.
+2. General unconstrained optimization problems.
+
+WWW: http://ceres-solver.org/

Added: head/math/ceres-solver/pkg-plist
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/math/ceres-solver/pkg-plist	Sat Oct 15 23:53:45 2016	(r424034)
@@ -0,0 +1,52 @@
+include/ceres/autodiff_cost_function.h
+include/ceres/autodiff_local_parameterization.h
+include/ceres/c_api.h
+include/ceres/ceres.h
+include/ceres/conditioned_cost_function.h
+include/ceres/cost_function.h
+include/ceres/cost_function_to_functor.h
+include/ceres/covariance.h
+include/ceres/crs_matrix.h
+include/ceres/cubic_interpolation.h
+include/ceres/dynamic_autodiff_cost_function.h
+include/ceres/dynamic_cost_function_to_functor.h
+include/ceres/dynamic_numeric_diff_cost_function.h
+include/ceres/fpclassify.h
+include/ceres/gradient_checker.h
+include/ceres/gradient_problem.h
+include/ceres/gradient_problem_solver.h
+include/ceres/internal/autodiff.h
+include/ceres/internal/config.h
+include/ceres/internal/disable_warnings.h
+include/ceres/internal/eigen.h
+include/ceres/internal/fixed_array.h
+include/ceres/internal/macros.h
+include/ceres/internal/manual_constructor.h
+include/ceres/internal/numeric_diff.h
+include/ceres/internal/port.h
+include/ceres/internal/reenable_warnings.h
+include/ceres/internal/scoped_ptr.h
+include/ceres/internal/variadic_evaluate.h
+include/ceres/iteration_callback.h
+include/ceres/jet.h
+include/ceres/local_parameterization.h
+include/ceres/loss_function.h
+include/ceres/normal_prior.h
+include/ceres/numeric_diff_cost_function.h
+include/ceres/numeric_diff_options.h
+include/ceres/ordered_groups.h
+include/ceres/problem.h
+include/ceres/rotation.h
+include/ceres/sized_cost_function.h
+include/ceres/solver.h
+include/ceres/types.h
+include/ceres/version.h
+lib/cmake/Ceres/CeresConfig.cmake
+lib/cmake/Ceres/CeresConfigVersion.cmake
+lib/cmake/Ceres/CeresTargets-%%CMAKE_BUILD_TYPE%%.cmake
+lib/cmake/Ceres/CeresTargets.cmake
+lib/cmake/Ceres/FindEigen.cmake
+lib/cmake/Ceres/FindGlog.cmake
+lib/libceres.so
+lib/libceres.so.1
+lib/libceres.so.%%VERSION%%



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201610152353.u9FNrjpR086787>