-
Notifications
You must be signed in to change notification settings - Fork 262
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
Restructure compilation documentation #6109
Restructure compilation documentation #6109
Conversation
Becuase some platforms are not tested in CI, a new user would be well adviced to try a platform which is tested if they have choice.
The complete repository can be built using fewer build step using CMake than using the hand-written makefiles. Therefore people who are new to building CBMC should be able to get started more quickly using the CMake build than the make build. Therefore it makes sense for them to read about that build system first.
In order to match the version of visual studio and tool chain currently tested in CI.
Because "shoud" is not the correct spelling.
Because this was previously missing and it might not have been obvious for anyone unfamiliar with the build system.
Because this helps document the way CBMC is currently built in CI. This is usefull both for reference compared to local builds and for working out why CI builds are failing on PRs.
To match the ordering in the outline at the top.
To distance this section from the comparitively well-maintained Visual Studio 2019 with cmake build.
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.
LGTM, with some minor comments.
[official download page](https://cmake.org/download) on those systems. | ||
The dependencies (as listed in the relevant sections above) will also be | ||
required, and should be installed using the suggested methods. | ||
2. Navigate to the *top level* folder of the project. This is different from |
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.
Maybe add the second sentence as a bullet point, or add the paths in parentheses (cbmc
vs cbmc/src/
) to make it a bit less confusing?
Codecov Report
@@ Coverage Diff @@
## develop #6109 +/- ##
===========================================
+ Coverage 74.52% 75.27% +0.75%
===========================================
Files 1447 1447
Lines 157808 157988 +180
===========================================
+ Hits 117610 118930 +1320
+ Misses 40198 39058 -1140
Continue to review full report at Codecov.
|
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.
Thank you for improving the documentation!
Building with CMake is supported across Linux, MacOS X and Windows with Visual | ||
Studio 2019. There are also hand-written make files which can be used to build | ||
separate binaries independently. Usage of the hand-written make files is | ||
explained in a separate section. The CMake build can build the complete |
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.
Could that "separate section" be named/referenced here?
Studio 2019. There are also hand-written make files which can be used to build | ||
separate binaries independently. Usage of the hand-written make files is | ||
explained in a separate section. The CMake build can build the complete | ||
repository in fewer steps and supports better integration with various IDEs and |
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.
How did you find out that it was "fewer steps?"
COMPILING.md
Outdated
- On platforms where installing the Java Development Kit and Maven is | ||
difficult, you can avoid needing these dependencies by not building | ||
JBMC. Just pass `-DWITH_JBMC=OFF` to cmake in step (4) below. |
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.
The above commands didn't install maven or a JDK! Also, having this item right here is a bit strange for both the ones before and after are about installing operating-system specific dependencies.
COMPILING.md
Outdated
You shoud also install [Homebrew](https://brew.sh), after which you can | ||
run `brew install cmake` to install CMake. |
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.
Also similar to tautshnig's comment below, why is MacOS different in style and arguments to the others. I think it would be better to have single (displayed) comment for each system and let that do it all. If users want to play around, this can (probably) be covered elsewhere. (Note, I'm reviewing by commit, so they may be a little haphazard depending on the commits.)
# Building using hand-written make files. | ||
|
||
The rest of this section is split up based on the platform being built on. | ||
Please read the section appropriate for your machine. |
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.
"machine" -> "platform"
COMPILING.md
Outdated
|
||
- Linux | ||
- MacOS X | ||
- Microsoft Visual Studio |
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.
This should be >=2019, also below should probably indicate MSVS 2015+-?
In order to indicate that this is the name of the package.
Because "CMake" should be capitalised that way; not "cmake" or "CMAKE".
To distinguish it from the name of the build system as the command should not be capitalised.
To help users who decide to install Strawberry Perl to do so.
In order to more clearly explain the issue.
Because cygwin is not tested in CI and because this means that we can list operating systems rather than a mix of operating systems and tool chains.
Implement some suggestions presented as comments in diffblue#6109 (we had to merge the PR before we could get a chance to incorporate them, so we are compensating now) and do some other minor cleanup of the COMPILING.md file.
Implement some suggestions presented as comments in diffblue#6109 (we had to merge the PR before we could get a chance to incorporate them, so we are compensating now) and do some other minor cleanup of the COMPILING.md file.
This PR restructures the compilation documentation. We have received some feedback that the compilation instructions are difficult to follow for new users. This PR makes things more straight forward for new users to follow.