Commit 11e34f29cef693b34d9c125161da3864b9d6ea77
Committed by
Jay Berkenbilt
1 parent
96839dec
TODO: update section for cmake
Showing
1 changed file
with
15 additions
and
8 deletions
TODO
| ... | ... | @@ -104,24 +104,31 @@ Remaining work: |
| 104 | 104 | cmake |
| 105 | 105 | ===== |
| 106 | 106 | |
| 107 | -* Rebase the cmake branch onto main and fast-forward over it. | |
| 108 | -* Remove all "lt-" workarounds. | |
| 109 | 107 | * DLL.h |
| 110 | 108 | * Remove DLL.h and QPDF_DLL* from all private library classes. |
| 111 | 109 | * Change DLL_EXPORT to QPDF_EXPORT. Be sure to call attention to |
| 112 | 110 | this in the release notes. There should be a "migrating to cmake" |
| 113 | 111 | in the manual, and ./configure should draw attention to it. |
| 114 | - * Remove the definition of QPDF_DLL_CLASS from DLL.h and change all | |
| 115 | - occurrences of QPDF_DLL_CLASS to QPDF_DLL. This will require | |
| 116 | - removing QPDF_DLL from methods inside classes that are declared | |
| 117 | - with QPDF_DLL. If we want to explicit exclude private methods, we | |
| 118 | - will need to mark them as not exported. See | |
| 119 | - https://gcc.gnu.org/wiki/Visibility | |
| 112 | + * The effect of QPDF_DLL_CLASS is to export everything in the class, | |
| 113 | + not just the vtable. On MSVC, we don't need this as the vtable | |
| 114 | + gets exported automatically when needed. With gcc, we need it to | |
| 115 | + export typeinfo and vtable. Whenever QPDF_DLL_CLASS is defined, | |
| 116 | + also define QPDF_DLL_LOCAL to __attribute__ | |
| 117 | + ((visibility("hidden"))). Then add QPDF_DLL_LOCAL to everything in | |
| 118 | + QPDF_DLL_CLASS that is not marked with QPDF_DLL. The effect is | |
| 119 | + that, with MSVC, only methods are marked QPDF_DLL are public | |
| 120 | + because QPDF_DLL_CLASS is empty. For gcc, only methods marked | |
| 121 | + QPDF_DLL are public because QPDF_DLL_LOCAL makes the other things | |
| 122 | + private. See https://gcc.gnu.org/wiki/Visibility. Make sure this | |
| 123 | + is documented. | |
| 120 | 124 | * Nice to have: |
| 121 | 125 | * Split qpdf.test into multiple tests |
| 122 | 126 | * Rework tests so that nothing is written into the source directory. |
| 123 | 127 | * Ideally then the entire build could be done with a read-only |
| 124 | 128 | source tree. |
| 129 | +* pikepdf | |
| 130 | + * https://github.com/pikepdf/pikepdf/pull/315 -- setup.py + docs | |
| 131 | + * https://github.com/pikepdf/pikepdf/pull/316 -- setup.py only | |
| 125 | 132 | |
| 126 | 133 | Output JSON v2 |
| 127 | 134 | ============== | ... | ... |