Jay Berkenbilt
5f4675bb24
Mark non-ABI symbols in exported class with QPDF_DLL_PRIVATE
2022-04-10 16:54:23 -04:00
Jay Berkenbilt
5525c93124
Use QPDF_DLL_CLASS with Pipeline and InputSource subclasses
...
This enables RTTI so we can use dynamic_cast on them across the shared
object boundary.
2022-04-10 16:52:57 -04:00
Jay Berkenbilt
90cfe80bac
Clean up/fix DLL.h
...
* Change DLL_EXPORT to libqpdf_EXPORTS (internal to the build). The
new name is cmake's default, is more conventional, and is less
likely to clash with other symbols.
* Add QPDF_DLL_PRIVATE for non-Windows
* Make logic around when to define QPDF_DLL et al more explicit
* Add detailed comments
2022-04-10 16:52:36 -04:00
Jay Berkenbilt
8c504c9a90
Tweak for clang-format and emacs font-lock
2022-04-10 12:49:50 -04:00
Jay Berkenbilt
07edf96440
Remove methods of private classes from ABI
...
Prior to the cmake conversion, several private classes had methods
that were exported into the shared library so they could be tested
with libtests. With cmake, we build libtests using an object library,
so this is no longer necessary. The methods that are disappearing from
the ABI were never exposed through public headers, so no code should
be using them. Removal had to wait until the window for ABI-breaking
changes was open.
2022-04-09 17:33:29 -04:00
Jay Berkenbilt
b6d1dffaaa
Spell check
2022-04-09 17:33:29 -04:00
Jay Berkenbilt
c7e877b88b
Update documentation for PointerHolder transition
2022-04-09 17:33:29 -04:00
Jay Berkenbilt
ef2b84c6c3
Enable PointerHolder warning and define POINTERHOLDER_IS_SHARED_POINTER
2022-04-09 17:33:29 -04:00
Jay Berkenbilt
128e41648f
Remove PointerHolder.hh from other than public header files
...
Increase to POINTERHOLDER_TRANSITION=4
2022-04-09 17:33:29 -04:00
Jay Berkenbilt
ba0ef7a124
Replace PointerHolder with std::shared_ptr in the rest of the code
...
Increase to POINTERHOLDER_TRANSITION=3
patrepl s/PointerHolder/std::shared_ptr/g **/*.cc **/*.hh
patrepl s/make_pointer_holder/std::make_shared/g **/*.cc
patrepl s/make_array_pointer_holder/QUtil::make_shared_array/g **/*.cc
patrepl s,qpdf/std::shared_ptr,qpdf/PointerHolder, **/*.cc **/*.hh
git restore include/qpdf/PointerHolder.hh
git restore libtests/pointer_holder.cc
cleanpatch
./format-code
2022-04-09 17:33:29 -04:00
Jay Berkenbilt
a68703b07e
Replace PointerHolder with std::shared_ptr in library sources only
...
(patrepl and cleanpatch are my own utilities)
patrepl s/PointerHolder/std::shared_ptr/g {include,libqpdf}/qpdf/*.hh
patrepl s/PointerHolder/std::shared_ptr/g libqpdf/*.cc
patrepl s/make_pointer_holder/std::make_shared/g libqpdf/*.cc
patrepl s/make_array_pointer_holder/QUtil::make_shared_array/g libqpdf/*.cc
patrepl s,qpdf/std::shared_ptr,qpdf/PointerHolder, **/*.cc **/*.hh
git restore include/qpdf/PointerHolder.hh
cleanpatch
./format-code
2022-04-09 17:33:29 -04:00
Jay Berkenbilt
ae819b5318
Rewrite PointerHolder as derived from std::shared_ptr
2022-04-09 17:33:29 -04:00
Jay Berkenbilt
ec21910066
Bump version to 11.0.0, indicating ABI-breaking changes
2022-04-09 17:33:29 -04:00
Jay Berkenbilt
37f7f57dc5
Don't hard-code soname in build-appimage
2022-04-09 17:33:29 -04:00
Jay Berkenbilt
08fb583449
Remove accidentally committed file
2022-04-09 14:37:00 -04:00
Jay Berkenbilt
05de8a111a
Add formatting code to release checklist
2022-04-09 12:39:32 -04:00
Jay Berkenbilt
59834db472
Add documentation for code formatting and contribution guidelines
2022-04-09 12:25:08 -04:00
Jay Berkenbilt
ece6b6feb4
Add format-code script
2022-04-09 11:56:30 -04:00
Jay Berkenbilt
554a870b81
spell-check: quote wildcards
2022-04-09 11:50:01 -04:00
Jay Berkenbilt
31a81f6bab
Note about app-image build testing
2022-04-05 14:56:19 -04:00
Jay Berkenbilt
2e41b805bd
Update TODO with additional notes
2022-04-05 14:56:19 -04:00
Jay Berkenbilt
77e889495f
Update some code manually to get better formatting results
...
Add comments to force line breaks, parenthesize function arguments
that are contatenated strings, etc. -- these kinds of changes improve
clang-format's results and also cause emacs cc-mode to match
clang-format. After this type of change, most of the time, when
clang-format and emacs disagree, clang-format is better.
2022-04-05 14:56:19 -04:00
Jay Berkenbilt
12f1eb15ca
Programmatically apply new formatting to code
...
Run this:
for i in **/*.cc **/*.c **/*.h **/*.hh; do
clang-format < $i >| $i.new && mv $i.new $i
done
2022-04-04 08:10:40 -04:00
Jay Berkenbilt
f20fa61eb4
Add .clang-format and .dir-locals.el files to set coding style
...
Configure emacs and clang-format 15 to the coding style I am choosing
for qpdf.
2022-04-04 08:10:40 -04:00
Jay Berkenbilt
97fc98901c
Protect gnutls headers from clang-format rearranging them
2022-04-04 08:05:39 -04:00
Jay Berkenbilt
33caed4f17
Exclude formatting on embedded native crypto
2022-04-03 17:58:36 -04:00
Jay Berkenbilt
80801e4c56
TODO note
2022-04-03 17:58:34 -04:00
Jay Berkenbilt
c78229b4e6
Fix AppImage build: need LD_LIBRARY_PATH
...
I'm not sure why this is needed now and wasn't needed before since the
cmake changes have been in main for a while and there don't appear to
be recent changes to the appimage build tools.
This change adds to lib directory to LD_LIBRARY_PATH so the appimage
tools' ldd check will pass. This is an appropriate change since the
directory that is added will be in the standard load path when
installed.
2022-04-02 13:59:01 -04:00
Jay Berkenbilt
f8e97e0ed5
Put spaces around version constraint in pkg-config ( fixes #677 )
...
Also add a pkg-config runtime test that would have caught the error.
2022-03-23 10:52:40 -04:00
Jay Berkenbilt
336062930d
Fix typo in previous fix
2022-03-19 19:45:44 -04:00
Jay Berkenbilt
6dcb26d21e
Fix test for whether atomic library is needed
...
Some platforms need it for atomic<long long> but not for atomic<int>.
2022-03-19 18:19:44 -04:00
Jay Berkenbilt
198b96471a
Notes for next release
2022-03-19 08:57:47 -04:00
Jay Berkenbilt
e4484fd94c
Update ChangeLog and release notes
2022-03-18 19:53:18 -04:00
Jay Berkenbilt
820a3f04fd
Remove "lt-" workarounds
...
The executables that libtool built invoked the underlying binary with
an "lt-" prefix. The code contained numerous workarounds for testing,
which can now be removed.
2022-03-18 19:53:18 -04:00
Jay Berkenbilt
e316e90d1f
Add installed package smoke tests in pkg-test directory
2022-03-18 19:53:18 -04:00
Jay Berkenbilt
acdf5b2e7a
Update process for ABI testing
2022-03-18 19:53:18 -04:00
Jay Berkenbilt
4c0addfe66
Update instructions for testing pikepdf
2022-03-18 19:53:18 -04:00
Jay Berkenbilt
bc17d2a2a2
Update paths in performance_check
2022-03-18 19:53:18 -04:00
Jay Berkenbilt
11e34f29ce
TODO: update section for cmake
2022-03-18 19:53:18 -04:00
Jay Berkenbilt
96839decd0
TODO note about linux32 large file tests
2022-03-18 19:53:18 -04:00
Jay Berkenbilt
2001fd5677
Add spell checker (formerly in Makefile)
2022-03-18 19:53:18 -04:00
Jay Berkenbilt
f58d2a60d5
Update build-related documentation and comments
2022-03-18 19:53:18 -04:00
Jay Berkenbilt
70d0d0889b
Remove old build files
2022-03-18 19:53:18 -04:00
Jay Berkenbilt
87db567e1f
Convert oss-fuzz-build to use cmake
2022-03-18 19:53:18 -04:00
Jay Berkenbilt
5ee21c67c9
Convert build-windows to use cmake
2022-03-18 19:53:18 -04:00
Jay Berkenbilt
585be5a82e
Convert test-sanitizers to use cmake
2022-03-18 19:53:18 -04:00
Jay Berkenbilt
ab467e1f01
Convert build-mac to use cmake
2022-03-18 19:53:18 -04:00
Jay Berkenbilt
8703e6253d
Convert build-linux32 to use cmake
2022-03-18 19:53:18 -04:00
Jay Berkenbilt
6d7c0badc1
Convert build-linux to cmake
2022-03-18 19:53:18 -04:00
Jay Berkenbilt
702058a1c3
Convert make_dist to use cmake
2022-03-18 19:53:18 -04:00