diff options
author | Sadie Powell <sadie@witchery.services> | 2022-01-03 15:36:59 +0000 |
---|---|---|
committer | Sadie Powell <sadie@witchery.services> | 2022-01-03 15:50:22 +0000 |
commit | fd1ca96e2c1013cc747f0bc6def1e5da13b44386 (patch) | |
tree | 9f4e8449d8236395fc02333d9b595b2411afbc51 /cmake | |
parent | 6a7488edc10b8c363c784ac8b342fae8cf0f7e75 (diff) | |
parent | 2c18601d8f3a3b5ab8ddb3ecdd90a2c69c7fbc88 (diff) |
Merge branch '2.0' into 2.1.
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/Anope.cmake | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/cmake/Anope.cmake b/cmake/Anope.cmake index 06c01525a..bda078da9 100644 --- a/cmake/Anope.cmake +++ b/cmake/Anope.cmake @@ -210,24 +210,32 @@ macro(calculate_libraries SRC SRC_LDFLAGS EXTRA_DEPENDS) string(REGEX REPLACE "," ";" REQUIRED_LIBRARY ${REQUIRED_LIBRARY}) # Iterate through the libraries given foreach(LIBRARY ${REQUIRED_LIBRARY}) + # If the library has multiple names extract the alternate. + unset(LIBRARY_ALT) + if (${LIBRARY} MATCHES "^.+\\|.+$") + string(REGEX REPLACE ".+\\|(.*)" "\\1" LIBRARY_ALT ${LIBRARY}) + string(REGEX REPLACE "(.+)\\|.*" "\\1" LIBRARY ${LIBRARY}) + endif() # Locate the library to see if it exists if(DEFAULT_LIBRARY_DIRS OR WSDK_PATH OR DEFINED $ENV{VCINSTALLDIR}) - find_library(FOUND_${LIBRARY}_LIBRARY NAMES ${LIBRARY} PATHS ${DEFAULT_LIBRARY_DIRS} ${WSDK_PATH}/lib $ENV{VCINSTALLDIR}/lib ${EXTRA_INCLUDE} ${EXTRA_LIBS}) + find_library(FOUND_${LIBRARY}_LIBRARY NAMES ${LIBRARY} ${LIBRARY_ALT} PATHS ${DEFAULT_LIBRARY_DIRS} ${WSDK_PATH}/lib $ENV{VCINSTALLDIR}/lib ${EXTRA_INCLUDE} ${EXTRA_LIBS}) else() - find_library(FOUND_${LIBRARY}_LIBRARY NAMES ${LIBRARY} PATHS ${EXTRA_INCLUDE} ${EXTRA_LIBS} NO_DEFAULT_PATH) - find_library(FOUND_${LIBRARY}_LIBRARY NAMES ${LIBRARY} PATHS ${EXTRA_INCLUDE} ${EXTRA_LIBS}) + find_library(FOUND_${LIBRARY}_LIBRARY NAMES ${LIBRARY} ${LIBRARY_ALT} PATHS ${EXTRA_INCLUDE} ${EXTRA_LIBS} NO_DEFAULT_PATH) + find_library(FOUND_${LIBRARY}_LIBRARY NAMES ${LIBRARY} ${LIBRARY_ALT} PATHS ${EXTRA_INCLUDE} ${EXTRA_LIBS}) endif() # If the library was found, we will add it to the linker flags if(FOUND_${LIBRARY}_LIBRARY) - # Get the path only of the library, to add it to linker flags - get_filename_component(LIBRARY_PATH ${FOUND_${LIBRARY}_LIBRARY} PATH) if(MSVC) # For Visual Studio, instead of editing the linker flags, we'll add the library to a separate list of extra dependencies list(APPEND EXTRA_DEPENDENCIES "${FOUND_${LIBRARY}_LIBRARY}") else() - # For all others, add the library paths and libraries + # Get the path only of the library, to add it to library paths. + get_filename_component(LIBRARY_PATH ${FOUND_${LIBRARY}_LIBRARY} PATH) list(APPEND LIBRARY_PATHS "${LIBRARY_PATH}") - list(APPEND LIBRARIES "${LIBRARY}") + # Extract the library short name, add it to the library path + get_filename_component(LIBRARY_NAME ${FOUND_${LIBRARY}_LIBRARY} NAME_WE) + string(REGEX REPLACE "^lib" "" LIBRARY_NAME ${LIBRARY_NAME}) + list(APPEND LIBRARIES ${LIBRARY_NAME}) endif() else() # In the case of the library not being found, we fatally error so CMake stops trying to generate |