else() # get CSF_ value
set (CURRENT_CSF ${${USED_ITEM}})
if (NOT "x${CURRENT_CSF}" STREQUAL "x")
- # prepare a list from a string with whitespaces
+ set (LIBRARY_FROM_CACHE 0)
separate_arguments (CURRENT_CSF)
- list (APPEND USED_EXTERNAL_LIBS_BY_CURRENT_PROJECT ${CURRENT_CSF})
+ foreach (CSF_LIBRARY ${CURRENT_CSF})
+ string (TOLOWER "${CSF_LIBRARY}" CSF_LIBRARY)
+ string (REPLACE "+" "[+]" CSF_LIBRARY "${CSF_LIBRARY}")
+ string (REPLACE "." "" CSF_LIBRARY "${CSF_LIBRARY}")
+ get_cmake_property(ALL_CACHE_VARIABLES CACHE_VARIABLES)
+ string (REGEX MATCHALL "(^|;)3RDPARTY_[^;]+_LIBRARY[^;]*" ALL_CACHE_VARIABLES "${ALL_CACHE_VARIABLES}")
+ foreach (CACHE_VARIABLE ${ALL_CACHE_VARIABLES})
+ set (CURRENT_CACHE_LIBRARY ${${CACHE_VARIABLE}})
+ string (TOLOWER "${CACHE_VARIABLE}" CACHE_VARIABLE)
+
+ if (EXISTS "${CURRENT_CACHE_LIBRARY}" AND NOT IS_DIRECTORY "${CURRENT_CACHE_LIBRARY}")
+ string (REGEX MATCH "_${CSF_LIBRARY}$" IS_ENDING "${CACHE_VARIABLE}")
+ string (REGEX MATCH "^([a-z]+)" CSF_WO_VERSION "${CSF_LIBRARY}")
+ string (REGEX MATCH "_${CSF_WO_VERSION}$" IS_ENDING_WO_VERSION "${CACHE_VARIABLE}")
+ if ("3rdparty_${CSF_LIBRARY}_library" STREQUAL "${CACHE_VARIABLE}" OR
+ "3rdparty_${CSF_WO_VERSION}_library" STREQUAL "${CACHE_VARIABLE}" OR
+ NOT "x${IS_ENDING}" STREQUAL "x" OR
+ NOT "x${IS_ENDING_WO_VERSION}" STREQUAL "x")
+ list (APPEND USED_EXTERNAL_LIBS_BY_CURRENT_PROJECT "${CURRENT_CACHE_LIBRARY}")
+ set (LIBRARY_FROM_CACHE 1)
+ endif()
+ endif()
+ endforeach()
+ endforeach()
+
+ if (NOT ${LIBRARY_FROM_CACHE})
+ # prepare a list from a string with whitespaces
+ separate_arguments (CURRENT_CSF)
+ list (APPEND USED_EXTERNAL_LIBS_BY_CURRENT_PROJECT ${CURRENT_CSF})
+ endif()
endif()
endif()
endif()