Skip to content
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

Feature/premakedeps #13390

Merged
merged 8 commits into from
Apr 11, 2023
Merged

Conversation

Ohjurot
Copy link
Contributor

@Ohjurot Ohjurot commented Mar 8, 2023

Changelog: Feature: Adding preliminary (non documented, dev-only) support for premake5 deps (PremakeDeps).
Docs: Omit

Fixes #13275 (Based on PR #13350)

Features

  • Implements lua file generation for premake consumption (New feature for 2.0)
  • Supports multi build with changing architecture and configuration (New for the premake tool)
  • Generates a lua file with variables (includedirs, libdirs, ...) per configuration (Based on existing implementation, adapted for multi build and new architecture)
  • Generates a lua file with functions (Just build/compiler setup, linker setup and both) for automatic premake project setup per package and profile/config (Breaks compatibility with conan1 but is way more flexible)
  • Generates a lua file with functions (see previous) for automatic premake project setup per package
  • Generates a global conandeps.premake5.lua file with functions (see previous) for automatic premake project setup.
  • Has fallback capabilities to release when no fitting conan configuration is available

Status
WIP-Status: Code works and has been covered with a basic unit test. Documentation is still required.

Checklist

  • Refer to the issue that supports this Pull Request.
  • If the issue has missing info, explain the purpose/use case/pain/need that covers this Pull Request.
  • I've read the Contributing guide.
  • I've followed the PEP8 style guides for Python code.
  • I've opened another PR in the Conan docs repo to the develop branch, documenting this one. Delayed until full premake5 support is implemented.

Note: By default this PR will skip the slower tests and will use a limited set of python versions. Check here how to increase the testing level by writing some tags in the current PR body text.

@Ohjurot
Copy link
Contributor Author

Ohjurot commented Mar 8, 2023

@memsharded In #13350 you have mentioned "As long as we don't document it, it should be very doable". So, shall I wait with writing the documentation until I implement the full premake toolchain? So that you can merge this PR and get the PremakeDeps support in as soon as possible, but without officially stating it trough the documentation?

@memsharded
Copy link
Member

@memsharded In #13350 you have mentioned "As long as we don't document it, it should be very doable". So, shall I wait with writing the documentation until I implement the full premake toolchain? So that you can merge this PR and get the PremakeDeps support in as soon as possible, but without officially stating it trough the documentation?

Yes, exactly, it is possible to merge it to allow easier preliminary testing for early adopters, contributors and maintainers, without being too constrained to change things. I'd wait until we have the basic pieces working together and a bit of our own testing.

Copy link
Member

@memsharded memsharded left a comment

Choose a reason for hiding this comment

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

Some minor comments and doubts, please have a look.

Then, would you say this is ready to move forward, merge (quietly, no docs yet) it, and keep working on the other pieces?

conan/tools/premake/premakedeps.py Outdated Show resolved Hide resolved
conan/tools/premake/premakedeps.py Outdated Show resolved Hide resolved
conan/tools/premake/premakedeps.py Outdated Show resolved Hide resolved
Added feedback for appending and referencing by explicit filename.

Co-authored-by: James <memsharded@gmail.com>
@Ohjurot
Copy link
Contributor Author

Ohjurot commented Mar 13, 2023

Some minor comments and doubts, please have a look.

Then, would you say this is ready to move forward, merge (quietly, no docs yet) it, and keep working on the other pieces?

Yes, as soon as we have discussed the two open points this should be ready for a silent merge.

- Uncommon feature: "_premake_filtered_fallback"
- Better consumption with a function in style of "conan_setup(conf, pkg)"
By:
- Change lua variable to be stored in a table
- Changed consumption of lua variables
@Ohjurot Ohjurot requested a review from memsharded March 14, 2023 17:00
@Ohjurot
Copy link
Contributor Author

Ohjurot commented Mar 26, 2023

@memsharded can you please give me an update

@memsharded memsharded added this to the 2.0.4 milestone Apr 5, 2023
@memsharded memsharded self-assigned this Apr 5, 2023
@memsharded
Copy link
Member

Sorry, I have been buried by a lot of other things. Just assigned this for next 2.0.4 so we can prioritize it.

@memsharded memsharded merged commit 163c0f9 into conan-io:release/2.0 Apr 11, 2023
@memsharded
Copy link
Member

Merged! It will be in next 2.0.4

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.

[bug] Error in generator 'PremakeDeps': '_Component' object has no attribute 'aggregate_components'
2 participants