Skip to content

strawman for desktop user interfaces #115

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

Open
wants to merge 13 commits into
base: master
Choose a base branch
from
Prev Previous commit
Next Next commit
Update buildsystems.md
Discussion with the US group
  • Loading branch information
diehlpk authored Jul 26, 2024
commit ac383ec48c5a4b208f60ebd6123821084529c909
31 changes: 18 additions & 13 deletions sources/modules/compilation-model/buildsystems.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,12 @@ Advanced --- Usage of build system to compile a library or
_Why is this important?_
_Why do we want to learn/teach this topic?_

* Building complex C++ projects by hand or writing Make files is tricky
* Building complex C++ projects by hand is tricky
* Build systems can help to resolve dependencies
* Build systems can help do distribute C++ code and help other to compile the code
* Build systems can help to find and include libraries as dependencies
* All major C++ projects are distributed with build systems
* Build systems faciliate project management
* All major C++ projects are distributed with build systems

### Topic introduction

Expand All @@ -43,7 +44,7 @@ Build systems are used to configure, build, and install complex C++ projects.
#### Background/Required Knowledge

A student:
* Should know about build systems
* Should know how to compile and link C++ programs


#### Student outcomes
Expand All @@ -55,8 +56,8 @@ _Max 5 items._
A student should be able to:

1. To explain what a build system is
2. Know that a build systems resolves dependencies
3. Know that a build system support cross-platform compilation
2. To explain a build systems resolves dependencies
3. To explain a build system supports compilation for different operating systems and architectures

#### Caveats

Expand All @@ -69,8 +70,9 @@ None

_This section lists important details for each point._

* Mention that many build systems are available for C++.
* Mention that many build systems are available for C++
* Mention benefits and challenges
* Build system help to only compile the C++ files with code changes and not the complete project

### Main: Usage of build system to compile a executable

Expand All @@ -82,8 +84,10 @@ _This section lists important details for each point._

A student should be able to:

1. Write a configuration file to compile a C++ program with a main method
2. Use the build system to generate the executable
1. Download a C++ package and build the package
2. Write a configuration file to compile a C++ executable
3. Pass compiler options via the build system
4. Use the build system to generate the executable

#### Caveats

Expand All @@ -96,15 +100,16 @@ not easily transferable.
* Adding include paths to header files
* Adding compiler flags
* How to build Release and Debug builds
* Linking external libraries to the C++ project
* Support different operating systems, compilers, and architectures


### Advanced

_These are important topics that are not expected to be covered but provide
guidance where one can continue to investigate this topic in more depth._

* How to build libraries
* How to include libraries to the executable
* How to find external libraries and include them
* How to add support for different compilers
* How to add support for different operating systems
* How to build libraries
* Write a configuration file for your own library
* How to have external libraries be downloaded during the build process