demake 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/bin/demake +62 -53
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ad64570b38ff8a61ee1a0707c671e207443422c403048971107ecb88a8b397bf
4
- data.tar.gz: a8ec76e1e656f91b352c5f4207da9727f887d71ad69127f028405153c56789fd
3
+ metadata.gz: 26203e52997d7a1856baddeb73d1d10140b37e97aaf809e1f8ba09fbeaeda684
4
+ data.tar.gz: 2aa16613885a325c1a81cf968c8e637ca8535c25c041ff4a66c2f5948f8ec9f5
5
5
  SHA512:
6
- metadata.gz: 92df21acfb3f996384d3e6284f4c75ae4a0807b75deba072a4d88473c9f6adb22b8348b1b6c8c2c6d7ccdd56880ebe8b904c88b610e72adf3da41d32496136ad
7
- data.tar.gz: 433713d18c06f6ce22aa64f819d5acf98d55f6581dafb57affcb3b0e57e76cf8001703ae6499833dfd4ec1ccd01c2bad2b4752c4999681dc1c3f8d17bee50288
6
+ metadata.gz: d15794d5c2c4c5cc0859a729a440231e677775da91aeb891249641eafb60c3fd62c250adcd3dc2eddfab439c94165d0c3319fd7554c20116f0cc7e5db4bb8f9c
7
+ data.tar.gz: eccd204c1e31f78b80428ea59ffb16d63690e7fb492a2be7b61910874e12da3e9d419db3311fb92c6a0bbdfca2373e99499676fbbe7c526ca8c35051bf4627ac
data/bin/demake CHANGED
@@ -5,7 +5,7 @@
5
5
  #
6
6
  require 'pipetext'
7
7
 
8
- demake_version = "0.1.1"
8
+ demake_version = "0.1.2"
9
9
 
10
10
  @silent = false
11
11
  @compiler = "gcc"
@@ -16,6 +16,10 @@ demake_version = "0.1.1"
16
16
  # Raise if you have more cores and a long compile time
17
17
  @num_threads = 8
18
18
 
19
+ WIDTH = 75
20
+ BOX_WIDTH = WIDTH + "\t@echo".length # To normalize for Makefile format
21
+ SHORT_WIDTH = BOX_WIDTH - 8
22
+
19
23
  # Where to install binaries
20
24
  @prefix = "/usr/local/bin/"
21
25
  @library_prefix = "/usr/local/lib64/"
@@ -642,26 +646,26 @@ end
642
646
  menu_target = <<-END_OF_STRING
643
647
  .PHONY : menu
644
648
  menu :
645
- \t@echo "|]78|=[|70-]|O"
649
+ \t@echo "|]#{BOX_WIDTH}|=[|#{SHORT_WIDTH}-]|O"
646
650
  \t@echo "|=!|;!|O"
647
- \t@echo "|=!|26 Make targets:|;!|O"
651
+ \t@echo "|=!|27 Make targets:|;!|O"
648
652
  \t@echo "|=!|;!|O"
649
- \t@echo "|=!|28 #{@emoji_build} |cbuild|n|;!|O"
650
- \t@echo "|=!|28 #{@emoji_clean} |cclean|n|;!|O"
651
- \t@echo "|=!|28 #{@emoji_debug} |cdebug|n|;!|O"
652
- \t@echo "|=!|28 #{@emoji_install} |cinstall|n|;!|O"
653
- \t@echo "|=!|28 #{@emoji_uninstall} |cuninstall|n|;!|O"
654
- \t@echo "|=!|28 #{@emoji_test} |ctest|n|;!|O"
653
+ \t@echo "|=!|29 #{@emoji_build} |cbuild|n|;!|O"
654
+ \t@echo "|=!|29 #{@emoji_clean} |cclean|n|;!|O"
655
+ \t@echo "|=!|29 #{@emoji_debug} |cdebug|n|;!|O"
656
+ \t@echo "|=!|29 #{@emoji_install} |cinstall|n|;!|O"
657
+ \t@echo "|=!|29 #{@emoji_uninstall} |cuninstall|n|;!|O"
658
+ \t@echo "|=!|29 #{@emoji_test} |ctest|n|;!|O"
655
659
  \t@echo "|=!|;!|O"
