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,30 +77,38 @@ 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})
FIND_PATH(PYTHON_INCLUDE_DIR IF(NOT DEFINED PYTHON_INCLUDE_DIR)
NAMES FIND_PATH(PYTHON_INCLUDE_DIR
Python.h NAMES
HINTS Python.h
${_python_SEARCH_DIRS} HINTS
PATH_SUFFIXES ${_python_SEARCH_DIRS}
include/python${PYTHON_VERSION}${_CURRENT_ABI_FLAGS} PATH_SUFFIXES
) include/python${PYTHON_VERSION}${_CURRENT_ABI_FLAGS}
)
ENDIF()
FIND_LIBRARY(PYTHON_LIBRARY IF(NOT DEFINED PYTHON_LIBRARY)
NAMES FIND_LIBRARY(PYTHON_LIBRARY
"python${PYTHON_VERSION}${_CURRENT_ABI_FLAGS}" NAMES
HINTS "python${PYTHON_VERSION}${_CURRENT_ABI_FLAGS}"
${_python_SEARCH_DIRS} HINTS
PATH_SUFFIXES ${_python_SEARCH_DIRS}
lib64 lib PATH_SUFFIXES
) 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
UNSET(PYTHON_INCLUDE_DIR CACHE) IF(NOT _IS_INC_DEF)
UNSET(PYTHON_LIBRARY CACHE) UNSET(PYTHON_INCLUDE_DIR CACHE)
ENDIF()
IF(NOT _IS_LIB_DEF)
UNSET(PYTHON_LIBRARY CACHE)
ENDIF()
ENDIF() ENDIF()
ENDFOREACH() ENDFOREACH()
@ -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)