Skip to content

Commit

Permalink
Add some notes to investigate modernizing our find_package logic
Browse files Browse the repository at this point in the history
Historically we've created and bundled a lot of Find*.cmake files to allow
find_package to locate our dependencies, but modern CMake has shifted towards
packages providing *Config.cmake files in specific locations to avoid the need
for such files.  Some of bundled dependencies already do this, so we should be
using those files when present.  Looks like asset import library, png and proj
are the current candidates.

Probably should also investigate patching our bundled copies of libraries to
provide such files, in the cases where they don't already do so.  zlib in
particular would most likely benefit from this, since we use custom naming and
currently have to patch a large number of dependencies to teach them how to
look for our version.  If CMake doesn't have a built in way to look for a
package and vanilla upstream doesn't provide export targets we'll still need to
keep some Find*.cmake files for those cases, but we should strive to minimze
them since it's looking like the exported target approach will be simpler and
cleaner for bundled libs.
  • Loading branch information
starseeker committed Oct 4, 2024
1 parent bc2e86e commit 0b3f853
Showing 1 changed file with 16 additions and 3 deletions.
19 changes: 16 additions & 3 deletions TODO
Original file line number Diff line number Diff line change
Expand Up @@ -18,19 +18,32 @@ tasks as they are completed.
THESE TASKS SHOULD HAPPEN BEFORE THE NEXT RELEASE
-------------------------------------------------

THESE TASKS SHOULD HAPPEN WITHIN TWO RELEASE ITERATIONS
-------------------------------------------------------

* Validate and merge hlbvh BoT raytracing improvements

* rtarea is sometimes missing regions on summary reporting, at least on
Windows, possibly a threading issue setting up the results container.

* complete preliminary concave arb8 support


THESE TASKS SHOULD HAPPEN WITHIN TWO RELEASE ITERATIONS
-------------------------------------------------------


THESE ARE UNSCHEDULED BACKLOG TASKS
-----------------------------------

* Update find_package uses to take advantage of EXPORT targets when
upstream packages have them available. This should let us reduce
the number of Find*.cmake files we need to include. Ultimately,
we may want to look at using the new *Config.cmake mechanism for
all bundled dependencies, except when we still need Find*.cmake
to locate system installs that don't provide them.

* Investigate viability of providing EXPORT installs and *Config.cmake
files for BRL-CAD targets - that's the "modern" way to support
CMake's find_package mechanism.

* Look into CMinx CMake documentation system to see if it might be
useful for documenting the build system.
https://github.com/CMakePP/CMinx
Expand Down

0 comments on commit 0b3f853

Please sign in to comment.