656
- \t@echo "|=>|70-<|O"
660
+ \t@echo "|=>|#{SHORT_WIDTH}-<|O"
657
661
  END_OF_STRING
658
662
  @applications.each do |app|
659
- menu_target << "\t@echo \"|=!|]78 Executable: bin/|g#{app[0]}|n|;!|O\"\n"
663
+ menu_target << "\t@echo \"|=!|]#{BOX_WIDTH} Executable: bin/|O|g#{app[0]}|n|=|;!|O\"\n"
660
664
  end
661
665
  @build_libraries.each do |lib|
662
- menu_target << "\t@echo \"|=!|]78 Library: bin/|g#{lib[0]}#{@library_extension}|n|;!|O\"\n"
666
+ menu_target << "\t@echo \"|=!|]#{BOX_WIDTH} Library: bin/|O|g#{lib[0]}#{@library_extension}|n|=|;!|O\"\n"
663
667
  end
664
- menu_target << "\t@echo \"|={|70-}|O\"\n"
668
+ menu_target << "\t@echo \"|={|#{SHORT_WIDTH}-}|O\"\n"
665
669
  @output << "\n"
666
670
  if(@emojis == false)
667
671
  strip_emojis!(menu_target)
@@ -675,9 +679,9 @@ END_OF_STRING
675
679
 
676
680
  @applications.each do |app|
677
681
  executable_target = <<-END_OF_STRING
678
- \t@echo "|=[|70-]|O"
679
- \t@echo "|]78|=! #{@emoji_build} Building executable: bin/|g#{app[0]}|n|;!|O"
680
- \t@echo "|={|70-}|O"
682
+ \t@echo "|=[|#{SHORT_WIDTH}-]|O"
683
+ \t@echo "|]#{BOX_WIDTH}|=! #{@emoji_build} Building executable: bin/|O|g#{app[0]}|n|=|;!|O"
684
+ \t@echo "|={|#{SHORT_WIDTH}-}|O"
681
685
  \t@$(MAKE) $(BINARY)/#{app[0]}
682
686
  END_OF_STRING
683
687
  if(@emojis == false)
@@ -688,9 +692,9 @@ end
688
692
 
689
693
  @build_libraries.each do |lib|
690
694
  library_target = <<-END_OF_STRING
691
- \t@echo "|=[|70-]|O"
692
- \t@echo "|]78|=! #{@emoji_build} Building library: bin/|g#{lib[0]}|n|;!|O"
693
- \t@echo "|={|70-}|O"
695
+ \t@echo "|=[|#{SHORT_WIDTH}-]|O"
696
+ \t@echo "|]#{BOX_WIDTH}|=! #{@emoji_build} Building library: bin/|O|g#{lib[0]}|n|=|;!|O"
697
+ \t@echo "|={|#{SHORT_WIDTH}-}|O"
694
698
  \t@$(MAKE) $(BINARY)/#{lib[0]}#{@library_extension}
695
699
  END_OF_STRING
696
700
  if(@emojis == false)
@@ -702,24 +706,29 @@ end
702
706
  @output << "\n"
703
707
  @output << build_target
704
708
 
