diff options
Diffstat (limited to 'modules/HandleImportedTargetsInCMakeRequiredLibraries.cmake')
| -rw-r--r-- | modules/HandleImportedTargetsInCMakeRequiredLibraries.cmake | 85 | 
1 files changed, 0 insertions, 85 deletions
diff --git a/modules/HandleImportedTargetsInCMakeRequiredLibraries.cmake b/modules/HandleImportedTargetsInCMakeRequiredLibraries.cmake deleted file mode 100644 index b775b424..00000000 --- a/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) -  | 
