Parallel-in-Time / PFASST

PFASST++ is a C++ implementation of the "parallel full approximation scheme in space and time" (PFASST) algorithm
http://www.parallelintime.org/PFASST/
Other
32 stars 14 forks source link

Handling of site_config requires CMake #225

Closed memmett closed 8 years ago

memmett commented 9 years ago

It would be nice if this dependency was removed...

torbjoernk commented 9 years ago

How would you process that otherwise? How would you configure the Makefiles when not having CMake?

Edit: And that is not a "bug". I see it as a "feature".

memmett commented 9 years ago

@torbjoernk If you don't have CMake then you have to figure out that site_config.hpp is missing, and then you have to figure out how to make your own and where to put it. In that sense, it is certainly a bug -- the software doesn't even compile if you don't use CMake.

Currently site_config.hpp is generated once from site_config.hpp.in by CMake and then updated by our Python script. The only information it contains is pfasst::VERSION.

I propose we:

  1. Add a default site_config.hpp file to the repository with a value of "UNKNOWN" (or something like that) for pfasst::VERSION.
  2. Remove site_config.hpp.in and tell CMake that it doesn't have to do anything with it.
  3. Continue allowing our Python script to update site_config.hpp.

This results in: users being able to compile PFASST++ out of the box with their own build system without requiring CMake. They can optionally add their own rule to update pfasst::VERSION if they wish (possibly using our Python script). From our perspective nothing really changes... our Python script still gets run when we use CMake and pfasst::VERSION gets set properly.

I personally don't mind using CMake but ideally we can make it as easy as possible for others to use their own build systems... removing this site_config.hpp hurdle would make that easier.

pancetta commented 9 years ago

I second that. We need to have an easy way of incorporating PFASST++ into other build systems, i.e. an easy way to compile it without CMake.

On 10.09.15 20:44, Matthew Emmett wrote:

@torbjoernk https://github.com/torbjoernk If you don't have CMake then you have to figure out that |site_config.hpp| is missing, and then you have to figure out how to make your own and where to put it. In that sense, it is certainly a bug -- the software doesn't even compile if you don't use CMake.

Currently |site_config.hpp| is generated once from |site_config.hpp.in| by CMake and then updated by our Python script. The only information it contains is |pfasst::VERSION|.

I propose we:

  1. Add a default |site_config.hpp| file to the repository with a value of "UNKNOWN" (or something like that) for |pfasst::VERSION|.
  2. Remove |site_config.hpp.in| and tell CMake that it doesn't have to do anything with it.
  3. Continue allowing our Python script to update it.

This results in: users being able to compile PFASST++ out of the box with their own build system without requiring CMake. They can optionally add their own rule to update |pfasst::VERSION| if they wish (possibly using our Python script). From our perspective nothing really changes... our Python script still gets run when we use CMake and |pfasst::VERSION| gets set properly.

I personally don't mind using CMake but ideally we can make it as easy as possible for others to use their own build systems... removing this |site_config.hpp| hurdle would make that easier.

— Reply to this email directly or view it on GitHub https://github.com/Parallel-in-Time/PFASST/issues/225#issuecomment-139339952.