]> git.cworth.org Git - vogl/commitdiff
Updated CMakeLists.txt to fix ValveSoftware/vogl/issues/16;
authorGregory King <greg.james.king@gmail.com>
Mon, 17 Mar 2014 20:04:18 +0000 (13:04 -0700)
committerCarl Worth <cworth@cworth.org>
Tue, 1 Apr 2014 19:37:30 +0000 (12:37 -0700)
src/CMakeLists.txt:
 (1) Added cmake variable HAS_UPDATED_LIBUNWIND;
 (2) Added message explaining what HAS_UPDATED_LIBUNWIND does;
 (3) Moved add_subdirectory(libbacktrace), add_subdirectory(libbacktrace_test);
     below other add_subdirectory(...) commands;

src/libbacktrace/CMakeLists.txt:
 (1) add_definitions(-DCMAKE_HAS_UPDATED_LIBUNWIND) if HAS_UPDATED_LIBUNWIND=true

src/libbacktrace/btrace.cpp:
 (1) added ifdef check CMAKE_HAS_UPDATED_LIBUNWIND

src/CMakeLists.txt
src/libbacktrace/CMakeLists.txt
src/libbacktrace/btrace.cpp

index a68435530ab222ecad57b3758319380410d71c1a..fd198d3a0395011ebd7e100136b5c8eb6998e03e 100644 (file)
@@ -3,6 +3,13 @@ cmake_minimum_required(VERSION 2.8)
 
 set(SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
 
+option(HAS_UPDATED_LIBUNWIND "Build using unw_backtrace_skip" FALSE)
+
+set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
+
+find_package(LibLZMA REQUIRED)
+find_package(TinyXML REQUIRED)
+
 message("")
 message("cmake options:")
 message("  -DCMAKE_BUILD_TYPE=[debug|release]: Build debug or release.")
@@ -14,6 +21,7 @@ message("  -DBUILD_X64=[On|Off]: Build 32 or 64-bit.")
 message("  -DCLANG_ANALYZE=[On|Off]: Do clang analyze build (will not link).")
 message("  -DCLANG_EVERYTHING=[On|Off]: Do clang build with -Weverything.")
 message("  -DUSE_TELEMETRY=[On|Off]: Build with Telemetry.")
+message("  -DHAS_UPDATED_LIBUNWIND=[On|Off]: Build using unw_backtrace_skip (from valve patched libunwind)")
 message("")
 
 #
@@ -32,7 +40,8 @@ add_subdirectory(voglserver)
 add_subdirectory(voglcmd)
 add_subdirectory(glxspheres)
 add_subdirectory(vogleditor)
-
 add_subdirectory(libbacktrace)
 add_subdirectory(libbacktrace_test)
 
+add_subdirectory(libbacktrace)
+add_subdirectory(libbacktrace_test)
index 544039a12763a9fe15e3b17c028c41aa14fe4d85..9968e91c588ea0e1c997d091d3f670ab514b14d3 100644 (file)
@@ -159,6 +159,7 @@ include_directories (
     ${SRC_DIR}/voglcore
     ${LIBUNWIND_INCLUDE_DIR}
 )
+
 add_library (backtrace STATIC EXCLUDE_FROM_ALL
     ${BACKTRACE_FILE}
     ${FORMAT_FILE}
@@ -173,10 +174,16 @@ add_library (backtrace STATIC EXCLUDE_FROM_ALL
     btrace.cpp
     libelftc_dem_gnu3.c
 )
+
+if(HAS_UPDATED_LIBUNWIND)
+  add_definitions(-DCMAKE_HAS_UPDATED_LIBUNWIND)
+endif(HAS_UPDATED_LIBUNWIND)
+
+
 target_link_libraries(backtrace voglcore)
 
-find_library(LIBUNWIND_LIBRARY libunwind.a)
-target_link_libraries(backtrace ${LIBUNWIND_LIBRARY})
+find_library(LIBUNWIND_LIBRARY libunwind)
+target_link_libraries(backtrace ${LIBUNWIND_LIBRARY} ${LIBLZMA_LIBRARIES})
 
 set_target_properties (backtrace PROPERTIES
     COMPILE_FLAGS "${CMAKE_SHARED_LIBRARY_C_FLAGS}"
index 94f4dd9c3d9774d0847bdaa10e1f3aa0b38427c2..c9a334019934f5eef9b394cb9701a4875ad501c8 100644 (file)
@@ -75,7 +75,7 @@ btrace_glinfo& btrace_get_glinfo()
 int
 btrace_get(uintptr_t *addrs, size_t count_addrs, uint32_t addrs_to_skip)
 {
-#if 1
+#ifdef CMAKE_HAS_UPDATED_LIBUNWIND
     return unw_backtrace_skip((void **)addrs, (int)count_addrs, addrs_to_skip);
 #else
     size_t count = 0;