-
Notifications
You must be signed in to change notification settings - Fork 23
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
Clean ExternalProject patch mess #50
Comments
Most patches are merged. The only one missing should be SOURCE_DIR_PERSISTENT |
CMake 3.18 was just released, and it adds a very relevant new See:
|
If that permits to easily switch between different branches back and forth the history of the repo, that would be extremly useful. |
Summarizing, the strategies are:
We could keep the strategy in a variable and somehow change it to a different one depending on DEVELOPER_MODE, and/or have some command to change it when you want to switch branch... Also, if we want to think a different strategy, it could be possible to add it. Anyway, I don't know if the part of code that was just removing the git repository and cloning it again was removed in this change, we should check that... If it was removed, I think that we can just switch to the |
In any case I guess the related modification was removed in 75e8943, right? |
That commit removed only the property to enable/disable the new behaviour, not the actual change of behaviour |
Ah, I see. |
The code is still there: https://github.com/Kitware/CMake/blob/a7b325e203a45f3c8d4a64fd3338079e0a14e250/Modules/ExternalProject/gitclone.cmake.in#L15 . However, the vendored ExternalProject is taking a lot of energy, so personally I think that we should document this change and eventually go with the upstream ExternalProject. Out of all the users of ycm-based superbuild that I am aware of, nobody uses the update with repos with which they are working. Instead, either they set the devel mode for their repo to ensure that it is not update, or directly they never call the superbuild update. Out of the users I interacted with, I never met a user that was able to understand what the superbuild was doing when updating a repo with local changes, so no one ever did that to avoid confusion.
|
Anyhow, before switching to upstream ExternalProject we need:
Once this is done, the main benefit will be:
|
Done in #403 . |
For reference, the patch at the time of last import was 582b5bc (that was imported on top of https://gitlab.kitware.com/cmake/cmake/-/commit/e67e4dbaadf3583d665fb5409b425e1a238d9748).
|
ExternalProject is a mess due to the number of patches and patches for the patches applied.
It would be nice if the patches were available as .diff in order to see what was actually applied, and to make it easier to port them to CMake, and to update from CMake
The text was updated successfully, but these errors were encountered: