summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar bunnei2020-10-23 10:01:16 -0700
committerGravatar GitHub2020-10-23 10:01:16 -0700
commit3e46934442a77a2e009a17ee48739c28dbe02d46 (patch)
treec74da5853aac50c581eac6c08695a8c66acd0a8e
parentMerge pull request #4792 from bunnei/rtc-fix (diff)
parentvideo_core: Fix instances where msbuild always regenerated host shaders (diff)
downloadyuzu-3e46934442a77a2e009a17ee48739c28dbe02d46.tar.gz
yuzu-3e46934442a77a2e009a17ee48739c28dbe02d46.tar.xz
yuzu-3e46934442a77a2e009a17ee48739c28dbe02d46.zip
Merge pull request #4706 from ReinUsesLisp/cmake-host-shaders
video_core: Fix instances where msbuild always regenerated host shaders
Diffstat (limited to '')
-rw-r--r--src/video_core/host_shaders/CMakeLists.txt17
-rw-r--r--src/video_core/host_shaders/StringShaderHeader.cmake2
2 files changed, 7 insertions, 12 deletions
diff --git a/src/video_core/host_shaders/CMakeLists.txt b/src/video_core/host_shaders/CMakeLists.txt
index aa62363a7..c157724a9 100644
--- a/src/video_core/host_shaders/CMakeLists.txt
+++ b/src/video_core/host_shaders/CMakeLists.txt
@@ -1,23 +1,16 @@
1set(SHADER_FILES 1set(SHADER_SOURCES
2 opengl_present.frag 2 opengl_present.frag
3 opengl_present.vert 3 opengl_present.vert
4) 4)
5 5
6set(SHADER_INCLUDE ${CMAKE_CURRENT_BINARY_DIR}/include) 6set(SHADER_INCLUDE ${CMAKE_CURRENT_BINARY_DIR}/include)
7set(HOST_SHADERS_INCLUDE ${SHADER_INCLUDE} PARENT_SCOPE)
8
9set(SHADER_DIR ${SHADER_INCLUDE}/video_core/host_shaders) 7set(SHADER_DIR ${SHADER_INCLUDE}/video_core/host_shaders)
10add_custom_command( 8set(HOST_SHADERS_INCLUDE ${SHADER_INCLUDE} PARENT_SCOPE)
11 OUTPUT
12 ${SHADER_DIR}
13 COMMAND
14 ${CMAKE_COMMAND} -E make_directory ${SHADER_DIR}
15)
16 9
17set(INPUT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/source_shader.h.in) 10set(INPUT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/source_shader.h.in)
18set(HEADER_GENERATOR ${CMAKE_CURRENT_SOURCE_DIR}/StringShaderHeader.cmake) 11set(HEADER_GENERATOR ${CMAKE_CURRENT_SOURCE_DIR}/StringShaderHeader.cmake)
19 12
20foreach(FILENAME IN ITEMS ${SHADER_FILES}) 13foreach(FILENAME IN ITEMS ${SHADER_SOURCES})
21 string(REPLACE "." "_" SHADER_NAME ${FILENAME}) 14 string(REPLACE "." "_" SHADER_NAME ${FILENAME})
22 set(SOURCE_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${FILENAME}) 15 set(SOURCE_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${FILENAME})
23 set(HEADER_FILE ${SHADER_DIR}/${SHADER_NAME}.h) 16 set(HEADER_FILE ${SHADER_DIR}/${SHADER_NAME}.h)
@@ -29,8 +22,8 @@ foreach(FILENAME IN ITEMS ${SHADER_FILES})
29 MAIN_DEPENDENCY 22 MAIN_DEPENDENCY
30 ${SOURCE_FILE} 23 ${SOURCE_FILE}
31 DEPENDS 24 DEPENDS
32 ${HEADER_GENERATOR}
33 ${INPUT_FILE} 25 ${INPUT_FILE}
26 # HEADER_GENERATOR should be included here but msbuild seems to assume it's always modified
34 ) 27 )
35 set(SHADER_HEADERS ${SHADER_HEADERS} ${HEADER_FILE}) 28 set(SHADER_HEADERS ${SHADER_HEADERS} ${HEADER_FILE})
36endforeach() 29endforeach()
@@ -39,5 +32,5 @@ add_custom_target(host_shaders
39 DEPENDS 32 DEPENDS
40 ${SHADER_HEADERS} 33 ${SHADER_HEADERS}
41 SOURCES 34 SOURCES
42 ${SHADER_FILES} 35 ${SHADER_SOURCES}
43) 36)
diff --git a/src/video_core/host_shaders/StringShaderHeader.cmake b/src/video_core/host_shaders/StringShaderHeader.cmake
index 368bce0ed..c0fc49768 100644
--- a/src/video_core/host_shaders/StringShaderHeader.cmake
+++ b/src/video_core/host_shaders/StringShaderHeader.cmake
@@ -8,4 +8,6 @@ string(TOUPPER ${CONTENTS_NAME} CONTENTS_NAME)
8 8
9file(READ ${SOURCE_FILE} CONTENTS) 9file(READ ${SOURCE_FILE} CONTENTS)
10 10
11get_filename_component(OUTPUT_DIR ${HEADER_FILE} DIRECTORY)
12make_directory(${OUTPUT_DIR})
11configure_file(${INPUT_FILE} ${HEADER_FILE} @ONLY) 13configure_file(${INPUT_FILE} ${HEADER_FILE} @ONLY)