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

implement module reusage based on flag comparison #4728

Merged
merged 5 commits into from
Feb 14, 2024

Conversation

Arthapz
Copy link
Member

@Arthapz Arthapz commented Feb 10, 2024

this PR is based on #4707, i'll rebase on modules branch after merging #4707

@Arthapz Arthapz marked this pull request as draft February 10, 2024 16:37
CHANGELOG.md Outdated Show resolved Hide resolved
@waruqi
Copy link
Member

waruqi commented Feb 11, 2024

I have merged #4707

fix gcc

fix msvc

fix msvc

fix msvc

fix
@Arthapz
Copy link
Member Author

Arthapz commented Feb 12, 2024

image
do you have an idea to what can cause relinking of the target ?

@waruqi
Copy link
Member

waruqi commented Feb 12, 2024

you can use xmake f --policies=diagnosis.check_build_deps to enable builddeps info to debug it. or debug here.

for _, file in ipairs(files) do

end, {dependfile = target:dependfile(),

@Arthapz Arthapz marked this pull request as ready for review February 12, 2024 21:50
@Arthapz
Copy link
Member Author

Arthapz commented Feb 13, 2024

So to explain this PR, the objective is to reuse BMI of deps targets if flags are compatible
there is no official list of flags that affect BMI we'll empirically maintain the list based on experience and futur bug reports
i've already added all the flags that i can think of that will not affect BMI generation

on my personal C++ toolkit with a hundred modules, build times got reduce from ~110 seconds to 70 seconds with LLVm

@waruqi waruqi merged commit b1d3ab4 into xmake-io:modules Feb 14, 2024
19 checks passed
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