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")
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)