-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
50 lines (41 loc) · 1.88 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
cmake_minimum_required(VERSION 3.1)
project(GraphicsExam LANGUAGES CXX)
file( GLOB SOURCES src/*.cpp include/*.hpp include/*.h)
add_executable(GraphicsExam
${PROJECT_SOURCE_DIR}/src ${SOURCES})
set_target_properties(GraphicsExam
PROPERTIES
CXX_STANDARD 17
CXX_STANDARD_REQUIRED ON
RUNTIME_OUTPUT_DIRECTORY "bin"
LIBRARY_OUTPUT_DIRECTORY "lib")
find_package(OpenGL REQUIRED)
set( GLFW_BUILD_EXAMPLES OFF CACHE BOOL "turn off build examples" FORCE)
set( GLFW_BUILD_TESTS OFF CACHE BOOL "turn off tests" FORCE)
target_include_directories(GraphicsExam
PRIVATE ${PROJECT_SOURCE_DIR}/include
PRIVATE ${PROJECT_SOURCE_DIR}/glew-2.1.0/include
PRIVATE ${PROJECT_SOURCE_DIR}/freetype-2.9/include
PRIVATE ${PROJECT_SOURCE_DIR}/glfw-3.2.1/include
PRIVATE ${PROJECT_SOURCE_DIR}/glm-0.9.9-a2/glm
PRIVATE ${PROJECT_SOURCE_DIR}/assimp/include
PRIVATE ${PROJECT_SOURCE_DIR}/build/assimp/include
PRIVATE ${PROJECT_SOURCE_DIR}/SOIL/src
PRIVATE ${PROJECT_SOURCE_DIR}/freetype-2.8/include)
add_subdirectory(${PROJECT_SOURCE_DIR}/glfw-3.2.1)
add_subdirectory(${PROJECT_SOURCE_DIR}/assimp)
add_subdirectory(${PROJECT_SOURCE_DIR}/freetype-2.8)
set(CMAKE_PREFIX_PATH ${PROJECT_SOURCE_DIR}/glew-2.1.0/)
set(CMAKE_LIBRARY_PATH ${PROJECT_SOURCE_DIR}/glew-2.1.0/lib/Release/Win32/)
find_package(GLEW REQUIRED)
configure_file(${PROJECT_SOURCE_DIR}/glew-2.1.0/bin/Release/Win32/glew32.dll ${PROJECT_SOURCE_DIR}/build/glew32.dll COPYONLY)
file(COPY ${PROJECT_SOURCE_DIR}/shaders/ DESTINATION ${PROJECT_SOURCE_DIR}/build/shaders/)
file(COPY ${PROJECT_SOURCE_DIR}/assets/ DESTINATION ${PROJECT_SOURCE_DIR}/build/assets/)
find_library(GLEW_LIBRARY NAMES GLEW glew32 glew glew32s PATH_SUFFIXES lib32)
target_link_libraries(GraphicsExam
PRIVATE ${OPENGL_LIBRARIES}
PRIVATE ${GLEW_LIBRARIES}
PRIVATE glfw ${GLFW_LIBRARIES}
PRIVATE ${SOIL_LIBRARY}
PRIVATE freetype ${FREETYPE_LIBRARIES}
PRIVATE assimp)