mirror of
https://github.com/microsoft/vcpkg.git
synced 2024-12-30 20:59:12 +08:00
90 lines
2.5 KiB
Diff
90 lines
2.5 KiB
Diff
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||
|
index e9647d5..092f40d 100644
|
||
|
--- a/CMakeLists.txt
|
||
|
+++ b/CMakeLists.txt
|
||
|
@@ -424,7 +424,7 @@ if(MSVC)
|
||
|
endif()
|
||
|
|
||
|
add_library(common
|
||
|
- STATIC
|
||
|
+ OBJECT
|
||
|
src/base/logging.cc
|
||
|
src/base/generic_writer.cc
|
||
|
src/base/sysinfo.cc
|
||
|
@@ -497,7 +497,7 @@ endif()
|
||
|
|
||
|
if(WITH_STACK_TRACE)
|
||
|
### Making the library
|
||
|
- add_library(stacktrace STATIC
|
||
|
+ add_library(stacktrace OBJECT
|
||
|
src/stacktrace.cc
|
||
|
src/base/elf_mem_image.cc
|
||
|
src/base/vdso_support.cc)
|
||
|
@@ -926,4 +926,66 @@ if(MSVC)
|
||
|
add_subdirectory(src/windows)
|
||
|
endif()
|
||
|
|
||
|
+foreach(lib IN ITEMS
|
||
|
+ common stacktrace
|
||
|
+ tcmalloc_minimal tcmalloc tcmalloc_minimal_debug tcmalloc_debug
|
||
|
+ profiler
|
||
|
+)
|
||
|
+ if(TARGET "${lib}")
|
||
|
+ install(TARGETS "${lib}")
|
||
|
+ if(lib MATCHES "tcmalloc|profiler")
|
||
|
+ set(pc_file "${CMAKE_CURRENT_BINARY_DIR}/lib${lib}.pc")
|
||
|
+ set(pc_libs_private "${CMAKE_THREAD_LIBS_INIT}")
|
||
|
+ if("execinfo" IN_LIST unwind_libs AND lib MATCHES "tcmalloc")
|
||
|
+ string(APPEND pc_libs_private " -lexecinfo")
|
||
|
+ endif()
|
||
|
+ set(pc_requires_private "")
|
||
|
+ if(gperftools_enable_libunwind AND lib MATCHES "tcmalloc")
|
||
|
+ string(APPEND pc_requires_private " libunwind")
|
||
|
+ endif()
|
||
|
+ file(CONFIGURE OUTPUT "${pc_file}" CONTENT [[
|
||
|
+prefix=
|
||
|
+exec_prefix=${prefix}
|
||
|
+libdir=${prefix}/lib
|
||
|
+includedir=${prefix}/include
|
||
|
+
|
||
|
+Name: @PROJECT_NAME@
|
||
|
+Version: @PROJECT_VERSION@
|
||
|
+Description: Performance tools for C++
|
||
|
+URL: https://github.com/gperftools/gperftools
|
||
|
+Cflags: -I${includedir}
|
||
|
+Libs: -L${libdir} -l@lib@
|
||
|
+Libs.private: @pc_libs_private@
|
||
|
+Requires.private: @pc_requires_private@
|
||
|
+]] @ONLY)
|
||
|
+ install(FILES "${pc_file}" DESTINATION "lib/pkgconfig")
|
||
|
+ endif()
|
||
|
+ endif()
|
||
|
+endforeach()
|
||
|
+
|
||
|
+foreach(exe IN ITEMS addr2line-pdb nm-pdb)
|
||
|
+ if(NOT TARGET "${exe}")
|
||
|
+ continue()
|
||
|
+ elseif(GPERFTOOLS_BUILD_TOOLS)
|
||
|
+ install(TARGETS "${exe}")
|
||
|
+ else()
|
||
|
+ set_target_properties("${exe}" PROPERTIES EXCLUDE_FROM_ALL 1)
|
||
|
+ endif()
|
||
|
+endforeach()
|
||
|
+
|
||
|
+install(
|
||
|
+ FILES
|
||
|
+ src/gperftools/heap-checker.h
|
||
|
+ src/gperftools/heap-profiler.h
|
||
|
+ src/gperftools/malloc_extension.h
|
||
|
+ src/gperftools/malloc_extension_c.h
|
||
|
+ src/gperftools/malloc_hook.h
|
||
|
+ src/gperftools/malloc_hook_c.h
|
||
|
+ src/gperftools/nallocx.h
|
||
|
+ src/gperftools/profiler.h
|
||
|
+ src/gperftools/stacktrace.h
|
||
|
+ "${CMAKE_CURRENT_BINARY_DIR}/gperftools/tcmalloc.h"
|
||
|
+ DESTINATION include/gperftools
|
||
|
+)
|
||
|
+
|
||
|
message(WARNING "note: gperftools' cmake support is incomplete and is best-effort only")
|