Jpp 19.3.0-rc.3
the software that should make you happy
Loading...
Searching...
No Matches
cmake.sh
Go to the documentation of this file.
1#!/usr/bin/env zsh
2#
3
4for DIR in $(find $JPP_DIR/{software,examples}/* -maxdepth 0 -type d); do
5
6 MAINS=($({grep -l "int *main" $DIR/*.cc} 2>/dev/null))
7
8 if [[ -f $DIR/CMakeLists.txt ]] && (( ${#MAINS} != 0 )); then
9
10 echo $DIR
11 pushd $DIR
12
13 a0=() # reset
14 b0=() # reset
15
16 a0+=($(awk '/^foreach\‍([a-zA-Z_ ]*$/,/\‍) *$/' CMakeLists.txt | sed 's/foreach(.*$//' | sed 's/)//'))
17 a0+=($(sed -n 's/^jpp_add_executable( *\‍([^$][^ ]*\‍).*/\1/p' CMakeLists.txt))
18 b0+=($(grep -l "int *main" *.cc | sed 's/.cc//'))
19
20 A1=(${(o)a0}) # sort
21 A2=(${(o)b0}) # sort
22
23 let "ERRORS = 0"
24
25 if (( ${#A1} != ${#A2} )); then
26 let "ERRORS += 1"
27 fi
28
29 for (( i = 1; $i <= ${#A1} && $i <= ${#A2}; i += 1 )); do
30 if [[ ${(P)A1[i]} != ${(P)A2[i]} ]]; then
31 let "ERRORS += 1"
32 fi
33 done
34
35 if (( $ERRORS != 0 )); then
36 echo "cmake: $A1[*]"
37 echo "main: $A2[*]"
38 fi
39
40 popd
41 fi
42done
43
44for DIR in $(find $JPP_DIR/software/* -maxdepth 0 -type d); do
45
46 INCLUDES=$({ls $DIR/*.hh} 2>/dev/null)
47
48 if [[ -f $DIR/CMakeLists.txt ]] && (( ${#INCLUDES} != 0 )); then
49
50 echo $DIR
51 pushd $DIR
52
53 a0=() # reset
54 b0=() # reset
55
56 a0+=($(awk '/^ *PUBLIC_HEADER/,/\‍)/' CMakeLists.txt | sed 's/PUBLIC_HEADER//' | sed 's/\‍(OUTPUT_NAME.*\|)\‍)//' | sed 's/.*\///'))
57 a0+=($(awk '/^ *ROOT_DICTIONARY/,/(PUBLIC_HEADER|\‍))/' CMakeLists.txt | sed 's/ROOT_DICTIONARY//' | sed 's/\‍(OUTPUT_NAME.*\|PUBLIC_HEADER.*\|)\‍)//' | sed 's/.*\///'))
58 b0+=($(ls *.hh))
59
60 A1=($(echo $a0[*] | tr ' ' '\n' | sort -u)) # sort & unique
61 A2=($(echo $b0[*] | tr ' ' '\n' | sort -u)) # sort & unique
62
63 let "ERRORS = 0"
64
65 if (( ${#A1} != ${#A2} )); then
66 let "ERRORS += 1"
67 fi
68
69 for (( i = 1; $i <= ${#A1} && $i <= ${#A2}; i += 1 )); do
70 if [[ ${(P)A1[i]} != ${(P)A2[i]} ]]; then
71 let "ERRORS += 1"
72 fi
73 done
74
75 if (( $ERRORS != 0 )); then
76 echo "cmake: $A1[*]"
77 echo "main: $A2[*]"
78 fi
79
80 popd
81 fi
82done