]> O.S.I.I.S - jp/vkvg.git/commitdiff
solve shader header late rebuilding
authorJean-Philippe Bruyère <jp_bruyere@hotmail.com>
Thu, 16 Dec 2021 03:07:49 +0000 (04:07 +0100)
committerJean-Philippe Bruyère <jp_bruyere@hotmail.com>
Thu, 16 Dec 2021 03:07:49 +0000 (04:07 +0100)
CMakeLists.txt

index a0f457415ab537a5d04d7c2909972c6c9d3b5cb7..94c635296a40eac0348611bd0669a110bd640b3d 100644 (file)
@@ -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)