|
@@ -79,6 +79,53 @@ function (_PYTHON_MARK_AS_INTERNAL)
|
|
|
endfunction()
|
|
|
|
|
|
|
|
|
+function (_PYTHON_RESET_ARTIFACTS comp)
|
|
|
+ set(components ${comp})
|
|
|
+ if (comp STREQUAL "Interpreter")
|
|
|
+ list (APPEND components Compiler Development NumPy)
|
|
|
+ endif()
|
|
|
+ if (comp STREQUAL "Development")
|
|
|
+ list (APPEND components NumPy)
|
|
|
+ endif()
|
|
|
+ set(find_components ${${_PYTHON_BASE}_FIND_COMPONENTS})
|
|
|
+ list(TRANSFORM find_components REPLACE "^Development.*" "Development")
|
|
|
+ list(REMOVE_DUPLICATES find_components)
|
|
|
+
|
|
|
+ foreach (component IN LISTS components)
|
|
|
+ if (NOT component IN_LIST find_components)
|
|
|
+ continue()
|
|
|
+ endif()
|
|
|
+ if (component STREQUAL "Interpreter")
|
|
|
+ unset(_${_PYTHON_PREFIX}_EXECUTABLE CACHE)
|
|
|
+ endif()
|
|
|
+ if (component STREQUAL "Compiler"
|
|
|
+ AND "IronPython" IN_LIST _${_PYTHON_PREFIX}_FIND_IMPLEMENTATIONS)
|
|
|
+ unset(_${_PYTHON_PREFIX}_COMPILER CACHE)
|
|
|
+ endif()
|
|
|
+ if (component STREQUAL "Development")
|
|
|
+ set(artifacts ${ARGN})
|
|
|
+ if (NOT artifacts)
|
|
|
+ set(artifacts LIBRARY SABI_LIBRARY INCLUDE_DIR)
|
|
|
+ endif()
|
|
|
+ unset(_${_PYTHON_PREFIX}_CONFIG)
|
|
|
+ foreach (artifact IN LISTS artifacts)
|
|
|
+ if (artifact IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_ARTIFACTS)
|
|
|
+ if (artifact MATCHES "LIBRARY")
|
|
|
+ unset(_${_PYTHON_PREFIX}_${artifact}_RELEASE CACHE)
|
|
|
+ unset(_${_PYTHON_PREFIX}_${artifact}_DEBUG CACHE)
|
|
|
+ elseif(arifact STREQUAL "INCLUDE_DIR")
|
|
|
+ unset(_${_PYTHON_PREFIX}_${artifact} CACHE)
|
|
|
+ endif()
|
|
|
+ endif()
|
|
|
+ endforeach()
|
|
|
+ endif()
|
|
|
+ if (component STREQUAL "NumPy")
|
|
|
+ unset(_${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR CACHE)
|
|
|
+ endif()
|
|
|
+ endforeach()
|
|
|
+endfunction()
|
|
|
+
|
|
|
+
|
|
|
macro (_PYTHON_SELECT_LIBRARY_CONFIGURATIONS _PYTHON_BASENAME)
|
|
|
if(NOT DEFINED ${_PYTHON_BASENAME}_LIBRARY_RELEASE)
|
|
|
set(${_PYTHON_BASENAME}_LIBRARY_RELEASE "${_PYTHON_BASENAME}_LIBRARY_RELEASE-NOTFOUND")
|
|
@@ -1915,6 +1962,8 @@ if ("Interpreter" IN_LIST ${_PYTHON_BASE}_FIND_COMPONENTS)
|
|
|
if (NOT ${_PYTHON_PREFIX}_EXECUTABLE STREQUAL _${_PYTHON_PREFIX}_EXECUTABLE)
|
|
|
# invalidate cache properties
|
|
|
unset (_${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES CACHE)
|
|
|
+ # invalidate the previous results for any other requested components
|
|
|
+ _python_reset_artifacts(Interpreter)
|
|
|
endif()
|
|
|
set (_${_PYTHON_PREFIX}_EXECUTABLE "${${_PYTHON_PREFIX}_EXECUTABLE}" CACHE INTERNAL "")
|
|
|
unset (_${_PYTHON_PREFIX}_EXECUTABLE_DEBUG CACHE)
|
|
@@ -2821,18 +2870,17 @@ if (("Development.Module" IN_LIST ${_PYTHON_BASE}_FIND_COMPONENTS
|
|
|
|
|
|
if (DEFINED ${_PYTHON_PREFIX}_LIBRARY
|
|
|
AND IS_ABSOLUTE "${${_PYTHON_PREFIX}_LIBRARY}")
|
|
|
+ _python_reset_artifacts(Development)
|
|
|
set (_${_PYTHON_PREFIX}_LIBRARY_RELEASE "${${_PYTHON_PREFIX}_LIBRARY}" CACHE INTERNAL "")
|
|
|
- unset (_${_PYTHON_PREFIX}_LIBRARY_DEBUG CACHE)
|
|
|
- unset (_${_PYTHON_PREFIX}_INCLUDE_DIR CACHE)
|
|
|
endif()
|
|
|
if (DEFINED ${_PYTHON_PREFIX}_SABI_LIBRARY
|
|
|
AND IS_ABSOLUTE "${${_PYTHON_PREFIX}_SABI_LIBRARY}")
|
|
|
+ _python_reset_artifacts(Development SABI_LIBRARY INCLUDE_DIR)
|
|
|
set (_${_PYTHON_PREFIX}_SABI_LIBRARY_RELEASE "${${_PYTHON_PREFIX}_SABI_LIBRARY}" CACHE INTERNAL "")
|
|
|
- unset (_${_PYTHON_PREFIX}_SABI_LIBRARY_DEBUG CACHE)
|
|
|
- unset (_${_PYTHON_PREFIX}_INCLUDE_DIR CACHE)
|
|
|
endif()
|
|
|
if (DEFINED ${_PYTHON_PREFIX}_INCLUDE_DIR
|
|
|
AND IS_ABSOLUTE "${${_PYTHON_PREFIX}_INCLUDE_DIR}")
|
|
|
+ _python_reset_artifacts(Development INCLUDE_DIR)
|
|
|
set (_${_PYTHON_PREFIX}_INCLUDE_DIR "${${_PYTHON_PREFIX}_INCLUDE_DIR}" CACHE INTERNAL "")
|
|
|
endif()
|
|
|
|