]> git.cworth.org Git - vogl/commitdiff
Merge pull request #23 from kingtaurus/master
authorMichael Sartain <mikesart@gmail.com>
Tue, 18 Mar 2014 23:44:09 +0000 (16:44 -0700)
committerCarl Worth <cworth@cworth.org>
Tue, 1 Apr 2014 19:37:30 +0000 (12:37 -0700)
Proposed changes to fix issue #16.

src/CMakeLists.txt
src/cmake/Modules/FindTinyXML.cmake [new file with mode: 0644]
src/glxspheres/CMakeLists.txt
src/libbacktrace/CMakeLists.txt
src/libbacktrace/btrace.cpp
src/voglcore/CMakeLists.txt
src/voglgen/CMakeLists.txt
src/vogltrace/CMakeLists.txt

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)
diff --git a/src/cmake/Modules/FindTinyXML.cmake b/src/cmake/Modules/FindTinyXML.cmake
new file mode 100644 (file)
index 0000000..3222160
--- /dev/null
@@ -0,0 +1,75 @@
+##################################################################################################
+#
+# CMake script for finding TinyXML.
+#
+# Input variables:
+#
+# - TinyXML_ROOT_DIR (optional): When specified, header files and libraries will be searched for in
+#     ${TinyXML_ROOT_DIR}/include
+#     ${TinyXML_ROOT_DIR}/libs
+#   respectively, and the default CMake search order will be ignored. When unspecified, the default
+#   CMake search order is used.
+#   This variable can be specified either as a CMake or environment variable. If both are set,
+#   preference is given to the CMake variable.
+#   Use this variable for finding packages installed in a nonstandard location, or for enforcing
+#   that one of multiple package installations is picked up.
+#
+#
+# Cache variables (not intended to be used in CMakeLists.txt files)
+#
+# - TinyXML_INCLUDE_DIR: Absolute path to package headers.
+# - TinyXML_LIBRARY: Absolute path to library.
+#
+#
+# Output variables:
+#
+# - TinyXML_FOUND: Boolean that indicates if the package was found
+# - TinyXML_INCLUDE_DIRS: Paths to the necessary header files
+# - TinyXML_LIBRARIES: Package libraries
+#
+#
+# Example usage:
+#
+#  find_package(TinyXML)
+#  if(NOT TinyXML_FOUND)
+#    # Error handling
+#  endif()
+#  ...
+#  include_directories(${TinyXML_INCLUDE_DIRS} ...)
+#  ...
+#  target_link_libraries(my_target ${TinyXML_LIBRARIES})
+#
+##################################################################################################
+#from: https://github.com/ros/cmake_modules/blob/0.3-devel/cmake/Modules/FindTinyXML.cmake
+
+# Get package location hint from environment variable (if any)
+if(NOT TinyXML_ROOT_DIR AND DEFINED ENV{TinyXML_ROOT_DIR})
+  set(TinyXML_ROOT_DIR "$ENV{TinyXML_ROOT_DIR}" CACHE PATH
+      "TinyXML base directory location (optional, used for nonstandard installation paths)")
+endif()
+
+# Search path for nonstandard package locations
+if(TinyXML_ROOT_DIR)
+  set(TinyXML_INCLUDE_PATH PATHS "${TinyXML_ROOT_DIR}/include" NO_DEFAULT_PATH)
+  set(TinyXML_LIBRARY_PATH PATHS "${TinyXML_ROOT_DIR}/lib"     NO_DEFAULT_PATH)
+endif()
+
+# Find headers and libraries
+find_path(TinyXML_INCLUDE_DIR NAMES tinyxml.h PATH_SUFFIXES "tinyxml" ${TinyXML_INCLUDE_PATH})
+find_library(TinyXML_LIBRARY  NAMES tinyxml   PATH_SUFFIXES "tinyxml" ${TinyXML_LIBRARY_PATH})
+
+mark_as_advanced(TinyXML_INCLUDE_DIR
+                 TinyXML_LIBRARY)
+
+# Output variables generation
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(TinyXML DEFAULT_MSG TinyXML_LIBRARY
+                                                      TinyXML_INCLUDE_DIR)
+
+set(TinyXML_FOUND ${TINYXML_FOUND}) # Enforce case-correctness: Set appropriately cased variable...
+unset(TINYXML_FOUND) # ...and unset uppercase variable generated by find_package_handle_standard_args
+
+if(TinyXML_FOUND)
+  set(TinyXML_INCLUDE_DIRS ${TinyXML_INCLUDE_DIR})
+  set(TinyXML_LIBRARIES ${TinyXML_LIBRARY})
+endif()
index e96910ee33ad3c48c157e7c3403df930f4f39d4f..2fb7915243b42b5f0421c92070c118ab044af342 100644 (file)
@@ -3,19 +3,16 @@ cmake_minimum_required(VERSION 2.8)
 
 include("${SRC_DIR}/build_options.cmake")
 find_package(X11 REQUIRED)
