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.
- checksums.yaml +4 -4
- data/bin/demake +62 -53
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 26203e52997d7a1856baddeb73d1d10140b37e97aaf809e1f8ba09fbeaeda684
|
|
4
|
+
data.tar.gz: 2aa16613885a325c1a81cf968c8e637ca8535c25c041ff4a66c2f5948f8ec9f5
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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.
|
|
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 "|]
|
|
649
|
+
\t@echo "|]#{BOX_WIDTH}|=[|#{SHORT_WIDTH}-]|O"
|
|
646
650
|
\t@echo "|=!|;!|O"
|
|
647
|
-
\t@echo "|=!|
|
|
651
|
+
\t@echo "|=!|27 Make targets:|;!|O"
|
|
648
652
|
\t@echo "|=!|;!|O"
|
|
649
|
-
\t@echo "|=!|
|
|
650
|
-
\t@echo "|=!|
|
|
651
|
-
\t@echo "|=!|
|
|
652
|
-
\t@echo "|=!|
|
|
653
|
-
\t@echo "|=!|
|
|
654
|
-
\t@echo "|=!|
|
|
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 "
|
|
660
|
+
\t@echo "|=>|#{SHORT_WIDTH}-<|O"
|
|
657
661
|
END_OF_STRING
|
|
658
662
|
@applications.each do |app|
|
|
659
|
-
menu_target << "\t@echo \"|=!|]
|
|
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 \"|=!|]
|
|
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 \"|={
|
|
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 "|=[
|
|
679
|
-
\t@echo "|]
|
|
680
|
-
\t@echo "|={
|
|
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 "|=[
|
|
692
|
-
\t@echo "|]
|
|
693
|
-
\t@echo "|={
|
|
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
|
-
|
|
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 "|=[
|
|
785
|
-
\t@echo "|]
|
|
786
|
-
\t@echo "|={
|
|
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 "|=[
|
|
812
|
-
\t@echo "|]
|
|
813
|
-
\t@echo "|={
|
|
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 "|=[
|
|
835
|
-
\t@echo "|]
|
|
836
|
-
\t@echo "|={
|
|
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 "|=[
|
|
856
|
-
\t@echo "|]
|
|
857
|
-
\t@echo "|={
|
|
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 "|=[
|
|
920
|
-
\t@echo "|]
|
|
921
|
-
\t@echo "|={
|
|
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 "|=[
|
|
933
|
-
\t@echo "|]
|
|
934
|
-
\t@echo "|={
|
|
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)
|