Comments (11)
My motivation for TBB was to show that you could test a library/package in three steps:
- Download and unpack
- Go looking for the Config.cmake
- Use it by hinting to find_package()about the path the Config.cmake
This is not completely true, since you must refer to the package name either by name (TBB::tbb) or
variable ${TBB_IMPORTS}, and you must at least look at README to find the name of the variable.
from cmake.
OK I will have a careful look. Of course I don't want to remove a good example. So what is it that we try to achieve precisely in this exercise? I hope this is not a silly question: I would really like that we are clear about the goal of this and then we can assess whether this is a good example.
from cmake.
Because my feeling was that we want to demonstrate how find_package
works. But let us sharpen the goal first.
from cmake.
You want to try out a package/library from somebody else. find_package() ease the process, but you need to know where to look( use of the hint) and you need to know the name of the library in CMake context. In the TBB case, it is TBB::tbb or ${TBB_IMPORTS}
from cmake.
OK so the goal of this exercise is to demonstrate find_package
to locate an external package and we want to demonstrate that it might be necessary to provide hints to the find functions? Because if yes, then I think we can demonstrate this with some super simple example and can possibly avoid explaining what TBB is and going into TBB internals (like TBB_IMPORTS).
from cmake.
Yes.
from cmake.
OK let's see what I come up with - I use this week as CMake week and will go through entire lesson and try to simplify and motivate more.
from cmake.
What about starting with CMake, and then do the Makefile, since we use Make to build anyway? Hence make becomes a kind of detour, before we go deeper into make.
from cmake.
The motivation for starting with Make was to cater to Python/R folks and to understand why Makefiles exist and then arrive at limitations of Make and motivate CMake. Then some Python/R participants may switch off. If we do it the other way, my worry is that we might not reconnect to the interpreted language folks at all.
from cmake.
My goal was to show: Make is for everybody, CMake is for all those who compile.
from cmake.
I think this is solved/outdated now since the lesson evolved a lot since.
from cmake.
Related Issues (17)
- Show how to define compiler flags per target or per file HOT 1
- POST_BUILD example in 03-hello-world-cmake HOT 5
- Compiler flags and find family
- Replace the weather/fruit examples with more real life examples HOT 4
- Add WORKING_DIRECTORY to git hash example HOT 1
- Be clear on where to make the build directory
- Simplify fizz-buzz example HOT 1
- Consider showing some language constructs HOT 1
- "make test" not visible in parent scope
- Motivate better why CMake if already using Make.
- Compare qmake and CMake and snakemake
- Consider extending to a 1-day workshop HOT 1
- Include formative assessment questions at the end of each episode
- Change license from CC-BY-SA to CC-BY HOT 5
- In 02-hello-world.md binary changes between "hello" and "hello.x" HOT 8
- Section about build directly structure HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cmake.