asrob-uc3m / robotDevastation

A new-generation shooter with augmented reality and real robots. You can play online with other users with your PC, moving robots in championships and campaigns: all 24/7!
http://asrob-uc3m.github.io/workgroups/2017-05-28-robot-devastation.html
GNU Lesser General Public License v2.1
9 stars 4 forks source link

Package Linux/Windows binaries with CPack #145

Open PeterBowman opened 5 years ago

PeterBowman commented 5 years ago

Currently WIP at the cpack branch. Main issue ATM: bundle plugins (DL libraries) that cannot be detected with ldd or similar. Check the BundleUtilities module and roboticslab-uc3m/amor-api/cmake/templates/bundle_example_app.cmake.in (private repo).

PeterBowman commented 5 years ago

Regarding required DL libraries on Windows & SDL2, check the following on all SDL2 subprojects:

As of SDL_image 1.2.5, JPEG, PNG, TIFF, and WEBP image loading libraries are dynamically loaded, so if you don't need to load those formats, you don't need to include those shared libraries. libpng depends on libz, and libtiff depends on both libz and libjpeg.

From https://www.libsdl.org/projects/SDL_image/. If we don't need some of these DLs, just don't care about them being missing from the bundled .zip/installer.

PeterBowman commented 5 years ago

If we don't need some of these DLs, just don't care about them being missing from the bundled .zip/installer.

Done at https://github.com/asrob-uc3m/robotDevastation/commit/142ac3a1039fed22a7a010b9ec9cc542ae9024e9: libpng16-16.dll from SDL_image and libmpg123-0.dll from SDL_mixer.

YARP plugins are going to be more troublesome since all plugin manifests must be installed alongside RD's binaries and resources:

BTW googletest 1.8.0 keeps installing headers and static libraries (https://github.com/roboticslab-uc3m/questions-and-answers/issues/41#issuecomment-484919930). It's easily solved by using googletest 1.8.1, but CMake warns about undefined variables. Perhaps GTestSources.cmake should inspect the parent folder? In that case, set both BUILD_GMOCK and INSTALL_GTEST to OFF (ref).

PeterBowman commented 5 years ago

BTW googletest 1.8.0 keeps installing headers and static libraries (roboticslab-uc3m/questions-and-answers#41 (comment)). It's easily solved by using googletest 1.8.1, but CMake warns about undefined variables. Perhaps GTestSources.cmake should inspect the parent folder? In that case, set both BUILD_GMOCK and INSTALL_GTEST to OFF (ref).

Done at https://github.com/asrob-uc3m/robotDevastation/commit/198deb61bcc5962a5ba75bc0a880a6964572c34e.

PeterBowman commented 5 years ago

See https://github.com/asrob-uc3m/robotDevastation/issues/112 (packaging user/developer manuals).

PeterBowman commented 4 years ago

Note to self: wire package version in project() with CPack. See https://cmake.org/cmake/help/latest/release/3.12.html#cpack and https://github.com/roboticslab-uc3m/amor-api/commit/8858c0d43959f6e148203e3d6cdd669d8cb4eeaa.

PeterBowman commented 4 years ago

Moar links 'n' stuff:

Also, check CMake 3.5+ releases as I'm aware that CPack support has been improved at some point.

PeterBowman commented 1 year ago

Since Travis and AppVeyor will most certainly go into oblivion, check how YCM manages releases in the GH Actions framework: release.yml.