-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
73 lines (66 loc) · 2.05 KB
/
CMakeLists.txt
File metadata and controls
73 lines (66 loc) · 2.05 KB
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
cmake_minimum_required(VERSION 3.16)
# set app name
set(APP_NAME ImageSharingSystem)
# set path
set(EXTERNAL_PATH ${CMAKE_CURRENT_SOURCE_DIR}/external)
set(GLFW_PATH ${EXTERNAL_PATH}/glfw)
set(GLEW_PATH ${EXTERNAL_PATH}/glew)
set(SPOUT2_PATH ${EXTERNAL_PATH}/spout2)
set(GLM ${EXTERNAL_PATH}/glm)
set(STB ${EXTERNAL_PATH}/stb)
# set glfw
set(GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE)
set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE)
set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
set(GLFW_INSTALL OFF CACHE BOOL "" FORCE)
set(GLFW_BUILD_INSTALL OFF CACHE BOOL " " FORCE)
set(GLFW_USE_CHDIR OFF CACHE BOOL " " FORCE)
set(GLFW_VULKAN_STATIC OFF CACHE BOOL " " FORCE)
set(BUILD_UTILS OFF CACHE BOOL "" FORCE)
# specify version of compiler
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
# set project
project(${APP_NAME})
# set visual studio startup project
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT ${APP_NAME})
# set configuration
set(CMAKE_CONFIGURATION_TYPES Debug Release CACHE STRING "Configurations" FORCE)
# make executable app
add_executable(${APP_NAME})
# add source files
add_subdirectory(src)
# suppress generation of ZERO_CHECK project
set(CMAKE_SUPPRESS_REGENERATION ON)
# set additional include directories
target_include_directories(
${APP_NAME}
PUBLIC
${GLEW_PATH}/include
${GLFW_PATH}/include
${SPOUT2_PATH}/SPOUTSDK/SpoutGL
${GLM}
${STB}
${CMAKE_CURRENT_SOURCE_DIR}/shader
)
# add glfw and glew project
add_subdirectory(${GLFW_PATH} ${CMAKE_CURRENT_BINARY_DIR}/glfw)
add_subdirectory(${GLEW_PATH}/build/cmake ${CMAKE_CURRENT_BINARY_DIR}/glew)
add_subdirectory(${SPOUT2_PATH}/SPOUTSDK/SpoutGL ${CMAKE_CURRENT_BINARY_DIR}/spout)
# find opengl
find_package(OpenGL REQUIRED)
# set additional link
target_link_libraries(
${APP_NAME}
${OPENGL_LIBRARIES}
glfw
glew_s
Spout_static
)
# add preprocessor def
if(SENDER)
target_compile_definitions(${APP_NAME} PUBLIC SENDER)
else()
target_compile_definitions(${APP_NAME} PUBLIC RECEIVER)
endif()