bayesmix-dev / bayesmix

Flexible Bayesian nonparametric mixture models in C++
https://bayesmix.rtfd.io
BSD 3-Clause "New" or "Revised" License
22 stars 18 forks source link

`bayesmix` now available in Windows #148

Closed TeoGiane closed 10 months ago

TeoGiane commented 1 year ago

This PR revises the build process of bayesmix in two ways:

  1. It makes bayesmix a standalone build. In this way, we are relying on a fixed version of math (i.e. our fork bayesmix-dev/math:develop), protobuf (version 3.16.0.0) and matplotplusplus (version 1.2). In this way, we simplify code maintenance and installation procedure is now simpler also for end users. The first build process is of course much longer, but at the end of the process math is available with TBB dynamically linked , protobuf and matplotplusplus compiled and statically linked. All dependencies are stored in lib/_deps folder, created at configuration time. If such folder is not touch, next building processes will be fast.

  2. The building process of math is now completely revisited and inspired by CmdStan. We rely on GNU make rather than 'CMake' to compile tbb and sundials. In this way, we successfully compile and link tbb also in Windows. Hence, bayesmix is now compatible with Rtools40, Rtools42 and Rtools43 C++ toolchains.

The main README.md file has been revisited to include these new features.

mberaha commented 1 year ago

I think we need the FindSphinx.cmake since in docs/CMakeLists.txt we depend on sphinx (and I don't think there is a standard FindSphinx in cmake).

Since we're moving towards fixed-version-anything I would also keep matpoltplusplus fixed as well -- it doesn't look like the maintainer cares about breaking compatibility (or even documenting ftw is going on)

brunoguindani commented 1 year ago

I agree with Mario.

Also, I appreciate the documentation comments in the CMake files 🤗

Also also, please add a trailing new line to those files 🤗🔫

TeoGiane commented 1 year ago

CHANGELOG:

  1. FindSphinx.cmake is untouched.
  2. Added blank lines before every fetching
  3. Now matplotplusplus uses version 1.2.0
TeoGiane commented 10 months ago

UPDATE: Now bayesmix is compatible with RTools40, RTools42 and RTools43 C++ toolchain! :rocket:
Check the edited PR description!

TeoGiane commented 10 months ago

Now all detailed instruction about how to install bayesmix on various operating systems have been moved to INSTALL.md file.