UPC-ViRVIG / SdfLib

SdfLib is a library for accelerating the queries of signed distance fields from triangle meshes
MIT License
39 stars 11 forks source link

cmake install scripts for SdfLib #12

Open keszegrobert opened 10 months ago

keszegrobert commented 10 months ago

Hello, I am eager to commit my CMake modifications which will help to use SdfLib with cmake's find_package (without copying the whole source to the user's source). Is there any info I need to know?

triter3 commented 10 months ago

Hi @keszegrobert, I would like to include this feature. If your changes are compatible with the other ways to include the library, you can do a pull request.

keszegrobert commented 10 months ago

I have prepared something, but we need to answer some questions together( according to Craig Scott):

  1. What platforms should be supported, both initially and potentially in the future?
    • I can test the packages on MacOS and Windows, maybe on Ubuntu 20.04
  2. Are there minimum platform API or SDK version requirements in order to support the features of the project?
    • I have no clue about the boundaries
  3. What are the package formats that users will be familiar with on each platform ?
    • I think, some includes, a library, some cmake files, examples and some executables/shared libs will be in the package
  4. Can the project be delivered in those formats?
    • CMake is able to export all of the above
  5. Are there any specific package formats that are more important than others or that are mandatory?
    • no clue
  6. Do any of the required or desirable package formats have requirements for how software must be laid out, built or delivered?
    • no clue
  7. Do project resources have to be provided in specific formats, resolutions, locations, etc.?
    • I've met SdfLib only through mujoco, maybe some of you know about more exotic use cases
  8. Might end users want to install multiple versions of the software simultaneously?
    • no clue
  9. Should the software support being installed without administrative privileges?
    • I think no
  10. Can the software be made relocatable so that users can install it anywhere on their system (including on any drive, in the case of Windows)?
    • I think it should be relocatable
  11. Does the project expect one or more of its executables to be made available on the deployment machine through the user’s PATH environment variable?
    • I think it is possible
  12. Are there parts of the project which should not be exposed on the PATH?
    • what are the private/public parts?
  13. Does the project provide anything that other CMake projects may want to use in their own builds (libraries, executables, headers, resources, etc.)?
    • I can think of a standard cmake layout
triter3 commented 10 months ago

1. What platforms should be supported, both initially and potentially in the future? Yes, I usually test the library in Windows and Ubuntu. With these two, it is enough.

2. Are there minimum platform API or SDK version requirements in order to support the features of the project? I don't think so.

8. Might end users want to install multiple versions of the software simultaneously? I don't think so. Otherwise, you can test another version without installing them.*

12. Are there parts of the project that should not be exposed on the PATH? The include folder is the only folder containing code the end-user should use. All the code in the src folder is internal.

13. Does the project provide anything that other CMake projects may want to use in their own builds (libraries, executables, headers, resources, etc.)? Yes, the CMake project defines the library that should be added to another project.