Opened 11 years ago

Closed 11 years ago

#4516 closed patch (fixed)

Fix broken Win32 build (circular references out of control again).

Reported by: andrei@… Owned by: Nigel
Priority: minor Milestone: 0.21
Component: mythtv Version: head
Severity: medium Keywords:
Cc: Ticket locked: no

Description

Changes build order to build libmyth first, then libmythui and libmythupnp and puts back libmyth reference to libmythui and libmythupnp. This fixes MinGW builds for me (svn 15533).

Attachments (2)

mingw.patch (1.7 KB) - added by andrei@… 11 years ago.
libmythtv.patch (1.6 KB) - added by andrei@… 11 years ago.
clean-up the circular reference workarounds (not necessary anymore)

Download all attachments as: .zip

Change History (9)

Changed 11 years ago by andrei@…

Attachment: mingw.patch added

comment:1 Changed 11 years ago by danielk

Owner: changed from Isaac Richards to Nigel
Status: newassigned

comment:2 Changed 11 years ago by jaymode@…

I can confirm that this builds on Win32 using the mingw.patch and these 3 other patches: util_win32.patch from #4497 backend.patch.gz from #4392 importicons_windows_2.diff from #3334

comment:3 Changed 11 years ago by anonymous

Linux --as-needed builds currently need those libs to be built in that order.
For Win32, I want to do this a different way. Instead of libmyth depending on two sets of .def files, it is lower maintenance for both of libmythui and libmythupnp to both depend on the same .def file, which means they can use the same set of qmake rules, included from the same place.
I will check in the fix soon. It is just taking me a while to get the Win32 build env working.

comment:4 Changed 11 years ago by andrei@…

libmyth imports a lot fewer functions from libmythui and libmythupnp combined than each of them imports from libmyth, this is why this "direction" was chosen. Doing it in reverse order is possible but the .def file will be huge and unmaintainable - any time a function signature changes in libmyth, it would need to be updated.

comment:5 Changed 11 years ago by Nigel

Resolution: fixed
Status: assignedclosed

Huge? Well, 50 symbols is too many, but I prefer that to 29 symbols spread over two files.
Anyway, [15553] should fix this all again? (without breaking the even more fragile Linux --as-needed)

comment:6 Changed 11 years ago by andrei@…

Resolution: fixed
Status: closednew

One "tidyup" step is missing: clean up libmythtv.pro

Changed 11 years ago by andrei@…

Attachment: libmythtv.patch added

clean-up the circular reference workarounds (not necessary anymore)

comment:7 Changed 11 years ago by Nigel

Resolution: fixed
Status: newclosed

(In [15593]) Tidy up the last of the un-needed circular lib hacks. Closes #4516. Similar to what Andrei provided in that ticket, but removes a few more lines. Have tested builds on Mac OS X, MinGW and Linux (but not using --as-needed). Hopefully this shouldn't break the build for anyone?

Note: See TracTickets for help on using tickets.