-
Notifications
You must be signed in to change notification settings - Fork 23
/
Copy pathCMakeLists.txt
75 lines (65 loc) · 3.53 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
cmake_minimum_required(VERSION 3.10 FATAL_ERROR)
project(LearnVulkan)
MESSAGE(STATUS "operation system is ${CMAKE_SYSTEM}")
include(${PROJECT_SOURCE_DIR}/cmake/Config.cmake)
include(${PROJECT_SOURCE_DIR}/cmake/GCC.cmake)
include(${PROJECT_SOURCE_DIR}/cmake/FindOpenMP.cmake)
add_definitions(-DSTBI_NO_DDS)
add_definitions(-DUSE_STD_FILESYSTEM) # For Old Compilers as GCC 7 change to -DUSE_STD_EXPERIMENTAL_FILESYSTEM
add_definitions(-D_USE_MATH_DEFINES)
if (CMAKE_SYSTEM_NAME MATCHES "Linux")
message("Linux build needs libxcb-dev.")
include(FindPkgConfig)
pkg_check_modules(XCB xcb)
if(XCB_FOUND)
message("Found XCB ${XCB_LDFLAGS}")
else()
message("You may need install libxcb-dev!")
endif()
endif()
# remove VS /Debug /Release subdirectory of building targets
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/bin/)
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/bin/)
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/bin/)
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${PROJECT_SOURCE_DIR}/bin/)
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${PROJECT_SOURCE_DIR}/bin/)
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${PROJECT_SOURCE_DIR}/bin/)
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${PROJECT_SOURCE_DIR}/bin/)
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${PROJECT_SOURCE_DIR}/bin/)
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${PROJECT_SOURCE_DIR}/bin/)
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL ${PROJECT_SOURCE_DIR}/bin/)
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_MINSIZEREL ${PROJECT_SOURCE_DIR}/bin/)
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_MINSIZEREL ${PROJECT_SOURCE_DIR}/bin/)
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO ${PROJECT_SOURCE_DIR}/bin/)
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELWITHDEBINFO ${PROJECT_SOURCE_DIR}/bin/)
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELWITHDEBINFO ${PROJECT_SOURCE_DIR}/bin/)
include_directories(${PROJECT_SOURCE_DIR}/third_party/gli)
include_directories(${PROJECT_SOURCE_DIR}/third_party/glm)
include_directories(${PROJECT_SOURCE_DIR}/third_party/imgui)
include_directories(${PROJECT_SOURCE_DIR}/third_party/stb_image/include)
include_directories(${PROJECT_SOURCE_DIR}/source/algorithm)
include_directories(${PROJECT_SOURCE_DIR}/source/base)
include_directories(${PROJECT_SOURCE_DIR}/source/common)
include_directories(${PROJECT_SOURCE_DIR}/source/core)
include_directories(${PROJECT_SOURCE_DIR}/source/engines)
include_directories(${PROJECT_SOURCE_DIR}/source/plugins)
include_directories(${PROJECT_SOURCE_DIR}/source/plugins/qt)
include_directories(${PROJECT_SOURCE_DIR}/source/plugins/assimp)
include_directories(${PROJECT_SOURCE_DIR}/source/template)
include_directories(${PROJECT_SOURCE_DIR}/source/template/instance)
include_directories(${PROJECT_SOURCE_DIR}/source/template/object)
include_directories(${PROJECT_SOURCE_DIR}/source/template/object/camera)
include_directories(${PROJECT_SOURCE_DIR}/source/template/object/mesh)
include_directories(${PROJECT_SOURCE_DIR}/source/template/object/shader)
include_directories(${PROJECT_SOURCE_DIR}/source/template/object/texture)
include_directories(${PROJECT_SOURCE_DIR}/source/utils)
link_directories(${PROJECT_SOURCE_DIR}/lib)
include(${PROJECT_SOURCE_DIR}/cmake/FindVulkan.cmake)
include(${PROJECT_SOURCE_DIR}/cmake/FindQt.cmake)
include(${PROJECT_SOURCE_DIR}/cmake/FindAssimp.cmake)
include(${PROJECT_SOURCE_DIR}/cmake/Report.cmake)
include(${PROJECT_SOURCE_DIR}/cmake/Functions.cmake)
#include(${PROJECT_SOURCE_DIR}/cmake/Softlink.cmake)
add_definitions(-DPROJECT_ABSOLUTE_PATH="${PROJECT_SOURCE_DIR}")
add_subdirectory(source)
add_subdirectory(examples)