Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 21 Jul 2020 01:23:18 +0000 (UTC)
From:      Yuri Victorovich <yuri@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r542684 - in head/math: . or-tools or-tools/files
Message-ID:  <202007210123.06L1NI2G025807@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: yuri
Date: Tue Jul 21 01:23:18 2020
New Revision: 542684
URL: https://svnweb.freebsd.org/changeset/ports/542684

Log:
  New port: math/or-tools: Google's Operations Research tools

Added:
  head/math/or-tools/
  head/math/or-tools/Makefile   (contents, props changed)
  head/math/or-tools/distinfo   (contents, props changed)
  head/math/or-tools/files/
  head/math/or-tools/files/patch-makefiles_Makefile.dotnet.mk   (contents, props changed)
  head/math/or-tools/files/patch-makefiles_Makefile.third__party.unix.mk   (contents, props changed)
  head/math/or-tools/files/patch-ortools_util_fp__utils.h   (contents, props changed)
  head/math/or-tools/files/patch-ortools_util_zvector.h   (contents, props changed)
  head/math/or-tools/pkg-descr   (contents, props changed)
  head/math/or-tools/pkg-plist   (contents, props changed)
Modified:
  head/math/Makefile

Modified: head/math/Makefile
==============================================================================
--- head/math/Makefile	Tue Jul 21 00:44:35 2020	(r542683)
+++ head/math/Makefile	Tue Jul 21 01:23:18 2020	(r542684)
@@ -526,6 +526,7 @@
     SUBDIR += opensolaris-libm
     SUBDIR += openturns
     SUBDIR += optpp
+    SUBDIR += or-tools
     SUBDIR += orpie
     SUBDIR += osi
     SUBDIR += osqp

Added: head/math/or-tools/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/math/or-tools/Makefile	Tue Jul 21 01:23:18 2020	(r542684)
@@ -0,0 +1,37 @@
+# $FreeBSD$
+
+PORTNAME=	or-tools
+DISTVERSIONPREFIX=	v
+DISTVERSION=	7.7
+CATEGORIES=	math
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Google's Operations Research tools
+
+LICENSE=	APACHE20
+LICENSE_FILE=	${WRKSRC}/LICENSE-2.0.txt
+
+LIB_DEPENDS=	libabsl_base.so:devel/abseil \
+		libCbc.so:math/cbc \
+		libCgl.so:math/cgl \
+		libOsiClp.so:math/clp \
+		libgflags.so:devel/gflags \
+		libglog.so:devel/glog \
+		libprotobuf.so:devel/protobuf
+
+USES=		blaslapack cmake compiler:c++11-lang pkgconfig
+USE_GITHUB=	yes
+GH_ACCOUNT=	google
+USE_LDCONFIG=	yes
+
+CMAKE_OFF=	BUILD_DEPS INSTALL_BUILD_DEPS BUILD_PYTHON BUILD_EXAMPLES
+CONFIGURE_ENV=	UNIX_CBC_DIR=${LOCALBASE} UNIX_CLP_DIR=${LOCALBASE}
+BUILD_ENV=	UNIX_CBC_DIR=${LOCALBASE} UNIX_CLP_DIR=${LOCALBASE}
+
+post-configure: # https://github.com/google/or-tools/issues/2109
+	@${REINPLACE_CMD} -e 's|protobuf::protoc|protoc -I${LOCALBASE}/include| ; s|protobuf$$:$$:protoc||' ${BUILD_WRKSRC}/build.ninja
+
+post-install:
+	@${FIND} ${STAGEDIR}${PREFIX} -type d -empty -delete
+
+.include <bsd.port.mk>

Added: head/math/or-tools/distinfo
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/math/or-tools/distinfo	Tue Jul 21 01:23:18 2020	(r542684)
@@ -0,0 +1,3 @@
+TIMESTAMP = 1595281509
+SHA256 (google-or-tools-v7.7_GH0.tar.gz) = d20eb031ea3f1b75e55e44ae6acdb674ee6fb31e7a56498be32dc83ba9bc13bd
+SIZE (google-or-tools-v7.7_GH0.tar.gz) = 184809285

