[mlpack-git] master: When creating list of libraries, filter duplicates and use -L correctly. (316d4b0)
gitdub at mlpack.org
gitdub at mlpack.org
Wed Oct 5 10:59:42 EDT 2016
Repository : https://github.com/mlpack/mlpack
On branch : master
Link : https://github.com/mlpack/mlpack/compare/81be55c2fe8ff2ba2b329d48706a940c30b39e3e...316d4b002e7fb514afab1138e496e2b87e43e52d
>---------------------------------------------------------------
commit 316d4b002e7fb514afab1138e496e2b87e43e52d
Author: Ryan Curtin <ryan at ratml.org>
Date: Wed Oct 5 10:58:42 2016 -0400
When creating list of libraries, filter duplicates and use -L correctly.
>---------------------------------------------------------------
316d4b002e7fb514afab1138e496e2b87e43e52d
CMakeLists.txt | 30 +++++++++++++++++++++++++-----
1 file changed, 25 insertions(+), 5 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 09e54ae..a34771b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -518,21 +518,41 @@ if (PKG_CONFIG_FOUND)
"${MLPACK_INCLUDE_DIRS_STRING} -I${CMAKE_INSTALL_PREFIX}/include/")
# Create the list of link directories.
+ set(MLPACK_LIBRARIES_LIST)
foreach (linkdir ${MLPACK_LIBRARY_DIRS})
- set(MLPACK_LIBRARIES_STRING "${MLPACK_LIBRARIES_STRING} -L${linkdir}")
+ list(APPEND MLPACK_LIBRARIES_LIST "-L${linkdir}")
endforeach ()
foreach(lib ${MLPACK_LIBRARIES})
string(SUBSTRING "${lib}" 0 1 first)
if ("${first}" STREQUAL "/")
- set(MLPACK_LIBRARIES_STRING "${MLPACK_LIBRARIES_STRING} -L${lib}")
+ # We need to split the directory and the library.
+ string(REGEX REPLACE "(.*/)[^/]*$" "\\1" library_dir "${lib}")
+ string(REGEX REPLACE ".*/lib([^/]*).so.*$" "\\1" library_name "${lib}")
+
+ list(APPEND MLPACK_LIBRARIES_LIST "-L${library_dir}")
+ list(APPEND MLPACK_LIBRARIES_LIST "-l${library_name}")
else ()
- set(MLPACK_LIBRARIES_STRING "${MLPACK_LIBRARIES_STRING} -l${lib}")
+ list(APPEND MLPACK_LIBRARIES_LIST "-l${lib}")
endif ()
endforeach ()
# Don't forget to add mlpack as a dependency too.
- set(MLPACK_LIBRARIES_STRING
- "${MLPACK_LIBRARIES_STRING} -L${CMAKE_INSTALL_PREFIX}/lib/ -lmlpack")
+ list(APPEND MLPACK_LIBRARIES_LIST "-L${CMAKE_INSTALL_PREFIX}/lib/")
+ list(APPEND MLPACK_LIBRARIES_LIST "-lmlpack")
+
+ # Filter duplicate dependencies and directories.
+ list(REMOVE_DUPLICATES MLPACK_LIBRARIES_LIST)
+
+ # Filter out known unnecessary directories.
+ list(REMOVE_ITEM MLPACK_LIBRARIES_LIST
+ "-L/usr/lib"
+ "-L/usr/lib/"
+ "-L/usr/lib/x86_64-linux-gnu"
+ "-L/usr/lib/x86_64-linux-gnu/"
+ "-L/usr/lib/i386-linux-gnu"
+ "-L/usr/lib/i386-linux-gnu/")
+
+ string(REPLACE ";" " " MLPACK_LIBRARIES_STRING "${MLPACK_LIBRARIES_LIST}")
# Do first stage of configuration.
set(MLPACK_VERSION_STRING "@MLPACK_VERSION_STRING@")
More information about the mlpack-git
mailing list