aboutsummaryrefslogtreecommitdiff
path: root/attic/modules/HandleImportedTargetsInCMakeRequiredLibraries.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'attic/modules/HandleImportedTargetsInCMakeRequiredLibraries.cmake')
-rw-r--r--attic/modules/HandleImportedTargetsInCMakeRequiredLibraries.cmake85
1 files changed, 0 insertions, 85 deletions
diff --git a/attic/modules/HandleImportedTargetsInCMakeRequiredLibraries.cmake b/attic/modules/HandleImportedTargetsInCMakeRequiredLibraries.cmake
deleted file mode 100644
index b775b424..00000000
--- a/attic/modules/HandleImportedTargetsInCMakeRequiredLibraries.cmake
+++ /dev/null
@@ -1,85 +0,0 @@
-
-# This is a helper function used by CheckCXXSourceRuns.cmake and
-# CheckCXXSourceCompiles.cmake. Actually it should be used by all macros which
-# use TRY_COMPILE() or TRY_RUN().
-# It takes the CMAKE_REQUIRED_LIBRARY variable and searches it for imported
-# (library) targets. Since the project created by TRY_COMPILE() (and TRY_RUN())
-# does not know about these imported targets, this macro here replaces these
-# imported targets with the actual library files on disk and it also
-# adds the libraries from the link interface of these imported targets.
-# E.g the imported target KDE4__kdeui is replaced on my system with /opt/kdelibs/lib/libkdeui.so
-# and the link interface libraries, which includes e.g. /opt/kdelibs/lib/libkdecore.so.
-# This way imported targets work also when used with CHECK_CXX_SOURCE_COMPILES/RUNS().
-
-# Copyright (c) 2009, Alexander Neundorf, <neundorf@kde.org>
-#
-# Redistribution and use is allowed according to the terms of the BSD license.
-# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
-
-FUNCTION(HANDLE_IMPORTED_TARGETS_IN_CMAKE_REQUIRED_LIBRARIES _RESULT)
-# handle imported library targets
- SET(_CCSR_IMP_TARGETS_MAP)
- SET(_CCSR_REQ_LIBS ${CMAKE_REQUIRED_LIBRARIES})
- SET(_CHECK_FOR_IMPORTED_TARGETS TRUE)
- SET(_CCSR_LOOP_COUNTER 0)
- WHILE(_CHECK_FOR_IMPORTED_TARGETS)
- MATH(EXPR _CCSR_LOOP_COUNTER "${_CCSR_LOOP_COUNTER} + 1 ")
- SET(_CCSR_NEW_REQ_LIBS )
- SET(_CHECK_FOR_IMPORTED_TARGETS FALSE)
- FOREACH(_CURRENT_LIB ${_CCSR_REQ_LIBS})
- GET_TARGET_PROPERTY(_importedConfigs ${_CURRENT_LIB} IMPORTED_CONFIGURATIONS)
- IF (_importedConfigs)
- # Ok, so this is an imported target.
- # First we get the imported configurations.
- # Then we get the location of the actual library on disk of the first configuration.
- # then we'll get its link interface libraries property,
- # iterate through it and replace all imported targets we find there
- # with there actual location.
-
- # guard against infinite loop: abort after 100 iterations ( 100 is arbitrary chosen)
- IF ("${_CCSR_LOOP_COUNTER}" LESS 100)
- SET(_CHECK_FOR_IMPORTED_TARGETS TRUE)
-# ELSE ("${_CCSR_LOOP_COUNTER}" LESS 1)
-# MESSAGE(STATUS "********* aborting loop, counter : ${_CCSR_LOOP_COUNTER}")
- ENDIF ("${_CCSR_LOOP_COUNTER}" LESS 100)
-
- LIST(GET _importedConfigs 0 _firstImportedConfig)
- GET_TARGET_PROPERTY(_firstImportedLocation ${_CURRENT_LIB} IMPORTED_LOCATION_${_firstImportedConfig})
- GET_TARGET_PROPERTY(_linkInterfaceLibs ${_CURRENT_LIB} IMPORTED_LINK_INTERFACE_LIBRARIES_${_firstImportedConfig} )
-
- LIST(APPEND _CCSR_NEW_REQ_LIBS ${_firstImportedLocation})
-# MESSAGE(STATUS "Appending lib ${_CURRENT_LIB} as ${_firstImportedLocation}")
- IF(_linkInterfaceLibs)
- FOREACH(_currentLinkInterfaceLib ${_linkInterfaceLibs})
-# MESSAGE(STATUS "Appending link interface lib ${_currentLinkInterfaceLib}")
- IF(_currentLinkInterfaceLib)
- LIST(APPEND _CCSR_NEW_REQ_LIBS ${_currentLinkInterfaceLib} )
- ENDIF(_currentLinkInterfaceLib)
- ENDFOREACH(_currentLinkInterfaceLib ${_linkInterfaceLibs})
- ENDIF(_linkInterfaceLibs)
- ELSE(_importedConfigs)
- # "Normal" libraries are just used as they are.
- LIST(APPEND _CCSR_NEW_REQ_LIBS ${_CURRENT_LIB} )
-# MESSAGE(STATUS "Appending lib directly: ${_CURRENT_LIB}")
- ENDIF(_importedConfigs)
- ENDFOREACH(_CURRENT_LIB ${_CCSR_REQ_LIBS})
-
- SET(_CCSR_REQ_LIBS ${_CCSR_NEW_REQ_LIBS} )
- ENDWHILE(_CHECK_FOR_IMPORTED_TARGETS)
-
- # Finally we iterate once more over all libraries. This loop only removes
- # all remaining imported target names (there shouldn't be any left anyway).
- SET(_CCSR_NEW_REQ_LIBS )
- FOREACH(_CURRENT_LIB ${_CCSR_REQ_LIBS})
- GET_TARGET_PROPERTY(_importedConfigs ${_CURRENT_LIB} IMPORTED_CONFIGURATIONS)
- IF (NOT _importedConfigs)
- LIST(APPEND _CCSR_NEW_REQ_LIBS ${_CURRENT_LIB} )
-# MESSAGE(STATUS "final: appending ${_CURRENT_LIB}")
- ELSE (NOT _importedConfigs)
-# MESSAGE(STATUS "final: skipping ${_CURRENT_LIB}")
- ENDIF (NOT _importedConfigs)
- ENDFOREACH(_CURRENT_LIB ${_CCSR_REQ_LIBS})
- SET(${_RESULT} ${_CCSR_NEW_REQ_LIBS} PARENT_SCOPE)
-
-ENDFUNCTION(HANDLE_IMPORTED_TARGETS_IN_CMAKE_REQUIRED_LIBRARIES _CCSR_REQ_LIBS)
-