From ea977860c2ff1cd488317b620fda9ed926197f1b Mon Sep 17 00:00:00 2001 From: Chuck Walbourn Date: Fri, 6 May 2022 00:29:00 -0700 Subject: [PATCH] Fixes for CMake USE_PREBUILT_SHADERS option --- CMakeLists.txt | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 56c395e..dfc8a56 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -121,6 +121,8 @@ if(BUILD_DX11 AND WIN32) endif() set(COMPILED_SHADERS ${CMAKE_CURRENT_BINARY_DIR}/Shaders/Compiled) file(MAKE_DIRECTORY ${COMPILED_SHADERS}) + else() + file(TO_CMAKE_PATH ${COMPILED_SHADERS} COMPILED_SHADERS) endif() set(LIBRARY_SOURCES ${LIBRARY_SOURCES} @@ -246,23 +248,33 @@ endif() if(BUILD_SAMPLE AND BUILD_DX11 AND WIN32 AND (NOT WINDOWS_STORE)) list(APPEND TOOL_EXES ddsview) + if (NOT COMPILED_DDSVIEW_SHADERS) + if (USE_PREBUILT_SHADERS) + message(FATAL_ERROR "ERROR: Using prebuilt shaders requires the COMPILED_DDSVIEW_SHADERS variable is set") + endif() + set(COMPILED_DDSVIEW_SHADERS ${CMAKE_CURRENT_BINARY_DIR}/Shaders/Compiled) + file(MAKE_DIRECTORY ${COMPILED_DDSVIEW_SHADERS}) + else() + file(TO_CMAKE_PATH ${COMPILED_DDSVIEW_SHADERS} COMPILED_DDSVIEW_SHADERS) + endif() + add_executable(ddsview WIN32 DDSView/ddsview.cpp DDSView/ddsview.rc - ${COMPILED_SHADERS}/ddsview_ps1D.inc) + ${COMPILED_DDSVIEW_SHADERS}/ddsview_ps1D.inc) target_link_libraries(ddsview ${PROJECT_NAME} d3d11.lib) source_group(ddsview REGULAR_EXPRESSION DDSView/*.*) - target_include_directories(ddsview PRIVATE ${COMPILED_SHADERS}) + target_include_directories(ddsview PRIVATE ${COMPILED_DDSVIEW_SHADERS}) if (NOT USE_PREBUILT_SHADERS) add_custom_command( - OUTPUT "${COMPILED_SHADERS}/ddsview_ps1D.inc" + OUTPUT "${COMPILED_DDSVIEW_SHADERS}/ddsview_ps1D.inc" MAIN_DEPENDENCY "${PROJECT_SOURCE_DIR}/DDSView/hlsl.cmd" DEPENDS "${PROJECT_SOURCE_DIR}/DDSView/ddsview.fx" COMMENT "Generating HLSL shaders for DDSView..." - COMMAND set CompileShadersOutput=${COMPILED_SHADERS} - COMMAND hlsl.cmd > ${COMPILED_SHADERS}/hlsl.log + COMMAND set CompileShadersOutput=${COMPILED_DDSVIEW_SHADERS} + COMMAND hlsl.cmd > ${COMPILED_DDSVIEW_SHADERS}/hlsl.log WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/DDSView" USES_TERMINAL) endif()