[GH-ISSUE #69] Proposal for source tree structure regarding 3rd party components #59

Closed
opened 2026-05-05 11:34:48 -06:00 by gitea-mirror · 2 comments
Owner

Originally created by @utelle on GitHub (Jul 25, 2016).
Original GitHub issue: https://github.com/jmcnamara/libxlsxwriter/issues/69

Originally assigned to: @jmcnamara on GitHub.

I'd like to propose that you cleanly separate 3rd party components from the source code of libxlsxwriter.

For example, at the moment you have 2 copies of the minizip related header files ioapi.h and zip.h, one instance in subdirectory include/xlsxwriter/third_party and one instance in subdirectory third_party/minizip. The problem is, that those copies are not identical.

In include/xlsxwriter/third_party/zip.h you specified 2 additional symbols NOCRYPT and NOUNCRYPT, while you did not in third_party/minizip/zip.h.

In third_party/minizip/ioapi.h you added a check for OpenBSD in line 53, while you did not in include/xlsxwriter/third_party/ioapi.h. However, in the latter you added a pragma for GCC.

Of the header file tmpfileplus.h you also have 2 copies, one in include/xlsxwriter/thrid_party and one in third_party/tmpfileplus - identical copies in this case.

To avoid confusion and potential bugs, I would propose to remove those duplicate header files from include/xlsxwriter/third_party, and instead to add compiler switches -Ithird_party/minizip and -Ithird_party/tmpfileplus to tell the compiler where to search for header files. Additionally I would add compiler switches -DNOCRYPT and -DNOUNCRYPT instead of modifying the header file zip.h.

Originally created by @utelle on GitHub (Jul 25, 2016). Original GitHub issue: https://github.com/jmcnamara/libxlsxwriter/issues/69 Originally assigned to: @jmcnamara on GitHub. I'd like to propose that you cleanly separate 3rd party components from the source code of `libxlsxwriter`. For example, at the moment you have 2 copies of the `minizip` related header files `ioapi.h` and `zip.h`, one instance in subdirectory `include/xlsxwriter/third_party` and one instance in subdirectory `third_party/minizip`. The problem is, that those copies are not identical. In `include/xlsxwriter/third_party/zip.h` you specified 2 additional symbols `NOCRYPT` and `NOUNCRYPT`, while you did not in `third_party/minizip/zip.h`. In `third_party/minizip/ioapi.h` you added a check for `OpenBSD` in line 53, while you did not in `include/xlsxwriter/third_party/ioapi.h`. However, in the latter you added a pragma for GCC. Of the header file `tmpfileplus.h` you also have 2 copies, one in `include/xlsxwriter/thrid_party` and one in `third_party/tmpfileplus` - identical copies in this case. To avoid confusion and potential bugs, I would propose to remove those duplicate header files from `include/xlsxwriter/third_party`, and instead to add compiler switches `-Ithird_party/minizip` and `-Ithird_party/tmpfileplus` to tell the compiler where to search for header files. Additionally I would add compiler switches `-DNOCRYPT` and `-DNOUNCRYPT` instead of modifying the header file `zip.h`.
gitea-mirror 2026-05-05 11:34:48 -06:00
Author
Owner

@jmcnamara commented on GitHub (Jul 25, 2016):

Thanks, I'll look into it.

<!-- gh-comment-id:234913822 --> @jmcnamara commented on GitHub (Jul 25, 2016): Thanks, I'll look into it.
Author
Owner

@jmcnamara commented on GitHub (Jul 11, 2021):

Closing this issue since I'm probably not going to fix this or change the duplicate header setup.

<!-- gh-comment-id:877796919 --> @jmcnamara commented on GitHub (Jul 11, 2021): Closing this issue since I'm probably not going to fix this or change the duplicate header setup.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: github-starred/libxlsxwriter#59
No description provided.