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

CMake install with namespace and add corresponding alias targets #886

Open
tkohlman opened this issue May 1, 2024 · 2 comments
Open

CMake install with namespace and add corresponding alias targets #886

tkohlman opened this issue May 1, 2024 · 2 comments

Comments

@tkohlman
Copy link

tkohlman commented May 1, 2024

Add namespace to installed export

install(EXPORT mimalloc DESTINATION ${mi_install_cmakedir} NAMESPACE mimalloc::)

Add alias targets to provide consistent targets for submodule builds.

add_library(mimalloc::mimalloc-obj ALIAS mimalloc-obj)
add_library(mimalloc::mimalloc-static ALIAS mimalloc-static)

@daanx
Copy link
Collaborator

daanx commented Jun 5, 2024

Thank you for the feedback; I'm not a cmake expert and don't know what the NAMESPACE does? Would adding this be backward compatible or is there a chance of breaking existing build scripts that people have?

@tkohlman
Copy link
Author

https://cmake.org/cmake/help/latest/guide/importing-exporting/index.html

Namespaces help to prevent conflicting targets when using add_subdirectory(). The install() call with identical namespace means that builds can reference mimalloc targets/dependencies in a single way, whether building with add_subdirectory() or fetching with find_package().

The alias targets should be backwards compatible. The install step is probably not backwards compatible, but most projects are using namespaces as a CMake best practice.

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

No branches or pull requests

2 participants