More CMake build.

* CMakeLists.txt: Add install rules for all targets and serf.pc.

* build/FindAPR.cmake, build/FindAPRUtil.cmake: Do *not* remove the
   leading '-l' from the EXTRALIBS, these are needed to correctly format
   the private libraries in the pkg-config module.


git-svn-id: https://svn.apache.org/repos/asf/serf/trunk@1834408 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 30f6307..9eee9a4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -233,22 +233,8 @@
   endif()
 endif()
 
-if(NOT WINDOWS)
-  # Use a separate variable scope for the substitutions in serf.pc.in.
-  function(make_pkgconfig)
-    set(PREFIX ${CMAKE_INSTALL_PREFIX})
-    if(NOT LIBDIR)
-      set(LIBDIR "${PREIFX}/lib")
-    endif()
-    set(VERSION ${SERF_VERSION})
-    set(MAJOR ${SERF_MAJOR_VERSION})
-    set(INCLUDE_SUBDIR "serf-${SERF_MAJOR_VERSION}")
-    set(LIBS ${DEPENDENCY_LIBRARIES})
-    configure_file("build/serf.pc.in" "serf.pc" @ONLY)
-  endfunction()
-  make_pkgconfig()
-endif()
 
+# Define all targets
 add_library(serf SHARED ${SOURCES} ${SHARED_SOURCES})
 target_link_libraries(serf ${DEPENDENCY_LIBRARIES})
 
@@ -260,4 +246,37 @@
                       VERSION ${SERF_VERSION}
                       SOVERSION ${SERF_SOVERSION})
 
+install(TARGETS serf serf_static
+        ARCHIVE DESTINATION "lib"
+        LIBRARY DESTINATION "lib"
+        RUNTIME DESTINATION "bin")
+
+if(NOT WINDOWS)
+  set(INCLUDE_SUBDIR "serf-${SERF_MAJOR_VERSION}")
+endif()
+install(FILES ${HEADERS} DESTINATION "include/${INCLUDE_SUBDIR}")
+
+
+# Generate the pkg-config module file.
+if(NOT WINDOWS)
+  # Use a separate variable scope for the substitutions in serf.pc.in.
+  function(make_pkgconfig)
+    set(PREFIX ${CMAKE_INSTALL_PREFIX})
+    if(NOT LIBDIR)
+      set(LIBDIR "${PREIFX}/lib")
+    endif()
+    set(VERSION ${SERF_VERSION})
+    set(MAJOR ${SERF_MAJOR_VERSION})
+    unset(LIBS)
+    foreach(DEPLIB ${DEPENDENCY_LIBRARIES})
+      set(LIBS "${LIBS} ${DEPLIB}")
+    endforeach()
+    configure_file("build/serf.pc.in" "serf.pc" @ONLY)
+  endfunction()
+
+  make_pkgconfig()
+  install(FILES "${CMAKE_BINARY_DIR}/serf.pc" DESTINATION "share/pkgconfig")
+endif()
+
+
 add_subdirectory(test)
diff --git a/build/FindAPR.cmake b/build/FindAPR.cmake
index 3df36f2..1ab13d3 100644
--- a/build/FindAPR.cmake
+++ b/build/FindAPR.cmake
@@ -44,7 +44,7 @@
 _apr_invoke(APR_CFLAGS    FALSE "(^| )-(g|O)[^ ]*" --cppflags --cflags)
 _apr_invoke(APR_INCLUDES  TRUE  "(^| )-I"          --includes)
 _apr_invoke(APR_LIBRARIES TRUE  ""                 --link-ld)
-_apr_invoke(APR_EXTRALIBS TRUE  "(^| )-l"          --libs)
+_apr_invoke(APR_EXTRALIBS TRUE  ""                 --libs)
 _apr_invoke(APR_VERSION   TRUE  ""                 --version)
 
 string(REGEX REPLACE "^([0-9]+)\\..*$" "\\1" _apr_major "${APR_VERSION}")
diff --git a/build/FindAPRUtil.cmake b/build/FindAPRUtil.cmake
index bd20b45..9775ce2 100644
--- a/build/FindAPRUtil.cmake
+++ b/build/FindAPRUtil.cmake
@@ -55,7 +55,7 @@
   endmacro(_apu_invoke)
 
   _apu_invoke(APRUTIL_INCLUDES  TRUE  "(^| )-I" --includes)
-  _apu_invoke(APRUTIL_EXTRALIBS TRUE  "(^| )-l" --libs)
+  _apu_invoke(APRUTIL_EXTRALIBS TRUE  ""        --libs)
   _apu_invoke(APRUTIL_LIBRARIES TRUE  ""        --link-ld)
   _apu_invoke(APRUTIL_LDFLAGS   FALSE ""        --ldflags)
   _apu_invoke(APRUTIL_VERSION   TRUE  ""        --version)