-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
131 lines (112 loc) · 4.06 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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
cmake_minimum_required(VERSION 3.8)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED YES)
set(CMAKE_CXX_EXTENSIONS NO)
project (OpenFlatland VERSION 0.1.2)
# enable project folders
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
set_property(GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER "CMake")
set(OpenFlatland_AppSRC
main.cpp
src/application.cpp
src/ann_viewer_widget.cpp
src/entity_vision_viewer_widget.cpp
src/colorize_circle_shape.cpp
src/colorize_ray_data.cpp
src/console_widget.cpp
src/const_element.cpp
src/const_element_line.cpp
src/const_elements_factory.cpp
src/entity.cpp
src/entity_factory.cpp
src/entity_ghost.cpp
src/entity_shell.cpp
src/entity_motion.cpp
src/drawable_entity_energy.cpp
src/drawable_entity_motion.cpp
src/drawable_entity_vision.cpp
src/drawable_object.cpp
src/drawable_spiking_neural_network.cpp
src/entity_energy.cpp
src/entity_vision.cpp
src/entity_vision_node.cpp
src/ray_data.cpp
src/font_factory.cpp
src/gui_widgets_layer.cpp
src/information_widget.cpp
src/performance_logger.cpp
src/physics_body.cpp
src/property_editor_widget.cpp
src/spiking_neural_network.cpp
src/neuron_layer.cpp
src/neuron_layer_container.cpp
src/neuron_layer_ray.cpp
src/neuron_layer_vector.cpp
src/artificial_neuron_engine.cpp
src/world.cpp
)
add_definitions(-DSFML_STATIC)
add_definitions(-DGLEW_STATIC)
add_definitions(-DSERIALIZABLE_USE_LUA)
add_definitions(-DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_OMP)
add_definitions(-DUSE_RAYDATA_EXT_TYPE)
add_definitions(-DUSE_THRUST_EXT_TYPE)
include_directories( include )
include_directories( libraries/CTPL-master )
include_directories( libraries/TinyThread++-1.0/source )
include_directories( libraries/SFML/include )
include_directories( libraries/imgui-sfml )
include_directories( libraries/imgui )
include_directories( libraries/box2d/include )
include_directories( libraries/thrust )
set(BOX2D_BUILD_EXAMPLES OFF CACHE BOOL "BOX2D build examples")
set(BOX2D_BUILD_STATIC ON CACHE BOOL "BOX2D static build")
set(BOX2D_BUILD_SHARED OFF CACHE BOOL "BOX2D shared build")
set(BOX2D_BUILD_TESTBED OFF CACHE BOOL "BOX2D testbed build")
set(BOX2D_BUILD_UNIT_TESTS OFF CACHE BOOL "BOX2D unit tests build")
set(SFML_USE_STATIC_STD_LIBS ON CACHE BOOL "SFML use static std libs")
set(SFML_BUILD_AUDIO OFF CACHE BOOL "SFML build audio")
set(BUILD_SHARED_LIBS OFF CACHE BOOL "Build shared libs")
set(IMGUI_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libraries/imgui)
option(IMGUI_SFML_FIND_SFML "Use find_package to find SFML" OFF)
# Add sub-directories
add_subdirectory(libraries/codeframe-master )
add_subdirectory(libraries/codeframe-master/thirdparty/lua-5.3.5/src )
add_subdirectory(libraries/codeframe-master/thirdparty/luabridge-master )
add_subdirectory(libraries/box2d )
add_subdirectory(libraries/SFML )
add_subdirectory(libraries/imgui-sfml )
add_executable(OpenFlatland_App
${OpenFlatland_AppSRC}
)
set_target_properties(OpenFlatland_App PROPERTIES
OUTPUT_NAME "OpenFlatland"
CLEAN_DIRECT_OUTPUT 1
)
set_target_properties(OpenFlatland_App PROPERTIES
CXX_STANDARD 17
CXX_STANDARD_REQUIRED YES
CXX_EXTENSIONS NO
)
target_include_directories( OpenFlatland_App
PUBLIC ${PROJECT_SOURCE_DIR}/include )
target_include_directories( OpenFlatland_App
PUBLIC ${PROJECT_SOURCE_DIR}/libraries/codeframe-master/include )
target_link_libraries( OpenFlatland_App
codeframe
sfml-graphics
sfml-network
sfml-window
sfml-system
libImGui-SFML
box2d
lualib
pthread
)
if(SFML_OS_WINDOWS OR SFML_OS_ANDROID OR SFML_OS_IOS)
target_link_libraries( OpenFlatland_App sfml-main )
endif()
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/arial.ttf
DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/examples/OpenFlatland_cfg.xml
DESTINATION ${CMAKE_CURRENT_BINARY_DIR})