-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
105 lines (83 loc) · 3.3 KB
/
CMakeLists.txt
File metadata and controls
105 lines (83 loc) · 3.3 KB
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
# CMakeList.txt : Top-level CMake project file, do global configuration
# and include sub-projects here.
#
cmake_minimum_required (VERSION 3.25)
# Enable Hot Reload for MSVC compilers if supported.
if (POLICY CMP0141)
cmake_policy(SET CMP0141 NEW)
set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT "$<IF:$<AND:$<C_COMPILER_ID:MSVC>,$<CXX_COMPILER_ID:MSVC>>,$<$<CONFIG:Debug,RelWithDebInfo>:EditAndContinue>,$<$<CONFIG:Debug,RelWithDebInfo>:ProgramDatabase>>")
endif()
project ("CG2")
add_subdirectory(eigen)
find_package(fcl CONFIG REQUIRED)
find_package(embree CONFIG REQUIRED)
list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake/")
include(CPM)
include(json)
include(libigl)
include(rigid_ipc)
target_compile_features(ipc_rigid PUBLIC cxx_std_23)
target_compile_options(ipc_rigid PRIVATE /FI "${CMAKE_SOURCE_DIR}/force_assert.h")
target_compile_options(tight_inclusion PRIVATE /FI "${CMAKE_SOURCE_DIR}/force_assert.h")
include(CheckLanguage)
check_language(CUDA)
if (CMAKE_CUDA_COMPILER )
add_compile_definitions(HAS_CUDA)
enable_language(CUDA)
set(CMAKE_CUDA_STANDARD 23)
set(CMAKE_CUDA_ARCHITECTURES native)
endif()
set(CMAKE_CXX_STANDARD 23)
message(${CMAKE_VERSION})
message(${CMAKE_CXX_COMPILER})
add_definitions(-DNOMINMAX=1)
set(JUST_INSTALL_CEREAL ON)
find_package(Boost REQUIRED)
find_package(benchmark REQUIRED)
# Include sub-projects.
add_subdirectory(portable-file-dialogs)
add_subdirectory(polyscope)
add_subdirectory(cereal)
enable_testing()
# Include Test Project
add_subdirectory(src)
if (CMAKE_CUDA_COMPILER )
#find_package( FindCUDAToolkit REQUIRED)
set_source_files_properties(src/common/raytracing.cu PROPERTIES LANGUAGE CUDA)
set(CUDA_RUNTIME_LIBRARY Static)
set_property(TARGET common PROPERTY CUDA_STANDARD 23)
target_compile_options(common PRIVATE $<$<COMPILE_LANGUAGE:CUDA>:
-arch=native;
-std=c++20;
-Xcompiler;
-pthread
-lnvshmem
-lmpi_cxx
-lmpi
-lcufft
-lcudart
-lcublas
-lineinfo
-DNDEBUG
--use_fast_math
>)
set(CMAKE_CUDA_STANDARD_REQUIRED ON)
message(STATUS "CUDA FOUND")
message(STATUS ${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES})
endif()
if (CMAKE_VERSION VERSION_GREATER 3.12)
set_property(TARGET sampling_plane PROPERTY CXX_STANDARD 23)
endif()
set(CMAKE_VERBOSE_MAKEFILE ON)
if ( MSVC )
SET(CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS}-lcufft;-lcudart;-lcublas;-lineinfo;--use_fast_math;-rdc=true;-lcudadevrt")
SET(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} ${CUDA_NVCC_FLAGS} -O3 -DNDEBUG")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP") # parallel build
if ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
message(STATUS ${CMAKE_CUDA_FLAGS})
message("Build in Release Mode")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /O2 /permissive- /GS- /GL /Gy /Gm- /sdl- /guard:ehcont- /D \"_HAS_EXCEPTIONS=0\" /fp:except- /WX- /Zc:forScope /GR- /Gd /Oi /Ot /EHsc /MD /O2")
endif()
endif()
file(COPY ${CMAKE_SOURCE_DIR}/off_files DESTINATION ${CMAKE_CURRENT_BINARY_DIR})