-
Notifications
You must be signed in to change notification settings - Fork 66
Add cmake overview draft #51
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
Conversation
|
Regarding
|
|
I just added an option to ignore hard tabs in code blocks in Edit: I just tested the new configuration locally and it still complains about the hard tabs. I have to dig a bit further. |
|
|
||
| TODO: watch some tutorial, learn more | ||
|
|
||
| ## Explain preCICE `CMakeLists.txt` |
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.
Instead, maybe introduce "limitations of CMake".
There are some issues as CMake aims to be the common denominator of build systems.
Example: Globs in CMake -> files in build system: Adding new file -> not respected by build system.
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 would support such a section. (GNU) Make was treated so badly. No it is time for revenge. 😄
More seriously: It makes sense to mention the shortcomings/pitfalls when using CMake. It is not perfect and might give trouble in certain settings. The students should be made aware of such situations.
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 don't think I have the expertise right now to do such a section.
I am also not sure whether we really need this. In the end, our learning goal here is not that students can compare different build system and pick the best one for a certain project. The learning goal is that they understand how cmake roughly works since it used in many simulation codes.
Example: Globs in CMake -> files in build system: Adding new file -> not respected by build system.
This one I already mention implicitly above
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 have added my notes. In total I like it, but from my perspective CMake is praised too much while (GNU) Make is the bad guy here. CMake also has its faults and is an additional complexity layer additional to the actual build system.
One can also write good Makefiles. Sadly, most people write/copy together badly writtenMakefiles.
|
|
||
| TODO: watch some tutorial, learn more | ||
|
|
||
| ## Explain preCICE `CMakeLists.txt` |
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 would support such a section. (GNU) Make was treated so badly. No it is time for revenge. 😄
More seriously: It makes sense to mention the shortcomings/pitfalls when using CMake. It is not perfect and might give trouble in certain settings. The students should be made aware of such situations.
|
I checked the markdownlint problem again. There is currently no support for hard tabs in code blocks. What we could do:
|
|
Rule MD010 has been deactivated in |
482eb37 to
43c3ed5
Compare
|
Closed in favor of #54 |
That's a first draft of the Make and CMake lecture content next week. Right now, I have everything in one file. I will later create slides and notes for the demo. I hope what will be a slide and what a demo is rather clear from the document.
There are still a few TODOs for me in the document.
@fsimonis and @ajaust Could you please read through this and give high-level feedback: Is anything just wrong? Am I missing important things? How does the connection to the other material work out? (no need to comment on formatting etc yet)
Thanks!
@ajaust
mlddoes not like the hard tabs in the make blocks, which are needed in case students copy from the notes later. Suggestions how to solve this?