-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
81 lines (61 loc) · 1.73 KB
/
Copy pathCMakeLists.txt
File metadata and controls
81 lines (61 loc) · 1.73 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
cmake_minimum_required(VERSION 3.20)
project(segfault LANGUAGES CXX VERSION 0.0.2)
set(VAR_TIMEIT "ON")
set(VAR_RELEASE "ON")
add_executable(segfault)
# add_library(segfault)
target_sources(segfault
PRIVATE
main.cc
src/dft.cc
src/hf.cc
src/mints.cc
src/beckegrid.cc
src/lebedev.cc
include/dft.hpp
include/hf.hpp
include/mints.hpp
include/beckegrid.hpp
include/lebedev.hpp
include/lblas.hpp
)
target_compile_features(segfault PRIVATE cxx_std_20)
target_compile_definitions(segfault
PRIVATE
RELEASE=${VAR_RELEASE}
TIMEIT=${VAR_TIMEIT}
)
message("MACRO definitions : ")
message("RELEASE is ${VAR_RELEASE}")
message("TIMEIT is ${VAR_TIMEIT}")
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") # g++
# TODO: use openblas if GNU
target_include_directories(segfault
PRIVATE
/home/lyh/intel/oneapi/mkl/2025.3/include/
)
target_link_directories(segfault
PRIVATE
/home/lyh/intel/oneapi/mkl/2025.3/lib/
)
target_compile_options(segfault PRIVATE -Wall -Wno-sign-compare -Wno-unused-variable -m64 -fopenmp) # how to link the right openmp lib?
target_link_options(segfault PRIVATE -m64 -Wl,--no-as-needed -lmkl_intel_lp64 -lmkl_gnu_thread -lmkl_core -lgomp -lpthread -lm -ldl)
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "IntelLLVM") # icpx
target_compile_options(segfault PRIVATE -Wall -Wno-unused-variable -qmkl -qopenmp)
target_link_options(segfault PRIVATE -qmkl -qopenmp)
endif()
# path to xtensor header
# target_include_directories(segfault
# PRIVATE
# )
# lib to libxc and libint
# target_link_directories(segfault
# PRIVATE
# ./lib/
# )
target_link_libraries(segfault
PRIVATE
int2 # libint2
xc # libxc
)
install(TARGETS segfault)