Browse code

Output more help when verbose is set. cmake sets MULLE_BOOTSTRAP_VERSION, so CMakeLists.txt can determine, which dependencies to use. dox/CMakeLists.txt.example shows how.

Nat! authored on 11-01-2017 11:30:10
Showing 4 changed files
... ...
@@ -1,12 +1,20 @@
1
-2.5.1
2
-===
1
+## 2.6.0
2
+
3
+* mulle-bootstrap announces itself to cmake with -DMULLE_BOOTSTRAP_VERSION
4
+
5
+### 2.5.2
6
+
7
+
8
+* -v -h gives more help
9
+* renamed -tt  to -tit and -tp to -tip, because it's more logical
10
+
11
+### 2.5.1
3 12
 
4 13
 * Allow --debug and --release as shortcuts for -c Debug and -c Release, because
5 14
 I am lazy and I expect it.
6 15
 
7 16
 
8
-2.5.0
9
-===
17
+## 2.5.0
10 18
 
11 19
 * Improve usage for `mulle-bootstrap init`
12 20
 * Reduce verbosity for PATH to fluff
... ...
@@ -18,20 +26,17 @@ with spaces.
18 26
 * With --prefix you can change /usr/local on the commandline for build and fetch
19 27
 
20 28
 
21
-2.4.2
22
-===
29
+### 2.4.2
23 30
 
24 31
 Make PATH generation compatible with homebrew shims
25 32
 
26 33
 
27
-2.4.1
28
-===
34
+### 2.4.1
29 35
 
30 36
 Exit with 0 when printing version.
31 37
 Emit better .gitignore code for symlinked embedded repos
32 38
 
33
-2.4.0
34
-===
39
+## 2.4.0
35 40
 
36 41
 Fix failing update for projects with only embedded repositories.
37 42
 
... ...
@@ -39,8 +44,8 @@ Fix failing update for projects with only embedded repositories.
39 44
 repositories.
40 45
 
41 46
 
42
-2.3
43
-===
47
+## 2.3
48
+
44 49
 The main new feature of 2.3 is support for working with different repositories.
45 50
 E.g. I host releases on GitHub on a branch "release", which are accessed via
46 51
 https://, but when I develop I use Mulle KybernetiK on branch "master".
... ...
@@ -85,45 +90,39 @@ repositiories, but that does not per se force an update.
85 90
 * added -D bootstrap flag to create .bootstrap.local definition files. Convenient for specifiying alternate URLs for example.
86 91
 
87 92
 
88
-2.2.1
89
-===
93
+### 2.2.1
94
+
90 95
 
91 96
 * fix for Linux
92 97
 
93
-2.2
94
-===
98
+## 2.2
95 99
 
96 100
 * `mulle-bootstrap tag` will now also tag embedded repositories
97 101
 * `mulle-bootstrap git` will now also grace embedded repositories, so `mulle-bootstrap git status -s` is now better
98 102
 * reworked tag to be more aware of git flags, so `mulle-bootstrap tag -l` now
99 103
 works
100 104
 
101
-2.1.4
102
-===
105
+### 2.1.4
103 106
 
104 107
 * use a safer but uglier method to append to .gitignore
105 108
 
106
-2.1.3
107
-===
109
+### 2.1.3
108 110
 
109 111
 * Improve performance especially on windows, due to less superflous refreshes
110 112
 
111
-2.1.2
112
-===
113
+### 2.1.2
113 114
 
114 115
 * expose some more flags to usage. Distinguish between flags and options.
115 116
 * The description of -V was wrong.
116 117
 * Moved -c to fetch options as -cs to avoid clash with build flags
117 118
 
118
-2.1.1
119
-===
119
+### 2.1.1
120 120
 
121 121
 * Improve usage to show more available commands
122 122
 * redid the IFS setting/resetting chores
123 123
 
124 124
 
125
-2.1
126
-===
125
+## 2.1
127 126
 
128 127
 **The changes should be harmless, but to be safe
129 128
 `mulle-bootstrap dist clean` your projects**
... ...
@@ -140,7 +139,7 @@ be helpful, when building brew packages (for example). (**-nb**)
140 139
 Support for `mulle-build` which has an in general more optimistic approach to
141 140
 life. 2.3 will focus on making operations faster in the Windows bash shell.
