LunarG / VulkanTools

Tools to aid in Vulkan development
Other
676 stars 176 forks source link

macOS: Bundle apps from cpack instead of cmake #1910

Open mizvekov opened 1 year ago

mizvekov commented 1 year ago

When distributing VulkanTools through a MacOS package manager, such as homebrew for example, we don't want them bundled in a MacOS App.

So the process for building these on MacOS is basically the same as for linux or other unix distribution.

For example, on vkconfig/CmakeLists.txt, we would wish to just take the NOT APPLE path.

Instead of handling this through CMakeLists.txt and inventing a new cmake configuration variable, we can instead deploy an app through an appropriate cpack configuration. So you can use that for VulkanSDK, but package based distros would not use cpack and just go through the normal install route.

juan-lunarg commented 1 year ago

Instead of handling this through CMakeLists.txt and inventing a new cmake configuration variable, we can instead deploy an app through an appropriate cpack configuration.

Do you have an example of an existing project doing something like this?

mizvekov commented 1 year ago

I haven't come across actual code snippets, if that is what you are asking, but I have seen the cmake documentation reference this.

https://gitlab.kitware.com/cmake/community/-/wikis/doc/cpack/PackageGenerators#bundle-layout https://cmake.org/cmake/help/latest/cpack_gen/bundle.html

I have some experience working with cpack, but not for MacOS yet. I can give it a shot and try something that works on my machine, but may need final adjustment on your end because I am not familiar with all your requirements.

Note the important thing here is that for this approach to work, we shouldn't set the MACOSX_BUNDLE property on the executable, and otherwise form the .app strucure from the CMakeLists.txt itself, beyond just configuring cpack to do this.

christophe-lunarg commented 7 months ago

Hi,

I am not going to resolve this issue as I don't know anything about this. If you are interested in this feature, please make a PR.

Thanks