# Use clang on MacOSX. gcc doesn't support __thread key, and Apple has
# abandoned it for clang. This must be done before the project is defined.
-if (APPLE)
+# But DONT force clang if we are cross-compiling to Android.
+if (APPLE AND NOT ANDROID_NDK)
set (CMAKE_C_COMPILER "clang")
set (CMAKE_CXX_COMPILER "clang++")
endif ()
endif ()
endif ()
+if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+ # For RTLD_DEFAULT and RTLD_NEXT
+ add_definitions (-D_GNU_SOURCE)
+endif ()
+
# Put all executables into the same top level build directory, regardless of
# which subdirectory they are declared
add_subdirectory (thirdparty/directxtex)
endif ()
+if (CMAKE_EXECUTABLE_FORMAT STREQUAL "ELF")
+ add_subdirectory (thirdparty/libbacktrace)
+ include_directories (${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/libbacktrace)
+ set (LIBBACKTRACE_LIBRARIES backtrace)
+endif ()
+
# Always use bundled QJSon.
# - The packaged versions QJson are very old, and do not support NaN/Infinity.
# - To make it easier to build the GUI on Windows and MacOSX, as there are no
add_library (common STATIC
common/trace_callset.cpp
common/trace_dump.cpp
+ common/trace_fast_callset.cpp
common/trace_file.cpp
common/trace_file_read.cpp
common/trace_file_write.cpp
common/trace_profiler.cpp
common/trace_option.cpp
common/${os}
+ common/trace_backtrace.cpp
)
set_target_properties (common PROPERTIES
)
endif ()
-set (CPACK_PACKAGE_VERSION_MAJOR "3")
+set (CPACK_PACKAGE_VERSION_MAJOR "4")
set (CPACK_PACKAGE_VERSION_MINOR "0")
# Use current date in YYYYMMDD format as patch number