11cmake_minimum_required (VERSION 3.15...3.26)
22
3+ # project settings
34project (
45 ${SKBUILD_PROJECT_NAME}
56 VERSION ${SKBUILD_PROJECT_VERSION}
67 LANGUAGES CXX)
78
9+ # find python and pybind11
810find_package (Python REQUIRED COMPONENTS Interpreter Development.Module)
911find_package (pybind11 CONFIG REQUIRED)
1012
13+ # set source path
1114set (ABACUS_SOURCE_DIR "${PROJECT_SOURCE_DIR} /../../source" )
1215set (BASE_PATH "${ABACUS_SOURCE_DIR} /module_base" )
1316set (NAO_PATH "${ABACUS_SOURCE_DIR} /module_basis/module_nao" )
1417set (HSOLVER_PATH "${ABACUS_SOURCE_DIR} /module_hsolver" )
15- set (HAMILT_PATH "${ABACUS_SOURCE_DIR} /module_hamilt_general" )
1618set (PSI_PATH "${ABACUS_SOURCE_DIR} /module_psi" )
1719set (ENABLE_LCAO ON )
1820list (APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR} /../../cmake" )
@@ -63,11 +65,14 @@ else()
6365 endif ()
6466endif ()
6567
66- include_directories (${BASE_PATH}
68+ # add include directories
69+ include_directories (
70+ ${BASE_PATH}
6771 ${ABACUS_SOURCE_DIR}
68- ${ABACUS_SOURCE_DIR} /module_base/module_container)
72+ ${ABACUS_SOURCE_DIR} /module_base/module_container
73+ )
6974
70- # add library
75+ # add basic libraries
7176set (CMAKE_POSITION_INDEPENDENT_CODE ON )
7277# add base
7378set (BASE_BINARY_DIR "${PROJECT_SOURCE_DIR} /build/base" )
@@ -80,83 +85,6 @@ set(ORB_BINARY_DIR "${PROJECT_SOURCE_DIR}/build/orb")
8085add_subdirectory (${ABACUS_SOURCE_DIR} /module_basis/module_ao ${ORB_BINARY_DIR} )
8186# set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
8287
83- # add nao shared library
84- list (APPEND _naos
85- ${NAO_PATH} /atomic_radials.cpp
86- ${NAO_PATH} /beta_radials.cpp
87- ${NAO_PATH} /hydrogen_radials.cpp
88- ${NAO_PATH} /numerical_radial.cpp
89- ${NAO_PATH} /pswfc_radials.cpp
90- ${NAO_PATH} /radial_collection.cpp
91- ${NAO_PATH} /radial_set.cpp
92- ${NAO_PATH} /real_gaunt_table.cpp
93- ${NAO_PATH} /sphbes_radials.cpp
94- ${NAO_PATH} /two_center_bundle.cpp
95- ${NAO_PATH} /two_center_integrator.cpp
96- ${NAO_PATH} /two_center_table.cpp
97- ${NAO_PATH} /projgen.cpp
98- # dependency
99- ${ABACUS_SOURCE_DIR} /module_base/kernels/math_op.cpp
100- # ${ABACUS_SOURCE_DIR}/module_psi/kernels/psi_memory_op.cpp
101- ${ABACUS_SOURCE_DIR} /module_base/module_device/memory_op.cpp
102- )
103- add_library (naopack SHARED
104- ${_naos}
105- )
106- # add diago shared library
107- list (APPEND _diago
108- ${HSOLVER_PATH} /diago_dav_subspace.cpp
109- ${HSOLVER_PATH} /diago_david.cpp
110- ${HSOLVER_PATH} /diag_const_nums.cpp
111- ${HSOLVER_PATH} /diago_iter_assist.cpp
112-
113- ${HSOLVER_PATH} /kernels/dngvd_op.cpp
114- ${HSOLVER_PATH} /kernels/math_kernel_op.cpp
115- # dependency
116- ${BASE_PATH} /module_device/device.cpp
117- ${BASE_PATH} /module_device/memory_op.cpp
118-
119- ${HAMILT_PATH} /operator.cpp
120- ${PSI_PATH} /psi.cpp
121- )
122- add_library (diagopack SHARED
123- ${_diago}
124- )
125- target_link_libraries (diagopack
126- PRIVATE
127- ${OpenBLAS_LIBRARIES}
128- ${LAPACK_LIBRARIES}
129- )
130- # link math_libs
131- if (MKLROOT)
132- target_link_libraries (naopack
133- base
134- parameter
135- container
136- orb
137- ${math_libs}
138- MPI::MPI_CXX
139- OpenMP::OpenMP_CXX
140- )
141- else ()
142- target_link_libraries (naopack
143- base
144- parameter
145- container
146- orb
147- ${math_libs}
148- )
149- endif ()
150- # list(APPEND _sources ${_naos} ${_bases})
151- list (APPEND _sources
152- ${PROJECT_SOURCE_DIR} /src/py_abacus.cpp
153- ${PROJECT_SOURCE_DIR} /src/py_base_math.cpp
154- ${PROJECT_SOURCE_DIR} /src/py_m_nao.cpp
155- ${PROJECT_SOURCE_DIR} /src/py_hsolver.cpp
156- )
157- pybind11_add_module(_core MODULE ${_sources} )
158- target_link_libraries (_core PRIVATE pybind11::headers naopack diagopack)
159- target_compile_definitions (_core PRIVATE VERSION_INFO=${PROJECT_VERSION} )
16088# set RPATH
16189execute_process (
16290 COMMAND "${PYTHON_EXECUTABLE} " -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())"
@@ -167,9 +95,9 @@ execute_process(
16795# set package name to pyabacus
16896set (TARGET_PACK pyabacus)
16997set (CMAKE_INSTALL_RPATH "${PYTHON_SITE_PACKAGES} /${TARGET_PACK} " )
170- set_target_properties (_core PROPERTIES INSTALL_RPATH "$ORIGIN" )
171- set_target_properties (naopack PROPERTIES INSTALL_RPATH "$ORIGIN" )
172- set_target_properties (diagopack PROPERTIES INSTALL_RPATH "$ORIGIN" )
173- install (TARGETS _core naopack DESTINATION ${TARGET_PACK} )
174- install (TARGETS _core diagopack DESTINATION ${TARGET_PACK} )
98+
99+ # add subdirectories for submodules
100+ add_subdirectory ( ${PROJECT_SOURCE_DIR} /src/hsolver )
101+ add_subdirectory ( ${PROJECT_SOURCE_DIR} /src/ModuleBase )
102+ add_subdirectory ( ${PROJECT_SOURCE_DIR} /src/ModuleNAO )
175103
0 commit comments