From 639fd21de90c94775c08a02868392b282bbb1e86 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jean-Philippe=20Bruy=C3=A8re?= Date: Thu, 16 Dec 2021 04:07:49 +0100 Subject: [PATCH] solve shader header late rebuilding --- CMakeLists.txt | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a0f4574..94c6352 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -146,31 +146,28 @@ IF(GLSLC AND XXD) SET(SHADER_OUTPUTS ${SHADER_OUTPUTS} ${shader-output}) ENDFOREACH() - ADD_CUSTOM_TARGET(BuildShaderHeader ALL DEPENDS ${SHADER_OUTPUTS}) + ADD_CUSTOM_TARGET(BuildShaders ALL DEPENDS ${SHADER_OUTPUTS}) - ADD_CUSTOM_COMMAND (TARGET BuildShaderHeader - POST_BUILD - COMMAND ${CMAKE_COMMAND} -E remove ${SHADERS_H} - VERBATIM + ADD_CUSTOM_TARGET(ClearShadersHeader + COMMAND ${CMAKE_COMMAND} -E rm -f ${SHADERS_H} + + ) + ADD_CUSTOM_TARGET(BuildShadersHeader + DEPENDS ClearShadersHeader ${SHADER_OUTPUTS} ) FOREACH(shad_spv ${SHADER_OUTPUTS}) GET_FILENAME_COMPONENT(SPV ${shad_spv} NAME) - ADD_CUSTOM_COMMAND (TARGET BuildShaderHeader - POST_BUILD + ADD_CUSTOM_COMMAND ( + TARGET BuildShadersHeader WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${SHADER_DIR} COMMAND ${XXD} -i ${SPV} >> ${SHADERS_H} - DEPENDS ${SHADERS_H} ) ENDFOREACH() SET_SOURCE_FILES_PROPERTIES(${SHADERS_H} PROPERTIES GENERATED 1) #add_definitions( -DDEBUG_VK_PERF=true ) ENDIF() -IF (BuildShaderHeader) - ADD_DEPENDENCIES(${PROJECT_NAME} BuildShaderHeader) -ENDIF () - FILE(GLOB VKVG_SRC src/*.c) SET (VKVG_PUBLIC_HEADERS "include/vkvg.h;include/vkvg-nsvg.h") @@ -210,15 +207,21 @@ FUNCTION (setup_lib LibName) PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) ENDFUNCTION () -ADD_LIBRARY("${PROJECT_NAME}_static" STATIC ${VKVG_SRC} ${SHADERS}) +ADD_LIBRARY("${PROJECT_NAME}_static" STATIC ${VKVG_SRC} ${SHADERS_H} ) target_compile_definitions("${PROJECT_NAME}_static" PUBLIC -DVKVG_STATIC_BUILD) SET_PROPERTY(TARGET "${PROJECT_NAME}_static" PROPERTY POSITION_INDEPENDENT_CODE OFF) setup_lib ("${PROJECT_NAME}_static") -ADD_LIBRARY("${PROJECT_NAME}_shared" SHARED ${VKVG_SRC} ${SHADERS}) +ADD_LIBRARY("${PROJECT_NAME}_shared" SHARED ${VKVG_SRC} ${SHADERS_H}) SET_PROPERTY(TARGET "${PROJECT_NAME}_shared" PROPERTY POSITION_INDEPENDENT_CODE ON) setup_lib ("${PROJECT_NAME}_shared") + +IF (SHADERS_H) + ADD_DEPENDENCIES("${PROJECT_NAME}_shared" BuildShadersHeader) + ADD_DEPENDENCIES("${PROJECT_NAME}_static" BuildShadersHeader) +ENDIF () + IF (VKVG_BUILD_TESTS) ADD_SUBDIRECTORY(tests) ENDIF (VKVG_BUILD_TESTS) -- 2.47.3