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

[v2.0.0] Update the CMake build (and library code) for easier distribution #47

Open
1 of 3 tasks
lmichaelis opened this issue Dec 25, 2022 · 1 comment
Open
1 of 3 tasks
Labels
enhancement New feature or request good first issue Good for newcomers
Milestone

Comments

@lmichaelis
Copy link
Member

lmichaelis commented Dec 25, 2022

Currently, the CMake build script is pretty bare-bones and does not allow for easy, clean distribution of the library code. This is due to being statically linked as well as pulling in 3rd-party libraries directly using target_link_libraries(... PUBLIC ...) which causes CMake's install process to malfunction by including 3rd-party library code in the installation.

This is unacceptable for installing phoenix into systems directly since the extra files might pollute existing installations of those libraries or could cause the package manager to break.

Things to do

@lmichaelis lmichaelis converted this from a draft issue Dec 25, 2022
@lmichaelis lmichaelis added enhancement New feature or request good first issue Good for newcomers labels Dec 25, 2022
@DaDummy
Copy link
Contributor

DaDummy commented Dec 25, 2022

Since you are building your own versions of the dependency libraries you probably should distribute them with phoenix builds for now.

The alternate approach would be to instead use find_package so the user can decide where to pull the dependencies from. This way preinstalled libraries may be used where applicable or libraries may be pulled from package managers such as conan and the user may decide whether to provide static or dynamic libraries.

This way the libraries would no longer be built during the build of phoenix and would therefore no longer get included with the install step.

Additionally I'd suggest turning the last task from this issue into a separate issue as dynamic linkage is not so much a CMake issue, but rather a question of adjusting the headers to set the correct export/import attributes on exported symbols for the different compilers.

@lmichaelis lmichaelis added this to the v2.0.0 milestone Jan 29, 2023
@lmichaelis lmichaelis added this to ZenKit May 4, 2023
@lmichaelis lmichaelis moved this to todo in ZenKit May 4, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request good first issue Good for newcomers
Projects
Status: todo
Development

No branches or pull requests

2 participants