if (X11_FOUND)
include_directories (${X11_INCLUDE_DIR})
add_definitions (-DHAVE_X11)
+ else ()
+ # Print a clear message when X11 is not found
+ include (FindPackageMessage)
+ find_package_message (X11 "Could not find X11" "")
endif ()
endif ()
endif ()
if (MSVC)
- # C99 includes for msvc
- include_directories (${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/msvc)
+ # C99 includes for MSVC
+ include_directories (${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/msinttypes)
# Enable math constants defines
add_definitions (-D_USE_MATH_DEFINES)
set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
+##############################################################################
+# Installation directories
+
+if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+ # Debian multiarch support
+ execute_process(COMMAND dpkg-architecture -qDEB_HOST_MULTIARCH
+ OUTPUT_VARIABLE ARCH_SUBDIR
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+endif()
+
+if (WIN32 OR APPLE)
+ # On Windows/MacOSX, applications are usually installed on a directory of
+ # their own
+ set (DOC_INSTALL_DIR doc)
+ set (LIB_INSTALL_DIR lib)
+ set (LIB_ARCH_INSTALL_DIR lib)
+else ()
+ set (DOC_INSTALL_DIR share/doc/${CMAKE_PROJECT_NAME})
+ set (LIB_INSTALL_DIR lib/${CMAKE_PROJECT_NAME})
+ if (ARCH_SUBDIR)
+ set (LIB_ARCH_INSTALL_DIR lib/${ARCH_SUBDIR}/${CMAKE_PROJECT_NAME})
+ else ()
+ set (LIB_ARCH_INSTALL_DIR lib/${CMAKE_PROJECT_NAME})
+ endif ()
+endif ()
+
+set (SCRIPTS_INSTALL_DIR ${LIB_INSTALL_DIR}/scripts)
+set (WRAPPER_INSTALL_DIR ${LIB_ARCH_INSTALL_DIR}/wrappers)
+
+
##############################################################################
# Bundled dependencies
#
set (ZLIB_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/zlib)
set (ZLIB_LIBRARIES z_bundled)
-add_subdirectory (thirdparty/zlib EXCLUDE_FROM_ALL)
+add_subdirectory (thirdparty/zlib)
include_directories (${ZLIB_INCLUDE_DIRS})
set (SNAPPY_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/snappy)
set (SNAPPY_LIBRARIES snappy_bundled)
-add_subdirectory (thirdparty/snappy EXCLUDE_FROM_ALL)
+add_subdirectory (thirdparty/snappy)
include_directories (${SNAPPY_INCLUDE_DIRS})
set (PNG_DEFINITIONS "")
set (PNG_LIBRARIES png_bundled)
-add_subdirectory (thirdparty/libpng EXCLUDE_FROM_ALL)
-include_directories (${PNG_INCLUDE_DIR})
-add_definitions (${PNG_DEFINITIONS})
+add_subdirectory (thirdparty/libpng)
if (MSVC)
- add_subdirectory (thirdparty/getopt EXCLUDE_FROM_ALL)
+ add_subdirectory (thirdparty/getopt)
include_directories (${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/getopt)
set (GETOPT_LIBRARIES getopt_bundled)
endif ()
# - To make it easier to build the GUI on Windows and MacOSX, as there are no
# binaries at all.
if (QT4_FOUND)
- add_subdirectory (thirdparty/qjson EXCLUDE_FROM_ALL)
+ add_definitions (-DQJSON_EXPORT=)
+ add_subdirectory (thirdparty/qjson)
set (QJSON_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty)
set (QJSON_LIBRARY_DIRS)
set (QJSON_LIBRARIES qjson_bundled)
include_directories (BEFORE ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/khronos)
-##############################################################################
-# Installation directories
-
-if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
- # Debian multiarch support
- execute_process(COMMAND dpkg-architecture -qDEB_HOST_MULTIARCH
- OUTPUT_VARIABLE ARCH_SUBDIR
- ERROR_QUIET
- OUTPUT_STRIP_TRAILING_WHITESPACE
- )
-endif()
-
-if (WIN32 OR APPLE)
- # On Windows/MacOSX, applications are usually installed on a directory of
- # their own
- set (DOC_INSTALL_DIR doc)
- set (LIB_INSTALL_DIR lib)
- set (LIB_ARCH_INSTALL_DIR lib)
-else ()
- set (DOC_INSTALL_DIR share/doc/${CMAKE_PROJECT_NAME})
- set (LIB_INSTALL_DIR lib/${CMAKE_PROJECT_NAME})
- if (ARCH_SUBDIR)
- set (LIB_ARCH_INSTALL_DIR lib/${ARCH_SUBDIR}/${CMAKE_PROJECT_NAME})
- else ()
- set (LIB_ARCH_INSTALL_DIR lib/${CMAKE_PROJECT_NAME})
- endif ()
-endif ()
-
-set (SCRIPTS_INSTALL_DIR ${LIB_INSTALL_DIR}/scripts)
-set (WRAPPER_INSTALL_DIR ${LIB_ARCH_INSTALL_DIR}/wrappers)
-
-# Expose the binary/install directories to source
-#
-# TODO: Use the same directory layout, for both build and install directories,
-# so that binaries can find each other using just relative paths.
-#
-add_definitions(
- -DAPITRACE_BINARY_DIR="${CMAKE_BINARY_DIR}"
- -DAPITRACE_INSTALL_PREFIX="${CMAKE_INSTALL_PREFIX}"
- -DAPITRACE_SCRIPTS_INSTALL_DIR="${CMAKE_INSTALL_PREFIX}/${SCRIPTS_INSTALL_DIR}"
- -DAPITRACE_WRAPPERS_INSTALL_DIR="${CMAKE_INSTALL_PREFIX}/${WRAPPER_INSTALL_DIR}"
-)
-
-
##############################################################################
# Common libraries / utilities
common/trace_writer_local.cpp
common/trace_writer_model.cpp
common/trace_loader.cpp
- common/trace_resource.cpp
- common/trace_tools_trace.cpp
common/trace_profiler.cpp
- common/image.cpp
- common/image_bmp.cpp
- common/image_pnm.cpp
- common/image_png.cpp
+ common/trace_option.cpp
common/${os}
)
)
if (ANDROID)
- target_link_libraries (common log)
+ target_link_libraries (common
+ log
+ )
endif ()
# Sub-directories
add_subdirectory (dispatch)
+add_subdirectory (helpers)
add_subdirectory (wrappers)
+add_subdirectory (image)
add_subdirectory (retrace)
# CLI
if (ENABLE_CLI)
- add_subdirectory(cli)
+ if (WIN32)
+ add_subdirectory (inject)
+ endif ()
+ add_subdirectory (cli)
endif ()
##############################################################################
install (
PROGRAMS
- ${CMAKE_CURRENT_SOURCE_DIR}/scripts/tracediff.py
- ${CMAKE_CURRENT_SOURCE_DIR}/scripts/jsondiff.py
- ${CMAKE_CURRENT_SOURCE_DIR}/scripts/snapdiff.py
+ scripts/highlight.py
+ scripts/jsondiff.py
+ scripts/profileshader.py
+ scripts/retracediff.py
+ scripts/snapdiff.py
+ scripts/tracecheck.py
+ scripts/tracediff.py
+ scripts/unpickle.py
DESTINATION ${SCRIPTS_INSTALL_DIR}
)
install (
FILES
BUGS.markdown
- LICENSE
NEWS.markdown
README.markdown
DESTINATION ${DOC_INSTALL_DIR}
)
+install (
+ FILES LICENSE
+ DESTINATION ${DOC_INSTALL_DIR}
+ RENAME LICENSE.txt
+)
+if (MSVC)
+ install (
+ FILES thirdparty/msinttypes/LICENSE
+ DESTINATION ${DOC_INSTALL_DIR}
+ RENAME LICENSE-msinttypes.txt
+ )
+endif ()
set (CPACK_PACKAGE_VERSION_MAJOR "3")
set (CPACK_PACKAGE_VERSION_MINOR "0")