142 141
 
143
-### Commands
142
+#### Commands
144 143
 
145 144
 * started on `mulle-bootstrap config`. First implemented setting is
146 145
 `warn_scripts`. You can turn off scripts warning, with
... ...
@@ -156,7 +155,7 @@ build, if `check_usr_local_include` is YES.
156 155
 * remove obsolete `mulle-bootstrap-project.sh` and `mulle-bootstrap project`.
157 156
 The idea behind that has been moved to `mulle-build`.
158 157
 
159
-### Features
158
+#### Features
160 159
 
161 160
 * embedded repositories can now be placed at an arbitrary position within your
162 161
 project tree
... ...
@@ -166,7 +165,7 @@ project tree
166 165
 * improve optimistic support, by memorizing if a fetch, refresh, build went
167 166
 thru successfully. The automatic refresh should run much less often now.
168 167
 
169
-### Cmake
168
+#### Cmake
170 169
 
171 170
 * fixed multiple path settings for cmake
172 171
 * a project can indicate its preferred CC or CXX compiler by files .CC and .CXX
... ...
@@ -174,7 +173,7 @@ in it's project root. e.g. `echo "mulle-clang" > .CC`. This can be overridden
174 173
 by settings. It's there because I have problems when not specifying the compiler
175 174
 on the command line.
176 175
 
177
-### Bugfixes
176
+#### Bugfixes
178 177
 
179 178
 * fixed a problem in the parsing of the repositories file
180 179
 * fixed some as of yet unknown bugs, by improving some path functions
... ...
@@ -184,8 +183,7 @@ on the command line.
184 183
 * fix ALL/NONE in yes no answers to work again
185 184
 
186 185
 
187
-2.0.1
188
-===
186
+### 2.0.1
189 187
 
190 188
 Fixes two bugs
191 189
 
... ...
@@ -193,10 +191,9 @@ Fixes two bugs
193 191
 * fix cut not using -s for extra parameters
194 192
 
195 193
 
196
-2.0
197
-===
194
+# 2.0
198 195
 
199
-### YOUR OLD STUFF MAY NOT RUN ANYMORE
196
+#### YOUR OLD STUFF MAY NOT RUN ANYMORE
200 197
 
201 198
 Do a `mulle-bootstrap dist clean`.
202 199
 
... ...
@@ -211,12 +208,12 @@ to
211 208
 
212 209
 `.bootstrap/<reponame>`
213 210
 
214
-### YOUR OLD SCRIPTS MAY NOT WORK ANYMORE!
211
+#### YOUR OLD SCRIPTS MAY NOT WORK ANYMORE!
215 212
 
216 213
 * Fetch script names have changed. *-install.sh is now *-fetch.sh.
217 214
 
218 215
 
219
-## Changes
216
+#### Changes
220 217
 
221 218
 * Add pre-build.sh script phase (for libcurl really)
222 219
 * Brew formulas are now installed locally into "addictions". A folder which
... ...
@@ -248,8 +245,7 @@ it doesn't matter.
248 245
 * reduced configurability of mulle-bootstrap, since I didn't use it so far much and it slows things down on MINGW
249 246
 
250 247
 
251
-1.1
252
-===
248
+## 1.1
253 249
 
254 250
 * Fix tar install, which was broken
255 251
 * Fix some wordings
... ...
@@ -260,8 +256,7 @@ it doesn't matter.
260 256
 * Don't complain if there are no dependencies generated
261 257
 
262 258
 
263
-1.0
264
-===
259
+# 1.0
265 260
 
266 261
 Version 1.0 breaks compatibility with the previous version. You should "clean"
267 262
 everything.
... ...
@@ -284,9 +279,7 @@ eliminated.
284 279
 * redid the verbosity logging with -v, -vv , -vvv, -t
285 280
 * clean before build is no longer the default
286 281
 
287
-
288
-0.26
289
-===
282
+## 0.26
290 283
 
291 284
 * Check library scripts version vs. executable version (paranoia)
292 285
 * Skip Dirty Harry with -f flag.
... ...
@@ -297,22 +290,20 @@ eliminated.
297 290
 * Make the Dirty Harry check less foolproof, but also less annoying.
298 291
 
299 292
 
300
-0.25
301
-===
293
+## 0.25
302 294
 
303 295
 *  Remove python dependency
304 296
 *  **bootstrap: refresh between fetch and build**
305 297
 
306 298
 
307
-0.24
308
-===
299
+## 0.24
309 300
 
310 301
 *  Fix releasenotes underscores
311 302
 *  Fix xcodebuild path
312 303
 
313 304
 
314
-0.23
315
-===
305
+## 0.23
306
+
316 307
 *  Added -k options to build, to control cleaning before build.
317 308
    You can now specify the default configurations to build with -c.
318 309
    e.g. `mulle-bootstrap -c "Debug"
... ...
@@ -337,8 +328,8 @@ eliminated.
337 328
    cmake flags via "cmakeflags" root build setting.
338 329
 
339 330
 
340
-0.22
341
-===
331
+## 0.22
332
+
342 333
 *  Fix repository order when merging. You should know, that the
343 334
    repository order in `.bootstrap/repositories` needs to be in proper sorted
344 335
    order. Only than can mulle-bootstrap figure out the recursive dependencies
... ...
@@ -364,8 +355,8 @@ eliminated.
364 355
    `CMAKE_LD_FLAGS`.
365 356
 *  Fix wrong --recursive for svn checkout.
366 357
 
367
-0.21
368
-===
358
+
359
+## 0.21
369 360
 
370 361
 *  Fix a bug when updating
371 362
 *  When updating ignore symlinked repositories and do not update embedded
... ...
@@ -378,8 +369,7 @@ eliminated.
378 369
    there (yet).
379 370
 
380 371
 
381
-0.20
382
-===
372
+## 0.20
383 373
 
384 374
 *  Replace `CLONES_FETCH_SUBDIR` with `CLONESFETCH_SUBDIR`.
385 375
 *  mulle-bootstrap now uses the zombie repository detection to actually bury
... ...
@@ -401,8 +391,8 @@ eliminated.
401 391
 *  Grep those lines with an exact line match
402 392
 
403 393
 
404
-0.19
405
-===
394
+## 0.19
395
+
406 396
 *  Forgot a -f on a ln -s , which could result in an irritating output.
407 397
 *  Now also refresh before fetching. mulle-bootstrap will now be able to
408 398
    pick up changes in recursive repositories. And fetch additional repos as
... ...
@@ -412,25 +402,25 @@ eliminated.
412 402
    a remote repository.
413 403
 *  Nicer markup for RELEASENOTES.md
414 404
 
415
-0.18
416
-===
405
+## 0.18
406
+
417 407
 *  Refixed: Fix old favorite bug build_ignore became a directory bug) again ...
418 408
 *  Added refresh, which will be called before build and update automatically
419 409
    to rebuild .bootstrap.auto.
420 410
 
421
-0.17
422
-===
411
+## 0.17
412
+
423 413
 *  Fixed the broken inheritance. The "Always redo bootstrap.auto folder
424 414
    on fetch" fix in 0.15, was in the wrong position. So 0.15 and 0.16 are
425 415
    totally broken releases. Sorry.
426 416
 
427
-0.16
428
-===
417
+## 0.16
418
+
429 419
 *  Fixed misnamed exekutor.
430 420
 *  Fix old favorite bug build_ignore became a directory bug) again ...
431 421
 
432
-0.15
433
-===
422
+## 0.15
423
+
434 424
 *  `tag` checks in all repositories, that a tag does not exist.
435 425
 *  Remove some fluff from regular output.
436 426
 *  Fix a bug involving settings copy  (build_ignore became a directory bug)
... ...
@@ -439,30 +429,30 @@ eliminated.
439 429
    to clean dist anymore after editing .bootstrap files.
440 430
 *  Forgot to write-protect dependencies, when only partial builds were done.
441 431
 
442
-0.14
443
-===
432
+## 0.14
433
+
444 434
 *  Fix various uglies.
445 435
 *  Make white terminals more happening with color choices.
446 436
 *  -v circumvents building into a logfile, which is sometimes more convenient.
447 437
 
448
-0.13
449
-===
438
+## 0.13
439
+
450 440
 *  Fix colorization by using printf, instead of echo.
451 441
 
452
-0.12
453
-===
442
+## 0.12
443
+
454 444
 *  Run post-install.sh also on embedded repositories. Sometimes useful, when
455 445
    you need ./configure to produce some headers.
456 446
 *  Add parameters to "Executing script" line.
457 447
 *  Add "checkout" git flags, to fine tune the clone. But use --recursive
458 448
    per default.
459 449
 
460
-0.11
461
-===
450
+## 0.11
451
+
462 452
 *  Fixes another stale headers problem. Project is creeping towards a 1.0.
463 453
 
464
-0.10
465
-===
454
+## 0.10
455
+
466 456
 *  Fetch settings can be platform specific by using the `uname` as a file
467 457
    extension. e.g. repositories.Darwin. Other settings may follow, if the need
468 458
    arises. So far it hasn't.
... ...
@@ -481,22 +471,22 @@ eliminated.
481 471
 *  Always overwrite headers, otherwise old and stale headers make life
482 472
    unnecessarily more complicated.
483 473
 
484
-0.9.8
485
-===
474
+### 0.9.8
475
+
486 476
 *  Brings more Linux fixes
487 477
 
488
-0.9.7
489
-===
478
+### 0.9.7
479
+
490 480
 *  Allow mulle-bootstrap version to work everywhere.
491 481
 
492
-0.9.6
493
-===
482
+### 0.9.6
483
+
494 484
 *  Figured out that some terminal windows have a white background (duh).
495 485
 *  Fixed shifts for Ubuntu's hated dash.
496 486
 *  Fixed some other Linux problems.
497 487
 
498
-0.9.5
499
-===
488
+### 0.9.5
489
+
500 490
 *  Messed up the tagging somewhat... 0.9.1 and 0.9.2 were the same and
501 491
 *  0.9.3 doesn't even exist. So now 0.9.5 is the one.
502 492
 
... ...
@@ -507,12 +497,12 @@ eliminated.
507 497
 *  Less output during dispensal, when not using -v.
508 498
 *  Reduce usage output to 25 lines.
509 499
 
510
-0.9.1
511
-===
500
+### 0.9.1
501
+
512 502
 *  Fix cmake and configure build.
513 503
 
514
-0.9
515
-===
504
+## 0.9
505
+
516 506
 *  Specifying repos with mulle-bootstrap build <repos> was broken.
517 507
 *  Added -y option, so everything is answered YES. I use this all the time.
518 508
 *  Log xcodebuild command line into logfile.
... ...
@@ -528,14 +518,14 @@ eliminated.
528 518
 *  Add VENDOR_PREFIX to mulle-bootstrap-tag as third parameter.
529 519
 
530 520
 
531
-0.8.1
532
-===
521
+### 0.8.1
522
+
533 523
 *  And the fix, just minutes after the "release". warn scripts didn't
534 524
    find a function, and now I have cleaned this up properly, I think.
535 525
 *  No more duplicate functions.
536 526
 
537
-0.8
538
-===
527
+## 0.8
528
+
539 529
 *  Added dist shortcut, because I always like to type "dist-clean".
540 530
 *  Allow upper-case user input for yes/no questions.
541 531
 *  Write protect dependencies folder, because I have a tendency to edit
... ...
@@ -546,16 +536,16 @@ eliminated.
546 536
 *  Redirect build logs to "build/.repos/.logs", because especially
547 537
    xcodebuild is just too verbose.
548 538
 
549
-0.7.1
550
-===
539
+### 0.7.1
540
+
551 541
 *  Fixed an internal error, when using mulle-bootstrap update.
552 542
 
553
-0.7
554
-===
543
+## 0.7
544
+
555 545
 *  Added version command
556 546
 
557
-0.6
558
-===
547
+##  0.6
548
+
559 549
 *  Improve scripts handling and add a some new phases to
560 550
    the proceedings. Actually the whole script stuff didn't work before...
561 551
 *  Scripts in general aren't documented yet, because it's still very much
... ...
@@ -13,19 +13,31 @@ project (Foo)
13 13
 ## mulle-bootstrap environment
14 14
 ##
15 15
 
16
-include_directories( BEFORE SYSTEM
16
+# check if compiling with mulle-bootstrap (works since 2.6)
17
+
18
+if( NOT MULLE_BOOTSTRAP_VERSION)
19
+  include_directories( BEFORE SYSTEM
17 20
 dependencies/include
18 21
 addictions/include
19 22
 )
20 23
 
21
-
22
-set( CMAKE_LIBRARY_PATH
24
+  set( CMAKE_FRAMEWORK_PATH
23 25
 dependencies/Frameworks
24
-dependencies/lib
25 26
 addictions/Frameworks
27
+${CMAKE_FRAMEWORK_PATH}
28
+)
29
+
30
+  set( CMAKE_LIBRARY_PATH
31
+dependencies/lib
26 32
 addictions/lib
33
+${CMAKE_LIBRARY_PATH}
27 34
 )
28 35
 
36
+set( DEPENDENCIES_DIR dependencies)
37
+set( ADDICTIONS_DIR addictions)
38
+
39
+endif()
40
+
29 41
 
30 42
 
31 43
 ##
... ...
@@ -29,8 +29,8 @@
29 29
 #   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30 30
 #   POSSIBILITY OF SUCH DAMAGE.
31 31
 MULLE_BOOTSTRAP_VERSION_MAJOR=2
32
-MULLE_BOOTSTRAP_VERSION_MINOR=5
33
-MULLE_BOOTSTRAP_VERSION_PATCH=1
32
+MULLE_BOOTSTRAP_VERSION_MINOR=6
33
+MULLE_BOOTSTRAP_VERSION_PATCH=0
34 34
 
35 35
 MULLE_BOOTSTRAP_VERSION="${MULLE_BOOTSTRAP_VERSION_MAJOR}.${MULLE_BOOTSTRAP_VERSION_MINOR}.${MULLE_BOOTSTRAP_VERSION_PATCH}"
36 36
 MULLE_BOOTSTRAP_FAIL_PREFIX="mulle-bootstrap"
... ...
@@ -57,6 +57,27 @@ usage: mulle-bootstrap [flags] [command] [options]
57 57
    -n        : do nothing creative or destructive
58 58
    -v        : -v to be more verbose (-vv or -vvv for more verbosity)
59 59
    -DKEY=VAL : define local key/value C style
60
+EOF
61
+
62
+   if [ ! -z "${VERBOSE}" -o ! -z "${MULLE_BOOTSTRAP_TRACE}" ]
63
+   then
64
+      cat <<EOF
65
+   -l        : be more optimistic and faster
66
+   -ig       : ignore .repos/.graveyard
67
+   -te       : trace execution
68
+   -tm       : trace merge and dependency
69
+   -ts       : trace scripts
70
+   -tit      : don't trace settings
71
+   -tip      : don't trace path functionality
72
+   -t        : trace executrion
73
+   -vv       : very verbose
74
+   -vvv      : extremely vebose
75
+   -s        : be silent
76
+   -V        : verbose build
77
+EOF
78
+   fi
79
+
80
+   cat <<EOF
60 81
 
61 82
  Commands:
62 83
    bootstrap : does fetch and build recursively [default]
... ...
@@ -271,11 +292,11 @@ bootstrap_main()
271 292
             MULLE_BOOTSTRAP_TRACE_SCRIPT_CALLS="YES"
272 293
          ;;
273 294
 
274
-         -tt|--trace-ignores-settings)
295
+         -tit|--trace-ignores-settings)
275 296
             MULLE_BOOTSTRAP_SETTINGS_FLIP_X="YES"
276 297
          ;;
277 298
 
278
-         -tp|--trace-ignores-paths)
299
+         -tip|--trace-ignores-paths)
279 300
             MULLE_BOOTSTRAP_PATHS_FLIP_X="YES"
280 301
          ;;
281 302
 
... ...
@@ -927,6 +927,7 @@ ${C_MAGENTA}${C_BOLD}${sdk}${C_INFO} in \"${builddir}\" ..."
927 927
 
928 928
       logging_redirect_eval_exekutor "${logfile1}" "'${CMAKE}'" \
929 929
 -G "'${CMAKE_GENERATOR}'" \
930
+"-DMULLE_BOOTSTRAP_VERSION=${MULLE_BOOTSTRAP_VERSION}" \
930 931
 "-DCMAKE_BUILD_TYPE='${mapped}'" \
931 932
 "-DDEPENDENCIES_DIR='${dependenciesdir}'" \
932 933
 "-DADDICTIONS_DIR='${addictionsdir}'" \