dev-cafe / autocmake

CMake plugin composer.
http://autocmake.org
BSD 3-Clause "New" or "Revised" License
42 stars 18 forks source link

Improve the way we figure out whether `cmake` command is available #262

Open bast opened 4 years ago

bast commented 4 years ago

Currently we do this:

    p = Popen(
        '{0} --version'.format(cmake_command),
        shell=True,
        stdin=PIPE,
        stdout=PIPE)
    if not ('cmake version' in p.communicate()[0].decode('UTF-8')):
        sys.stderr.write('   This code is built using CMake\n\n')
        sys.stderr.write('   CMake is not found\n')
        sys.stderr.write('   get CMake at http://www.cmake.org/\n')
        sys.stderr.write('   on many clusters CMake is installed\n')
        sys.stderr.write('   but you have to load it first:\n')
        sys.stderr.write('   $ module load cmake\n')
        sys.exit(1)

It seems this is not robust and a case has been reported where the output contains "cmake3 version". I think we should better check for the return code instead of grepping for a string.