Commit 32a2e5001c41c56ba02bd03b8656033ec6af7ea0

Patrick Steinhardt 2017-07-01T13:41:36

cmake: inline TARGET_OS_LIBRARIES function Previous to keeping track of libraries and linking directories via variables, we had two call sites of the `TARGET_OS_LIBRARIES` function to avoid duplicating knowledge on required operating system library dependencies. But as the libgit2_clar target now re-uses defined variables to link against these libraries, we can simply inline the function.

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6d86f4a..c1b36a6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -155,32 +155,6 @@ ELSE(IS_ABSOLUTE ${INCLUDE_INSTALL_DIR})
   SET (PKGCONFIG_INCLUDEDIR "\${prefix}/${INCLUDE_INSTALL_DIR}")
 ENDIF(IS_ABSOLUTE ${INCLUDE_INSTALL_DIR})
 
-FUNCTION(TARGET_OS_LIBRARIES target)
-	IF(WIN32)
-		TARGET_LINK_LIBRARIES(${target} ws2_32)
-	ELSEIF(CMAKE_SYSTEM_NAME MATCHES "(Solaris|SunOS)")
-		TARGET_LINK_LIBRARIES(${target} socket nsl)
-		LIST(APPEND LIBGIT2_PC_LIBS "-lsocket" "-lnsl")
-		SET(LIBGIT2_PC_LIBS ${LIBGIT2_PC_LIBS} PARENT_SCOPE)
-	ELSEIF(CMAKE_SYSTEM_NAME MATCHES "Haiku")
-		TARGET_LINK_LIBRARIES(${target} network)
-		LIST(APPEND LIBGIT2_PC_LIBS "-lnetwork")
-		SET(LIBGIT2_PC_LIBS ${LIBGIT2_PC_LIBS} PARENT_SCOPE)
-	ENDIF()
-	CHECK_LIBRARY_EXISTS(rt clock_gettime "time.h" NEED_LIBRT)
-	IF(NEED_LIBRT)
-		TARGET_LINK_LIBRARIES(${target} rt)
-		LIST(APPEND LIBGIT2_PC_LIBS "-lrt")
-		SET(LIBGIT2_PC_LIBS ${LIBGIT2_PC_LIBS} PARENT_SCOPE)
-	ENDIF()
-
-	IF(THREADSAFE)
-		TARGET_LINK_LIBRARIES(${target} ${CMAKE_THREAD_LIBS_INIT})
-		LIST(APPEND LIBGIT2_PC_LIBS ${CMAKE_THREAD_LIBS_INIT})
-		SET(LIBGIT2_PC_LIBS ${LIBGIT2_PC_LIBS} PARENT_SCOPE)
-	ENDIF()
-ENDFUNCTION()
-
 # This function splits the sources files up into their appropriate
 # subdirectories.  This is especially useful for IDEs like Xcode and
 # Visual Studio, so that you can navigate into the libgit2_clar project,
@@ -216,6 +190,27 @@ STRING(REGEX REPLACE "^.*LIBGIT2_SOVERSION ([0-9]+)$" "\\1" LIBGIT2_SOVERSION "$
 
 # Find required dependencies
 
+IF(WIN32)
+	LIST(APPEND LIBGIT2_LIBS ws2_32)
+ELSEIF(CMAKE_SYSTEM_NAME MATCHES "(Solaris|SunOS)")
+	LIST(APPEND LIBGIT2_LIBS socket nsl)
+	LIST(APPEND LIBGIT2_PC_LIBS "-lsocket" "-lnsl")
+ELSEIF(CMAKE_SYSTEM_NAME MATCHES "Haiku")
+	LIST(APPEND LIBGIT2_LIBS network)
+	LIST(APPEND LIBGIT2_PC_LIBS "-lnetwork")
+ENDIF()
+
+CHECK_LIBRARY_EXISTS(rt clock_gettime "time.h" NEED_LIBRT)
+IF(NEED_LIBRT)
+	LIST(APPEND LIBGIT2_LIBS rt)
+	LIST(APPEND LIBGIT2_PC_LIBS "-lrt")
+ENDIF()
+
+IF(THREADSAFE)
+	LIST(APPEND LIBGIT2_LIBS ${CMAKE_THREAD_LIBS_INIT})
+	LIST(APPEND LIBGIT2_PC_LIBS ${CMAKE_THREAD_LIBS_INIT})
+ENDIF()
+
 IF (SECURITY_FOUND)
   # OS X 10.7 and older do not have some functions we use, fall back to OpenSSL there
   CHECK_LIBRARY_EXISTS("${SECURITY_DIRS}" SSLCreateContext "Security/SecureTransport.h" HAVE_NEWER_SECURITY)
@@ -646,7 +641,6 @@ ENDIF()
 LINK_DIRECTORIES(${LIBGIT2_LIBDIRS})
 ADD_LIBRARY(git2 ${WIN_RC} ${GIT2INTERNAL_OBJECTS})
 TARGET_LINK_LIBRARIES(git2 ${LIBGIT2_LIBS})
-TARGET_OS_LIBRARIES(git2)
 
 # Workaround for Cmake bug #0011240 (see http://public.kitware.com/Bug/view.php?id=11240)
 # Win64+MSVC+static libs = linker error