cxxproject 0.6.29 → 0.6.30

Sign up to get free protection for your applications and to get access to all the features.
Files changed (118) hide show
  1. data/README.md +195 -65
  2. data/lib/cxxproject/buildingblocks/building_block.rb +1 -1
  3. data/lib/cxxproject/buildingblocks/executable.rb +3 -0
  4. data/lib/cxxproject/buildingblocks/has_dependencies_mixin.rb +5 -5
  5. data/lib/cxxproject/buildingblocks/has_sources_mixin.rb +30 -16
  6. data/lib/cxxproject/buildingblocks/single_source.rb +0 -1
  7. data/lib/cxxproject/ext/rake_listener.rb +11 -13
  8. data/lib/cxxproject/plugin_context.rb +6 -4
  9. data/lib/cxxproject/toolchain/colorizing_formatter.rb +8 -5
  10. data/lib/cxxproject/utils/printer.rb +6 -6
  11. data/lib/cxxproject/version.rb +1 -1
  12. data/lib/cxxproject.rb +0 -1
  13. metadata +37 -145
  14. data/.gitignore +0 -18
  15. data/.rvmrc +0 -1
  16. data/Gemfile +0 -6
  17. data/Gemfile.lock +0 -35
  18. data/Rakefile.rb +0 -125
  19. data/cxxproject.gemspec +0 -22
  20. data/example/.gitignore +0 -1
  21. data/example/Rakefile.rb +0 -35
  22. data/example/big_project/.gitignore +0 -2
  23. data/example/big_project/Rakefile_generator.rb +0 -80
  24. data/example/big_project/fak.h +0 -9
  25. data/example/custom/.gitignore +0 -1
  26. data/example/custom/Rakefile.rb +0 -12
  27. data/example/custom/foo.cpp +0 -5
  28. data/example/custom/project.rb +0 -27
  29. data/example/dependency_tests/Rakefile.rb +0 -3
  30. data/example/dependency_tests/help1.h +0 -12
  31. data/example/dependency_tests/help2.h +0 -10
  32. data/example/dependency_tests/main.cpp +0 -6
  33. data/example/dependency_tests/project.rb +0 -3
  34. data/example/generator/Rakefile.rb +0 -12
  35. data/example/generator/main/main.cpp +0 -3
  36. data/example/generator/main/project/project.rb +0 -3
  37. data/example/oneFileOnly/Rakefile.rb +0 -3
  38. data/example/oneFileOnly/config.h +0 -2
  39. data/example/oneFileOnly/main.cpp +0 -8
  40. data/example/oneFileOnly/project_compile.rb +0 -3
  41. data/example/protobuf/.gitignore +0 -4
  42. data/example/protobuf/Rakefile.rb +0 -70
  43. data/example/protobuf/addressbook/addressbook.proto +0 -24
  44. data/example/protobuf/addressbook/addressbook_read.cc +0 -67
  45. data/example/protobuf/addressbook/addressbook_write.cc +0 -93
  46. data/example/protobuf/addressbook/project.rb +0 -16
  47. data/example/protobuf/protobuf.files +0 -37
  48. data/example/protobuf/protobuf_project.rb +0 -9
  49. data/example/simpleUnitTest/Rakefile.rb +0 -4
  50. data/example/simpleUnitTest/atest.cpp +0 -16
  51. data/example/simpleUnitTest/atest.h +0 -11
  52. data/example/simpleUnitTest/project.rb +0 -5
  53. data/example/simpleUnitTest/test.cpp +0 -13
  54. data/example/strange_dirs/Rakefile.rb +0 -4
  55. data/example/strange_dirs/lazyLib/project.rb +0 -5
  56. data/example/strange_dirs/main/main.cpp +0 -5
  57. data/example/strange_dirs/main/project.rb +0 -5
  58. data/example/strange_dirs/src/test.cpp +0 -4
  59. data/example/test.rb +0 -10
  60. data/example/three_tests/Rakefile.rb +0 -5
  61. data/example/three_tests/allsuites/project.rb +0 -4
  62. data/example/three_tests/main/main.cpp +0 -13
  63. data/example/three_tests/main/project.rb +0 -5
  64. data/example/three_tests/suite1/project.rb +0 -6
  65. data/example/three_tests/suite1/suite1.cpp +0 -3
  66. data/example/three_tests/suite1/suite1.h +0 -28
  67. data/example/three_tests/suite2/project.rb +0 -6
  68. data/example/three_tests/suite2/suite2.cpp +0 -3
  69. data/example/three_tests/suite2/suite2.h +0 -29
  70. data/junit.rb +0 -91
  71. data/lib/cxxproject/ext/string.rb +0 -9
  72. data/plugins/tmp/.rvmrc +0 -1
  73. data/plugins/tmp/BuildDir/objects/testme/test.o +0 -0
  74. data/plugins/tmp/BuildDir/objects/testme/test.o.d +0 -1
  75. data/plugins/tmp/BuildDir/testme.exe +0 -0
  76. data/plugins/tmp/Rakefile.rb +0 -6
  77. data/plugins/tmp/project.rb +0 -6
  78. data/plugins/tmp/reinstall/Rakefile.rb +0 -15
  79. data/plugins/tmp/test.cpp +0 -7
  80. data/rake_helper/perftools.rb +0 -34
  81. data/rake_helper/spec.rb +0 -65
  82. data/roodi.yml +0 -8
  83. data/spec/building_block_spec.rb +0 -103
  84. data/spec/file_ext_spec.rb +0 -30
  85. data/spec/ide_interface_spec.rb +0 -41
  86. data/spec/plugin_context_spec.rb +0 -57
  87. data/spec/provider_spec.rb +0 -39
  88. data/spec/rake_listener_ext_spec.rb +0 -58
  89. data/spec/spec_helper.rb +0 -18
  90. data/spec/string_spec.rb +0 -11
  91. data/spec/testdata/basic/exe12/help.cpp +0 -5
  92. data/spec/testdata/basic/exe12/help.h +0 -6
  93. data/spec/testdata/basic/exe12/main.cpp +0 -10
  94. data/spec/testdata/basic/exe12/project.rb +0 -5
  95. data/spec/testdata/basic/lib1/lib1.cpp +0 -7
  96. data/spec/testdata/basic/lib1/lib1.h +0 -8
  97. data/spec/testdata/basic/lib1/project.rb +0 -5
  98. data/spec/testdata/basic/lib2/lib2.cpp +0 -17
  99. data/spec/testdata/basic/lib2/lib2.h +0 -6
  100. data/spec/testdata/basic/lib2/project.rb +0 -8
  101. data/spec/testdata/multiple_levels/libs/lib1/lib1.cpp +0 -7
  102. data/spec/testdata/multiple_levels/libs/lib1/lib1.h +0 -8
  103. data/spec/testdata/multiple_levels/libs/lib1/project.rb +0 -5
  104. data/spec/testdata/multiple_levels/libs/lib2/lib2.cpp +0 -21
  105. data/spec/testdata/multiple_levels/libs/lib2/lib2.h +0 -6
  106. data/spec/testdata/multiple_levels/libs/lib2/project.rb +0 -19
  107. data/spec/testdata/multiple_levels/mainproject/basic/help.cpp +0 -5
  108. data/spec/testdata/multiple_levels/mainproject/basic/help.h +0 -6
  109. data/spec/testdata/multiple_levels/mainproject/basic/main.cpp +0 -10
  110. data/spec/testdata/multiple_levels/mainproject/basic/project.rb +0 -8
  111. data/spec/testdata/onlyOneHeader/.gitignore +0 -1
  112. data/spec/testdata/onlyOneHeader/Rakefile.rb +0 -4
  113. data/spec/testdata/onlyOneHeader/help.cpp +0 -5
  114. data/spec/testdata/onlyOneHeader/help.h +0 -7
  115. data/spec/testdata/onlyOneHeader/main.cpp +0 -8
  116. data/spec/testdata/onlyOneHeader/project.rb +0 -4
  117. data/spec/testdata/onlyOneHeader/testin.c +0 -0
  118. data/spec/toolchain_spec.rb +0 -29
