-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
102 lines (66 loc) · 3.2 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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
cmake_minimum_required(VERSION 3.0)
project("Verlet" C CXX)
# # test
# include(CTest)
# enable_testing()
set(CMAKE_C_FLAGS "-std=c99 -Wall -pthread -Wextra -Wunused-parameter -Wstrict-prototypes")
set(CMAKE_C_FLAGS_DEBUG "-g -pg -mavx ") # use CMake option: -DCMAKE_BUILD_TYPE=DEBUG
set(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG") # use CMake option: -DCMAKE_BUILD_TYPE=RELEASE
# file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/test/standardSave.txt DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
############################# CIMGUI ############################
set(BAKENDS_FOLDER "cimgui/imgui/backends/")
set(TABLES_SOURCE "cimgui/imgui/imgui_tables.cpp")
include_directories(cimgui/imgui)
add_definitions("-DIMGUI_DISABLE_OBSOLETE_FUNCTIONS=1")
include_directories(cimgui)
set(IMGUI_SOURCES
cimgui/cimgui.cpp
cimgui/imgui/imgui.cpp
cimgui/imgui/imgui_draw.cpp
cimgui/imgui/imgui_demo.cpp
cimgui/imgui/imgui_widgets.cpp
${TABLES_SOURCE}
)
add_definitions("-DIMGUI_IMPL_API=extern \"C\" ")
add_compile_definitions("IMGUI_IMPL_OPENGL_LOADER_GL3W")
#opengl3
list(APPEND IMGUI_SOURCES ${BAKENDS_FOLDER}imgui_impl_opengl3.cpp)
include_directories(cimgui/imgui/examples/libs/gl3w)
list(APPEND IMGUI_LIBRARIES GL)
###
############################# SDL2 ############################
## use a CMake3 package to solve SDL2 dependencies
list(APPEND IMGUI_SOURCES ${BAKENDS_FOLDER}imgui_impl_sdl2.cpp)
find_package(SDL2 REQUIRED)
set(SDL2_ALL_INC ${SDL2_INCLUDE_DIRS})
set(SDL2_ALL_LIBS ${SDL2_LIBRARIES} )
## print this
message(STATUS "SDL2 include dir: ${SDL2_ALL_INC}")
message(STATUS "SDL2 all libraries: ${SDL2_ALL_LIBS}")
set(IMGUI_SDL_LIBRARY ${SDL2_LIBRARIES})
include_directories(${SDL2_ALL_INC})
include_directories(./src/simulation)
include_directories(./src/graphic)
add_library(cimgui_sdl SHARED ${IMGUI_SOURCES})
target_link_libraries(cimgui_sdl ${IMGUI_LIBRARIES} ${IMGUI_SDL_LIBRARY})
include_directories(cimgui/generator/output/)
############################# SRC #############################
add_executable(verlet_circle src/simulation/circle_verlet.c src/graphic/verlet.c src/graphic/graphics.c src/simulation/error_handler.c)
add_executable(main test/main.c)
target_compile_definitions(verlet_circle PUBLIC -DCIMGUI_USE_OPENGL3 -DCIMGUI_USE_SDL2)
add_library(verlet src/simulation/error_handler.c src/simulation/circle_verlet.c src/simulation/simulation.c src/simulation/color.c src/simulation/save.c src/simulation/sticks.c src/simulation/spatial_hashing.c src/simulation/simd.c)
target_link_libraries(verlet m pthread)
target_link_libraries(verlet_circle ${SDL2_ALL_LIBS} m verlet ${IMGUI_SDL_LIBRARY} cimgui_sdl)
target_link_libraries(main verlet)
############################ TESTS TMP ############################
add_executable(sim_test test/sim_test.c)
target_link_libraries(sim_test verlet)
add_executable(verlet_test test/test.c)
target_link_libraries(verlet_test verlet)
# ############################# TEST V1 #############################
# # Aux Tests(game_aux.h)
# add_test(testv1_default ./game_test "default")
# add_test(testv1_default_solution ./game_test "default_solution")
# add_test(testv1_print ./game_test "print")
# file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/badSave.txt DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
# EOF