Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- someone@someone-desktop:~/Projects/src/bitbucket.org/weberc2/playground$ ls
- cppdeps.py cw example_cwpath project.py target.py
- # This is what the example project looks like. $CWPATH is akin to $GOPATH in golang
- someone@someone-desktop:~/Projects/src/bitbucket.org/weberc2/playground$ find example_cwpath/
- example_cwpath/
- example_cwpath/.hgignore
- example_cwpath/src
- example_cwpath/src/greet
- example_cwpath/src/greet/hello.cpp
- example_cwpath/src/greet/unused.h
- example_cwpath/src/greet/main.cpp # the presence of a main.cpp tells `cw` to try to build a binary artifact
- example_cwpath/src/greet/hello.h
- example_cwpath/src/greet/goodbye.cpp
- example_cwpath/src/greet/transitive_dep.h
- example_cwpath/src/greet/goodbye.h
- example_cwpath/src/range
- example_cwpath/src/range/range.h
- example_cwpath/src/range/range.cpp
- # alias `cw` so we can execute the program without the full path
- someone@someone-desktop:~/Projects/src/bitbucket.org/weberc2/playground$ alias cw=$PWD/cw
- # set the $CWPATH. Like $GOPATH, $CWPATH can be a colon-indexed list of workspaces.
- someone@someone-desktop:~/Projects/src/bitbucket.org/weberc2/playground$ export CWPATH=$PWD/example_cwpath
- # build from project URI (URI = relative path from $CWPATH)
- someone@someone-desktop:~/Projects/src/bitbucket.org/weberc2/playground$ cw build greet
- # binary and library artifacts are built
- someone@someone-desktop:~/Projects/src/bitbucket.org/weberc2/playground$ ls example_cwpath/bin/greet
- example_cwpath/bin/greet
- someone@someone-desktop:~/Projects/src/bitbucket.org/weberc2/playground$ ls example_cwpath/lib/greet
- goodbye.o hello.o libgreet.a main.o
- # artifacts are cleaned via URI
- someone@someone-desktop:~/Projects/src/bitbucket.org/weberc2/playground$ cw clean greet
- Removed /home/someone/Projects/src/bitbucket.org/weberc2/playground/example_cwpath/lib/greet/hello.o
- Removed /home/someone/Projects/src/bitbucket.org/weberc2/playground/example_cwpath/lib/greet/main.o
- Removed /home/someone/Projects/src/bitbucket.org/weberc2/playground/example_cwpath/lib/greet/goodbye.o
- Removed /home/someone/Projects/src/bitbucket.org/weberc2/playground/example_cwpath/lib/greet/libgreet.a
- Removed /home/someone/Projects/src/bitbucket.org/weberc2/playground/example_cwpath/bin/greet
- # artifacts can also be built/cleaned via relative (or absolute) project filepath
- someone@someone-desktop:~/Projects/src/bitbucket.org/weberc2/playground$ cw build ./example_cwpath/src/greet/
- someone@someone-desktop:~/Projects/src/bitbucket.org/weberc2/playground$ cw clean ./example_cwpath/src/greet/
- Removed /home/someone/Projects/src/bitbucket.org/weberc2/playground/example_cwpath/lib/greet/hello.o
- Removed /home/someone/Projects/src/bitbucket.org/weberc2/playground/example_cwpath/lib/greet/main.o
- Removed /home/someone/Projects/src/bitbucket.org/weberc2/playground/example_cwpath/lib/greet/goodbye.o
- Removed /home/someone/Projects/src/bitbucket.org/weberc2/playground/example_cwpath/lib/greet/libgreet.a
- Removed /home/someone/Projects/src/bitbucket.org/weberc2/playground/example_cwpath/bin/greet
- # artifacts can be built/cleaned without parameter if current dir is the project dir
- someone@someone-desktop:~/Projects/src/bitbucket.org/weberc2/playground$ cd example_cwpath/src/greet/
- someone@someone-desktop:~/Projects/src/bitbucket.org/weberc2/playground/example_cwpath/src/greet$ cw build
- # execute binary; we could omit the `../../bin` part if the `bin` dir was in `$PATH`
- someone@someone-desktop:~/Projects/src/bitbucket.org/weberc2/playground/example_cwpath/src/greet$ ../../bin/greet
- Hello, world!
- Goodbye!
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement