-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
76 lines (68 loc) · 2.79 KB
/
Copy pathCMakeLists.txt
File metadata and controls
76 lines (68 loc) · 2.79 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
# Cmake Setting
cmake_minimum_required(VERSION 3.10)
# Compile Setting
# - MKL ROOT
set(MKL_PATH "$ENV{MKLROOT}")
# - Compiler: C++
set(CMAKE_CXX_COMPILER "mpicxx")
set(CXX_FLAGS "-cxx=icpx -O3")
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX_FLAGS}")
# - Compiler: C
set(CMAKE_C_COMPILER "mpicc")
set(C_FLAGS "-cc=icx -O3")
set(CMAKE_C_STANDARD 11)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${C_FLAGS}")
# Project Setting
project(HopCP)
set(CMAKE_INSTALL_PREFIX "${CMAKE_SOURCE_DIR}/install")
#----------------------------------------------------------------------------
# (IF YOU DO NOT KNOW YOU ARE DOING,) DO NOT CHANGE THE LINES BELOW!
#----------------------------------------------------------------------------
# Lib & includes
set(EXT_LIB_PATH "${CMAKE_CURRENT_SOURCE_DIR}/external")
# -- PETSc and SLEPc
set(PETSC_PATH "${EXT_LIB_PATH}/PETSc/install")
# -- -- Include
set(PETSC_INCLUDE_PATH "${PETSC_PATH}/include")
include_directories(${PETSC_INCLUDE_PATH})
# -- -- Lib: PETSC_LIBRARY
set(PETSC_LIB_PATH "${PETSC_PATH}/lib")
set(INSTALL_RPATH_LIST "${PETSC_LIB_PATH}:${INSTALL_RPATH_LIST}")
find_library(SLPEC_LIB NAMES slepc PATHS ${PETSC_LIB_PATH})
find_library(PETSC_LIB NAMES petsc PATHS ${PETSC_LIB_PATH})
set(PETSC_LIBRARY ${PETSC_LIB} ${SLPEC_LIB})
# -- PEXSI
set(PEXSI_PATH "${EXT_LIB_PATH}/PEXSI/install")
# -- -- Include
set(PEXSI_INCLUDE_PATH "${PEXSI_PATH}/include")
include_directories(${PEXSI_INCLUDE_PATH})
# -- -- Lib: PEXSI_LIBRARY
set(PEXSI_LIB_PATH "${PEXSI_PATH}/lib")
set(INSTALL_RPATH_LIST "${PEXSI_LIB_PATH}:${INSTALL_RPATH_LIST}")
find_library(PEXSI_LIB NAMES pexsi PATHS ${PEXSI_LIB_PATH})
find_library(SULUD_PEXSI_LIB NAMES superlu_dist_pexsi PATHS ${PEXSI_LIB_PATH})
find_library(PMETIS_LIB NAMES parmetis PATHS ${PEXSI_LIB_PATH})
find_library(METIS_LIB NAMES metis PATHS ${PEXSI_LIB_PATH})
find_library(GK_LIB NAMES GKlib PATHS ${PEXSI_LIB_PATH})
set(PEXSI_LIBRARY
${PEXSI_LIB} ${SULUD_PEXSI_LIB} ${PMETIS_LIB} ${METIS_LIB} ${GK_LIB})
# -- Intel MKL
# -- -- Include
set(MKL_INCLUDE_PATH "${MKL_PATH}/include")
include_directories(${MKL_INCLUDE_PATH})
# -- -- Lib: MKL_LIBRARY
set(MKL_LIB_PATH "${MKL_PATH}/lib/intel64")
set(INSTALL_RPATH_LIST "${MKL_LIB_PATH}:${INSTALL_RPATH_LIST}")
find_library(MKL_LP64_LIB NAMES mkl_intel_lp64 PATHS ${MKL_LIB_PATH})
find_library(MKL_SEQ_LIB NAMES mkl_sequential PATHS ${MKL_LIB_PATH})
find_library(MKL_CORE_LIB NAMES mkl_core PATHS ${MKL_LIB_PATH})
set(MKL_LIBRARY ${MKL_LP64_LIB} ${MKL_SEQ_LIB} ${MKL_CORE_LIB})
# -- CppToml
# -- -- Include
set(CPPTOML_PATH "${EXT_LIB_PATH}/cpptoml/install")
set(CPPTOML_INCLUDE_PATH "${CPPTOML_PATH}/include")
include_directories(${CPPTOML_INCLUDE_PATH})
# Add src and test subdirectories
add_subdirectory(src)
add_subdirectory(test)