Skip to content
Snippets Groups Projects
Commit 9b7c9552 authored by Martin Christoph Hierholzer's avatar Martin Christoph Hierholzer
Browse files

added FindMako (to find the python mako module)

parent c2027f8f
No related branches found
No related tags found
No related merge requests found
# First check for python executable
if(NOT PYTHON_EXECUTABLE)
find_program(PYTHON_EXECUTABLE python)
if(NOT PYTHON_EXECUTABLE)
message(FATAL_ERROR "Please check for python before searching for mako")
endif()
endif()
# If mako was installed by this process previously, check that it is still there
if(MAKO_EXTERNAL_INSTALL)
execute_process(
COMMAND ${PYTHON_EXECUTABLE} "-c \"import mako\""
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/external/python
ERROR_VARIABLE DUMMY
OUTPUT_VARIABLE DUMMY
RESULT_VARIABLE MAKO_STILL_THERE
)
if(MAKO_STILL_THERE)
return()
endif()
endif()
# If mako is not found ...
if(NOT FOUND_MAKO)
# Then look for it by importing it
execute_process(
COMMAND ${PYTHON_EXECUTABLE} -c "import mako"
ERROR_VARIABLE DUMMY
OUTPUT_VARIABLE DUMMY
RESULT_VARIABLE FOUND_MAKO
)
if(FOUND_MAKO EQUAL 0)
message(STATUS "[Mako] Found")
set(FOUND_MAKO TRUE CACHE INTERNAL "Found mako python package")
set(MAKO_EXTERNAL_INSTALL FALSE CACHE INTERNAL "Manual install of mako")
return()
endif()
else()
# If mako already found then continue
# We have checked that it was still there, if we installed it
return()
endif()
message(STATUS "[Mako] Not found")
# Now try and install mako using pip
if(NOT PIP_EXECUTABLE)
find_program(PIP_EXECUTABLE pip)
endif()
if(NOT PIP_EXECUTABLE)
message(FATAL_ERROR "cannot install package without pip")
else()
message(STATUS "[pip] found: ${PIP_EXECUTABLE}")
endif()
# We install it in the build directory
execute_process(
COMMAND ${PIP_EXECUTABLE} install mako
--install-option=--install-purelib=${PROJECT_BINARY_DIR}/external/python
--install-option=--install-scripts=${PROJECT_BINARY_DIR}/external/python
--install-option=--prefix=${PROJECT_BINARY_DIR}/external/python
OUTPUT_VARIABLE PIP_OUTPUT
ERROR_VARIABLE PIP_ERROR
RESULT_VARIABLE PIP_INSTALLATION_WORKED
)
if(NOT PIP_INSTALLATION_WORKED EQUAL 0)
message(STATUS "${PIP_OUTPUT}")
message(STATUS "${PIP_ERROR}")
message(FATAL_ERROR "Could not install mako. Please see error message above")
else()
message(STATUS "[Mako] installed in ${PROJECT_BINARY_DIR}/external/python")
endif()
execute_process(
COMMAND ${PYTHON_EXECUTABLE} -c "import mako"
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/external/python
ERROR_VARIABLE DUMMY
OUTPUT_VARIABLE DUMMY
RESULT_VARIABLE FOUND_MAKO
)
if(FOUND_MAKO EQUAL 0)
message(STATUS "[Mako] now available in build directory")
set(FOUND_MAKO TRUE CACHE INTERNAL "Found mako python package")
set(MAKO_EXTERNAL_INSTALL TRUE CACHE INTERNAL "Manual install of mako")
return()
else()
message(FATAL_ERROR "Could not install mako")
endif()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment