mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-09-20 20:55:42 +00:00
+2
-1
@@ -6,6 +6,7 @@ Development32/
|
||||
Development64/
|
||||
Release32/
|
||||
Release64/
|
||||
build/
|
||||
dist/
|
||||
Resources/*.png
|
||||
qrenderdoc/Makefile*
|
||||
@@ -14,7 +15,7 @@ qrenderdoc/Makefile*
|
||||
*.ilk
|
||||
*.manifest
|
||||
*.user
|
||||
bin/
|
||||
bin
|
||||
obj/
|
||||
.obj/
|
||||
*.opensdf
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
cmake_minimum_required(VERSION 2.8.12)
|
||||
|
||||
if(WIN32)
|
||||
message(FATAL_ERROR "CMake is not needed on Windows, just open and build renderdoc.sln")
|
||||
endif()
|
||||
|
||||
# disallow in-source builds because we have a top-level wrapper Makefile
|
||||
if(CMAKE_BINARY_DIR STREQUAL CMAKE_SOURCE_DIR)
|
||||
message(FATAL_ERROR "In-source builds not allowed")
|
||||
endif()
|
||||
|
||||
project(RenderDoc CXX C)
|
||||
|
||||
option(ENABLE_GL "Enable GL driver" ON)
|
||||
option(ENABLE_VULKAN "Enable Vulkan driver" ON)
|
||||
option(ENABLE_RENDERDOCCMD "Enable renderdoccmd" ON)
|
||||
option(ENABLE_QRENDERDOC "Enable qrenderdoc" ON)
|
||||
|
||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")
|
||||
|
||||
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden -fvisibility-inlines-hidden")
|
||||
|
||||
set(warning_flags
|
||||
-Wall
|
||||
-Werror
|
||||
-Wno-unused
|
||||
-Wno-unknown-pragmas
|
||||
-Wno-reorder)
|
||||
string(REPLACE ";" " " warning_flags "${warning_flags}")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${warning_flags}")
|
||||
endif()
|
||||
|
||||
add_subdirectory(renderdoc)
|
||||
|
||||
if(ENABLE_RENDERDOCCMD)
|
||||
add_subdirectory(renderdoccmd)
|
||||
endif()
|
||||
|
||||
if(ENABLE_QRENDERDOC)
|
||||
add_subdirectory(qrenderdoc)
|
||||
endif()
|
||||
@@ -1,13 +1,20 @@
|
||||
.PHONY: all
|
||||
all:
|
||||
mkdir -p bin/
|
||||
cd renderdoc && $(MAKE) librenderdoc.so
|
||||
cd renderdoccmd && $(MAKE) bin/renderdoccmd
|
||||
cd qrenderdoc && qmake "CONFIG+=debug" && $(MAKE)
|
||||
cp renderdoc/librenderdoc.so renderdoc/driver/vulkan/renderdoc_capture.json renderdoccmd/bin/renderdoccmd bin/
|
||||
SRC_DIR := $(shell pwd)
|
||||
DST_DIR := $(SRC_DIR)/build
|
||||
|
||||
.PHONY: all clean renderdoc qrenderdoc
|
||||
|
||||
all: renderdoc qrenderdoc
|
||||
@ln -sf "$(DST_DIR)/bin"
|
||||
|
||||
renderdoc:
|
||||
@mkdir -p "$(DST_DIR)" && cd "$(DST_DIR)" && \
|
||||
cmake -DENABLE_QRENDERDOC=OFF "$(SRC_DIR)" && \
|
||||
$(MAKE)
|
||||
|
||||
qrenderdoc: renderdoc
|
||||
@mkdir -p "$(DST_DIR)"/qrenderdoc && cd "$(DST_DIR)"/qrenderdoc && \
|
||||
qmake "CONFIG+=debug" "DESTDIR=$(DST_DIR)/bin" "$(SRC_DIR)"/qrenderdoc && \
|
||||
$(MAKE)
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
cd renderdoc && $(MAKE) clean
|
||||
cd renderdoccmd && $(MAKE) clean
|
||||
cd qrenderdoc && rm -rf .obj Makefile*
|
||||
@rm -rf "$(DST_DIR)" bin
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
set(output_dir ${CMAKE_BINARY_DIR}/bin)
|
||||
|
||||
include(ExternalProject)
|
||||
ExternalProject_Add(qrenderdoc
|
||||
DEPENDS renderdoc
|
||||
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
CONFIGURE_COMMAND qmake "CONFIG+=debug" "DESTDIR=${output_dir}" ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
@@ -46,11 +46,12 @@ win32 {
|
||||
QMAKE_CXXFLAGS_WARN_ON -= -w34100
|
||||
|
||||
} else {
|
||||
|
||||
DESTDIR = $$_PRO_FILE_PWD_/../bin
|
||||
isEmpty(DESTDIR) {
|
||||
DESTDIR = $$_PRO_FILE_PWD_/../bin
|
||||
}
|
||||
|
||||
# Link against the core library
|
||||
LIBS += -L$$_PRO_FILE_PWD_/../renderdoc -lrenderdoc
|
||||
LIBS += -L$$DESTDIR -lrenderdoc
|
||||
QMAKE_LFLAGS += '-Wl,-rpath,\'\$$ORIGIN\''
|
||||
|
||||
QMAKE_CXXFLAGS += -std=c++11 -Wno-unused-parameter -Wno-reorder
|
||||
|
||||
@@ -0,0 +1,238 @@
|
||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||
|
||||
set(RDOC_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
set(RDOC_DEFINITIONS PRIVATE -DRENDERDOC_EXPORTS)
|
||||
set(RDOC_INCLUDES
|
||||
PRIVATE ${RDOC_SOURCE_DIR}
|
||||
PRIVATE ${RDOC_SOURCE_DIR}/3rdparty)
|
||||
set(RDOC_LIBRARIES)
|
||||
|
||||
# get git commit hash
|
||||
execute_process(COMMAND sh ${CMAKE_SOURCE_DIR}/calc_hash.sh
|
||||
OUTPUT_VARIABLE GIT_COMMIT_HASH)
|
||||
string(STRIP ${GIT_COMMIT_HASH} GIT_COMMIT_HASH)
|
||||
list(APPEND RDOC_DEFINITIONS
|
||||
PRIVATE -DGIT_COMMIT_HASH="${GIT_COMMIT_HASH}")
|
||||
|
||||
if(UNIX)
|
||||
find_package(PkgConfig REQUIRED)
|
||||
find_package(Threads REQUIRED)
|
||||
find_package(X11 REQUIRED)
|
||||
|
||||
# This should be fixed and moved to FindXCB.cmake
|
||||
pkg_check_modules(PC_XCB REQUIRED xcb xcb-keysyms)
|
||||
set(XCB_INCLUDE_DIRS)
|
||||
set(XCB_LIBRARIES xcb xcb-keysyms)
|
||||
|
||||
list(APPEND RDOC_DEFINITIONS
|
||||
PUBLIC -DRENDERDOC_PLATFORM=linux
|
||||
PRIVATE -DLINUX)
|
||||
|
||||
list(APPEND RDOC_INCLUDES
|
||||
PRIVATE ${X11_X11_INCLUDE_PATH}
|
||||
PRIVATE ${XCB_INCLUDE_DIRS})
|
||||
|
||||
list(APPEND RDOC_LIBRARIES
|
||||
PRIVATE m
|
||||
PRIVATE dl
|
||||
PRIVATE ${CMAKE_THREAD_LIBS_INIT}
|
||||
PRIVATE ${X11_X11_LIB}
|
||||
PRIVATE ${XCB_LIBRARIES})
|
||||
endif()
|
||||
|
||||
set(sources
|
||||
api/app/renderdoc_app.h
|
||||
api/replay/basic_types.h
|
||||
api/replay/capture_options.h
|
||||
api/replay/control_types.h
|
||||
api/replay/d3d11_pipestate.h
|
||||
api/replay/data_types.h
|
||||
api/replay/gl_pipestate.h
|
||||
api/replay/renderdoc_replay.h
|
||||
api/replay/replay_enums.h
|
||||
api/replay/shader_types.h
|
||||
api/replay/vk_pipestate.h
|
||||
common/common.cpp
|
||||
common/common.h
|
||||
common/custom_assert.h
|
||||
common/dds_readwrite.cpp
|
||||
common/dds_readwrite.h
|
||||
common/globalconfig.h
|
||||
common/shader_cache.h
|
||||
common/threading.h
|
||||
common/timing.h
|
||||
common/wrapped_pool.h
|
||||
core/core.cpp
|
||||
core/core.h
|
||||
core/crash_handler.h
|
||||
core/remote_access.cpp
|
||||
core/remote_replay.cpp
|
||||
core/replay_proxy.cpp
|
||||
core/replay_proxy.h
|
||||
core/resource_manager.cpp
|
||||
core/resource_manager.h
|
||||
core/socket_helpers.h
|
||||
data/glsl/debuguniforms.h
|
||||
data/glsl/texsample.h
|
||||
data/hlsl/debugcbuffers.h
|
||||
data/spv/debuguniforms.h
|
||||
data/spv/texsample.h
|
||||
data/version.h
|
||||
hooks/hooks.cpp
|
||||
hooks/hooks.h
|
||||
maths/camera.cpp
|
||||
maths/camera.h
|
||||
maths/formatpacking.h
|
||||
maths/half_convert.h
|
||||
maths/matrix.cpp
|
||||
maths/matrix.h
|
||||
maths/quat.h
|
||||
maths/vec.h
|
||||
os/os_specific.cpp
|
||||
os/os_specific.h
|
||||
replay/app_api.cpp
|
||||
replay/capture_options.cpp
|
||||
replay/entry_points.cpp
|
||||
replay/replay_driver.h
|
||||
replay/replay_output.cpp
|
||||
replay/replay_renderer.cpp
|
||||
replay/replay_renderer.h
|
||||
replay/type_helpers.cpp
|
||||
replay/type_helpers.h
|
||||
serialise/grisu2.cpp
|
||||
serialise/serialiser.cpp
|
||||
serialise/serialiser.h
|
||||
serialise/string_utils.cpp
|
||||
serialise/string_utils.h
|
||||
serialise/utf8printf.cpp
|
||||
3rdparty/jpeg-compressor/jpgd.cpp
|
||||
3rdparty/jpeg-compressor/jpgd.h
|
||||
3rdparty/jpeg-compressor/jpge.cpp
|
||||
3rdparty/jpeg-compressor/jpge.h
|
||||
3rdparty/lz4/lz4.c
|
||||
3rdparty/lz4/lz4.h
|
||||
3rdparty/stb/stb_image.h
|
||||
3rdparty/stb/stb_image_write.h
|
||||
3rdparty/stb/stb_impl.c
|
||||
3rdparty/stb/stb_truetype.h
|
||||
3rdparty/tinyexr/tinyexr.cpp
|
||||
3rdparty/tinyexr/tinyexr.h)
|
||||
|
||||
if(UNIX)
|
||||
list(APPEND sources
|
||||
data/embedded_files.h
|
||||
os/linux/linux_callstack.cpp
|
||||
os/linux/linux_hook.cpp
|
||||
os/linux/linux_hook.h
|
||||
os/linux/linux_network.cpp
|
||||
os/linux/linux_process.cpp
|
||||
os/linux/linux_stringio.cpp
|
||||
os/linux/linux_threading.cpp
|
||||
os/linux_specific.h)
|
||||
# linux_libentry must be the last so that library_loaded is called after
|
||||
# static objects are constructed.
|
||||
list(APPEND sources os/linux/linux_libentry.cpp)
|
||||
endif()
|
||||
|
||||
add_library(rdoc OBJECT ${sources})
|
||||
target_compile_definitions(rdoc ${RDOC_DEFINITIONS})
|
||||
target_include_directories(rdoc ${RDOC_INCLUDES})
|
||||
|
||||
set(data
|
||||
data/glsl/arraymscopy.comp
|
||||
data/glsl/blit.frag
|
||||
data/glsl/blit.vert
|
||||
data/glsl/checkerboard.frag
|
||||
data/glsl/debuguniforms.h
|
||||
data/glsl/generic.frag
|
||||
data/glsl/generic.vert
|
||||
data/glsl/histogram.comp
|
||||
data/glsl/mesh.comp
|
||||
data/glsl/mesh.frag
|
||||
data/glsl/mesh.geom
|
||||
data/glsl/mesh.vert
|
||||
data/glsl/outline.frag
|
||||
data/glsl/quadoverdraw.frag
|
||||
data/glsl/texdisplay.frag
|
||||
data/glsl/texsample.h
|
||||
data/glsl/text.frag
|
||||
data/glsl/text.vert
|
||||
data/spv/blit.vert
|
||||
data/spv/checkerboard.frag
|
||||
data/spv/debuguniforms.h
|
||||
data/spv/fixedcol.frag
|
||||
data/spv/histogram.comp
|
||||
data/spv/mesh.frag
|
||||
data/spv/mesh.geom
|
||||
data/spv/mesh.vert
|
||||
data/spv/minmaxresult.comp
|
||||
data/spv/minmaxtile.comp
|
||||
data/spv/outline.frag
|
||||
data/spv/quadresolve.frag
|
||||
data/spv/quadwrite.frag
|
||||
data/spv/texdisplay.frag
|
||||
data/spv/texsample.h
|
||||
data/spv/text.frag
|
||||
data/spv/text.vert
|
||||
data/sourcecodepro.ttf)
|
||||
|
||||
set(data_objects)
|
||||
|
||||
if(UNIX)
|
||||
# this is fragile...
|
||||
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
|
||||
set(bfdarch "i386")
|
||||
set(bfdtarget "elf64-x86-64")
|
||||
elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "i686")
|
||||
set(bfdarch "i386")
|
||||
set(bfdtarget "elf32-i386")
|
||||
else()
|
||||
message(FATAL_ERROR "Unknown target architecture")
|
||||
endif()
|
||||
|
||||
set(data_command ${CMAKE_OBJCOPY} -I binary -O ${bfdtarget} -B ${bfdarch})
|
||||
|
||||
foreach(res ${data})
|
||||
# strip "data/"
|
||||
string(SUBSTRING ${res} 5 -1 in)
|
||||
set(working_dir ${CMAKE_CURRENT_SOURCE_DIR}/data)
|
||||
|
||||
set(out ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/data.obj/${in}.o)
|
||||
get_filename_component(out_dir ${out} DIRECTORY)
|
||||
|
||||
add_custom_command(OUTPUT ${out}
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${out_dir}
|
||||
COMMAND ${data_command} ${in} ${out}
|
||||
WORKING_DIRECTORY ${working_dir}
|
||||
DEPENDS ${res})
|
||||
|
||||
list(APPEND data_objects ${out})
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
set(renderdoc_objects)
|
||||
|
||||
if(ENABLE_GL)
|
||||
add_subdirectory(driver/gl)
|
||||
list(APPEND renderdoc_objects $<TARGET_OBJECTS:rdoc_gl>)
|
||||
endif()
|
||||
|
||||
if(ENABLE_VULKAN)
|
||||
add_subdirectory(driver/vulkan)
|
||||
list(APPEND renderdoc_objects $<TARGET_OBJECTS:rdoc_vulkan>)
|
||||
endif()
|
||||
|
||||
if(ENABLE_GL OR ENABLE_VULKAN)
|
||||
add_subdirectory(driver/shaders/spirv)
|
||||
list(APPEND renderdoc_objects $<TARGET_OBJECTS:rdoc_spirv>)
|
||||
endif()
|
||||
|
||||
# rdoc must be after its drivers because of linux_libentry.cpp
|
||||
list(APPEND renderdoc_objects
|
||||
$<TARGET_OBJECTS:rdoc>
|
||||
${data_objects})
|
||||
|
||||
add_library(renderdoc SHARED ${renderdoc_objects})
|
||||
target_compile_definitions(renderdoc ${RDOC_DEFINITIONS})
|
||||
target_include_directories(renderdoc ${RDOC_INCLUDES})
|
||||
target_link_libraries(renderdoc ${RDOC_LIBRARIES})
|
||||
@@ -1,151 +0,0 @@
|
||||
CC=gcc
|
||||
CPP=g++
|
||||
COMMIT=`sh ../calc_hash.sh`
|
||||
MACROS=-DLINUX \
|
||||
-DRENDERDOC_PLATFORM=linux \
|
||||
-DRENDERDOC_EXPORTS \
|
||||
-DGIT_COMMIT_HASH="\"$(COMMIT)\""
|
||||
CFLAGS=-c -Wall -Werror -Wno-unused -Wno-unknown-pragmas -fPIC $(MACROS) -I. -I3rdparty/
|
||||
CPPFLAGS=-std=c++11 -g -Wno-reorder -fvisibility=hidden -fvisibility-inlines-hidden
|
||||
LDFLAGS=-lpthread -lrt -shared -ldl -lX11 -lxcb-keysyms
|
||||
LIBS=driver/gl/rdoc_gl.a driver/vulkan/rdoc_vulkan.a driver/shaders/spirv/rdoc_spirv.a
|
||||
OBJDIR=.obj
|
||||
OBJECTS=replay/replay_output.o \
|
||||
replay/replay_renderer.o \
|
||||
replay/entry_points.o \
|
||||
replay/type_helpers.o \
|
||||
replay/app_api.o \
|
||||
replay/capture_options.o \
|
||||
hooks/hooks.o \
|
||||
serialise/serialiser.o \
|
||||
serialise/grisu2.o \
|
||||
serialise/utf8printf.o \
|
||||
serialise/string_utils.o \
|
||||
common/common.o \
|
||||
common/dds_readwrite.o \
|
||||
core/remote_access.o \
|
||||
core/replay_proxy.o \
|
||||
core/remote_replay.o \
|
||||
core/resource_manager.o \
|
||||
core/core.o \
|
||||
maths/camera.o \
|
||||
maths/matrix.o \
|
||||
os/os_specific.o \
|
||||
3rdparty/jpeg-compressor/jpgd.o \
|
||||
3rdparty/jpeg-compressor/jpge.o \
|
||||
3rdparty/lz4/lz4.o \
|
||||
3rdparty/stb/stb_impl.o \
|
||||
3rdparty/tinyexr/tinyexr.o \
|
||||
os/linux/linux_callstack.o \
|
||||
os/linux/linux_hook.o \
|
||||
os/linux/linux_network.o \
|
||||
os/linux/linux_process.o \
|
||||
os/linux/linux_stringio.o \
|
||||
os/linux/linux_threading.o \
|
||||
os/linux/linux_libentry.o
|
||||
# linux_libentry must be the last object file
|
||||
|
||||
DATA=data/glsl/debuguniforms.ho \
|
||||
data/glsl/texsample.ho \
|
||||
data/glsl/blit.frago \
|
||||
data/glsl/blit.verto \
|
||||
data/glsl/texdisplay.frago \
|
||||
data/glsl/checkerboard.frago \
|
||||
data/glsl/generic.frago \
|
||||
data/glsl/generic.verto \
|
||||
data/glsl/mesh.verto \
|
||||
data/glsl/mesh.frago \
|
||||
data/glsl/mesh.geomo \
|
||||
data/glsl/mesh.compo \
|
||||
data/glsl/text.verto \
|
||||
data/glsl/text.frago \
|
||||
data/glsl/quadoverdraw.frago \
|
||||
data/glsl/histogram.compo \
|
||||
data/glsl/arraymscopy.compo \
|
||||
data/glsl/outline.frago \
|
||||
data/spv/blit.verto \
|
||||
data/spv/checkerboard.frago \
|
||||
data/spv/texdisplay.frago \
|
||||
data/spv/text.verto \
|
||||
data/spv/text.frago \
|
||||
data/spv/fixedcol.frago \
|
||||
data/spv/mesh.verto \
|
||||
data/spv/mesh.geomo \
|
||||
data/spv/mesh.frago \
|
||||
data/spv/histogram.compo \
|
||||
data/spv/minmaxtile.compo \
|
||||
data/spv/minmaxresult.compo \
|
||||
data/spv/outline.frago \
|
||||
data/spv/debuguniforms.ho \
|
||||
data/spv/texsample.ho \
|
||||
data/spv/quadwrite.frago \
|
||||
data/spv/quadresolve.frago \
|
||||
data/sourcecodepro.ttfo
|
||||
|
||||
.PHONY: all
|
||||
all: librenderdoc.so
|
||||
|
||||
$(OBJDIR)/%.o: %.cpp
|
||||
@mkdir -p $$(dirname $@)
|
||||
$(CPP) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
|
||||
@$(CPP) $(CFLAGS) $(CPPFLAGS) -MM -MT $(OBJDIR)/$*.o $< > $(OBJDIR)/$*.d
|
||||
|
||||
$(OBJDIR)/%.o: %.c
|
||||
@mkdir -p $$(dirname $@)
|
||||
$(CC) $(CFLAGS) -c -o $@ $<
|
||||
@$(CC) $(CFLAGS) -MM -MT $(OBJDIR)/$*.o $< > $(OBJDIR)/$*.d
|
||||
|
||||
# objcopy needs to be run in with paths in current directory
|
||||
# to produce the right symbol names
|
||||
OBJGEN = \
|
||||
mkdir -p $$(dirname $@); \
|
||||
cd data/; \
|
||||
objcopy --input binary --output elf64-x86-64 --binary-architecture i386 $$(echo $< | sed -e '{s/data\///g}') $$(basename $@); \
|
||||
cd - > /dev/null 2>&1; \
|
||||
mv data/$$(basename $@) $@;
|
||||
|
||||
$(OBJDIR)/%.verto: %.vert
|
||||
@echo Object building $@
|
||||
@$(OBJGEN)
|
||||
$(OBJDIR)/%.frago: %.frag
|
||||
@echo Object building $@
|
||||
@$(OBJGEN)
|
||||
$(OBJDIR)/%.geomo: %.geom
|
||||
@echo Object building $@
|
||||
@$(OBJGEN)
|
||||
$(OBJDIR)/%.compo: %.comp
|
||||
@echo Object building $@
|
||||
@$(OBJGEN)
|
||||
$(OBJDIR)/%.ttfo: %.ttf
|
||||
@echo Object building $@
|
||||
@$(OBJGEN)
|
||||
$(OBJDIR)/%.ho: %.h
|
||||
@echo Object building $@
|
||||
@$(OBJGEN)
|
||||
|
||||
OBJDIR_OBJECTS=$(addprefix $(OBJDIR)/, $(OBJECTS))
|
||||
OBJDIR_DATA=$(addprefix $(OBJDIR)/, $(DATA))
|
||||
|
||||
-include $(OBJDIR_OBJECTS:.o=.d)
|
||||
|
||||
driver/gl/rdoc_gl.a: force_look
|
||||
cd driver/gl && $(MAKE) rdoc_gl.a
|
||||
|
||||
driver/vulkan/rdoc_vulkan.a: force_look
|
||||
cd driver/vulkan && $(MAKE) rdoc_vulkan.a
|
||||
|
||||
driver/shaders/spirv/rdoc_spirv.a: force_look
|
||||
cd driver/shaders/spirv && $(MAKE) rdoc_spirv.a
|
||||
|
||||
force_look:
|
||||
true
|
||||
|
||||
librenderdoc.so: $(OBJDIR_OBJECTS) $(OBJDIR_DATA) $(LIBS)
|
||||
$(CPP) -o librenderdoc.so $(OBJDIR_DATA) -Wl,--whole-archive $(LIBS) -Wl,--no-whole-archive $(OBJDIR_OBJECTS) $(LDFLAGS)
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
rm -rf librenderdoc.so $(OBJDIR)
|
||||
cd driver/gl && $(MAKE) clean
|
||||
cd driver/vulkan && $(MAKE) clean
|
||||
cd driver/shaders/spirv && $(MAKE) clean
|
||||
@@ -0,0 +1,46 @@
|
||||
set(sources
|
||||
gl_common.cpp
|
||||
gl_common.h
|
||||
gl_counters.cpp
|
||||
gl_debug.cpp
|
||||
gl_driver.cpp
|
||||
gl_driver.h
|
||||
gl_enum.h
|
||||
gl_hookset_defs.h
|
||||
gl_hookset.h
|
||||
gl_manager.cpp
|
||||
gl_manager.h
|
||||
gl_renderstate.cpp
|
||||
gl_renderstate.h
|
||||
gl_replay.cpp
|
||||
gl_replay.h
|
||||
gl_resources.cpp
|
||||
gl_resources.h
|
||||
gl_shader_refl.cpp
|
||||
gl_shader_refl.h
|
||||
official/glcorearb.h
|
||||
official/glext.h
|
||||
official/glxext.h
|
||||
official/wglext.h
|
||||
wrappers/gl_buffer_funcs.cpp
|
||||
wrappers/gl_debug_funcs.cpp
|
||||
wrappers/gl_draw_funcs.cpp
|
||||
wrappers/gl_emulated.cpp
|
||||
wrappers/gl_framebuffer_funcs.cpp
|
||||
wrappers/gl_get_funcs.cpp
|
||||
wrappers/gl_query_funcs.cpp
|
||||
wrappers/gl_sampler_funcs.cpp
|
||||
wrappers/gl_shader_funcs.cpp
|
||||
wrappers/gl_state_funcs.cpp
|
||||
wrappers/gl_texture_funcs.cpp
|
||||
wrappers/gl_uniform_funcs.cpp)
|
||||
|
||||
if(UNIX)
|
||||
list(APPEND sources
|
||||
gl_replay_linux.cpp
|
||||
gl_hooks_linux.cpp)
|
||||
endif()
|
||||
|
||||
add_library(rdoc_gl OBJECT ${sources})
|
||||
target_compile_definitions(rdoc_gl ${RDOC_DEFINITIONS})
|
||||
target_include_directories(rdoc_gl ${RDOC_INCLUDES})
|
||||
@@ -1,58 +0,0 @@
|
||||
CC=gcc
|
||||
CPP=g++
|
||||
COMMIT=`sh ../../../calc_hash.sh`
|
||||
MACROS=-DLINUX \
|
||||
-DRENDERDOC_PLATFORM=linux \
|
||||
-DRENDERDOC_EXPORTS \
|
||||
-DGIT_COMMIT_HASH="\"$(COMMIT)\""
|
||||
CFLAGS=-c -Wall -Werror -Wno-unused -Wno-unknown-pragmas -fPIC $(MACROS) -I../../ -I../../3rdparty/
|
||||
CPPFLAGS=-std=c++11 -g -Wno-reorder -fvisibility=hidden -fvisibility-inlines-hidden
|
||||
LDFLAGS=-lpthread -lrt -shared -ldl -lX11
|
||||
OBJDIR=.obj
|
||||
OBJECTS=gl_common.o \
|
||||
gl_driver.o \
|
||||
gl_manager.o \
|
||||
gl_debug.o \
|
||||
gl_counters.o \
|
||||
gl_replay.o \
|
||||
gl_replay_linux.o \
|
||||
gl_hooks_linux.o \
|
||||
gl_shader_refl.o \
|
||||
gl_resources.o \
|
||||
gl_renderstate.o \
|
||||
wrappers/gl_buffer_funcs.o \
|
||||
wrappers/gl_debug_funcs.o \
|
||||
wrappers/gl_draw_funcs.o \
|
||||
wrappers/gl_emulated.o \
|
||||
wrappers/gl_framebuffer_funcs.o \
|
||||
wrappers/gl_get_funcs.o \
|
||||
wrappers/gl_query_funcs.o \
|
||||
wrappers/gl_sampler_funcs.o \
|
||||
wrappers/gl_shader_funcs.o \
|
||||
wrappers/gl_state_funcs.o \
|
||||
wrappers/gl_texture_funcs.o \
|
||||
wrappers/gl_uniform_funcs.o
|
||||
|
||||
.PHONY: all
|
||||
all: rdoc_gl.a
|
||||
|
||||
$(OBJDIR)/%.o: %.cpp
|
||||
@mkdir -p $$(dirname $@)
|
||||
$(CPP) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
|
||||
@$(CPP) $(CFLAGS) $(CPPFLAGS) -MM -MT $(OBJDIR)/$*.o $< > $(OBJDIR)/$*.d
|
||||
|
||||
$(OBJDIR)/%.o: %.c
|
||||
@mkdir -p $$(dirname $@)
|
||||
$(CC) $(CFLAGS) -c -o $@ $<
|
||||
@$(CC) $(CFLAGS) -MM -MT $(OBJDIR)/$*.o $< > $(OBJDIR)/$*.d
|
||||
|
||||
OBJDIR_OBJECTS=$(addprefix $(OBJDIR)/, $(OBJECTS))
|
||||
|
||||
-include $(OBJDIR_OBJECTS:.o=.d)
|
||||
|
||||
rdoc_gl.a: $(OBJDIR_OBJECTS)
|
||||
ar rcs rdoc_gl.a $(OBJDIR_OBJECTS)
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
rm -rf rdoc_gl.a $(OBJDIR)
|
||||
@@ -0,0 +1,81 @@
|
||||
set(glslang_dir ${RDOC_SOURCE_DIR}/3rdparty/glslang)
|
||||
set(glslang_sources
|
||||
${glslang_dir}/OGLCompilersDLL/InitializeDll.cpp
|
||||
${glslang_dir}/OGLCompilersDLL/InitializeDll.h
|
||||
${glslang_dir}/SPIRV/GlslangToSpv.cpp
|
||||
${glslang_dir}/SPIRV/GlslangToSpv.h
|
||||
${glslang_dir}/SPIRV/GLSL.std.450.h
|
||||
${glslang_dir}/SPIRV/InReadableOrder.cpp
|
||||
${glslang_dir}/SPIRV/SpvBuilder.cpp
|
||||
${glslang_dir}/SPIRV/SpvBuilder.h
|
||||
${glslang_dir}/SPIRV/spvIR.h
|
||||
${glslang_dir}/glslang/GenericCodeGen/CodeGen.cpp
|
||||
${glslang_dir}/glslang/GenericCodeGen/Link.cpp
|
||||
${glslang_dir}/glslang/Include/arrays.h
|
||||
${glslang_dir}/glslang/Include/BaseTypes.h
|
||||
${glslang_dir}/glslang/Include/Common.h
|
||||
${glslang_dir}/glslang/Include/ConstantUnion.h
|
||||
${glslang_dir}/glslang/Include/InfoSink.h
|
||||
${glslang_dir}/glslang/Include/InitializeGlobals.h
|
||||
${glslang_dir}/glslang/Include/intermediate.h
|
||||
${glslang_dir}/glslang/Include/PoolAlloc.h
|
||||
${glslang_dir}/glslang/Include/ResourceLimits.h
|
||||
${glslang_dir}/glslang/Include/revision.h
|
||||
${glslang_dir}/glslang/Include/ShHandle.h
|
||||
${glslang_dir}/glslang/Include/Types.h
|
||||
${glslang_dir}/glslang/MachineIndependent/Constant.cpp
|
||||
${glslang_dir}/glslang/MachineIndependent/glslang_tab.cpp
|
||||
${glslang_dir}/glslang/MachineIndependent/glslang_tab.cpp.h
|
||||
${glslang_dir}/glslang/MachineIndependent/gl_types.h
|
||||
${glslang_dir}/glslang/MachineIndependent/InfoSink.cpp
|
||||
${glslang_dir}/glslang/MachineIndependent/Initialize.cpp
|
||||
${glslang_dir}/glslang/MachineIndependent/Initialize.h
|
||||
${glslang_dir}/glslang/MachineIndependent/Intermediate.cpp
|
||||
${glslang_dir}/glslang/MachineIndependent/intermOut.cpp
|
||||
${glslang_dir}/glslang/MachineIndependent/IntermTraverse.cpp
|
||||
${glslang_dir}/glslang/MachineIndependent/limits.cpp
|
||||
${glslang_dir}/glslang/MachineIndependent/linkValidate.cpp
|
||||
${glslang_dir}/glslang/MachineIndependent/localintermediate.h
|
||||
${glslang_dir}/glslang/MachineIndependent/parseConst.cpp
|
||||
${glslang_dir}/glslang/MachineIndependent/ParseHelper.cpp
|
||||
${glslang_dir}/glslang/MachineIndependent/ParseHelper.h
|
||||
${glslang_dir}/glslang/MachineIndependent/PoolAlloc.cpp
|
||||
${glslang_dir}/glslang/MachineIndependent/preprocessor/PpAtom.cpp
|
||||
${glslang_dir}/glslang/MachineIndependent/preprocessor/PpContext.cpp
|
||||
${glslang_dir}/glslang/MachineIndependent/preprocessor/PpContext.h
|
||||
${glslang_dir}/glslang/MachineIndependent/preprocessor/Pp.cpp
|
||||
${glslang_dir}/glslang/MachineIndependent/preprocessor/PpMemory.cpp
|
||||
${glslang_dir}/glslang/MachineIndependent/preprocessor/PpScanner.cpp
|
||||
${glslang_dir}/glslang/MachineIndependent/preprocessor/PpSymbols.cpp
|
||||
${glslang_dir}/glslang/MachineIndependent/preprocessor/PpTokens.cpp
|
||||
${glslang_dir}/glslang/MachineIndependent/preprocessor/PpTokens.h
|
||||
${glslang_dir}/glslang/MachineIndependent/reflection.cpp
|
||||
${glslang_dir}/glslang/MachineIndependent/reflection.h
|
||||
${glslang_dir}/glslang/MachineIndependent/RemoveTree.cpp
|
||||
${glslang_dir}/glslang/MachineIndependent/RemoveTree.h
|
||||
${glslang_dir}/glslang/MachineIndependent/ScanContext.h
|
||||
${glslang_dir}/glslang/MachineIndependent/Scan.cpp
|
||||
${glslang_dir}/glslang/MachineIndependent/Scan.h
|
||||
${glslang_dir}/glslang/MachineIndependent/ShaderLang.cpp
|
||||
${glslang_dir}/glslang/MachineIndependent/SymbolTable.cpp
|
||||
${glslang_dir}/glslang/MachineIndependent/SymbolTable.h
|
||||
${glslang_dir}/glslang/MachineIndependent/Versions.cpp
|
||||
${glslang_dir}/glslang/MachineIndependent/Versions.h
|
||||
${glslang_dir}/glslang/OSDependent/osinclude.h
|
||||
${glslang_dir}/glslang/Public/ShaderLang.h)
|
||||
|
||||
if(UNIX)
|
||||
list(APPEND glslang_sources
|
||||
${glslang_dir}/glslang/OSDependent/Unix/ossource.cpp)
|
||||
endif()
|
||||
|
||||
set(sources
|
||||
spirv_common.cpp
|
||||
spirv_common.h
|
||||
spirv_compile.cpp
|
||||
spirv_disassemble.cpp
|
||||
${glslang_sources})
|
||||
|
||||
add_library(rdoc_spirv OBJECT ${sources})
|
||||
target_compile_definitions(rdoc_spirv ${RDOC_DEFINITIONS})
|
||||
target_include_directories(rdoc_spirv ${RDOC_INCLUDES})
|
||||
@@ -1,76 +0,0 @@
|
||||
CC=gcc
|
||||
CPP=g++
|
||||
COMMIT=`sh ../../../../calc_hash.sh`
|
||||
MACROS=-DLINUX \
|
||||
-DRENDERDOC_PLATFORM=linux \
|
||||
-DRENDERDOC_EXPORTS \
|
||||
-DGLSLANG_OSINCLUDE_UNIX \
|
||||
-DGIT_COMMIT_HASH="\"$(COMMIT)\""
|
||||
CFLAGS=-c -Wall -Werror -Wno-unused -Wno-unknown-pragmas -fPIC $(MACROS) -I../../../ -I../../../3rdparty/
|
||||
CPPFLAGS=-std=c++11 -g -Wno-reorder -fvisibility=hidden -fvisibility-inlines-hidden
|
||||
LDFLAGS=-lpthread -lrt -shared -ldl -lX11
|
||||
OBJDIR=.obj
|
||||
|
||||
VPATH=../../../3rdparty
|
||||
|
||||
# VPATH above takes care of finding the glslang files within the 3rdparty directory
|
||||
OBJECTS=spirv_common.o \
|
||||
spirv_compile.o \
|
||||
spirv_disassemble.o \
|
||||
glslang/OGLCompilersDLL/InitializeDll.o \
|
||||
glslang/SPIRV/GlslangToSpv.o \
|
||||
glslang/SPIRV/InReadableOrder.o \
|
||||
glslang/SPIRV/SpvBuilder.o \
|
||||
glslang/glslang/GenericCodeGen/CodeGen.o \
|
||||
glslang/glslang/GenericCodeGen/Link.o \
|
||||
glslang/glslang/MachineIndependent/Constant.o \
|
||||
glslang/glslang/MachineIndependent/glslang_tab.o \
|
||||
glslang/glslang/MachineIndependent/InfoSink.o \
|
||||
glslang/glslang/MachineIndependent/Initialize.o \
|
||||
glslang/glslang/MachineIndependent/Intermediate.o \
|
||||
glslang/glslang/MachineIndependent/intermOut.o \
|
||||
glslang/glslang/MachineIndependent/IntermTraverse.o \
|
||||
glslang/glslang/MachineIndependent/limits.o \
|
||||
glslang/glslang/MachineIndependent/linkValidate.o \
|
||||
glslang/glslang/MachineIndependent/parseConst.o \
|
||||
glslang/glslang/MachineIndependent/ParseHelper.o \
|
||||
glslang/glslang/MachineIndependent/PoolAlloc.o \
|
||||
glslang/glslang/MachineIndependent/reflection.o \
|
||||
glslang/glslang/MachineIndependent/RemoveTree.o \
|
||||
glslang/glslang/MachineIndependent/Scan.o \
|
||||
glslang/glslang/MachineIndependent/ShaderLang.o \
|
||||
glslang/glslang/MachineIndependent/SymbolTable.o \
|
||||
glslang/glslang/MachineIndependent/Versions.o \
|
||||
glslang/glslang/MachineIndependent/preprocessor/Pp.o \
|
||||
glslang/glslang/MachineIndependent/preprocessor/PpAtom.o \
|
||||
glslang/glslang/MachineIndependent/preprocessor/PpContext.o \
|
||||
glslang/glslang/MachineIndependent/preprocessor/PpMemory.o \
|
||||
glslang/glslang/MachineIndependent/preprocessor/PpScanner.o \
|
||||
glslang/glslang/MachineIndependent/preprocessor/PpSymbols.o \
|
||||
glslang/glslang/MachineIndependent/preprocessor/PpTokens.o \
|
||||
glslang/glslang/OSDependent/Unix/ossource.o
|
||||
|
||||
|
||||
.PHONY: all
|
||||
all: rdoc_spirv.a
|
||||
|
||||
$(OBJDIR)/%.o: %.cpp
|
||||
@mkdir -p $$(dirname $@)
|
||||
$(CPP) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
|
||||
@$(CPP) $(CFLAGS) $(CPPFLAGS) -MM -MT $(OBJDIR)/$*.o $< > $(OBJDIR)/$*.d
|
||||
|
||||
$(OBJDIR)/%.o: %.c
|
||||
@mkdir -p $$(dirname $@)
|
||||
$(CC) $(CFLAGS) -c -o $@ $<
|
||||
@$(CC) $(CFLAGS) -MM -MT $(OBJDIR)/$*.o $< > $(OBJDIR)/$*.d
|
||||
|
||||
OBJDIR_OBJECTS=$(addprefix $(OBJDIR)/, $(OBJECTS))
|
||||
|
||||
-include $(OBJDIR_OBJECTS:.o=.d)
|
||||
|
||||
rdoc_spirv.a: $(OBJDIR_OBJECTS)
|
||||
ar rcs rdoc_spirv.a $(OBJDIR_OBJECTS)
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
rm -rf rdoc_spirv.a $(OBJDIR)
|
||||
@@ -0,0 +1,61 @@
|
||||
set(sources
|
||||
vk_common.cpp
|
||||
vk_common.h
|
||||
vk_core.cpp
|
||||
vk_core.h
|
||||
vk_counters.cpp
|
||||
vk_debug.cpp
|
||||
vk_debug.h
|
||||
vk_dispatchtables.cpp
|
||||
vk_dispatchtables.h
|
||||
vk_hookset_defs.h
|
||||
vk_info.cpp
|
||||
vk_info.h
|
||||
vk_initstate.cpp
|
||||
vk_manager.cpp
|
||||
vk_manager.h
|
||||
vk_memory.cpp
|
||||
vk_replay.cpp
|
||||
vk_replay.h
|
||||
vk_resources.cpp
|
||||
vk_resources.h
|
||||
vk_state.cpp
|
||||
vk_state.h
|
||||
vk_tracelayer.cpp
|
||||
official/vk_layer.h
|
||||
official/vk_lunarg_debug_marker.h
|
||||
official/vk_platform.h
|
||||
official/vulkan.h
|
||||
wrappers/vk_cmd_funcs.cpp
|
||||
wrappers/vk_descriptor_funcs.cpp
|
||||
wrappers/vk_device_funcs.cpp
|
||||
wrappers/vk_draw_funcs.cpp
|
||||
wrappers/vk_dynamic_funcs.cpp
|
||||
wrappers/vk_get_funcs.cpp
|
||||
wrappers/vk_misc_funcs.cpp
|
||||
wrappers/vk_queue_funcs.cpp
|
||||
wrappers/vk_resource_funcs.cpp
|
||||
wrappers/vk_shader_funcs.cpp
|
||||
wrappers/vk_sync_funcs.cpp
|
||||
wrappers/vk_wsi_funcs.cpp)
|
||||
|
||||
set(definitions ${RDOC_DEFINITIONS})
|
||||
|
||||
if(UNIX)
|
||||
list(APPEND sources vk_linux.cpp)
|
||||
|
||||
list(APPEND definitions
|
||||
PRIVATE -DVK_USE_PLATFORM_XCB_KHR
|
||||
PRIVATE -DVK_USE_PLATFORM_XLIB_KHR)
|
||||
|
||||
set(json_in ${CMAKE_CURRENT_SOURCE_DIR}/renderdoc.json)
|
||||
set(json_out ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/renderdoc_capture.json)
|
||||
add_custom_command(OUTPUT ${json_out}
|
||||
COMMAND sed '{s%...renderdoc.dll%./librenderdoc.so%}' < ${json_in} > ${json_out}
|
||||
DEPENDS ${json_in})
|
||||
add_custom_target(generate-json ALL DEPENDS ${json_out})
|
||||
endif()
|
||||
|
||||
add_library(rdoc_vulkan OBJECT ${sources})
|
||||
target_compile_definitions(rdoc_vulkan ${definitions})
|
||||
target_include_directories(rdoc_vulkan ${RDOC_INCLUDES})
|
||||
@@ -1,65 +0,0 @@
|
||||
CC=gcc
|
||||
CPP=g++
|
||||
COMMIT=`sh ../../../calc_hash.sh`
|
||||
MACROS=-DLINUX \
|
||||
-DRENDERDOC_PLATFORM=linux \
|
||||
-DRENDERDOC_EXPORTS \
|
||||
-DVK_USE_PLATFORM_XCB_KHR \
|
||||
-DVK_USE_PLATFORM_XLIB_KHR \
|
||||
-DGIT_COMMIT_HASH="\"$(COMMIT)\""
|
||||
CFLAGS=-c -Wall -Werror -Wno-unused -Wno-unknown-pragmas -fPIC $(MACROS) -I../../ -I../../3rdparty/
|
||||
CPPFLAGS=-std=c++11 -g -Wno-reorder -fvisibility=hidden -fvisibility-inlines-hidden
|
||||
OBJDIR=.obj
|
||||
OBJECTS=vk_dispatchtables.o \
|
||||
vk_tracelayer.o \
|
||||
vk_core.o \
|
||||
vk_initstate.o \
|
||||
vk_memory.o \
|
||||
vk_common.o \
|
||||
vk_manager.o \
|
||||
vk_resources.o \
|
||||
vk_debug.o \
|
||||
vk_replay.o \
|
||||
vk_counters.o \
|
||||
vk_info.o \
|
||||
vk_state.o \
|
||||
vk_linux.o \
|
||||
wrappers/vk_cmd_funcs.o \
|
||||
wrappers/vk_dynamic_funcs.o \
|
||||
wrappers/vk_descriptor_funcs.o \
|
||||
wrappers/vk_device_funcs.o \
|
||||
wrappers/vk_draw_funcs.o \
|
||||
wrappers/vk_get_funcs.o \
|
||||
wrappers/vk_misc_funcs.o \
|
||||
wrappers/vk_queue_funcs.o \
|
||||
wrappers/vk_sync_funcs.o \
|
||||
wrappers/vk_resource_funcs.o \
|
||||
wrappers/vk_shader_funcs.o \
|
||||
wrappers/vk_wsi_funcs.o
|
||||
|
||||
.PHONY: all
|
||||
all: rdoc_vulkan.a
|
||||
|
||||
$(OBJDIR)/%.o: %.cpp
|
||||
@mkdir -p $$(dirname $@)
|
||||
$(CPP) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
|
||||
@$(CPP) $(CFLAGS) $(CPPFLAGS) -MM -MT $(OBJDIR)/$*.o $< > $(OBJDIR)/$*.d
|
||||
|
||||
$(OBJDIR)/%.o: %.c
|
||||
@mkdir -p $$(dirname $@)
|
||||
$(CC) $(CFLAGS) -c -o $@ $<
|
||||
@$(CC) $(CFLAGS) -MM -MT $(OBJDIR)/$*.o $< > $(OBJDIR)/$*.d
|
||||
|
||||
OBJDIR_OBJECTS=$(addprefix $(OBJDIR)/, $(OBJECTS))
|
||||
|
||||
-include $(OBJDIR_OBJECTS:.o=.d)
|
||||
|
||||
renderdoc_capture.json: renderdoc.json
|
||||
sed '{s%...renderdoc.dll%./librenderdoc.so%}' < renderdoc.json > renderdoc_capture.json
|
||||
|
||||
rdoc_vulkan.a: $(OBJDIR_OBJECTS) renderdoc_capture.json
|
||||
ar rcs rdoc_vulkan.a $(OBJDIR_OBJECTS)
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
rm -rf rdoc_vulkan.a $(OBJDIR)
|
||||
@@ -0,0 +1,20 @@
|
||||
set(sources renderdoccmd.cpp)
|
||||
set(definitions)
|
||||
set(includes PRIVATE ${CMAKE_SOURCE_DIR}/renderdoc/api)
|
||||
set(libraries PRIVATE renderdoc)
|
||||
|
||||
if(UNIX)
|
||||
list(APPEND sources renderdoccmd_linux.cpp)
|
||||
list(APPEND definitions PRIVATE -DLINUX)
|
||||
|
||||
find_package(OpenGL REQUIRED)
|
||||
list(APPEND includes PRIVATE ${OPENGL_INCLUDE_DIR})
|
||||
list(APPEND libraries PRIVATE ${OPENGL_gl_LIBRARY})
|
||||
|
||||
list(APPEND libraries PRIVATE -lxcb)
|
||||
endif()
|
||||
|
||||
add_executable(renderdoccmd ${sources})
|
||||
target_compile_definitions(renderdoccmd ${definitions})
|
||||
target_include_directories(renderdoccmd ${includes})
|
||||
target_link_libraries(renderdoccmd ${libraries})
|
||||
@@ -1,36 +0,0 @@
|
||||
CC=gcc
|
||||
CPP=g++
|
||||
COMMIT=`sh ../calc_hash.sh`
|
||||
MACROS=-DLINUX \
|
||||
-DRENDERDOC_PLATFORM=linux \
|
||||
-DGIT_COMMIT_HASH="\"$(COMMIT)\""
|
||||
CFLAGS=-c -Wall -Werror -fPIC $(MACROS) -I../renderdoc/api/
|
||||
CPPFLAGS=-std=c++11 -g -Wno-unused -Wno-unknown-pragmas -Wno-reorder
|
||||
LDFLAGS=-L../renderdoc/ -lrenderdoc -lGL -lxcb -Wl,-rpath,'$$ORIGIN/'
|
||||
OBJDIR=.obj
|
||||
OBJECTS=renderdoccmd.o renderdoccmd_linux.o
|
||||
|
||||
.PHONY: all
|
||||
all: bin/renderdoccmd
|
||||
|
||||
$(OBJDIR)/%.o: %.cpp
|
||||
@mkdir -p $$(dirname $@)
|
||||
$(CPP) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
|
||||
@$(CPP) $(CFLAGS) $(CPPFLAGS) -MM -MT $(OBJDIR)/$*.o $*.cpp > $(OBJDIR)/$*.d
|
||||
|
||||
$(OBJDIR)/%.o: %.c
|
||||
@mkdir -p $$(dirname $@)
|
||||
$(CC) $(CFLAGS) -c -o $@ $<
|
||||
@$(CC) $(CFLAGS) -MM -MT $(OBJDIR)/$*.o $*.c > $(OBJDIR)/$*.d
|
||||
|
||||
OBJDIR_OBJECTS=$(addprefix $(OBJDIR)/, $(OBJECTS))
|
||||
|
||||
-include $(OBJDIR_OBJECTS:.o=.d)
|
||||
|
||||
bin/renderdoccmd: $(OBJDIR_OBJECTS) ../renderdoc/librenderdoc.so
|
||||
mkdir -p bin/
|
||||
$(CPP) -o bin/renderdoccmd $(OBJDIR_OBJECTS) $(LDFLAGS)
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
rm -rf bin/ $(OBJDIR)
|
||||
Reference in New Issue
Block a user