-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathCMakeLists.txt
106 lines (90 loc) · 6.09 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
cmake_minimum_required(VERSION 3.5.1)
####################################################################################################
####################################################################################################
####################################################################################################
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_FORCE_INLINES")
####################################################################################################
####################################################################################################
####################################################################################################
#c++ 11, always before project to avoid infinite loop
set (CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_COMPILER "/usr/bin/g++-4.9")
####################################################################################################
####################################################################################################
####################################################################################################
project(sph)
####################################################################################################
####################################################################################################
####################################################################################################
#CPP MACROS USED IN PROJECT
add_definitions(-DDOUBLE_PRECISION=0)
add_definitions(-DRECORD_SIMULATION=0)
add_definitions(-DKERNEL_SET=1) #0 for monaghan, 1 for muller kernels
add_definitions(-DUSE_SURFACE_TENSION=1)
####################################################################################################
####################################################################################################
####################################################################################################
#BEGIN SUBMODULES DEPENDENCIES
if (NOT IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/external/sph_boundary_particles/src")
message(FATAL_ERROR "The sph boundary particles dependency repositories are missing! "
"You probably did not clone the project with --recursive. It is possible to recover "
"by calling \"git submodule update --init --recursive\"")
endif()
add_subdirectory("./external/sph_boundary_particles" "ext_build/sph_boundary_particles")
include_directories(./external/sph_boundary_particles/include)
#END SUBMODULES DEPENDENCIES
####################################################################################################
####################################################################################################
####################################################################################################
#for autocomplete database
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
####################################################################################################
####################################################################################################
####################################################################################################
include_directories(/usr/local/cuda/include/)
include_directories(./include/)
####################################################################################################
####################################################################################################
####################################################################################################
#LIBS
find_package(glfw3 3.2 REQUIRED)
find_package(OpenGL REQUIRED)
find_package(GLEW REQUIRED)
find_package(CUDA REQUIRED)
####################################################################################################
####################################################################################################
####################################################################################################
#include project subdirs
include(${CMAKE_CURRENT_SOURCE_DIR}/sph/CMakeLists.txt)
include(${CMAKE_CURRENT_SOURCE_DIR}/common/CMakeLists.txt)
####################################################################################################
####################################################################################################
####################################################################################################
#project sources
set(SOURCES ${SPH_FILES})
####################################################################################################
####################################################################################################
####################################################################################################
#CUDA OPTIONS
set(CUDA_64_BIT_DEVICE_CODE ON)
set(NVCC_FLAGS_EXTRA ${NVCC_FLAGS_EXTRA} -D_FORCE_INLINES)
set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} "-gencode arch=compute_35,code=sm_35 -gencode arch=compute_52,code=sm_52 --use_fast_math --maxrregcount 40 -Xcompiler -rdynamic -lineinfo")
message(${CUDA_NVCC_FLAGS})
CUDA_INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR})
set(CUDA_SOURCES ${CUDA_SPH_FILES})
CUDA_COMPILE(CUDA_OBJ ${CUDA_SOURCES})
####################################################################################################
####################################################################################################
####################################################################################################
add_executable(sph main.cpp ${SPH_FILES} ${CUDA_OBJ})
####################################################################################################
####################################################################################################
####################################################################################################
target_link_libraries(sph ${OPENGL_gl_LIBRARY})
target_link_libraries(sph ${OPENGL_LIBRARIES})
target_link_libraries(sph glfw ${GLFW_LIBRARIES})
target_link_libraries(sph ${GLEW_LIBRARIES})
target_link_libraries(sph ${CUDA_LIBRARIES})
target_link_libraries(sph ss)