Added: head/math/or-tools/files/patch-makefiles_Makefile.dotnet.mk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/math/or-tools/files/patch-makefiles_Makefile.dotnet.mk	Tue Jul 21 01:23:18 2020	(r542684)
@@ -0,0 +1,15 @@
+--- makefiles/Makefile.dotnet.mk.orig	2020-06-12 13:05:43 UTC
++++ makefiles/Makefile.dotnet.mk
+@@ -62,7 +62,11 @@ else
+     ifeq ($(OS),Darwin)
+     RUNTIME_IDENTIFIER=osx-x64
+     else
+-    $(error OS unknown !)
++      ifeq ($(OS),FreeBSD)
++      RUNTIME_IDENTIFIER=freebsd-amd64
++      else
++        $(error OS unknown !)
++      endif
+     endif
+   endif
+ endif

Added: head/math/or-tools/files/patch-makefiles_Makefile.third__party.unix.mk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/math/or-tools/files/patch-makefiles_Makefile.third__party.unix.mk	Tue Jul 21 01:23:18 2020	(r542684)
@@ -0,0 +1,21 @@
+--- makefiles/Makefile.third_party.unix.mk.orig	2020-06-12 13:05:43 UTC
++++ makefiles/Makefile.third_party.unix.mk
+@@ -73,7 +73,8 @@ ifeq ($(wildcard $(UNIX_OSI_DIR)/include/osi/coin/OsiS
+ else
+ 	$(info OSI: found)
+ endif
+-ifeq ($(wildcard $(UNIX_CLP_DIR)/include/clp/coin/ClpModel.hpp $(UNIX_CLP_DIR)/include/coin/ClpSimplex.hpp),)
++ifeq ($(wildcard $(UNIX_CLP_DIR)/include/coin/ClpModel.hpp $(UNIX_CLP_DIR)/include/coin/ClpSimplex.hpp),)
++	$(info CLP: NOT found: UNIX_CLP_DIR=$(UNIX_CLP_DIR))
+ 	$(error Third party Clp files was not found! did you run 'make third_party' or set UNIX_CLP_DIR ?)
+ else
+ 	$(info CLP: found)
+@@ -83,7 +84,7 @@ ifeq ($(wildcard $(UNIX_CGL_DIR)/include/cgl/coin/CglP
+ else
+ 	$(info CGL: found)
+ endif
+-ifeq ($(wildcard $(UNIX_CBC_DIR)/include/cbc/coin/CbcModel.hpp $(UNIX_CBC_DIR)/include/coin/CbcModel.hpp),)
++ifeq ($(wildcard $(UNIX_CBC_DIR)/include/coin/CbcModel.hpp $(UNIX_CBC_DIR)/include/coin/CbcModel.hpp),)
+ 	$(error Third party Cbc files was not found! did you run 'make third_party' or set UNIX_CBC_DIR ?)
+ else
+ 	$(info CBC: found)

Added: head/math/or-tools/files/patch-ortools_util_fp__utils.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/math/or-tools/files/patch-ortools_util_fp__utils.h	Tue Jul 21 01:23:18 2020	(r542684)
@@ -0,0 +1,11 @@
+--- ortools/util/fp_utils.h.orig	2020-07-20 23:21:30 UTC
++++ ortools/util/fp_utils.h
+@@ -83,6 +83,8 @@ class ScopedFloatingPointEnv {
+     excepts &= FE_ALL_EXCEPT;
+ #ifdef __APPLE__
+     fenv_.__control &= ~excepts;
++#elif defined(__FreeBSD__)
++    //fesetexceptflag(&fenv_, excepts);
+ #else  // Linux
+     fenv_.__control_word &= ~excepts;
+ #endif

Added: head/math/or-tools/files/patch-ortools_util_zvector.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/math/or-tools/files/patch-ortools_util_zvector.h	Tue Jul 21 01:23:18 2020	(r542684)
@@ -0,0 +1,14 @@
+--- ortools/util/zvector.h.orig	2020-07-20 23:36:37 UTC
++++ ortools/util/zvector.h
+@@ -17,7 +17,11 @@
+ #if defined(__APPLE__) && defined(__GNUC__)
+ #include <machine/endian.h>
+ #elif !defined(_MSC_VER)
++#if defined(__FreeBSD__)
++#include <sys/endian.h>
++#else
+ #include <endian.h>
++#endif
+ #endif
+ #include <climits>
+ #include <cstdio>

Added: head/math/or-tools/pkg-descr
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/math/or-tools/pkg-descr	Tue Jul 21 01:23:18 2020	(r542684)
@@ -0,0 +1,14 @@
+Google Optimization Tools (a.k.a., OR-Tools) is an open-source, fast and
+portable software suite for solving combinatorial optimization problems.
+
+The suite contains:
+* A constraint programming solver
+* A linear programming solver
+* Wrappers around commercial and other open source solvers, including mixed
+  integer solvers
+* Bin packing and knapsack algorithms
+* Algorithms for the Traveling Salesman Problem and Vehicle Routing Problem
+* Graph algorithms (shortest paths, min cost flow, max flow, linear sum
+  assignment)
+
+WWW: https://github.com/google/or-tools

Added: head/math/or-tools/pkg-plist
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/math/or-tools/pkg-plist	Tue Jul 21 01:23:18 2020	(r542684)
@@ -0,0 +1,300 @@
+bin/costas_array_sat
+bin/cvrp_disjoint_tw
+bin/cvrptw
+bin/cvrptw_with_breaks
+bin/cvrptw_with_refueling
+bin/cvrptw_with_resources
+bin/cvrptw_with_stop_times_and_resources
+bin/dimacs_assignment
+bin/dobble_ls
+bin/flow_api
+bin/frequency_assignment_problem
+bin/golomb_sat
+bin/integer_programming
+bin/jobshop_sat
+bin/knapsack
+bin/linear_assignment_api
+bin/linear_programming
+bin/linear_solver_protocol_buffers
+bin/magic_square_sat
+bin/max_flow
+bin/min_cost_flow
+bin/mps_driver
+bin/network_routing_sat
+bin/nqueens
+bin/pdptw
+bin/random_tsp
+bin/shift_minimization_sat
+bin/solve
+bin/sports_scheduling_sat
+bin/strawberry_fields_with_column_generation
+bin/weighted_tardiness_sat
+include/ortools/algorithms/dense_doubly_linked_list.h
+include/ortools/algorithms/dynamic_partition.h
+include/ortools/algorithms/dynamic_permutation.h
+include/ortools/algorithms/find_graph_symmetries.h
+include/ortools/algorithms/hungarian.h
+include/ortools/algorithms/knapsack_solver.h
+include/ortools/algorithms/knapsack_solver_for_cuts.h
+include/ortools/algorithms/sparse_permutation.h
+include/ortools/base/accurate_sum.h
+include/ortools/base/adjustable_priority_queue-inl.h
+include/ortools/base/adjustable_priority_queue.h
+include/ortools/base/base_export.h
+include/ortools/base/basictypes.h
+include/ortools/base/bitmap.h
+include/ortools/base/cleanup.h
+include/ortools/base/commandlineflags.h
+include/ortools/base/encodingutils.h
+include/ortools/base/file.h
+include/ortools/base/filelineiter.h
+include/ortools/base/hash.h
+include/ortools/base/int_type.h
+include/ortools/base/int_type_indexed_vector.h
+include/ortools/base/integral_types.h
+include/ortools/base/iterator_adaptors.h
+include/ortools/base/jniutil.h
+include/ortools/base/logging.h
+include/ortools/base/macros.h
+include/ortools/base/map_util.h
+include/ortools/base/mathutil.h
+include/ortools/base/murmur.h
+include/ortools/base/protobuf_util.h
+include/ortools/base/protoutil.h
+include/ortools/base/ptr_util.h
+include/ortools/base/python-swig.h
+include/ortools/base/random.h
+include/ortools/base/recordio.h
+include/ortools/base/small_map.h
+include/ortools/base/small_ordered_set.h
+include/ortools/base/status_macros.h
+include/ortools/base/statusor.h
+include/ortools/base/stl_util.h
+include/ortools/base/sysinfo.h
+include/ortools/base/thorough_hash.h
+include/ortools/base/threadpool.h
+include/ortools/base/timer.h
+include/ortools/base/typeid.h
+include/ortools/base/version.h
+include/ortools/bop/bop_base.h
+include/ortools/bop/bop_fs.h
+include/ortools/bop/bop_lns.h
+include/ortools/bop/bop_ls.h
+include/ortools/bop/bop_parameters.pb.h
+include/ortools/bop/bop_portfolio.h
+include/ortools/bop/bop_solution.h
+include/ortools/bop/bop_solver.h
+include/ortools/bop/bop_types.h
+include/ortools/bop/bop_util.h
+include/ortools/bop/complete_optimizer.h
+include/ortools/bop/integral_solver.h
+include/ortools/constraint_solver/assignment.pb.h
+include/ortools/constraint_solver/constraint_solver.h
+include/ortools/constraint_solver/constraint_solveri.h
+include/ortools/constraint_solver/demon_profiler.pb.h
+include/ortools/constraint_solver/java/javawrapcp_util.h
+include/ortools/constraint_solver/python/pywrapcp_util.h
+include/ortools/constraint_solver/routing.h
+include/ortools/constraint_solver/routing_enums.pb.h
+include/ortools/constraint_solver/routing_flags.h
+include/ortools/constraint_solver/routing_index_manager.h
+include/ortools/constraint_solver/routing_lp_scheduling.h
+include/ortools/constraint_solver/routing_neighborhoods.h
+include/ortools/constraint_solver/routing_parameters.h
+include/ortools/constraint_solver/routing_parameters.pb.h
+include/ortools/constraint_solver/routing_types.h
+include/ortools/constraint_solver/search_limit.pb.h
+include/ortools/constraint_solver/solver_parameters.pb.h
+include/ortools/data/jobshop_scheduling.pb.h
+include/ortools/data/jobshop_scheduling_parser.h
+include/ortools/data/rcpsp.pb.h
+include/ortools/data/rcpsp_parser.h
+include/ortools/data/set_covering_data.h
+include/ortools/data/set_covering_parser.h
+include/ortools/flatzinc/checker.h
+include/ortools/flatzinc/cp_model_fz_solver.h
+include/ortools/flatzinc/logging.h
+include/ortools/flatzinc/model.h
+include/ortools/flatzinc/parser.h
+include/ortools/flatzinc/parser_util.h
+include/ortools/flatzinc/presolve.h
+include/ortools/glop/basis_representation.h
+include/ortools/glop/dual_edge_norms.h
+include/ortools/glop/entering_variable.h
+include/ortools/glop/initial_basis.h
+include/ortools/glop/lp_solver.h
+include/ortools/glop/lu_factorization.h
+include/ortools/glop/markowitz.h
+include/ortools/glop/parameters.pb.h
+include/ortools/glop/preprocessor.h
+include/ortools/glop/primal_edge_norms.h
+include/ortools/glop/rank_one_update.h
+include/ortools/glop/reduced_costs.h
+include/ortools/glop/revised_simplex.h
+include/ortools/glop/status.h
+include/ortools/glop/update_row.h
+include/ortools/glop/variable_values.h
+include/ortools/glop/variables_info.h
+include/ortools/graph/assignment.h
+include/ortools/graph/christofides.h
+include/ortools/graph/cliques.h
+include/ortools/graph/connected_components.h
+include/ortools/graph/connectivity.h
+include/ortools/graph/ebert_graph.h
+include/ortools/graph/eulerian_path.h
+include/ortools/graph/flow_problem.pb.h
+include/ortools/graph/graph.h
+include/ortools/graph/graphs.h
+include/ortools/graph/hamiltonian_path.h
+include/ortools/graph/io.h
+include/ortools/graph/iterators.h
+include/ortools/graph/linear_assignment.h
+include/ortools/graph/max_flow.h
+include/ortools/graph/min_cost_flow.h
+include/ortools/graph/minimum_spanning_tree.h
+include/ortools/graph/one_tree_lower_bound.h
+include/ortools/graph/perfect_matching.h
+include/ortools/graph/shortestpaths.h
+include/ortools/graph/strongly_connected_components.h
+include/ortools/graph/util.h
+include/ortools/linear_solver/glop_utils.h
+include/ortools/linear_solver/gurobi_environment.h
+include/ortools/linear_solver/gurobi_proto_solver.h
+include/ortools/linear_solver/linear_expr.h
+include/ortools/linear_solver/linear_solver.h
+include/ortools/linear_solver/linear_solver.pb.h
+include/ortools/linear_solver/linear_solver_callback.h
+include/ortools/linear_solver/model_exporter.h
+include/ortools/linear_solver/model_exporter_swig_helper.h
+include/ortools/linear_solver/model_validator.h
+include/ortools/linear_solver/sat_proto_solver.h
+include/ortools/linear_solver/sat_solver_utils.h
+include/ortools/linear_solver/scip_helper_macros.h
+include/ortools/linear_solver/scip_proto_solver.h
+include/ortools/lp_data/lp_data.h
+include/ortools/lp_data/lp_data_utils.h
+include/ortools/lp_data/lp_decomposer.h
+include/ortools/lp_data/lp_print_utils.h
+include/ortools/lp_data/lp_types.h
+include/ortools/lp_data/lp_utils.h
+include/ortools/lp_data/matrix_scaler.h
+include/ortools/lp_data/matrix_utils.h
+include/ortools/lp_data/model_reader.h
+include/ortools/lp_data/mps_reader.h
+include/ortools/lp_data/permutation.h
+include/ortools/lp_data/proto_utils.h
+include/ortools/lp_data/scattered_vector.h
+include/ortools/lp_data/sparse.h
+include/ortools/lp_data/sparse_column.h
+include/ortools/lp_data/sparse_row.h
+include/ortools/lp_data/sparse_vector.h
+include/ortools/port/file.h
+include/ortools/port/proto_utils.h
+include/ortools/port/sysinfo.h
+include/ortools/port/utf8.h
+include/ortools/sat/all_different.h
+include/ortools/sat/boolean_problem.h
+include/ortools/sat/boolean_problem.pb.h
+include/ortools/sat/circuit.h
+include/ortools/sat/clause.h
+include/ortools/sat/cp_constraints.h
+include/ortools/sat/cp_model.h
+include/ortools/sat/cp_model.pb.h
+include/ortools/sat/cp_model_checker.h
+include/ortools/sat/cp_model_expand.h
+include/ortools/sat/cp_model_lns.h
+include/ortools/sat/cp_model_loader.h
+include/ortools/sat/cp_model_objective.h
+include/ortools/sat/cp_model_postsolve.h
+include/ortools/sat/cp_model_presolve.h
+include/ortools/sat/cp_model_search.h
+include/ortools/sat/cp_model_solver.h
+include/ortools/sat/cp_model_symmetries.h
+include/ortools/sat/cp_model_utils.h
+include/ortools/sat/cumulative.h
+include/ortools/sat/cumulative_energy.h
+include/ortools/sat/cuts.h
+include/ortools/sat/diffn.h
+include/ortools/sat/disjunctive.h
+include/ortools/sat/drat_checker.h
+include/ortools/sat/drat_proof_handler.h
+include/ortools/sat/drat_writer.h
+include/ortools/sat/encoding.h
+include/ortools/sat/feasibility_pump.h
+include/ortools/sat/implied_bounds.h
+include/ortools/sat/integer.h
+include/ortools/sat/integer_expr.h
+include/ortools/sat/integer_search.h
+include/ortools/sat/intervals.h
+include/ortools/sat/linear_constraint.h
+include/ortools/sat/linear_constraint_manager.h
+include/ortools/sat/linear_programming_constraint.h
+include/ortools/sat/linear_relaxation.h
+include/ortools/sat/lp_utils.h
+include/ortools/sat/model.h
+include/ortools/sat/optimization.h
+include/ortools/sat/pb_constraint.h
+include/ortools/sat/precedences.h
+include/ortools/sat/presolve_context.h
+include/ortools/sat/presolve_util.h
+include/ortools/sat/probing.h
+include/ortools/sat/pseudo_costs.h
+include/ortools/sat/restart.h
+include/ortools/sat/rins.h
+include/ortools/sat/sat_base.h
+include/ortools/sat/sat_decision.h
+include/ortools/sat/sat_inprocessing.h
+include/ortools/sat/sat_parameters.pb.h
+include/ortools/sat/sat_solver.h
+include/ortools/sat/simplification.h
+include/ortools/sat/subsolver.h
+include/ortools/sat/swig_helper.h
+include/ortools/sat/symmetry.h
+include/ortools/sat/synchronization.h
+include/ortools/sat/table.h
+include/ortools/sat/theta_tree.h
+include/ortools/sat/timetable.h
+include/ortools/sat/timetable_edgefinding.h
+include/ortools/sat/util.h
+include/ortools/util/adaptative_parameter_value.h
+include/ortools/util/affine_relation.h
+include/ortools/util/bitset.h
+include/ortools/util/cached_log.h
+include/ortools/util/file_util.h
+include/ortools/util/fp_utils.h
+include/ortools/util/functions_swig_helpers.h
+include/ortools/util/functions_swig_test_helpers.h
+include/ortools/util/graph_export.h
+include/ortools/util/integer_pq.h
+include/ortools/util/lazy_mutable_copy.h
+include/ortools/util/monoid_operation_tree.h
+include/ortools/util/optional_boolean.pb.h
+include/ortools/util/permutation.h
+include/ortools/util/piecewise_linear_function.h
+include/ortools/util/proto_tools.h
+include/ortools/util/random_engine.h
+include/ortools/util/range_minimum_query.h
+include/ortools/util/range_query_function.h
+include/ortools/util/rational_approximation.h
+include/ortools/util/return_macros.h
+include/ortools/util/rev.h
+include/ortools/util/running_stat.h
+include/ortools/util/saturated_arithmetic.h
+include/ortools/util/sigint.h
+include/ortools/util/sort.h
+include/ortools/util/sorted_interval_list.h
+include/ortools/util/stats.h
+include/ortools/util/string_array.h
+include/ortools/util/time_limit.h
+include/ortools/util/tuple_set.h
+include/ortools/util/vector_map.h
+include/ortools/util/vector_or_function.h
+include/ortools/util/zvector.h
+include/ortools_export.h
+lib/cmake/ortools/ortoolsConfig.cmake
+lib/cmake/ortools/ortoolsConfigVersion.cmake
+lib/cmake/ortools/ortoolsTargets-%%CMAKE_BUILD_TYPE%%.cmake
+lib/cmake/ortools/ortoolsTargets.cmake
+lib/libortools.so
+lib/libortools.so.7
+lib/libortools.so.7.7.9999



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