Files
renderdoc/qrenderdoc/Code/pyrenderdoc/CMakeLists.txt
T
baldurk 21d5943d82 Remove dependency on Qt in qrenderdoc python module
* The main addition here apart from some extra stubs is a new rdc type
  for date time objects.
* Although the module doesn't do anything and is only used for docs
  reflection it is desirable to not have to link against Qt as this
  can cause problems when linking the module without unresolved symbols.
2017-12-27 16:05:15 +00:00

64 lines
2.4 KiB
CMake

# Build as C++14 for the python bindings template-fu
if (CMAKE_VERSION VERSION_LESS "3.1")
set (CMAKE_CXX_FLAGS "--std=c++14 ${CMAKE_CXX_FLAGS}")
else ()
set (CMAKE_CXX_STANDARD 14)
endif ()
# include paths for qrenderdoc, the internal renderdoc API, and Python
set(MODULE_INCLUDES
PRIVATE ${CMAKE_SOURCE_DIR}/qrenderdoc
PRIVATE ${CMAKE_SOURCE_DIR}/renderdoc/api/replay
PRIVATE ${PYTHON_INCLUDE_DIR})
# preprocessor definitions for compiling
set(MODULE_DEFINES
PRIVATE -DRENDERDOC_PLATFORM_LINUX)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unknown-warning-option -Wno-unused-private-field")
# Set up rpath to find librenderdoc.so
set(CMAKE_SKIP_BUILD_RPATH TRUE)
set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
set(CMAKE_INSTALL_RPATH "$ORIGIN/:$ORIGIN/../lib${LIB_SUFFIX}/${LIB_SUBFOLDER_TRAIL_SLASH}")
# Add python library
set (CMAKE_SHARED_LINKER_FLAGS "${PYTHON_LIBRARY} ${CMAKE_SHARED_LINKER_FLAGS}")
add_library(_renderdoc SHARED
${CMAKE_BINARY_DIR}/qrenderdoc/renderdoc_python.cxx
pyrenderdoc_stub.cpp)
set_source_files_properties(${CMAKE_BINARY_DIR}/qrenderdoc/renderdoc_python.cxx
PROPERTIES GENERATED TRUE)
target_compile_definitions(_renderdoc ${MODULE_DEFINES})
target_include_directories(_renderdoc ${MODULE_INCLUDES})
target_link_libraries(_renderdoc PRIVATE renderdoc)
add_library(_qrenderdoc SHARED
${CMAKE_BINARY_DIR}/qrenderdoc/renderdoc_python.cxx
${CMAKE_BINARY_DIR}/qrenderdoc/qrenderdoc_python.cxx
pyrenderdoc_stub.cpp
qrenderdoc_stub.cpp)
set_source_files_properties(${CMAKE_BINARY_DIR}/qrenderdoc/qrenderdoc_python.cxx
PROPERTIES GENERATED TRUE)
target_compile_definitions(_qrenderdoc ${MODULE_DEFINES})
target_include_directories(_qrenderdoc ${MODULE_INCLUDES})
target_link_libraries(_qrenderdoc PRIVATE renderdoc)
# Don't prefix with lib, python expects a bare .so.
# Also rename to non-underscore due to this (We couldn't call the
# python library 'renderdoc' since htat would clash with the
# prefixed target)
set_target_properties(_renderdoc PROPERTIES PREFIX "")
set_target_properties(_qrenderdoc PROPERTIES PREFIX "")
set_target_properties(_renderdoc PROPERTIES OUTPUT_NAME "renderdoc")
set_target_properties(_qrenderdoc PROPERTIES OUTPUT_NAME "qrenderdoc")
# Make sure we build after the wrappers are generated
add_dependencies(_renderdoc swig-bindings)
add_dependencies(_qrenderdoc swig-bindings)