Opened 3 years ago

Last modified 21 months ago

#62011 assigned enhancement

opencv3/opencv4: eliminate portfile duplication via subports; simplify via portgroups; streamline python binding generation

Reported by: mascguy (Christopher Nielsen) Owned by: mascguy (Christopher Nielsen)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: cooljeanius (Eric Gallager)
Port: opencv3 opencv4

Description (last modified by mascguy (Christopher Nielsen))

Now that the two OpenCV-related ports have been brought up to parity, there are very few differences between them. Eliminate the portfile duplication, via subports.

Other notable cleanup that will be tackled during the reconciliation:

  • Universal use of github portgroup. Currently used for opencv4, but not for opencv3.
  • Adopt cmake portgroup, to reduce number of CMake flags needed.
  • If supported by OpenCV, streamline Python binding generation: Do so from the built libs, rather than rebuilding entire library.

Change History (18)

comment:1 Changed 3 years ago by mascguy (Christopher Nielsen)

Description: modified (diff)

comment:2 Changed 3 years ago by mascguy (Christopher Nielsen)

Description: modified (diff)

comment:3 Changed 3 years ago by mascguy (Christopher Nielsen)

This will be done in phases, coordinated with reinstatement of OpenCV 2 port (issue:49670):

  1. Add variants missed during opencv/opencv4 reconciliation (opencv +openmp, opencv4 +openni).
  2. Add new port opencv3, segregated like opencv4. Also include initial changes, supporting later conversion to subport.
  3. Update ports presently dependent upon opencv, to use opencv3. And update port opencv to be a stub port, with replaced_by opencv3, etc.
  4. Add new port opencv2, using same segregation strategy, etc.
  5. Reconcile all three into single opencv port, with three subports. This step may be combined with previous.

Thoughts/feedback welcome, as always.

Last edited 3 years ago by mascguy (Christopher Nielsen) (previous) (diff)

comment:5 Changed 3 years ago by Christopher Nielsen <mascguy@…>

In 1a1ad1dde0f1ed1a99f5bf431a30fa7eeaa269d0/macports-ports (master):

opencv3: new port to replace opencv, with opencv4-style isolation

See: #62011
See: #49670

comment:6 Changed 3 years ago by mascguy (Christopher Nielsen)

Description: modified (diff)

comment:7 Changed 3 years ago by Christopher Nielsen <mascguy@…>

In 33d1482c8b63962c23c3d6bc4556833317fff821/macports-ports (master):

opencv: add variant openmp

See: #62011

comment:8 Changed 3 years ago by Christopher Nielsen <mascguy@…>

In 49c839a35e1286a93ca495f13c268708783b4b3e/macports-ports (master):

opencv4: add variant openni

See: #62011

comment:9 Changed 3 years ago by Christopher Nielsen <mascguy@…>

In 7b38728c237c1be013b382640875f03d95d30e6f/macports-ports (master):

opencv/opencv4: variant openmp: implement fully, via compiler.openmp_version

See: #62011

comment:10 Changed 3 years ago by Christopher Nielsen <mascguy@…>

In 9987e0ce91de77778a17587f73061e550365cb1d/macports-ports (master):

opencv3: variant openmp: implement fully, via compiler.openmp_version

See: #62011

comment:11 Changed 3 years ago by mascguy (Christopher Nielsen)

Description: modified (diff)

comment:12 Changed 3 years ago by mascguy (Christopher Nielsen)

Summary: opencv/opencv4: eliminate portfile duplication, via subportopencv/opencv4: eliminate portfile duplication, via subports

comment:13 Changed 3 years ago by mascguy (Christopher Nielsen)

Description: modified (diff)
Port: opencv3 added; opencv removed
Summary: opencv/opencv4: eliminate portfile duplication, via subportsopencv3/opencv4: eliminate portfile duplication via subports; simplify via portgroups;

comment:14 Changed 3 years ago by mascguy (Christopher Nielsen)

Description: modified (diff)
Summary: opencv3/opencv4: eliminate portfile duplication via subports; simplify via portgroups;opencv3/opencv4: eliminate portfile duplication via subports; simplify via portgroups; streamline python binding generation

comment:15 Changed 3 years ago by Christopher Nielsen <mascguy@…>

In c5179d799bbe7a1154b5e2d82f927c24f6cbc404/macports-ports (master):

opencv3: migrate python bindings to subports; refine file layout, for consistency with opencv4

See: #62011
See: #49670

comment:16 Changed 3 years ago by Christopher Nielsen <mascguy@…>

In 342f7793397fe4c31b2c032c2e82a23008e5106e/macports-ports (master):

opencv4: cleanup python subports; refine file layout, for consistency with opencv3

See: #62011
See: #49670

comment:17 Changed 3 years ago by Christopher Nielsen <mascguy@…>

In 3d74dc855799921b0ef19ea278dabae4921e873d/macports-ports (master):

opencv3/opencv4: reduce path copy-paste in configure arguments; simplify via cmake portgroup when possible

See: #62011

comment:18 Changed 21 months ago by cooljeanius (Eric Gallager)

Cc: cooljeanius added
Note: See TracTickets for help on using tickets.