-
Notifications
You must be signed in to change notification settings - Fork 2k
fcarouge-kalman: add recipe #27358
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
fcarouge-kalman: add recipe #27358
Conversation
@FrancoisCarouge I've cleaned up the recipe a bit and removed the creation of samples and tests, it would be great if new releases had a cmake option to disable them so that no patching is needed on our side. Also, I've seen that eigen, gsl and mp::units are downloaded as part of the samples/examples, so my question is if they are ever needed to run the library, or if they are only used as supporting libraries in the examples, thanks! |
Successful compilation/usage logs, as the CI does not compile C++23 packages yet:
|
Thank you for the cleanup @AbrilRBS ! I will be sure to avoid the tests and samples in the next release. I can confirm the eigen, gsl, and mp-units libraries are not required for the library. They are only used in the samples and tests to showcase advanced use cases. They will no longer be downloaded in the next release. I could also verify in your successful compilation/usage logs they are not downloaded under the patch conditions. |
I converted this pull request to draft as I upstream the test and sample avoidance. I will update the pull request to remove the patch with the next version. |
Co-authored-by: Abril Rincón Blanco <[email protected]>
I have upstreamed an equivalent to the patch through the standard Details: conan create recipes/fcarouge-kalman/all/conanfile.py --version=0.5.2
fcarouge@MacBookPro conan % conan create recipes/fcarouge-kalman/all/conanfile.py --version=0.5.2 ======== Exporting recipe to the cache ======== ======== Input profiles ======== Profile build: ======== Computing dependency graph ======== ======== Computing necessary packages ======== ======== Installing packages ======== -------- Installing package fcarouge-kalman/0.5.2 (1 of 1) -------- fcarouge-kalman/0.5.2: Running CMake.build() fcarouge-kalman/0.5.2: Package 'da39a3ee5e6b4b0d3255bfef95601890afd80709' built fcarouge-kalman/0.5.2: package(): Packaged 1 '.txt' file: LICENSE.txt ======== Launching test_package ======== ======== Computing dependency graph ======== ======== Computing necessary packages ======== ======== Installing packages ======== ======== Testing the package ======== ======== Testing the package: Building ======== fcarouge-kalman/0.5.2 (test package): Running CMake.build() ======== Testing the package: Executing test ======== What is the purpose of the share folder removal in the package stage? Is the link time warning of the test package significant? |
Thank you for the cleanup. I confirm the link time warning of the test package is resolved. |
I believe this pull request is ready for review? Is there something more I can do at this time? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Compilation logs and test package success:
$ conan create . --version=0.5.2 -b="&" -s="compiler.cppstd=23"
======== Exporting recipe to the cache ========
fcarouge-kalman/0.5.2: Exporting package recipe: /Users/abril/coding/external/francois/recipes/fcarouge-kalman/all/conanfile.py
fcarouge-kalman/0.5.2: exports: File 'conandata.yml' found. Exporting it...
fcarouge-kalman/0.5.2: Copied 1 '.py' file: conanfile.py
fcarouge-kalman/0.5.2: Copied 1 '.yml' file: conandata.yml
fcarouge-kalman/0.5.2: Exported to cache folder: /Users/abril/.conan2/p/fcaroc8a44f74c25c0/e
fcarouge-kalman/0.5.2: Exported: fcarouge-kalman/0.5.2#c2ee5eaa146d21985af2f6e296da23aa (2025-05-31 16:03:13 UTC)
======== Input profiles ========
Profile host:
[settings]
arch=armv8
build_type=Release
compiler=apple-clang
compiler.cppstd=23
compiler.libcxx=libc++
compiler.version=16
os=Macos
[tool_requires]
*: ccache/4.10.2
[platform_tool_requires]
cmake/4.0.0
meson/1.7.1
ninja/1.12.1
[replace_tool_requires]
meson/*: meson/[*]
pkgconf/*: pkgconf/[*]
ninja/*: ninja/[*]
cmake/*: cmake/[*]
[conf]
core.download:download_cache=/opt/conan_backups
core.download:parallel=6
core.sources:download_cache=/opt/conan_backups
core.sources:download_urls=['https://c3i.jfrog.io/artifactory/conan-center-backup-sources/', 'origin']
Profile build:
[settings]
arch=armv8
build_type=Release
compiler=apple-clang
compiler.cppstd=gnu17
compiler.libcxx=libc++
compiler.version=16
os=Macos
[tool_requires]
*: ccache/4.10.2
[platform_tool_requires]
cmake/4.0.0
meson/1.7.1
ninja/1.12.1
[replace_tool_requires]
meson/*: meson/[*]
pkgconf/*: pkgconf/[*]
ninja/*: ninja/[*]
cmake/*: cmake/[*]
[conf]
core.download:download_cache=/opt/conan_backups
core.download:parallel=6
core.sources:download_cache=/opt/conan_backups
core.sources:download_urls=['https://c3i.jfrog.io/artifactory/conan-center-backup-sources/', 'origin']
======== Computing dependency graph ========
Graph root
cli
Requirements
fcarouge-kalman/0.5.2#c2ee5eaa146d21985af2f6e296da23aa - Cache
Build requirements
ccache/4.10.2#846894d0be2d48c603bcad2753e7980d - Cache
======== Computing necessary packages ========
fcarouge-kalman/0.5.2: Forced build from source
Requirements
fcarouge-kalman/0.5.2#c2ee5eaa146d21985af2f6e296da23aa:da39a3ee5e6b4b0d3255bfef95601890afd80709 - Build
Build requirements
ccache/4.10.2#846894d0be2d48c603bcad2753e7980d:9e5323c65b94ae38c3c733fe12637776db0119a5#91a23a70e21cbe629f9b7acb3bb83d42 - Cache
======== Installing packages ========
ccache/4.10.2: Already installed! (1 of 2)
ccache/4.10.2: Finalized folder /Users/abril/.conan2/p/b/ccach1e6bed495b8dd/f
ccache/4.10.2: Finalized folder /Users/abril/.conan2/p/b/ccach1e6bed495b8dd/f
-------- Installing package fcarouge-kalman/0.5.2 (2 of 2) --------
fcarouge-kalman/0.5.2: Building from source
fcarouge-kalman/0.5.2: Package fcarouge-kalman/0.5.2:da39a3ee5e6b4b0d3255bfef95601890afd80709
fcarouge-kalman/0.5.2: Copying sources to build folder
fcarouge-kalman/0.5.2: Building your package in /Users/abril/.conan2/p/b/fcaro3c5d3ff1b4728/b
fcarouge-kalman/0.5.2: Calling generate()
fcarouge-kalman/0.5.2: Generators folder: /Users/abril/.conan2/p/b/fcaro3c5d3ff1b4728/b/build/Release/generators
fcarouge-kalman/0.5.2: CMakeToolchain generated: conan_toolchain.cmake
fcarouge-kalman/0.5.2: CMakeToolchain generated: /Users/abril/.conan2/p/b/fcaro3c5d3ff1b4728/b/build/Release/generators/CMakePresets.json
fcarouge-kalman/0.5.2: CMakeToolchain generated: /Users/abril/.conan2/p/b/fcaro3c5d3ff1b4728/b/src/CMakeUserPresets.json
fcarouge-kalman/0.5.2: Generating aggregated env files
fcarouge-kalman/0.5.2: Generated aggregated env files: ['conanbuild.sh', 'conanrun.sh']
fcarouge-kalman/0.5.2: Calling build()
fcarouge-kalman/0.5.2: Running CMake.configure()
fcarouge-kalman/0.5.2: RUN: cmake -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE="generators/conan_toolchain.cmake" -DCMAKE_INSTALL_PREFIX="/Users/abril/.conan2/p/b/fcaro3c5d3ff1b4728/p" -DCMAKE_POLICY_DEFAULT_CMP0091="NEW" -DCMAKE_BUILD_TYPE="Release" "/Users/abril/.conan2/p/b/fcaro3c5d3ff1b4728/b/src"
-- Using Conan toolchain: /Users/abril/.conan2/p/b/fcaro3c5d3ff1b4728/b/build/Release/generators/conan_toolchain.cmake
-- Conan toolchain: Including user_toolchain: /Users/abril/.conan2/p/b/ccach1e6bed495b8dd/f/ccache-autoinject.cmake
-- /Users/abril/.conan2/p/b/ccach1e6bed495b8dd/f/bin/ccache found and enabled
-- Conan toolchain: Defining libcxx as C++ flags: -stdlib=libc++
-- Conan toolchain: C++ Standard 23 with extensions OFF
-- The CXX compiler identification is AppleClang 17.0.0.17000013
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done (0.4s)
-- Generating done (0.0s)
-- Build files have been written to: /Users/abril/.conan2/p/b/fcaro3c5d3ff1b4728/b/build/Release
fcarouge-kalman/0.5.2: Running CMake.build()
fcarouge-kalman/0.5.2: RUN: cmake --build "/Users/abril/.conan2/p/b/fcaro3c5d3ff1b4728/b/build/Release" -- -j12
fcarouge-kalman/0.5.2: Package 'da39a3ee5e6b4b0d3255bfef95601890afd80709' built
fcarouge-kalman/0.5.2: Build folder /Users/abril/.conan2/p/b/fcaro3c5d3ff1b4728/b/build/Release
fcarouge-kalman/0.5.2: Generating the package
fcarouge-kalman/0.5.2: Packaging in folder /Users/abril/.conan2/p/b/fcaro3c5d3ff1b4728/p
fcarouge-kalman/0.5.2: Calling package()
fcarouge-kalman/0.5.2: Running CMake.install()
fcarouge-kalman/0.5.2: RUN: cmake --install "/Users/abril/.conan2/p/b/fcaro3c5d3ff1b4728/b/build/Release" --prefix "/Users/abril/.conan2/p/b/fcaro3c5d3ff1b4728/p"
-- Install configuration: "Release"
-- Installing: /Users/abril/.conan2/p/b/fcaro3c5d3ff1b4728/p/share/pkgconfig/fcarouge-kalman.pc
-- Installing: /Users/abril/.conan2/p/b/fcaro3c5d3ff1b4728/p/share/fcarouge-kalman/cmake/fcarouge-kalman-target.cmake
-- Installing: /Users/abril/.conan2/p/b/fcaro3c5d3ff1b4728/p/share/fcarouge-kalman/cmake/fcarouge-kalman-config.cmake
-- Installing: /Users/abril/.conan2/p/b/fcaro3c5d3ff1b4728/p/share/fcarouge-kalman/cmake/fcarouge-kalman-config-version.cmake
-- Installing: /Users/abril/.conan2/p/b/fcaro3c5d3ff1b4728/p/include/fcarouge/kalman_forward.hpp
-- Installing: /Users/abril/.conan2/p/b/fcaro3c5d3ff1b4728/p/include/fcarouge/kalman.hpp
-- Installing: /Users/abril/.conan2/p/b/fcaro3c5d3ff1b4728/p/include/fcarouge/kalman_internal/factory.hpp
-- Installing: /Users/abril/.conan2/p/b/fcaro3c5d3ff1b4728/p/include/fcarouge/kalman_internal/format.hpp
-- Installing: /Users/abril/.conan2/p/b/fcaro3c5d3ff1b4728/p/include/fcarouge/kalman_internal/function.hpp
-- Installing: /Users/abril/.conan2/p/b/fcaro3c5d3ff1b4728/p/include/fcarouge/kalman_internal/kalman.tpp
-- Installing: /Users/abril/.conan2/p/b/fcaro3c5d3ff1b4728/p/include/fcarouge/kalman_internal/printer.hpp
-- Installing: /Users/abril/.conan2/p/b/fcaro3c5d3ff1b4728/p/include/fcarouge/kalman_internal/type.hpp
-- Installing: /Users/abril/.conan2/p/b/fcaro3c5d3ff1b4728/p/include/fcarouge/kalman_internal/utility.hpp
-- Installing: /Users/abril/.conan2/p/b/fcaro3c5d3ff1b4728/p/include/fcarouge/kalman_internal/x_z_p_q_r_h_f.hpp
-- Installing: /Users/abril/.conan2/p/b/fcaro3c5d3ff1b4728/p/include/fcarouge/kalman_internal/x_z_p_q_r_hh_us_ps.hpp
-- Installing: /Users/abril/.conan2/p/b/fcaro3c5d3ff1b4728/p/include/fcarouge/kalman_internal/x_z_p_q_r.hpp
-- Installing: /Users/abril/.conan2/p/b/fcaro3c5d3ff1b4728/p/include/fcarouge/kalman_internal/x_z_p_qq_rr_f.hpp
-- Installing: /Users/abril/.conan2/p/b/fcaro3c5d3ff1b4728/p/include/fcarouge/kalman_internal/x_z_p_r_f.hpp
-- Installing: /Users/abril/.conan2/p/b/fcaro3c5d3ff1b4728/p/include/fcarouge/kalman_internal/x_z_p_r.hpp
-- Installing: /Users/abril/.conan2/p/b/fcaro3c5d3ff1b4728/p/include/fcarouge/kalman_internal/x_z_u_p_q_r_f_g_ps.hpp
-- Installing: /Users/abril/.conan2/p/b/fcaro3c5d3ff1b4728/p/include/fcarouge/kalman_internal/x_z_u_p_q_r_h_f_g_us_ps.hpp
-- Installing: /Users/abril/.conan2/p/b/fcaro3c5d3ff1b4728/p/include/fcarouge/kalman_internal/x_z_u_p_q_r.hpp
fcarouge-kalman/0.5.2: package(): Packaged 1 '.txt' file: LICENSE.txt
fcarouge-kalman/0.5.2: package(): Packaged 17 '.hpp' files
fcarouge-kalman/0.5.2: package(): Packaged 1 '.tpp' file: kalman.tpp
fcarouge-kalman/0.5.2: Created package revision f29b948f49429e7cbd252c9a34134b95
fcarouge-kalman/0.5.2: Package 'da39a3ee5e6b4b0d3255bfef95601890afd80709' created
fcarouge-kalman/0.5.2: Full package reference: fcarouge-kalman/0.5.2#c2ee5eaa146d21985af2f6e296da23aa:da39a3ee5e6b4b0d3255bfef95601890afd80709#f29b948f49429e7cbd252c9a34134b95
fcarouge-kalman/0.5.2: Package folder /Users/abril/.conan2/p/b/fcaroad77796220755/p
======== Launching test_package ========
======== Computing dependency graph ========
Graph root
fcarouge-kalman/0.5.2 (test package): /Users/abril/coding/external/francois/recipes/fcarouge-kalman/all/test_package/conanfile.py
Requirements
fcarouge-kalman/0.5.2#c2ee5eaa146d21985af2f6e296da23aa - Cache
Build requirements
ccache/4.10.2#846894d0be2d48c603bcad2753e7980d - Cache
======== Computing necessary packages ========
Requirements
fcarouge-kalman/0.5.2#c2ee5eaa146d21985af2f6e296da23aa:da39a3ee5e6b4b0d3255bfef95601890afd80709#f29b948f49429e7cbd252c9a34134b95 - Cache
Build requirements
ccache/4.10.2#846894d0be2d48c603bcad2753e7980d:9e5323c65b94ae38c3c733fe12637776db0119a5#91a23a70e21cbe629f9b7acb3bb83d42 - Cache
======== Installing packages ========
ccache/4.10.2: Already installed! (1 of 2)
ccache/4.10.2: Finalized folder /Users/abril/.conan2/p/b/ccach1e6bed495b8dd/f
fcarouge-kalman/0.5.2: Already installed! (2 of 2)
======== Testing the package ========
Removing previously existing 'test_package' build folder: /Users/abril/coding/external/francois/recipes/fcarouge-kalman/all/test_package/build/apple-clang-16-armv8-23-release
fcarouge-kalman/0.5.2 (test package): Test package build: build/apple-clang-16-armv8-23-release
fcarouge-kalman/0.5.2 (test package): Test package build folder: /Users/abril/coding/external/francois/recipes/fcarouge-kalman/all/test_package/build/apple-clang-16-armv8-23-release
fcarouge-kalman/0.5.2 (test package): Writing generators to /Users/abril/coding/external/francois/recipes/fcarouge-kalman/all/test_package/build/apple-clang-16-armv8-23-release/generators
fcarouge-kalman/0.5.2 (test package): Generator 'CMakeDeps' calling 'generate()'
fcarouge-kalman/0.5.2 (test package): CMakeDeps necessary find_package() and targets for your CMakeLists.txt
find_package(fcarouge-kalman)
target_link_libraries(... fcarouge-kalman::kalman)
fcarouge-kalman/0.5.2 (test package): Generator 'CMakeToolchain' calling 'generate()'
fcarouge-kalman/0.5.2 (test package): CMakeToolchain generated: conan_toolchain.cmake
fcarouge-kalman/0.5.2 (test package): CMakeToolchain generated: /Users/abril/coding/external/francois/recipes/fcarouge-kalman/all/test_package/build/apple-clang-16-armv8-23-release/generators/CMakePresets.json
fcarouge-kalman/0.5.2 (test package): CMakeToolchain generated: /Users/abril/coding/external/francois/recipes/fcarouge-kalman/all/test_package/CMakeUserPresets.json
fcarouge-kalman/0.5.2 (test package): Generating aggregated env files
fcarouge-kalman/0.5.2 (test package): Generated aggregated env files: ['conanbuild.sh', 'conanrun.sh']
======== Testing the package: Building ========
fcarouge-kalman/0.5.2 (test package): Calling build()
fcarouge-kalman/0.5.2 (test package): Running CMake.configure()
fcarouge-kalman/0.5.2 (test package): RUN: cmake -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE="generators/conan_toolchain.cmake" -DCMAKE_INSTALL_PREFIX="/Users/abril/coding/external/francois/recipes/fcarouge-kalman/all/test_package" -DCMAKE_POLICY_DEFAULT_CMP0091="NEW" -DCMAKE_BUILD_TYPE="Release" "/Users/abril/coding/external/francois/recipes/fcarouge-kalman/all/test_package"
-- Using Conan toolchain: /Users/abril/coding/external/francois/recipes/fcarouge-kalman/all/test_package/build/apple-clang-16-armv8-23-release/generators/conan_toolchain.cmake
-- Conan toolchain: Including user_toolchain: /Users/abril/.conan2/p/b/ccach1e6bed495b8dd/f/ccache-autoinject.cmake
-- /Users/abril/.conan2/p/b/ccach1e6bed495b8dd/f/bin/ccache found and enabled
-- Conan toolchain: Defining libcxx as C++ flags: -stdlib=libc++
-- Conan toolchain: C++ Standard 23 with extensions OFF
-- The CXX compiler identification is AppleClang 17.0.0.17000013
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Conan: Target declared 'fcarouge-kalman::kalman'
-- Configuring done (0.4s)
-- Generating done (0.0s)
-- Build files have been written to: /Users/abril/coding/external/francois/recipes/fcarouge-kalman/all/test_package/build/apple-clang-16-armv8-23-release
fcarouge-kalman/0.5.2 (test package): Running CMake.build()
fcarouge-kalman/0.5.2 (test package): RUN: cmake --build "/Users/abril/coding/external/francois/recipes/fcarouge-kalman/all/test_package/build/apple-clang-16-armv8-23-release" -- -j12
[ 50%] Building CXX object CMakeFiles/test_package.dir/test_package.cpp.o
[100%] Linking CXX executable test_package
[100%] Built target test_package
======== Testing the package: Executing test ========
fcarouge-kalman/0.5.2 (test package): Running test()
fcarouge-kalman/0.5.2 (test package): RUN: ./test_package
{"k": 1, "p": 1, "r": 0, "s": 1, "x": 0, "y": 0, "z": 0}
Summary
Adds recipe: fcarouge-kalman/0.5.1
fixes #27357
Motivation
New recipe in support of the Kalman package, for issue #27357 [request] fcarouge-kalman.
Details
Initial recipe support for the C++23 and CMake project.
Tested on Ubuntu 22.04 and MacOS 15.4.1 with GCC14 and Clang 19.