-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
76 lines (66 loc) · 1.94 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
76
cmake_minimum_required(VERSION 2.8)
project(simulation)
find_package(OpenGL REQUIRED)
if (APPLE)
set(CMAKE_MACOSX_RPATH 1)
endif()
if (UNIX)
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --std=gnu++11")
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g")
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-unused-variable")
# recommended but not set by default
# set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror")
elseif(MSVC)
# recommended but not set by default
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -WX")
endif()
set (A_LIBS ${OPENGL_gl_LIBRARY})
# GLFW
set(GLFW_INSTALL OFF CACHE BOOL " " FORCE)
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(BUILD_SHARED_LIBS OFF CACHE BOOL " " FORCE)
add_subdirectory(3rd_party/glfw)
list(APPEND A_LIBS glfw)
list(APPEND A_INCLUDES 3rd_party/glfw/include)
# GLEW - not needed on OS Xf
# we add glew source/header directly to the build, no glew library build.
if (NOT APPLE)
add_definitions(-DGLEW_STATIC)
list(APPEND A_INCLUDES 3rd_party/glew/include)
list(APPEND A_SRC 3rd_party/glew/src/glew.c)
SOURCE_GROUP(GLEW FILES 3rd_party/glew/src/glew.c)
endif()
# vecmath include directory
include_directories(vecmath/include)
add_subdirectory(vecmath)
list (APPEND A_LIBS vecmath)
list (APPEND A_INCLUDES vecmath/include)
list (APPEND A_SRC
src/main.cpp
src/starter3_util.cpp
src/camera.cpp
src/vertexrecorder.cpp
src/clothsystem.cpp
src/timestepper.cpp
src/particlesystem.cpp
src/pendulumsystem.cpp
src/rigidBall.cpp
src/mirror.cpp
)
list (APPEND A_HEADER
src/gl.h
src/starter3_util.h
src/camera.h
src/vertexrecorder.h
src/clothsystem.h
src/timestepper.h
src/particlesystem.h
src/pendulumsystem.h
src/rigidBall.h
src/mirror.h
)
add_executable(simulation ${A_SRC} ${A_HEADER})
target_include_directories(simulation PUBLIC ${A_INCLUDES})
target_link_libraries(simulation ${A_LIBS})