-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
38 lines (20 loc) · 1.1 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
cmake_minimum_required(VERSION 3.18 FATAL_ERROR)
project(test LANGUAGES CXX CUDA C)
set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CUDA_STANDARD 23)
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake-modules")
include(FindCUDA)
FIND_PACKAGE(PETSc REQUIRED)
file(GLOB_RECURSE INC_FILES shared.cuh)
file(GLOB_RECURSE SRC_FILES main.cu)
INCLUDE_DIRECTORIES(${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES} ${PETSC_INCLUDES})
LINK_DIRECTORIES(${PETSC_LIBRARIES} ${CUDA_LIBRARIES})
ADD_DEFINITIONS(${PETSC_DEFINITIONS})
set(SOURCE_FILES ${INC_FILES} ${SRC_FILES})
add_executable(test ${SOURCE_FILES})
set_target_properties(test
PROPERTIES CUDA_SEPARABLE_COMPILATION ON
)
target_link_options(test PUBLIC)
target_link_libraries(test ${PETSC_LIBRARIES})
# cmake . -DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx -DCMAKE_CUDA_COMPILER=nvcc -DCMAKE_CUDA_ARCHITECTURES=80 -DCMAKE_CXX_FLAGS="-O3" -DCMAKE_CUDA_FLAGS="-ccbin mpicxx" -DCMAKE_INCLUDE_PATH=/work/08435/srvenkat/ls6/petsc/arch-linux-c-debug/include -DCMAKE_LIBRARY_PATH=/work/08435/srvenkat/ls6/petsc/arch-linux-c-debug/lib