Skip to content

Commit

Permalink
Give python users clear instructions about how to install cmake
Browse files Browse the repository at this point in the history
  • Loading branch information
davisking committed Aug 9, 2024
1 parent 3ca155d commit aba96b5
Showing 1 changed file with 40 additions and 3 deletions.
43 changes: 40 additions & 3 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,45 @@ def get_cmake_version(self):
try:
out = subprocess.check_output(['cmake', '--version'])
except:
sys.stderr.write("\nERROR: CMake must be installed to build dlib\n\n")
sys.stderr.write("""
================================================================================
================================================================================
================================================================================
CMake is not installed on your system!
Or it is possible some broken copy of cmake is installed on your system.
It is unfortunately very common for python package managers to include
broken copies of cmake. So if the error above this refers to some file
path to a cmake file inside a python or anaconda or miniconda path then you
should delete that broken copy of cmake from your computer.
Instead, please get an official copy of cmake from one of these known good
sources of an official cmake:
- cmake.org (this is how windows users should get cmake)
- apt install cmake (for Ubuntu or Debian based systems)
- yum install cmake (for Redhat or CenOS based systems)
On a linux machine you can run `which cmake` to see what cmake you are
actually using. If it tells you it's some cmake from any kind of python
packager delete it and install an official cmake.
More generally, cmake is not installed if when you open a terminal window
and type
cmake --version
you get an error. So you can use that as a very basic test to see if you
have cmake installed. That is, if cmake --version doesn't run from the
same terminal window from which you are reading this error message, then
you have not installed cmake. Windows users should take note that they
need to tell the cmake installer to add cmake to their PATH. Since you
can't run commands that are not in your PATH. This is how the PATH works
on Linux as well, but failing to add cmake to the PATH is a particularly
common problem on windows and rarely a problem on Linux.
================================================================================
================================================================================
================================================================================
""")
sys.exit(1)
return re.search(r'version\s*([\d.]+)', out.decode()).group(1)

Expand Down Expand Up @@ -199,8 +237,7 @@ def read_version_from_cmakelists(cmake_file):
return major + '.' + minor + '.' + patch

def read_entire_file(fname):
"""Read text out of a file relative to setup.py.
"""
"""Read text out of a file relative to setup.py. """
return open(os.path.join(fname)).read()

setup(
Expand Down

0 comments on commit aba96b5

Please # to comment.