GMLC-TDC / HELICS

Hierarchical Engine for Large-scale Infrastructure Co-Simulation (HELICS)
https://docs.helics.org/en/latest/
BSD 3-Clause "New" or "Revised" License
127 stars 40 forks source link

Include paths and install #35

Closed phlptp closed 6 years ago

phlptp commented 6 years ago

I have been working on getting the install files a little better so we only install the needed public headers for the libraries. I was wondering what the opinions were on the directory organization of the headers.

I see two options: All the headers in a single directory in the install

separate folders for the core, application api, and shared library.

the choice will alter the include_directories in cmake and in the files themselves. I kind of go back and forth on this so I was wondering what other peoples opinions were. This came up as a result of working on the helics-fmi and GridDyn stuff to import HELICS.

kdheepak commented 6 years ago

I like the separate folders. It's easier to explain to someone that they should look in the shared_library folder and they'll find all the functions they can bind to if they are interested in the shared library.

nightlark commented 6 years ago

I prefer separate folders, maybe with a few headers in the top level "helics/" folder that can be used as a shortcut to include the most common headers for helics.

abhyshr commented 6 years ago

I do not have a strong opinion on either of these choices. For my projects, I keep all the public headers in top-level include directory and all the private headers in include/private. I find it easy to search for headers in a single directory as opposed to searching in several different ones.

phlptp commented 6 years ago

The updated install folders have been merged to develop