procedural-3d-engine/CMakeLists.txt

102 lines
2.4 KiB
Text
Raw Normal View History

2016-02-16 15:07:25 +01:00
cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
cmake_policy(VERSION 2.8)
2016-02-16 19:33:57 +02:00
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake")
2016-02-16 15:07:25 +01:00
set(NAME vulkanExamples)
2016-02-16 15:07:25 +01:00
project(${NAME})
include_directories(external)
include_directories(external/glm)
include_directories(external/gli)
include_directories(external/assimp)
include_directories(base)
IF(WIN32)
find_library(VULKAN_LIB NAMES vulkan-1 vulkan PATHS ${CMAKE_SOURCE_DIR}/libs/vulkan)
find_library(ASSIMP_LIBRARIES NAMES assimp libassimp.dll.a PATHS ${CMAKE_SOURCE_DIR}/libs/assimp)
2016-02-16 15:07:25 +01:00
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DVK_USE_PLATFORM_WIN32_KHR")
ELSE(WIN32)
find_library(VULKAN_LIB NAMES libvulkan.so PATHS ${CMAKE_SOURCE_DIR}/libs/vulkan)
find_package(ASSIMP REQUIRED)
2016-02-16 15:07:25 +01:00
find_package(XCB REQUIRED)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DVK_USE_PLATFORM_XCB_KHR")
# Todo : android?
ENDIF(WIN32)
message(STATUS ${VULKAN_LIB})
# Set preprocessor defines
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DNOMINMAX -D_USE_MATH_DEFINES")
2016-02-16 15:07:25 +01:00
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
add_definitions(-std=c++11)
add_definitions(-std=c++0x)
file(GLOB SOURCE *.cpp base/*.cpp)
# Function for building single example
function(buildExample EXAMPLE_NAME)
file(GLOB SOURCE *.cpp base/*.cpp ${EXAMPLE_NAME}/*.cpp)
if(WIN32)
add_executable(${EXAMPLE_NAME} WIN32 ${EXAMPLE_NAME}/${EXAMPLE_NAME}.cpp ${SOURCE})
target_link_libraries(${EXAMPLE_NAME} ${VULKAN_LIB} ${ASSIMP_LIBRARIES} ${WINLIBS})
2016-02-16 15:07:25 +01:00
else(WIN32)
add_executable(${EXAMPLE_NAME} ${EXAMPLE_NAME}/${EXAMPLE_NAME}.cpp ${SOURCE})
target_link_libraries(${EXAMPLE_NAME} ${VULKAN_LIB} ${ASSIMP_LIBRARIES} ${PTHREAD})
2016-02-16 15:07:25 +01:00
endif(WIN32)
endfunction(buildExample)
# Build all examples
function(buildExamples)
foreach(EXAMPLE ${EXAMPLES})
buildExample(${EXAMPLE})
endforeach(EXAMPLE)
endfunction(buildExamples)
# Compiler specific stuff
IF(MSVC)
SET(CMAKE_CXX_FLAGS "/EHsc")
ENDIF(MSVC)
IF(WIN32)
# Nothing here (yet)
ELSE(WIN32)
link_libraries(${XCB_LIBRARIES} ${VULKAN_LIB})
ENDIF(WIN32)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "bin/")
set(EXAMPLES
bloom
computeshader
computeparticles
deferred
displacement
distancefieldfonts
gears
geometryshader
instancing
mesh
occlusionquery
offscreen
parallaxmapping
particlefire
2016-02-16 15:07:25 +01:00
pipelines
pushconstants
raytracing
2016-02-16 15:07:25 +01:00
radialblur
shadowmapping
shadowmappingomni
skeletalanimation
2016-02-16 15:07:25 +01:00
sphericalenvmapping
tessellation
texture
texturearray
texturecubemap
triangle
vulkanscene
)
buildExamples()