# Function for building single example function(buildExample EXAMPLE_NAME) SET(EXAMPLE_FOLDER ${CMAKE_CURRENT_SOURCE_DIR}/${EXAMPLE_NAME}) message(STATUS "Generating project file for example in ${EXAMPLE_FOLDER}") # Main file(GLOB SOURCE *.cpp ${BASE_HEADERS} ${EXAMPLE_FOLDER}/*.cpp) SET(MAIN_CPP ${EXAMPLE_FOLDER}/${EXAMPLE_NAME}.cpp) if(EXISTS ${EXAMPLE_FOLDER}/main.cpp) SET(MAIN_CPP ${EXAMPLE_FOLDER}/main.cpp) ENDIF() # imgui example requires additional source files IF(${EXAMPLE_NAME} STREQUAL "imgui") file(GLOB ADD_SOURCE "../external/imgui/*.cpp") SET(SOURCE ${SOURCE} ${ADD_SOURCE}) ENDIF() # Add shaders set(SHADER_DIR "../data/shaders/${EXAMPLE_NAME}") file(GLOB SHADERS "${SHADER_DIR}/*.vert" "${SHADER_DIR}/*.frag" "${SHADER_DIR}/*.comp" "${SHADER_DIR}/*.geom" "${SHADER_DIR}/*.tesc" "${SHADER_DIR}/*.tese") source_group("Shaders" FILES ${SHADERS}) if(WIN32) add_executable(${EXAMPLE_NAME} WIN32 ${MAIN_CPP} ${SOURCE} ${SHADERS}) target_link_libraries(${EXAMPLE_NAME} base ${Vulkan_LIBRARY} ${ASSIMP_LIBRARIES} ${WINLIBS}) else(WIN32) add_executable(${EXAMPLE_NAME} ${MAIN_CPP} ${SOURCE} ${SHADERS}) target_link_libraries(${EXAMPLE_NAME} base ) endif(WIN32) if(RESOURCE_INSTALL_DIR) install(TARGETS ${EXAMPLE_NAME} DESTINATION ${CMAKE_INSTALL_BINDIR}) endif() endfunction(buildExample) # Build all examples function(buildExamples) foreach(EXAMPLE ${EXAMPLES}) buildExample(${EXAMPLE}) endforeach(EXAMPLE) endfunction(buildExamples) set(EXAMPLES bloom computecloth computecullandlod computeheadless computenbody computeparticles computeshader conservativeraster debugmarker deferred deferredmultisampling deferredshadows descriptorsets displacement distancefieldfonts dynamicuniformbuffer gears geometryshader hdr imgui indirectdraw instancing mesh multisampling multithreading multiview occlusionquery offscreen parallaxmapping particlefire pbrbasic pbribl pbrtexture pipelines pipelinestatistics pushconstants pushdescriptors radialblur raytracing renderheadless scenerendering screenshot shadowmapping shadowmappingomni shadowmappingcascade skeletalanimation specializationconstants sphericalenvmapping ssao stencilbuffer subpasses terraintessellation tessellation textoverlay texture texture3d texturearray texturecubemap texturemipmapgen texturesparseresidency triangle viewportarray vulkanscene ) buildExamples()