summaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authorSadie Powell <sadie@witchery.services>2022-01-03 15:36:59 +0000
committerSadie Powell <sadie@witchery.services>2022-01-03 15:50:22 +0000
commitfd1ca96e2c1013cc747f0bc6def1e5da13b44386 (patch)
tree9f4e8449d8236395fc02333d9b595b2411afbc51 /cmake
parent6a7488edc10b8c363c784ac8b342fae8cf0f7e75 (diff)
parent2c18601d8f3a3b5ab8ddb3ecdd90a2c69c7fbc88 (diff)
Merge branch '2.0' into 2.1.
Diffstat (limited to 'cmake')
-rw-r--r--cmake/Anope.cmake22
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