+find_package(GLU REQUIRED)
 
-aux_source_directory(. SRC_LIST)
+set(glxsphere_SRC glxspheres.c)
 
-include_directories(
-       ${PROJECT_SOURCE_DIR}/../include
-    )
-
-add_executable(${PROJECT_NAME} ${SRC_LIST})
+add_executable(${PROJECT_NAME} ${glxsphere_SRC})
 
 target_link_libraries(${PROJECT_NAME}
     ${X11_X11_LIB}
     ${OPENGL_LIBRARY}
     m
-    GLU)
+    ${GLU_LIBRARIES})
 
 build_options_finalize()
index 544039a12763a9fe15e3b17c028c41aa14fe4d85..4fd48475f76cfb6b45d686bb07b48ad50083a4e5 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 NAMES unwind libunwind REQUIRE)
+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;
index 476cb3a241e2e3aa19d2ff5c6d44016685640742..8e4bd658c7998b8690e12e2949f6eaae9f0a8112 100644 (file)
@@ -10,7 +10,8 @@ endif ()
 include("${SRC_DIR}/build_options.cmake")
 
 include_directories(
-   "${PROJECT_SOURCE_DIR}/../inc"
+    ${LZMA_INCLUDE_DIR}
+    ${LZMADEC_INCLUDE_DIR}
    "${SRC_DIR}/chromiumlib"
 )
 
@@ -65,23 +66,6 @@ set(SRC_LIST
    vogl_vector.cpp
    vogl_etc.cpp
    vogl_rg_etc1.cpp
-
-   lzma_7zBuf2.cpp
-   lzma_7zBuf.cpp
-   lzma_7zCrc.cpp
-   lzma_7zFile.cpp
-   lzma_7zStream.cpp
-   lzma_Alloc.cpp
-   lzma_Bcj2.cpp
-   lzma_Bra86.cpp
-   lzma_Bra.cpp
-   lzma_BraIA64.cpp
-   lzma_LzFind.cpp
-   # lzma_LzFindMt.cpp
-   lzma_LzmaDec.cpp
-   lzma_LzmaEnc.cpp
-   lzma_LzmaLib.cpp
-   # lzma_Threads.cpp
    rmalloc.c
    regex/debug.c
    regex/regcomp.c
@@ -112,6 +96,8 @@ add_library(${PROJECT_NAME} ${SRC_LIST})
 target_link_libraries(${PROJECT_NAME}
     ${CMAKE_THREAD_LIBS_INIT}
     rt
+    ${LZMA_LIBRARIES}
+    ${LZMADEC_LIBRARIES}
     )
 
 build_options_finalize()
index 751b5ace900f6ebf47037d02268a1da5f3b5bf23..908a195db018316ebc3509a7233a4b903e2e14bf 100644 (file)
@@ -3,17 +3,20 @@ cmake_minimum_required(VERSION 2.8)
 
 include("${SRC_DIR}/build_options.cmake")
 
-aux_source_directory(. SRC_LIST)
-aux_source_directory(tinyxml SRC_LIST)
+set(SRC_LIST voglgen.cpp)
+
+add_definitions(-DTIXML_USE_STL)
 
 include_directories(
     ${SRC_DIR}/voglcore
+    ${TinyXML_INCLUDE_DIRS}
     )
 
 add_executable(${PROJECT_NAME} ${SRC_LIST})
 
 target_link_libraries(${PROJECT_NAME}
     voglcore
+    ${TinyXML_LIBRARIES}
     )
 
 build_options_finalize()
index dbf66ce314e8950c04300d6a204c0e15e260ea5f..6320b4eef8024f46eace95e91a11f3fee0216204 100644 (file)
@@ -1,4 +1,5 @@
 cmake_minimum_required(VERSION 2.8)
+project(vogltrace)
 
 option(VOGLTRACE_NO_PUBLIC_EXPORTS "Don't define any public GL exports in libvogltraceXX.so, this .so will only be useful for manual loading" FALSE)
 
@@ -9,11 +10,8 @@ if (NOT CMAKE_USE_PTHREADS_INIT)
 endif ()
 find_package(X11 REQUIRED)
 
-project(vogltrace)
-
 include_directories(${CMAKE_CURRENT_BINARY_DIR})
 
-
 add_compiler_flag("-DVOGL_REMOTING")
 
 set(SRC_LIST
@@ -57,9 +55,9 @@ target_link_libraries(${PROJECT_NAME}
     voglcore
     ${CMAKE_THREAD_LIBS_INIT}
     ${CMAKE_DL_LIBS}
-    ${X11_X11_LIB}
-    libturbojpeg.a
+    ${X11_LIBRARIES}
     rt
+    turbojpeg
     )
 
 build_options_finalize()