Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Package Linux/Windows binaries with CPack #145

Open
PeterBowman opened this issue Mar 20, 2019 · 7 comments
Open

Package Linux/Windows binaries with CPack #145

PeterBowman opened this issue Mar 20, 2019 · 7 comments
Assignees

Comments

@PeterBowman
Copy link
Member

PeterBowman commented Mar 20, 2019

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
Copy link
Member Author

PeterBowman commented Mar 20, 2019

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
Copy link
Member Author

PeterBowman commented May 12, 2019

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

Done at 142ac3a: 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:

  • Should I care about the build directory layout of the yarp-devices project? Mind the Release/Debug subdirectories.
  • asrob-yarp-devices.ini reflects a non-relocatable installation path which should be modified by NSIS custom scripts: NSISAdvancedTips, SO, yarp_core_package.nsi.

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).

@PeterBowman
Copy link
Member Author

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 198deb6.

@PeterBowman
Copy link
Member Author

See #112 (packaging user/developer manuals).

@PeterBowman
Copy link
Member Author

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
Copy link
Member Author

@PeterBowman
Copy link
Member Author

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants