procedural-3d-engine/examples/CMakeLists.txt

110 lines
2.5 KiB
Text
Raw Normal View History

# 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)
set_target_properties(${EXAMPLE_NAME} PROPERTIES VS_DEBUGGER_WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/bin)
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
2018-07-15 18:18:41 +02:00
inputattachments
instancing
mesh
multisampling
multithreading
2018-06-02 09:05:19 +02:00
multiview
occlusionquery
offscreen
parallaxmapping
particlefire
pbrbasic
pbribl
pbrtexture
pipelines
pipelinestatistics
pushconstants
2018-03-09 13:48:54 +01:00
pushdescriptors
radialblur
raytracing
renderheadless
scenerendering
screenshot
shadowmapping
shadowmappingomni
2017-12-09 21:12:55 +01:00
shadowmappingcascade
skeletalanimation
specializationconstants
sphericalenvmapping
ssao
stencilbuffer
subpasses
terraintessellation
tessellation
textoverlay
texture
texture3d
texturearray
texturecubemap
texturemipmapgen
texturesparseresidency
triangle
viewportarray
vulkanscene
)
buildExamples()