709
+ def add_dependencies_from_file(dependencies, filename, path)
710
+ File.readlines(filename).each do |line|
711
+ if(line =~ /#include \"(.*)\"/)
712
+ included_filename = @working_directory + '/' + @source_directory + path + $1
713
+ begin
714
+ File.open(included_filename)
715
+ add_dependencies_from_file(dependencies, included_filename, path)
716
+ rescue Errno::ENOENT
717
+ notify("|YWARNING|n: included dependency does not exist - Removing #{filename}:#{included_filename}\n")
718
+ next
719
+ rescue
720
+ notify("|YWARNING|n: #{$!} - Removing #{filename}:#{included_filename}\n")
721
+ next
722
+ end
723
+ dependencies << "\t\\\n\t$(SOURCE)#{path}#{$1}"
724
+ end
725
+ end
726
+ end
727
+
705
728
  def add_dependencies(filename, path)
706
729
  begin
707
730
  dependencies = String.new
708
- File.readlines(filename).each do |line|
709
- if(line =~ /^#include \"(.*)\"/)
710
- file_name = @working_directory + '/' + @source_directory + path + $1
711
- begin
712
- File.open(file_name)
713
- rescue Errno::ENOENT
714
- notify("|YWARNING|n: included dependency does not exist - Removing #{filename}:#{file_name}\n")
715
- next
716
- rescue
717
- notify("|YWARNING|n: #{$!} - Removing #{filename}:#{file_name}\n")
718
- next
719
- end
720
- dependencies << "\t\\\n\t$(SOURCE)#{path}#{$1}"
721
- end
722
- end
731
+ add_dependencies_from_file(dependencies, filename, path)
723
732
  if(dependencies != "")
724
733
  dependency_targets = <<-END_OF_STRING
725
734
  # Dependencies
@@ -766,7 +775,7 @@ def add_all_dependencies(directory, path)
766
775
  Dir.entries(directory).each do |e|
767
776
  if(e != '.' && e != '..')
768
777
  Dir.chdir(directory) do
769
- if(File.directory?(e) == false)
778
+ if(File.directory?(e) == false && (e =~ /.c$/ || e =~ /.cpp$/))
770
779
  add_dependencies(e, path)
771
780
  end
772
781
  end
@@ -781,9 +790,9 @@ counter = 0
781
790
  counter += 1
782
791
  executable_target = <<-END_OF_STRING
783
792
  $(BINARY)/#{app[0]} : $(OL#{counter})
784
- \t@echo "|=[|70-]|O"
785
- \t@echo "|]78|=! #{@emoji_link} Linking Files...|O bin/|g#{app[0]}|=|n|;!|O"
786
- \t@echo "|={|70-}|O"
793
+ \t@echo "|=[|#{SHORT_WIDTH}-]|O"
794
+ \t@echo "|]#{BOX_WIDTH}|=! #{@emoji_link} Linking Files...|O bin/|g#{app[0]}|=|n|;!|O"
795
+ \t@echo "|={|#{SHORT_WIDTH}-}|O"
787
796
  ifeq '$(OS)' 'Windows_NT'
788
797
  \t@test -d $(BINARY) |||| mkdir $(BINARY)
789
798
  else
@@ -808,9 +817,9 @@ end
808
817
  counter += 1
809
818
  library_target = <<-END_OF_STRING
810
819
  $(BINARY)/#{lib[0]}#{@library_extension} : $(OL#{counter})
811
- \t@echo "|=[|70-]|O"
812
- \t@echo "|]78|=! #{@emoji_link} Linking Files...|O bin/|g#{lib[0]}#{@library_extension}|=|n|;!|O"
813
- \t@echo "|={|70-}|O"
820
+ \t@echo "|=[|#{SHORT_WIDTH}-]|O"
821
+ \t@echo "|]#{BOX_WIDTH}|=! #{@emoji_link} Linking Files...|O bin/|g#{lib[0]}#{@library_extension}|=|n|;!|O"
822
+ \t@echo "|={|#{SHORT_WIDTH}-}|O"
814
823
  ifeq '$(OS)' 'Windows_NT'
815
824
  \t@test -d $(BINARY) |||| mkdir $(BINARY)
816
825
  else
@@ -831,9 +840,9 @@ counter = 0
831
840
  counter += 1
832
841
  debug_executable_target = <<-END_OF_STRING
833
842
  $(BINARY)/#{app[0]}_debug : $(DOL#{counter})
834
- \t@echo "|=[|70-]|O"
835
- \t@echo "|]78|=! #{@emoji_debug} #{@emoji_link} Linking Files...|O bin/|g#{app[0]}_debug|=|n|;!|O"
836
- \t@echo "|={|70-}|O"
843
+ \t@echo "|=[|#{SHORT_WIDTH}-]|O"
844
+ \t@echo "|]#{BOX_WIDTH}|=! #{@emoji_debug} #{@emoji_link} Linking Files...|O bin/|g#{app[0]}_debug|=|n|;!|O"
845
+ \t@echo "|={|#{SHORT_WIDTH}-}|O"
837
846
  ifeq '$(OS)' 'Windows_NT'
838
847
  \t@test -d $(BINARY) |||| mkdir $(BINARY)
839
848
  else
@@ -852,9 +861,9 @@ end
852
861
  counter += 1
853
862
  debug_library_target = <<-END_OF_STRING
854
863
  $(BINARY)/#{lib[0]}_debug#{@library_extension} : $(DOL#{counter})
855
- \t@echo "|=[|70-]|O"
856
- \t@echo "|]78|=! #{@emoji_debug} #{@emoji_link} Linking Files...|O bin/|g#{lib[0]}_debug#{@library_extension}|=|n|;!|O"
857
- \t@echo "|={|70-}|O"
864
+ \t@echo "|=[|#{SHORT_WIDTH}-]|O"
865
+ \t@echo "|]#{BOX_WIDTH}|=! #{@emoji_debug} #{@emoji_link} Linking Files...|O bin/|g#{lib[0]}_debug#{@library_extension}|=|n|;!|O"
866
+ \t@echo "|={|#{SHORT_WIDTH}-}|O"
858
867
  ifeq '$(OS)' 'Windows_NT'
859
868
  \t@test -d $(BINARY) |||| mkdir $(BINARY)
860
869
  else
@@ -916,9 +925,9 @@ END_OF_STRING
916
925
 
917
926
  @applications.each do |app|
918
927
  executable_debug_target = <<-END_OF_STRING
919
- \t@echo "|=[|70-]|O"
920
- \t@echo "|]78|=! #{@emoji_debug} #{@emoji_build} |nBuilding executable:|O bin/|g#{app[0]}_debug|=|n|;!|O"
921
- \t@echo "|={|70-}|O"
928
+ \t@echo "|=[|#{SHORT_WIDTH}-]|O"
929
+ \t@echo "|]#{BOX_WIDTH}|=! #{@emoji_debug} #{@emoji_build} |nBuilding executable:|O bin/|g#{app[0]}_debug|=|n|;!|O"
930
+ \t@echo "|={|#{SHORT_WIDTH}-}|O"
922
931
  \t@$(MAKE) $(BINARY)/#{app[0]}_debug
923
932
  END_OF_STRING
924
933
  if(@emojis == false)
@@ -929,9 +938,9 @@ end
929
938
 
930
939
  @build_libraries.each do |lib|
931
940
  library_debug_target = <<-END_OF_STRING
932
- \t@echo "|=[|70-]|O"
933
- \t@echo "|]78|=! #{@emoji_debug} #{@emoji_build} Building library:|O bin/|g#{lib[0]}_debug#{@library_extension}|=|n|;!|O"
934
- \t@echo "|={|70-}|O"
941
+ \t@echo "|=[|#{SHORT_WIDTH}-]|O"
942
+ \t@echo "|]#{BOX_WIDTH}|=! #{@emoji_debug} #{@emoji_build} Building library:|O bin/|g#{lib[0]}_debug#{@library_extension}|=|n|;!|O"
943
+ \t@echo "|={|#{SHORT_WIDTH}-}|O"
935
944
  \t@$(MAKE) $(BINARY)/#{lib[0]}_debug#{@library_extension}
936
945
  END_OF_STRING
937
946
  if(@emojis == false)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: demake
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Minaswan Nakamoto