Skip to content

Conversation

@msteinbeck
Copy link

Note that the CMake modules are licensed under the same terms as those modules shipped with CMake (the BSD 3-Clause License). I know that Fusion is licensed under the terms of the GPLv3 license, but I'm not sure what the implications are if these modules are included in other projects.

@codecov
Copy link

codecov bot commented Dec 13, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 96.39%. Comparing base (850a29f) to head (cad2da2).
⚠️ Report is 2 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master     #206   +/-   ##
=======================================
  Coverage   96.39%   96.39%           
=======================================
  Files           2        2           
  Lines       18430    18433    +3     
=======================================
+ Hits        17766    17769    +3     
  Misses        546      546           
  Partials      118      118           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Collaborator

@pfusik pfusik left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you very much for your contribution! Sorry for late review.
I think it's okay license-wise, as your CMake modules are clearly a separate work from the transpiler itself. This is similar to e.g. GCC and other GNU tools.

OUTPUT <output>
[NAMESPACE <namespace>]
[DEFINES <symbol1> <symbol2> ...]
[RESOURCES <file1.fu> <file2.fu> ...]
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
[RESOURCES <file1.fu> <file2.fu> ...]
[REFERENCE <file1.fu> <file2.fu> ...]

Or perhaps REFERENCES ?
This option should be named similarily to the C# compiler's -r option. Does csc have a CMake package?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

Does csc have a CMake package?

As far as I know, you can build C# projects with CMake. However, I'm not aware of a CMake package for csc.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If it's SOURCES, it should be REFERENCES with an S.
It looks like CMake 3.8 has C# support, and the property is called VS_DOTNET_REFERENCES.

@msteinbeck
Copy link
Author

I extended the example with Lua bindings generated via SWIG from the Fusion-transpiled C++ library. This could serve as an indication that additional languages can be targeted through the C/C++ output.

@msteinbeck
Copy link
Author

Thank you very much for your contribution! Sorry for late review.

No worries! Thank you for this awesome project!

@pfusik
Copy link
Collaborator

pfusik commented Dec 31, 2025

I extended the example with Lua bindings generated via SWIG from the Fusion-transpiled C++ library. This could serve as an indication that additional languages can be targeted through the C/C++ output.

That's an interesting idea! I'm just afraid this could be confusing for people just starting with Fusion. I'd prefer to document it instead.
BTW. Fusion might get transpiled to Lua some day: #98.

@pfusik
Copy link
Collaborator

pfusik commented Dec 31, 2025

Feel free to add GitHub Actions and/or Travis CI configuration to test these CMake modules, starting with fut's make install.

@@ -0,0 +1,18 @@
native {
#include "fibonacci.hpp"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't like this native { #include }. Let's remove it and move fibonacci.fu from REFERENCES to SOURCES.
This way this test source could be reused for different languages.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants