File: cmake_minimum_required.bash

package info (click to toggle)
ignition-cmake 2.11.0-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 3,132 kB
  • sloc: xml: 35,671; python: 3,768; javascript: 2,308; sh: 172; ansic: 109; cpp: 64; makefile: 7
file content (74 lines) | stat: -rwxr-xr-x 2,913 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#!/bin/bash
# Verify that cmake_minimum_required statements have matching version numbers

export CMAKE_FILES_TO_CHECK="
  $1/CMakeLists.txt
  $1/cmake/ignition-all-config.cmake.in
  $1/cmake/ignition-component-config.cmake.in
  $1/cmake/ignition-config.cmake.in
  $1/config/ignition-cmake-config.cmake.in"
unset TEST_CMAKE_MIN_REQUIRED_FAILED
# first argument is root of ign-cmake repository
if [[ ! -d "$1"  \
   || ! -a "$1/CMakeLists.txt" \
   || ! -a "$1/cmake/ignition-all-config.cmake.in" \
   || ! -a "$1/cmake/ignition-component-config.cmake.in" \
   || ! -a "$1/cmake/ignition-config.cmake.in" \
   || ! -a "$1/config/ignition-cmake-config.cmake.in" ]]; then
  echo the first argument must be the root of the ign-cmake repository
  export TEST_CMAKE_MIN_REQUIRED_FAILED=1
else
  grep -h '^cmake_minimum_required' $CMAKE_FILES_TO_CHECK \
    | uniq -c \
    | awk '{ if ($1 != "5") { exit 1 }}' \
    || \
    export TEST_CMAKE_MIN_REQUIRED_FAILED=1
fi

if test "$2" = "--xml_output_dir"; then
  xml_output_dir=$3
  if [[ ! -a "${xml_output_dir}" ]]; then
    mkdir -p "${xml_output_dir}"
  fi
  if [[ ! -d "${xml_output_dir}" ]]; then
    echo If using --xml_output_dir, the 3rd argument must be a directory.
    exit 1
  fi
  if [[ -z ${TEST_CMAKE_MIN_REQUIRED_FAILED} ]]; then
    cat <<END > ${xml_output_dir}/cmake_minimum_required.xml
<?xml version="1.0" encoding="UTF-8"?>
<testsuites tests="1" failures="0" disabled="0" errors="0" timestamp="$(date '+%Y-%m-%dT%H:%M:%S')" time="0" name="AllTests">
  <testsuite name="cmake_minimum_required" tests="1" failures="0" disabled="0" errors="0" time="0">
    <testcase name="make" status="run" time="0" classname="cmake_minimum_required" />
  </testsuite>
</testsuites>
END
  else
    cat <<END > ${xml_output_dir}/cmake_minimum_required.xml
<?xml version="1.0" encoding="UTF-8"?>
<testsuites tests="1" failures="1" disabled="0" errors="0" timestamp="$(date '+%Y-%m-%dT%H:%M:%S')" time="0" name="AllTests">
  <testsuite name="cmake_minimum_required" tests="1" failures="1" disabled="0" errors="0" time="0">
    <testcase name="make" status="run" time="0" classname="cmake_minimum_required">
      <failure type="Standard" message="cmake_minimum_required version numbers do not match."><![CDATA[
END
  grep -n '^cmake_minimum_required' $CMAKE_FILES_TO_CHECK \
    >> ${xml_output_dir}/cmake_minimum_required.xml
    cat <<END >> ${xml_output_dir}/cmake_minimum_required.xml
      ]]></failure>
    </testcase>
  </testsuite>
</testsuites>
END
    exit 1
  fi
else
  echo Verify that cmake_minimum_required statements have matching version numbers
  grep -n '^cmake_minimum_required' $CMAKE_FILES_TO_CHECK \
    | sed -e 's@^@  @'
  if [[ -z ${TEST_CMAKE_MIN_REQUIRED_FAILED} ]]; then
    echo --------------------------- Passed ---------------------------
  else
    echo --------------------------- Failed ---------------------------
    exit 1
  fi
fi