-
Notifications
You must be signed in to change notification settings - Fork 10
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
delivering a Windows binary through common package managers #637
Comments
Thanks for the suggestion. As you seem to have looked into package managers for Windows before, are there specific ones you can suggest? Do you have an idea of the complexity of their respective build / packaging scripts? I'm rarely developing on Windows, so haven't found myself using any Windows package managers yet. There seems to be quite a variety of package managers / repositories, which isn't ideal. Are there maybe a few that would be considered a "norm"? Would you like to maintain build scripts for such package managers in a separate repository under the |
As an alternative, what about attaching a Windows installer file (MSI) to the GitHub release page? These could be readily created with CPack without requiring separate build scripts for different package managers. Would that be suitable as well? |
I see that registries such as just-install do indeed just download and run such installers. |
Ideally, the installer package would be created as a by-product of a CI test, e.g., using AppVeyor. I see that Travis CI has now also an early stage Windows build environment, which favors Chocolatey for installation of required third-party libraries. That would put Chocolatey onto the short list of Windows package managers. EDIT: Given this SO thread, seems NuGet would be more appropriate than Chocolatey for a "library". There is also a CPack NuGet Generator which could possibly be used to create a package. |
OK let me answer the questions one by one:
|
In my opinion, BASIS is a library of CMake modules. It also contains libraries for programming languages, the so-called BASIS Utilities, but these I belief are mostly unused. The only application it contains is Similar to applications / libraries in other programming languages, which may depend on header files or modules from a third-party library, the same is true for BASIS. The CMakeLists.txt of the user project depends on including the CMake modules of the BASIS "library". |
Then I'd say let's start with CPack and try the WiX Generator and NuGet generator. The definition of CPack variables for these generators should go in config/Package.cmake. The default settings can be found in BasisPack.cmake. |
@schuhschuh maybe you can write a blog post or something explaining the differences between BASIS and other template generators like CoockieCutter? |
There is a clear misconception. BASIS is not a template generator. I would indeed suggest use of cookiecutter instead of basisproject tool. Your cookiecutter template would, however, contain files that make use of the BASIS CMake modules. Think of BASIS as an extension of CMake funtionality. Just like CMake provides you with functions and a set of CMake modules written in the CMake language for the purpose of build configuration. |
Following this post, it would be great if we could have a Windows binary releases as well. Then we could add the software to some of the common Windows package managers.
I just tested the source code on Windows by:
and except some warnings, it seems to be working perfectly fine.
The text was updated successfully, but these errors were encountered: