Newer
Older
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
cmake_minimum_required(VERSION 3.0)
option(INCLUDE_CUDA "GPU build in mode" OFF)
option(INCLUDE_CXX "CXX build in mode" OFF)
project(INMCM_sfx)
enable_language(Fortran)
if(INCLUDE_CXX)
set(RUN_MACRO -DINCLUDE_CXX)
endif(INCLUDE_CXX)
if(INCLUDE_CUDA)
enable_language(CUDA)
find_package(CUDA REQUIRED)
include_directories(${CUDA_INCLUDE_DIRS})
set(RUN_MACRO -DINCLUDE_CUDA)
set(INCLUDE_CXX ON)
endif(INCLUDE_CUDA)
if(INCLUDE_CXX)
enable_language(C)
enable_language(CXX)
set(CMAKE_CXX_STANDARD 11)
endif(INCLUDE_CXX)
set(SOURCES_F
srcF/sfx_data.f90
srcF/sfx_common.f90
srcF/sfx_esm.f90
srcF/sfx_esm_param.f90
srcF/sfx_log.f90
srcF/sfx_log_param.f90
srcF/sfx_main.f90
srcF/sfx_phys_const.f90
srcF/sfx_surface.f90
srcF/FCWrapper.F90
)
if(INCLUDE_CXX)
set(SOURCES_C
srcC/SubFunctionsWrapper.c
)
set(SOURCES_CXX
if(INCLUDE_CXX OR INCLUDE_CUDA)
set(MEMPROC_SOURCES_CXX
srcCXX/MemoryProcessing.cpp
)
set(MEMPROC_HEADERS_CXX
includeCXX/MemoryProcessing.h
includeCXX/TemplateParameters.h
)
if(INCLUDE_CUDA)
set(MEMPROC_SOURCES_CU
srcCU/MemoryProcessing.cu
)
set(MEMPROC_HEADERS_CU
includeCU/MemoryProcessing.cuh
)
endif(INCLUDE_CUDA)
endif(INCLUDE_CXX OR INCLUDE_CUDA)
set(SOURCES ${MEMPROC_HEADERS_CU} ${MEMPROC_SOURCES_CU} ${MEMPROC_HEADERS_CXX} ${MEMPROC_SOURCES_CXX} ${HEADERS_CU} ${SOURCES_CU} ${HEADERS_CXX} ${SOURCES_CXX} ${SOURCES_C} ${HEADERS_F} ${SOURCES_F})
set(CMAKE_Fortran_FLAGS " -cpp ")