Workaround for CMake hanging when calling find_library with a lot of names.
Calling find_library once for each name is much faster than a single call.metadata
parent
c70390820a
commit
8472ede60f
|
@ -99,30 +99,22 @@ macro(FIND_RELEASE_AND_DEBUG)
|
||||||
message(FATAL_ERROR "Missing custom debug suffixes")
|
message(FATAL_ERROR "Missing custom debug suffixes")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
# List with the debug suffixes to use
|
|
||||||
|
|
||||||
|
|
||||||
# Construct the possible debug names {names}x{suffixes}
|
|
||||||
set(LIBRELDBG_NAMES_DEBUG "")
|
|
||||||
foreach(suffix ${LIBRELDBG_DBG_SUFFIXES})
|
|
||||||
foreach(name ${LIBRELDBG_NAMES})
|
|
||||||
set(LIBRELDBG_NAMES_DEBUG ${LIBRELDBG_NAMES_DEBUG} "${name}${suffix}")
|
|
||||||
endforeach()
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
find_library(${LIBPREFIX}_LIBRARY_RELEASE
|
find_library(${LIBPREFIX}_LIBRARY_RELEASE
|
||||||
NAMES ${LIBRELDBG_NAMES}
|
NAMES ${LIBRELDBG_NAMES}
|
||||||
HINTS ${LIBRELDBG_PATHS}
|
HINTS ${LIBRELDBG_PATHS}
|
||||||
PATHS ${LIBRELDBG_FIXED_PATHS}
|
PATHS ${LIBRELDBG_FIXED_PATHS}
|
||||||
PATH_SUFFIXES lib
|
PATH_SUFFIXES lib
|
||||||
)
|
)
|
||||||
find_library(${LIBPREFIX}_LIBRARY_DEBUG
|
# CMake hangs if the list of library names is too long. As of CMake 2.8.11
|
||||||
NAMES ${LIBRELDBG_NAMES_DEBUG}
|
# it is far faster to call find_library many times with a single library name
|
||||||
HINTS ${LIBRELDBG_PATHS}
|
foreach(suffix ${LIBRELDBG_DBG_SUFFIXES})
|
||||||
PATHS ${LIBRELDBG_FIXED_PATHS}
|
foreach(name ${LIBRELDBG_NAMES})
|
||||||
PATH_SUFFIXES lib
|
find_library(${LIBPREFIX}_LIBRARY_DEBUG "${name}${suffix}"
|
||||||
)
|
HINTS ${LIBRELDBG_PATHS}
|
||||||
|
PATHS ${LIBRELDBG_FIXED_PATHS}
|
||||||
|
PATH_SUFFIXES lib)
|
||||||
|
endforeach()
|
||||||
|
endforeach()
|
||||||
|
|
||||||
SELECT_LIBRARY_CONFIGURATIONS(${LIBPREFIX})
|
SELECT_LIBRARY_CONFIGURATIONS(${LIBPREFIX})
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue