Reorganize the 3rd party libraries update HOWTO more logically

Put steps in the chronological order.

Also put library-specific instructions in the same section, but in
different subsections instead of combining 2 of them in one section and
having a separate section for another one as before.
This commit is contained in:
Vadim Zeitlin
2022-04-20 19:43:49 +02:00
parent 1415830741
commit d8f346cecc

View File

@@ -33,36 +33,21 @@ commit from master into `wx`, e.g.
$ git checkout wx
$ git merge R_x_y_z # For the latest x.y.z release
After resolving any conflicts, commit the result, test the build under MSW and
under Unix using `--disable-sys-libs` configure option, and push the updated
branch out. Notice that you may want to use the ssh GitHub repository URL
instead of the default (because more convenient for checking them out) HTTPS
one:
$ git push --set-upstream git@github.com:wxWidgets/libexpat.git wx
After resolving any conflicts, commit the result.
Generating build files (libexpat, libtiff)
------------------------------------------
Special instructions for specific libraries
-------------------------------------------
We include the generated build files of libexpat and libtiff. For libexpat run
`buildconf.sh`. For libtiff run `autogen.sh`. Commit the changes.
Some libraries, notably those for which we store the generated build files in
our submodules, require extra actions to be undertaken after merging with the
upstream:
## libexpat
Updating the main repository
----------------------------
Run `buildconf.sh` to update the generated files and commit the changes.
If there are any changes to the source files used by the library, update the
corresponding `build/bakefiles/$lib.bkl` file (e.g. `expat.bkl` for Expat) and
rerun bakefile to regenerate most of the makefiles and project files. Currently
you will need to update `build/msw/wx_wx$lib.vcxproj{,.filters}` files
manually.
Commit these changes and the submodule and create a PR to test them as usual.
Special instructions for libpng
-------------------------------
## libpng
We use a special hack for libpng as we want to prefix all its symbols with
`wx_` but don't want to use its build system which makes this easily possible
@@ -81,3 +66,37 @@ subdirectory of the wxWidgets source tree, overwriting the versions there.
Notice that config.h generated by libpng configure is not used, we build it
without `-DHAVE_CONFIG_H` as it works just fine without it on any ANSI C system
(i.e. anywhere by now).
## libtiff
Run `autogen.sh` to update the generated files and commit the changes.
Updating the main repository
----------------------------
If there are any changes to the source files used by the library, update the
corresponding `build/bakefiles/$lib.bkl` file (e.g. `expat.bkl` for Expat) and
rerun bakefile to regenerate most of the makefiles and project files. Currently
you will need to update `build/msw/wx_wx$lib.vcxproj{,.filters}` files
manually.
Commit these changes and the changes to the submodule itself, but don't push
them to GitHub yet.
Test and push
-------------
The updates need to be tested under MSW and under Unix using
`--disable-sys-libs` configure option.
If everything seems to work, push the updated branch out. Notice that you may
want to use the ssh GitHub repository URL instead of the default (because more
convenient for checking them out) HTTPS one:
$ git push --set-upstream git@github.com:wxWidgets/libexpat.git wx
Finally, create a PR to let the CI builds to run and test changes too. If no
problems are found, merge the PR as usual.