cmake could ignore defines for python lib/include passed from the command line if both weren't defined.

This commit is contained in:
Campbell Barton 2011-11-02 21:35:00 +00:00
parent 723e129252
commit b07d92408b

@ -44,8 +44,19 @@ SET(PYTHON_LINKFLAGS "-Xlinker -export-dynamic" CACHE STRING "Linker flags for p
MARK_AS_ADVANCED(PYTHON_LINKFLAGS) MARK_AS_ADVANCED(PYTHON_LINKFLAGS)
# if the user passes these defines as args, we dont want to overwrite
SET(_IS_INC_DEF OFF)
SET(_IS_LIB_DEF OFF)
IF(DEFINED PYTHON_INCLUDE_DIR)
SET(_IS_INC_DEF ON)
ENDIF()
IF(DEFINED PYTHON_LIBRARY)
SET(_IS_LIB_DEF ON)
ENDIF()
# only search for the dirs if we havn't already # only search for the dirs if we havn't already
IF((NOT DEFINED PYTHON_INCLUDE_DIR) OR (NOT DEFINED PYTHON_LIBRARY)) IF((NOT _IS_INC_DEF) OR (NOT _IS_LIB_DEF))
SET(_python_ABI_FLAGS SET(_python_ABI_FLAGS
"m;mu;u; " # release "m;mu;u; " # release
@ -66,6 +77,7 @@ IF((NOT DEFINED PYTHON_INCLUDE_DIR) OR (NOT DEFINED PYTHON_LIBRARY))
#ENDIF() #ENDIF()
STRING(REPLACE " " "" _CURRENT_ABI_FLAGS ${_CURRENT_ABI_FLAGS}) STRING(REPLACE " " "" _CURRENT_ABI_FLAGS ${_CURRENT_ABI_FLAGS})
IF(NOT DEFINED PYTHON_INCLUDE_DIR)
FIND_PATH(PYTHON_INCLUDE_DIR FIND_PATH(PYTHON_INCLUDE_DIR
NAMES NAMES
Python.h Python.h
@ -74,7 +86,9 @@ IF((NOT DEFINED PYTHON_INCLUDE_DIR) OR (NOT DEFINED PYTHON_LIBRARY))
PATH_SUFFIXES PATH_SUFFIXES
include/python${PYTHON_VERSION}${_CURRENT_ABI_FLAGS} include/python${PYTHON_VERSION}${_CURRENT_ABI_FLAGS}
) )
ENDIF()
IF(NOT DEFINED PYTHON_LIBRARY)
FIND_LIBRARY(PYTHON_LIBRARY FIND_LIBRARY(PYTHON_LIBRARY
NAMES NAMES
"python${PYTHON_VERSION}${_CURRENT_ABI_FLAGS}" "python${PYTHON_VERSION}${_CURRENT_ABI_FLAGS}"
@ -83,14 +97,19 @@ IF((NOT DEFINED PYTHON_INCLUDE_DIR) OR (NOT DEFINED PYTHON_LIBRARY))
PATH_SUFFIXES PATH_SUFFIXES
lib64 lib lib64 lib
) )
ENDIF()
IF(PYTHON_LIBRARY AND PYTHON_INCLUDE_DIR) IF(PYTHON_LIBRARY AND PYTHON_INCLUDE_DIR)
break() break()
ELSE() ELSE()
# ensure we dont find values from 2 different ABI versions # ensure we dont find values from 2 different ABI versions
IF(NOT _IS_INC_DEF)
UNSET(PYTHON_INCLUDE_DIR CACHE) UNSET(PYTHON_INCLUDE_DIR CACHE)
ENDIF()
IF(NOT _IS_LIB_DEF)
UNSET(PYTHON_LIBRARY CACHE) UNSET(PYTHON_LIBRARY CACHE)
ENDIF() ENDIF()
ENDIF()
ENDFOREACH() ENDFOREACH()
UNSET(_CURRENT_ABI_FLAGS) UNSET(_CURRENT_ABI_FLAGS)
@ -100,6 +119,9 @@ IF((NOT DEFINED PYTHON_INCLUDE_DIR) OR (NOT DEFINED PYTHON_LIBRARY))
UNSET(_python_SEARCH_DIRS) UNSET(_python_SEARCH_DIRS)
ENDIF() ENDIF()
UNSET(_IS_INC_DEF)
UNSET(_IS_LIB_DEF)
# handle the QUIETLY and REQUIRED arguments and SET PYTHONLIBSUNIX_FOUND to TRUE IF # handle the QUIETLY and REQUIRED arguments and SET PYTHONLIBSUNIX_FOUND to TRUE IF
# all listed variables are TRUE # all listed variables are TRUE
INCLUDE(FindPackageHandleStandardArgs) INCLUDE(FindPackageHandleStandardArgs)