data/README.md CHANGED
@@ -5,6 +5,180 @@ see documentation page: [cxxproject](http://marcmo.github.com/cxxproject)
5
5
 
6
6
  ## Change History:
7
7
 
8
+ 0.6.28 => 0.6.29
9
+
10
+ * Bump to 0.6.29
11
+
12
+ * moved some specs to cxx
13
+
14
+ * cleanup rake_helper
15
+
16
+ * removed support for old ruby (only ruby > 1.9 is now supported)
17
+
18
+ * added env-test to generate junit.xml from specs
19
+
20
+ * updated gems
21
+
22
+
23
+ 0.6.27 => 0.6.28
24
+
25
+ * Bump to 0.6.28
26
+
27
+ * bugfix for whole-archive
28
+ if compiler does not define the start and end flags
29
+
30
+
31
+ 0.6.25 => 0.6.27
32
+
33
+ * Bump to 0.6.26
34
+
35
+ * Fixes #102
36
+ redefinition of building blocks does not provoke error
37
+
38
+ * added junit spec-helper
39
+
40
+ * fixed verify error on jenkins
41
+
42
+ * added whole_archive to source-libs
43
+ usually you want to let the linker decide which functions of a
44
+ library should be linked into the executable. this does not work
45
+ for some situations where a compile time plugin system registers
46
+ stuff with variables that are not used in the program. e.g. unit-tests.
47
+ the old cxxproject handled every library as whole-archive which led to
48
+ huge binaries ... now you can flag only the needed libraries as such.
49
+
50
+ * added includes to binlibs
51
+
52
+
53
+ 0.6.24 => 0.6.25
54
+
55
+ * Bump to 0.6.25
56
+
57
+
58
+ 0.6.23 => 0.6.24
59
+
60
+ * Bump to 0.6.24
61
+
62
+ * fixed :FLAGS in empty toolchain
63
+
64
+
65
+ 0.6.22 => 0.6.23
66
+
67
+ * Bump to 0.6.23
68
+
69
+ * compiler and linker flags are now arrays
70
+
71
+
72
+ v_0.5.58 => 0.6.22
73
+
74
+ * removed valgrind support
75
+ * introducing plugin infrastructure
76
+ * added gemfile
77
+
78
+ * run-fix for spaces in path to executable
79
+
80
+ * fixed build for directories with spaces
81
+
82
+ * plugins for toolchains
83
+ added test project for plugins
84
+
85
+ * removed whitespace
86
+
87
+ * Merge "plugins for toolchains"
88
+ * removed contrib...will be implemented as plugins if needed
89
+
90
+ * finished plugins for toolchains:
91
+ toolchains for gcc, clang, diab will be published as gems
92
+ new toolchains have to be implemented as plugins
93
+ examples and rspecs are fixed to work with plugin toolchains
94
+
95
+ * updated version history
96
+
97
+ * Merge "updated version history"
98
+ * added wizard support for toolchains
99
+
100
+ * added toolchain candidates to cxx tool
101
+
102
+ * added eclipse .buildpath to gitignore
103
+
104
+ * fixed custom/big_project examples
105
+
106
+ * introduced block for toolchain modification
107
+ it is not possible to modify toolchains before or after the call to CxxProject2Rake
108
+ so we have to provid a means to do this;
109
+
110
+ * refined project-wizard workflow
111
+
112
+ * avaoid exception on project-wizard cancle
113
+
114
+ * added default values in project-wizard
115
+
116
+ * project-wizard uses regex find installed toolchain
117
+
118
+ * added whole-archive for linux
119
+
120
+ * updated version
121
+
122
+ * torake: cleanup naming
123
+
124
+ * fixed so that rake spec:spec can fail again
125
+
126
+ * fixed gemfile for specs
127
+
128
+ * updated erroroutput when parsing was not successfull
129
+
130
+ * updated version and gitignore
131
+
132
+ * splitted toolchain and other plugins
133
+ other plugins need the building blocks .. toolchains not so much
134
+
135
+ * args for run task (rake args=123 run:test.exe)
136
+
137
+ * inverted default of bail_on_first_error
138
+
139
+ * empty lines removed
140
+
141
+ * used frazzle for toolchain and general purpose plugins
142
+
143
+ * moved torake to plugin rubydsl
144
+
145
+ * moved console to seperate plugin
146
+
147
+ * moved basic example to examples repository
148
+
149
+ * new version
150
+
151
+ * code cleanup
152
+
153
+ * moved stats to plugin
154
+
155
+ * updated version for new gem-release
156
+ moved plugin-context-files to cxx
157
+
158
+ * allowed relative paths for sourcefiles again
159
+ .. is replaced by _
160
+
161
+ * Bump to 0.6.16
162
+
163
+ * Bump to 0.6.17
164
+
165
+ * Bump to 0.6.18
166
+
167
+ * more std. conform gemspec allows version bump
168
+
169
+ * moved example ckLayout to examples
170
+
171
+ * Bump to 0.6.19
172
+
173
+ * Bump to 0.6.20
174
+
175
+ * Bump to 0.6.21
176
+
177
+ * Bump to 0.1.10
178
+
179
+ * Bump to 0.1.11
180
+
181
+
8
182
  v_0.5.56 => v_0.5.58
9
183
 
10
184
  * GCC3 include not found error now recognized correctly
@@ -59,7 +233,6 @@ v_0.5.47 => v_0.5.49
59
233
  v_0.5.46 => v_0.5.47
60
234
 
61
235
  * more examples for usage of custom blocks
62
-
63
236
  bumped version
64
237
  updated README
65
238
 
@@ -74,12 +247,10 @@ v_0.5.44 => v_0.5.45
74
247
 
75
248
  * better error message in case of syntax errors in project.rb files
76
249
  * extended support for custom building block: can now have dependencies
77
-
78
250
  also included some example usage
79
251
  * better error messages for users when we have a syntax error in project.rb files
80
252
  * include output directory for CLOBBER task
81
253
  * more robust rakefile in case not all required gems are installed
82
-
83
254
  version bump
84
255
  * version bump
85
256
 
@@ -281,7 +452,6 @@ v_0.5.8 => v_0.5.10
281
452
  * Fixed some bugs like handling of 0, specs are running again
282
453
  * fixed clang compiler formatter (runtime error because formatter api changed)
283
454
  * console output was not captured correctly for old ruby versions
284
-
285
455
  happened for ruby versions < 1.9.2...fixed with this commit
286
456
  * fixed namespace error for Printer
287
457
  * 0.5.10
@@ -290,7 +460,6 @@ v_0.5.7 => v_0.5.8
290
460
 
291
461
  * better matches for gcc warnings/error parser
292
462
  * some formatter tweaking...
293
-
294
463
  added rake task to automatically generate and update release history
295
464
 
296
465
  v_0.5.6 => v_0.5.7
@@ -310,41 +479,25 @@ v_0.5.4 => v_0.5.5
310
479
 
311
480
  * startet to add new errorparser (#82)
312
481
  * command line colorization and ide interface use same formatter now
313
-
314
482
  closes #82, #83
315
483
  regex for parsing the error string is now part of the toolchain,
316
484
  colorizing_formatter now uses errorparser to parse command line output
317
485
  version bump
318
486
 
319
- v_0.5.3 => v_0.5.4
487
+ v_0.5.3.32 => v_0.5.4
320
488
 
321
- * Removed dot graph stuff
322
- * fixed non-ascii char console prob in windows
323
- * polish
324
- * corrected console highlighting (closes #81)
325
- * version bump to 0.5.4
326
-
327
- install dependent gems per default,
328
- enable "on" as keyword for toggling the colorized output
329
489
 
330
- v_0.5.3.32 => v_0.5.3
490
+ v_0.5.3 => v_0.5.3.32
331
491
 
332
-
333
- v_0.5.2 => v_0.5.3.32
334
-
335
- * exit helper for unit tests
336
- * 0.5.3
337
492
  * Removed dot graph stuff
338
493
  * fixed non-ascii char console prob in windows
339
494
  * polish
340
495
  * corrected console highlighting (closes #81)
341
496
  * version bump to 0.5.4
342
-
343
497
  install dependent gems per default,
344
498
  enable "on" as keyword for toggling the colorized output
345
499
  * startet to add new errorparser (#82)
346
500
  * command line colorization and ide interface use same formatter now
347
-
348
501
  closes #82, #83
349
502
  regex for parsing the error string is now part of the toolchain,
350
503
  colorizing_formatter now uses errorparser to parse command line output
@@ -358,12 +511,10 @@ v_0.5.2 => v_0.5.3.32
358
511
  * version 0.5.7
359
512
  * better matches for gcc warnings/error parser
360
513
  * some formatter tweaking...
361
-
362
514
  added rake task to automatically generate and update release history
363
515
  * Fixed some bugs like handling of 0, specs are running again
364
516
  * fixed clang compiler formatter (runtime error because formatter api changed)
365
517
  * console output was not captured correctly for old ruby versions
366
-
367
518
  happened for ruby versions < 1.9.2...fixed with this commit
368
519
  * fixed namespace error for Printer
369
520
  * 0.5.10
@@ -442,6 +593,11 @@ v_0.5.2 => v_0.5.3.32
442
593
  * 0.5.31
443
594
  * Makefile and CommandLine output immediately visible instead of waiting until the step has been completed. Bugfix: attribute pathTo of Makefile did not work for Build This Project Only
444
595
 
596
+ v_0.5.2 => v_0.5.3
597
+
598
+ * exit helper for unit tests
599
+ * 0.5.3
600
+
445
601
  v_0.5.1 => v_0.5.2
446
602
 
447
603
  * Fixed 1.8.6 compatibility, removed transitive_config_deps
@@ -451,22 +607,24 @@ v_0.5.1 => v_0.5.2
451
607
  * fixed task name probs for command line and makefile
452
608
  * removed dependencies because they should be optional
453
609
 
454
- v_0.5.0 => v_0.5.1
610
+ 0.5.1 => v_0.5.1
455
611
 
456
- * fix for spawn, only transitive_config_files in prereqs - #68, #75
457
- * removed debug output - #68
458
612
  * added better errormessage when there is a problem with a project.rb file
459
-
460
613
  include directory from which the failed command was executed
461
614
  * fixed error in gemspec
462
615
  * fixed transitive config spec and ruby 1.8.7 compatibility #80
463
616
 
617
+ v_0.5.0 => 0.5.1
618
+
619
+ * fix for spawn, only transitive_config_files in prereqs - #68, #75
620
+ * removed debug output - #68
621
+ * Fixed 1.8.6 compatibility, removed transitive_config_deps
622
+
464
623
  v_0.4.10 => v_0.5.0
465
624
 
466
625
  * autorefresh after run task - Fixes #58
467
626
  * renamed variable - #56
468
627
  * added dialog to enter filter (defaults to .*) - Fixes #59
469
-
470
628
  update of details after invoke
471
629
  * better open editor - Fixes #60
472
630
  * refactoring of last commits - #24
@@ -479,30 +637,24 @@ v_0.4.10 => v_0.5.0
479
637
  * refactoring and test for error-packets in ide_interface
480
638
  * nr of sourcefiles per executable - #63
481
639
  * added rcov flags to rakefile and fixed ThreadOut accordingly - Fixes #64
482
-
483
640
  coverage is generated into coverage/
484
641
  * Speeded up creating rake tasks
485
642
  * bugfix for speed improvements
486
643
  * monkey patched Task::enhance - #68
487
644
  * Bugfix: clean task is created before monkey patching Rake::Task
488
645
  * ok ... new philosophy ... everything should be as optional as possible - #66
489
-
490
646
  lets see how much rdoc, rake, ... is delivered with 1.8.7 and 1.9.2 (our two supported ruby-interpreters)
491
647
  * better warning when a building block is malformed
492
648
  * closes #70 - gcov in not needed to execute specs
493
-
494
649
  there was a load error when gcov gem was not installed
495
650
  * rename of extensions (closes #71)
496
-
497
651
  now all extensions reside in ext folder and are not called *_ext.rb anymore
498
652
  * introduced modules for all files
499
653
  * added coverage tool for 1.9
500
-
501
654
  used simplecov (optional package)
502
655
  * added google-perftools support - #68
503
656
  * some more tests for relFromTo - #65
504
657
  * added lazy_attribute_with_default - #67
505
-
506
658
  added rake_helper/perftools.rb
507
659
  * bugfix for osx - a33eeaf254ef8abaeae0
508
660
  * preparation of caching. glob on-the-fly. bugfix all_deps.
@@ -530,7 +682,6 @@ v_0.4.10 => v_0.5.0
530
682
  * enhanced test - #67
531
683
  * removed debug output - #23
532
684
  * defined spectask - #Fixes #77
533
-
534
685
  added spectask to point to spec:spec and spec:coverage which should be used instead
535
686
  * made highline optional - Fixes #78
536
687
  * using spawn instad of backtricks prevents 8192 max char problem
@@ -547,17 +698,14 @@ v_0.4.8 => v_0.4.9
547
698
  * moved svg to ghpages
548
699
  * added formatter to gcc toolchain
549
700
  * output is controlled by rake flags
550
-
551
701
  corrected all examples,
552
702
  rake -v -> logger->info & BuildingBlock.verbose, rake -t -> logger->debug
553
703
  * mini readme for grapgstream server
554
704
  * #17 - run:all\[filter\]
555
705
  * removed dummy task
556
706
  * #17 - added more generic tasks
557
-
558
707
  filter[], lib:filter[], exe:filter[], run:filter[]
559
708
  * #13, #15 - llvm clang support
560
-
561
709
  you have to download and install clang binaries as well as llvm-gcc front end binaries and set the path to the bin folders
562
710
  * polish
563
711
  * Fixes #16 - adapted colors to look correct
@@ -567,19 +715,16 @@ v_0.4.8 => v_0.4.9
567
715
  * specs are running again
568
716
  * #27 - apply will be executed immediately
569
717
  * Fixes #28
570
-
571
718
  enabled is now a static variable of ColorizingFormatter. The instances simply forward to that static field. By default it is false, so no colorization takes place. torake sets it to true be default, but you also have an additional task to enable/disable it again (toggle_colorization)
572
719
  * emit compiler command when we have a compiler error
573
720
  * Bugfix of >Fixes #28<: did not run without rainbow
574
721
  * Fixes #25
575
-
576
722
  protobuf addressbook_(read|write).exe including:
577
723
  protobuf download
578
724
  protobuf configure
579
725
  protobuf make to get protoc
580
726
  call to protoc to generate sources
581
727
  * Fixes #29
582
-
583
728
  added question for generation of Rakefile.rb
584
729
  * Fixes for osx and rake 0.9.1
585
730
  * Fixes #32
@@ -590,23 +735,18 @@ v_0.4.8 => v_0.4.9
590
735
  * clean up after object_dependency_spec
591
736
  * Fixes #26
592
737
  * Fixes #37
593
-
594
738
  rework apply_dependency_file
595
739
  * rework apply_dependency_file
596
-
597
740
  Fixes #37
598
741
  * Moved method from module scope to class scope as intended
599
742
  * Rake DSL now included only once and without warning
600
743
  * generator script for big project - Fixes #38
601
-
602
744
  generates a big project (you can choose nr of projects and max nr of files per project)
603
745
  * sync issue in the graphstream client - Fixes #40
604
746
  * ascii progressbar - Fixes #20, Fixes #39
605
-
606
747
  best use together with the rake flag -s
607
748
  * benchmark of the progress precalculations - Fixes #41
608
749
  * Cleanup structure of single directory builds - Fixes #7
609
-
610
750
  the dir output of examples/basic looks like this:
611
751
  build
612
752
  ├── exes
@@ -661,7 +801,6 @@ v_0.4.8 => v_0.4.9
661
801
  * Removed puts of num threads
662
802
  * roodi refactorings - Fixes #24
663
803
  * Revert "roodi refactorings - Fixes #24"
664
-
665
804
  commit was accidental...
666
805
  This reverts commit e92885c1615c1c3d593b54bfea2b33c7ea40a88a.
667
806
  * dont use static fields as much - Fixes #53
@@ -673,11 +812,9 @@ v_0.4.8 => v_0.4.9
673
812
  v_0.4.7 => v_0.4.8
674
813
 
675
814
  * added graphstream support
676
-
677
815
  javalibs, javaserver and client, rubyclient
678
816
  * used a new snapshot of gs-core, where clear works
679
817
  * added support for custom building blocks
680
-
681
818
  and a little bugfix: rebuilding did not work correctly
682
819
  * corrected pom of graphstream_server
683
820
  * start of error parser development
@@ -688,7 +825,6 @@ v_0.4.7 => v_0.4.8
688
825
  * better warning when rubigraph not found
689
826
  * fix example for osx
690
827
  * added support for custom building blocks
691
-
692
828
  and a little bugfix: rebuilding did not work correctly
693
829
  * start of error parser development
694
830
  * cleanup task manager, continued error parser, some cosmetics
@@ -696,17 +832,14 @@ v_0.4.7 => v_0.4.8
696
832
  * fixed indention
697
833
  * reverted indention fix in project.rb and Rakefile.rb
698
834
  * added graphstream support
699
-
700
835
  javalibs, javaserver and client, rubyclient
701
836
  * tuned continuous layout of graphstream server
702
837
  * Merge branch 'graphstream'
703
838
  * removed old jars
704
839
  * added executable jar for grapgstream server
705
-
706
840
  java -jar target/gs-server-0.1-SNAPSHOT-jar-with-dependencies.jar
707
841
  * error parser: further dev
708
842
  * building-block cleanup:
709
-
710
843
  every building block has a convert_to_rake function
711
844
  less implicit state when invoking functions (less side effects)
712
845
  better debug output
@@ -730,7 +863,6 @@ v_0.4.5 => v_0.4.6
730
863
  * split up gemspec
731
864
  * some docu and fixes for rspecs
732
865
  * new tests for correctly setting build dependencies,
733
-
734
866
  found and fixed a bug where we did not rebuild after project file changed
735
867
  * tuned spec rake task
736
868
  * added sozi presentation
@@ -751,7 +883,6 @@ v_0.4.4 => v_0.4.5
751
883
  * namespaces for exes, libs, runs
752
884
  * Merge branch 'master' of github.com:marcmo/cxxproject
753
885
  * refactoring of main task creation function in task_maker,
754
-
755
886
  some corrections to the readme
756
887
  * fixed missing parameter for single_souce case
757
888
  * fixed the refactoring: module building block has also sources, add defines to compiler only one. minor cosmetic stuff
@@ -768,16 +899,13 @@ v_0.4.3 => v_0.4.4
768
899
 
769
900
  * fixed deep copy, added var to change num of cores
770
901
  * flush implementation needed for 1.9.2
771
-
772
902
  also added some targets to work with ubigraph
773
903
  * Merge branch 'master' of https://github.com/marcmo/cxxproject
774
904
  * reformat
775
905
  * added command line bb
776
906
  * enhanced ubigraph support + bugfix for lazy FileLists
777
-
778
907
  see rubygraph: rake namespace
779
908
  * mainly torake changes:
780
-
781
909
  now possible to define multiple configurations in one cxxconfiguration (e.g. one for debug, one for release)
782
910
  updated all examples to work with toolchains instead of compiler
783
911
 
@@ -798,10 +926,8 @@ v_0.4.2 => v_0.4.3
798
926
  * bugfix: c flags incorrect
799
927
  * fixed apply-enhance-break-dependencies-bug, fixed crash if file i depfile does not exist anymore, removed tabs
800
928
  * removed optimization of timestamps...
801
-
802
929
  caching prevented correct builds
803
930
  * added ubigraph support,
804
-
805
931
  bugfixes for needed? method
806
932
  * some roodi fixes and removal of unneeded function
807
933
  * reverted removal of function...is needed to display linker warnings/errors
@@ -831,7 +957,6 @@ v_0.4.1 => v_0.4.2
831
957
  * merged alternative and master branch
832
958
  * fixed basic usecases again
833
959
  * Merge branch 'apichange'
834
-
835
960
  Conflicts:
836
961
  lib/cxxproject.rb
837
962
  lib/cxxproject/buildingblock.rb
@@ -850,7 +975,6 @@ v_0.4.1 => v_0.4.2
850
975
  * bugfix: output dir created if task has no sources
851
976
  * some refactorings and renames
852
977
  * default to whole-archive linker option on gcc
853
-
854
978
  this is neccessary when linking c++ code where global instances register in constructors (as in cppunit)
855
979
  * refactoring name of function
856
980
 
@@ -863,6 +987,12 @@ v_0.4.0 => v_0.4.1
863
987
  task_maker introduces interface that takes the building-blocks and creates the tasks
864
988
  * removed old taskmaker
865
989
  * added comments and tests
866
-
867
990
  started to add dependendy base specs to test correct build/rebuild behavior
868
991
  * added feature: build only for collection of source files
992
+
993
+ 0.1.10 => v_0.4.0
994
+
995
+
996
+ 0.1.9 => 0.1.10
997
+
998
+ * Bump to 0.1.10
@@ -43,7 +43,7 @@ module Cxxproject
43
43
  end
44
44
 
45
45
  def tcs()
46
- raise "Toolchain settings must be set before!" if @tcs.nil?
46
+ raise "Toolchain settings must be set before!" unless has_tcs?
47
47
  @tcs
48
48
  end
49
49
 
@@ -220,5 +220,8 @@ module Cxxproject
220
220
  Dir.tmpdir + "/lake.tmp"
221
221
  end
222
222
 
223
+ def no_sources_found()
224
+ end
225
+
223
226
  end
224
227
  end
@@ -9,13 +9,16 @@ module Cxxproject
9
9
  @helper_dependencies ||= []
10
10
  end
11
11
 
12
+ def convert_named_values_to_string(values)
13
+ values.map { |v| v.instance_of?(String) ? v : v.name }
14
+ end
12
15
  def set_dependencies(deps)
13
- @dependencies = deps.map { |dep| dep.instance_of?(String) ? dep : dep.name }
16
+ @dependencies = convert_named_values_to_string(deps)
14
17
  self
15
18
  end
16
19
 
17
20
  def set_helper_dependencies(deps)
18
- @helper_dependencies = deps.map { |dep| dep.instance_of?(String) ? dep : dep.name }
21
+ @helper_dependencies = convert_named_values_to_string(deps)
19
22
  self
20
23
  end
21
24
 
@@ -54,17 +57,14 @@ module Cxxproject
54
57
  end
55
58
 
56
59
  def collect_dependencies()
57
- # puts "collect for #{name}"
58
60
  res = []
59
61
  res << self
60
62
  todo = dependencies
61
63
  while not todo.empty?
62
- # p todo
63
64
  bb = resolve_by_name(todo.pop)
64
65
  add_unique(res, bb)
65
66
  todo += bb.dependencies
66
67
  end
67
- # puts "result of collect for #{name} -> #{res}"
68
68
  res
69
69
  end
70
70
 
@@ -4,6 +4,8 @@ require 'cxxproject/utils/utils'
4
4
  require 'cxxproject/utils/printer'
5
5
 
6
6
  module Cxxproject
7
+
8
+ # users of this module can implement no_sources_found() to handle cases where no sources are given
7
9
  module HasSources
8
10
 
9
11
  attr_writer :file_dependencies
@@ -17,6 +19,10 @@ module Cxxproject
17
19
  @sources ||= []
18
20
  end
19
21
  def set_sources(x)
22
+ if x.class == Rake::FileList
23
+ raise "specifying sources but FileList is empty!" if x.empty?
24
+ end
25
+ x.each {|f| raise "File #{f} does not exist!" unless File.exists?(f)}
20
26
  @sources = x
21
27
  self
22
28
  end
@@ -174,6 +180,15 @@ module Cxxproject
174
180
  end
175
181
  end
176
182
 
183
+ def add_to_sources_to_build(sources_to_build, excluded_files, sources, alternative_toolchain=nil)
184
+ sources.each do |f|
185
+ next if excluded_files.include?(f)
186
+ next if sources_to_build.has_key?(f)
187
+ t = tcs4source(f) || alternative_toolchain
188
+ sources_to_build[f] = t
189
+ end
190
+ end
191
+
177
192
  def create_object_file_tasks()
178
193
  sources_to_build = {}
179
194
 
@@ -188,12 +203,7 @@ module Cxxproject
188
203
  end
189
204
  files = Set.new # do not build the same file twice
190
205
 
191
- sources.each do |f|
192
- next if exclude_files.include?(f)
193
- next if files.include?(f)
194
- files << f
195
- sources_to_build[f] = tcs4source(f)
196
- end
206
+ add_to_sources_to_build(sources_to_build, exclude_files, sources)
197
207
 
198
208
  source_patterns.each do |p|
199
209
  if p.include?("..")
@@ -205,17 +215,13 @@ module Cxxproject
205
215
  if (globRes.length == 0)
206
216
  Printer.printWarning "Warning: Source file pattern '#{p}' did not match to any file"
207
217
  end
208
- globRes.each do |f|
209
- next if exclude_files.include?(f)
210
- next if files.include?(f)
211
- files << f
212
- t = tcs4source(f)
213
- t = tcs4source(p) if t == nil
214
- sources_to_build[f] = t
215
- end
218
+ add_to_sources_to_build(sources_to_build, exclude_files, globRes, tcs4source(p))
216
219
  end
217
220
 
218
221
  ordered = sources_to_build.keys.sort()
222
+
223
+ no_sources_found() if sources_to_build.empty?
224
+
219
225
  dirs = []
220
226
  filemap = {}
221
227
  ordered.reverse.each do |o|
@@ -224,7 +230,7 @@ module Cxxproject
224
230
  filemap[d] << o
225
231
  else
226
232
  filemap[d] = [o]
227
- dirs << d
233
+ dirs << d
228
234
  end
229
235
  end
230
236
 
@@ -239,12 +245,16 @@ module Cxxproject
239
245
  end
240
246
 
241
247
  def create_object_file_task(sourceRel, the_tcs)
248
+ if !File.exists?(sourceRel)
249
+ raise "File '#{sourceRel}' not found"
250
+ end
251
+
242
252
  if File.is_absolute?(sourceRel)
243
253
  sourceRel = File.rel_from_to_project(@project_dir, sourceRel, false)
244
254
  end
245
255
 
246
256
  type = get_source_type(sourceRel)
247
- return nil if type.nil?
257
+ raise "Unknown filetype for #{sourceRel}" unless type
248
258
 
249
259
  objectRel = get_object_file(sourceRel)
250
260
  @objects << objectRel
@@ -356,5 +366,9 @@ module Cxxproject
356
366
  t
357
367
  end
358
368
 
369
+ def no_sources_found()
370
+ raise "No Sources found for '#{self.class} #{name}'"
371
+ end
372
+
359
373
  end
360
374
  end
@@ -27,7 +27,6 @@ module Cxxproject
27
27
  class SingleSource < BuildingBlock
28
28
  include HasSources
29
29
  include HasIncludes
30
-
31
30
  include SingleSourceModule
32
31
  end
33
32
  end