-
-
Notifications
You must be signed in to change notification settings - Fork 344
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
build: Add CMake build #3621
build: Add CMake build #3621
Conversation
Current status: I can compile the entire For my records, message from
CMake variables: |
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.
I did what I could to help out on this feature (that I really want) with what I'm good with, the CI. I made them as code suggestions to be easier to apply without being tedious.
@echoix What YAML formatter should I use (e.g., working with pre-commit yamllint)? Are we/you already using one? |
pre-commit is using: Lines 68 to 75 in 7413740
|
Can I use yamllint for formatting? Looks like, it only checks, not format. |
No.
Yes, it is only a linter ("checker") not formatter. |
I have just tried this PR out and you've come a long way! |
Green! |
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.
Awesome! What a great achievement! Thanks for all the hard work.
Just one more approval away! |
Is there any how-to available for testing locally in Windows? |
Please see the first block in this PR. Building on Windows. |
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.
Great teamwork, thank you all!
There's still a way for full functionality, but a very important milestone.
(The CI runner creates a testreport artefact, testing rate is now set at 72 per cent, so the report presents a convenient status update). |
Note the CI speed for CMake, 22 mins, with full tests on ubuntu. |
1 min 30s to configure+build. (Instead of 4 min now)!!. Both without cache, but the 4 minutes also uses a faster linker. Here I don't think the markdown docs and/or normal html docs are handled yet, and at least we don't uselessly (and inefficiently) create .pyc files at the wrong locations. I'm curious if make vs ninja has something to do here, or simply because the rules are now better defined. There's also some build flags that we use in the 4 minutes of equivalent CI runs that I know take a little longer than without. |
I repost the draft commit message, for easy access, note: email addresses need to be filled in:
|
Update branch doesn't seem to work?
|
We have the setting enabled to always show it (when the PR is not exactly up to date with the latest commit on the target branch). That means it's always an option, not that there is a problem with the PR and the merge won't be clean, merging would have worked anyway. |
I can only see "Enable auto-merge (squash)" without the green Merge button. Just Updated branch and waiting... |
Maybe there was still open conversations, but now the required jobs need to finish since it was updated. |
Almost forgot... Will I see a textbox for this when I click Squash and merge? |
@nilason, What about this with GitHub handles?
|
Would be better with the actual email addresses, please search in git log. I just didn't want to put them out here. |
Oops.. If so, deleting my comment ;-) |
Yes, there will be a single line where |
Finally MERGED after 5 years of work!!! Thanks everyone! |
(@HuidaeCho I'll delete the post where the "accident" occurred. ) |
(Never mind!) |
Is there a place where we can list some small issues all at one place? |
Something like this? #5192 |
This PR replaces #3021. Branched from https://github.com/nilason/grass/tree/cmake_build_work. Thanks @nilason!
Current status: I can compile the entire
gisbase
using CMake 3.29.1 and GCC 13.2.0. Runninggrass
directly frombuild/gisbase
works fine.Windows Tests
For my records, message from
message(WIN32=${WIN32}, MSVC=${MSVC}, MSYS=${MSYS}, MINGW=${MINGW})
on Windows (all fromcmd
inssh
):cmd
for MSVC):WIN32=,MSVC=,MSYS=1,MINGW=
(WIN32
not set?)bash
for MinGW-w64 GCC):WIN32=1,MSVC=,MSYS=,MINGW=1
CMake variables:
TODOs
locale
Documentation
@Mahesh1998 and I are testing, fixing, and documenting this PR on Ubuntu. https://github.com/Mahesh1998/grass-docs/blob/main/cmake_build_docs/
Building on Windows
Building on Slackware with Conda packages
Install Miniconda
Create a new environment and install libraries
Build GRASS
Run GRASS