Restructure Conan package to standard CCI layout (#238)#246
Open
garyo wants to merge 1 commit into
Open
Conversation
Reorganize the Conan package directory layout to follow the Conan Center Index / aswf-docker conventions, as suggested in #238, and fix several latent bugs in the recipe along the way. Layout changes (package()): - Headers now all live under include/: the OFX C API at the root, with host- and plugin-support headers in include/HostSupport and include/Support (and include/Support/Plugins for the .H helpers). - The CMake build module moves to lib/cmake/OpenFX.cmake, with Info.plist.in co-located so add_ofx_plugin resolves it relative to the module (CMAKE_CURRENT_LIST_DIR) rather than the consumer's CMAKE_SOURCE_DIR, which only worked inside this repo. - LICENSE goes to licenses/openfx/ (a per-package subdir avoids clashes when many packages share an install prefix); README/install docs to res/openfx/. package_info() updated to match the new include/lib/cmake paths. Latent recipe bugs fixed in passing: - "LICENSE, README.md, INSTALL.md" was a single invalid copy pattern, so no docs were ever packaged; LICENSE/install.md case also didn't match. - Support headers were copied from the wrong path (Support/*.h is empty; they live in Support/include) so they were missing from the package. - Support/Plugins helper headers use a .H extension that the *.h pattern missed on case-sensitive filesystems. - cimg and spdlog are direct requirements but were not referenced by any component, which makes package_info() error out under modern Conan (and thus fails for consumers); they are now claimed by the components whose example code uses them. Validated end to end with `conan create` (Ninja, Release): the package builds, lays out as above, and test_package consumes it — building the Invert example plugin via add_ofx_plugin (exercising the relocated Info.plist.in) and passing the property-set compliance checks. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Signed-off-by: Gary Oberbrunner <garyo@darkstarsystems.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Reorganizes the Conan package to the standard CCI / aswf-docker layout, per
#238 (thanks @jfpanisset).
include/*.hinclude/*.h(OFX C API, unchanged)HostSupport/include/*.hinclude/HostSupport/*.hSupport/include/*.h,Support/Plugins/include/*.Hinclude/Support/*.h,include/Support/Plugins/*.Hcmake/OpenFX.cmakelib/cmake/OpenFX.cmake(+Info.plist.inco-located)LICENSEetc. at rootlicenses/openfx/, docs inres/openfx/package_info()is updated to match.OpenFX.cmakenow findsInfo.plist.inrelative to itself (
CMAKE_CURRENT_LIST_DIR) soadd_ofx_pluginworks whenconsumed from the package, not just in-tree. Licenses go in a per-package subdir
so multi-package installs (aswf-docker) don't clash.
Fixes a few latent recipe bugs in passing: docs were never actually packaged
(invalid copy pattern + wrong case), Support headers were copied from the wrong
path, the
.Hplugin headers were missed on case-sensitive filesystems, andcimg/spdlogweren't claimed by any component (which errors under modern Conan).Tested with
conan createandtest_package.🤖 Generated with Claude Code