summaryrefslogtreecommitdiff
path: root/cmake/FindCython.cmake
diff options
context:
space:
mode:
authormakaimann <makaim@stanford.edu>2020-02-19 13:54:17 -0800
committerGitHub <noreply@github.com>2020-02-19 15:54:17 -0600
commitc82720479efcf922136f0919f6fc26a502b2515a (patch)
treef9007e124cfc07490e914ae1e1e05747e1e1ee11 /cmake/FindCython.cmake
parentc6a9ab9da205df7cbf192edc142ee151404dcb1b (diff)
Add Python bindings using Cython -- see below for more details (#2879)
Diffstat (limited to 'cmake/FindCython.cmake')
-rw-r--r--cmake/FindCython.cmake77
1 files changed, 77 insertions, 0 deletions
diff --git a/cmake/FindCython.cmake b/cmake/FindCython.cmake
new file mode 100644
index 000000000..6294d2429
--- /dev/null
+++ b/cmake/FindCython.cmake
@@ -0,0 +1,77 @@
+#.rst:
+# FindCython
+# ----------
+#
+# Find ``cython`` executable.
+#
+# This module defines the following variables:
+#
+# ``CYTHON_EXECUTABLE``
+# path to the ``cython`` program
+#
+# ``CYTHON_VERSION``
+# version of ``cython``
+#
+# ``CYTHON_FOUND``
+# true if the program was found
+#
+# See also UseCython.cmake
+#
+#=============================================================================
+# Copyright 2011 Kitware, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#=============================================================================
+
+# Use the Cython executable that lives next to the Python executable
+# if it is a local installation.
+find_package(PythonInterp)
+if(PYTHONINTERP_FOUND)
+ get_filename_component(_python_path ${PYTHON_EXECUTABLE} PATH)
+ find_program(CYTHON_EXECUTABLE
+ NAMES cython cython.bat cython3
+ HINTS ${_python_path}
+ DOC "path to the cython executable")
+else()
+ find_program(CYTHON_EXECUTABLE
+ NAMES cython cython.bat cython3
+ DOC "path to the cython executable")
+endif()
+
+if(CYTHON_EXECUTABLE)
+ set(CYTHON_version_command ${CYTHON_EXECUTABLE} --version)
+
+ execute_process(COMMAND ${CYTHON_version_command}
+ OUTPUT_VARIABLE CYTHON_version_output
+ ERROR_VARIABLE CYTHON_version_error
+ RESULT_VARIABLE CYTHON_version_result
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+ if(NOT ${CYTHON_version_result} EQUAL 0)
+ set(_error_msg "Command \"${CYTHON_version_command}\" failed with")
+ set(_error_msg "${_error_msg} output:\n${CYTHON_version_error}")
+ message(SEND_ERROR "${_error_msg}")
+ else()
+ if("${CYTHON_version_output}" MATCHES "^[Cc]ython version ([^,]+)")
+ set(CYTHON_VERSION "${CMAKE_MATCH_1}")
+ endif()
+ endif()
+endif()
+
+include(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(Cython REQUIRED_VARS CYTHON_EXECUTABLE)
+
+mark_as_advanced(CYTHON_EXECUTABLE)
+
+include(UseCython)
+
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback