More cmake updates (#2570)

* More work on cmake

* Fix funky libxsmm library order

* Fix naming conventions

* fix namespace name

* Fix libxc include (#6)

* Fix cosma

* make pretty

* Add MPI08 support. Minor cleanups

---------

Co-authored-by: Rocco Meli <r.meli@bluemail.ch>
This commit is contained in:
Taillefumier Mathieu 2023-02-10 13:38:55 +01:00 committed by GitHub
parent d4636021b7
commit 685d0dbee4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
29 changed files with 396 additions and 323 deletions

View file

@ -80,6 +80,7 @@ option(CP2K_DEBUG_MODE "Enable several additional options for debugging cp2k."
option(CP2K_USE_SIRIUS "Enable plane wave dft calculations with sirius" OFF)
option(CP2K_USE_FFTW3 "Use fftw3 for the calculating fast fourier transforms"
ON)
option(CP2K_USE_MPI "Enable MPI support" ON)
option(CP2K_USE_ELPA "Enable elpa support" OFF)
option(CP2K_USE_PEXSI "Enable pexsi support" OFF)
option(CP2K_USE_SUPERLU "Enable superlu support" OFF)
@ -105,6 +106,8 @@ cmake_dependent_option(CP2K_ENABLE_FFTW3_OPENMP_SUPPORT
"Enable FFTW openmp support" ON "CP2K_USE_FFTW3" OFF)
cmake_dependent_option(CP2K_ENABLE_FFTW3_THREADS_SUPPORT
"Enable FFTW THREADS support" OFF "CP2K_USE_FFTW3" OFF)
cmake_dependent_option(CP2K_ENABLE_F08_MPI "Enable MPI Fortran 2008 interface"
OFF "CP2K_USE_MPI" OFF)
set(CP2K_SCALAPACK_VENDOR_LIST "MKL" "SCI" "GENERIC")
set(CP2K_SCALAPACK_VENDOR
@ -226,33 +229,64 @@ add_custom_target(
# MPI
get_property(REQUIRED_MPI_COMPONENTS GLOBAL PROPERTY ENABLED_LANGUAGES)
list(REMOVE_ITEM REQUIRED_MPI_COMPONENTS CUDA) # CUDA does not have an MPI
# component
if(NOT CMAKE_CROSSCOMPILING) # when cross compiling, assume the users know
# what they are doing
set(MPI_DETERMINE_LIBRARY_VERSION TRUE)
endif()
find_package(
MPI
COMPONENTS ${REQUIRED_MPI_COMPONENTS}
REQUIRED)
if(CP2K_USE_MPI)
get_property(REQUIRED_MPI_COMPONENTS GLOBAL PROPERTY ENABLED_LANGUAGES)
list(REMOVE_ITEM REQUIRED_MPI_COMPONENTS CUDA) # CUDA does not have an MPI
# component
if(NOT CMAKE_CROSSCOMPILING) # when cross compiling, assume the users know
# what they are doing
set(MPI_DETERMINE_LIBRARY_VERSION TRUE)
endif()
find_package(
MPI
COMPONENTS ${REQUIRED_MPI_COMPONENTS}
REQUIRED)
if(NOT MPI_Fortran_HAVE_F90_MODULE)
message(
FATAL_ERROR
"\
if(NOT MPI_Fortran_HAVE_F90_MODULE)
message(
FATAL_ERROR
"\
The listed MPI implementation does not provide the required mpi.mod interface. \
When using the GNU compiler in combination with Intel MPI, please use the \
Intel MPI compiler wrappers. Check the INSTALL.md for more information.")
endif()
if("${MPI_Fortran_LIBRARY_VERSION_STRING}" MATCHES "Open MPI v2.1"
OR "${MPI_Fortran_LIBRARY_VERSION_STRING}" MATCHES "Open MPI v3.1")
message(
WARNING
"RMA with ${MPI_Fortran_LIBRARY_VERSION_STRING} is not supported due to issues with its implementation."
" Please use a newer version of OpenMPI or switch to MPICH if you plan on using MPI-RMA."
)
endif()
if("${MPI_Fortran_LIBRARY_VERSION_STRING}" MATCHES "Open MPI v2.1"
OR "${MPI_Fortran_LIBRARY_VERSION_STRING}" MATCHES "Open MPI v3.1")
message(
WARNING
"RMA with ${MPI_Fortran_LIBRARY_VERSION_STRING} is not supported due to issues with its implementation."
" Please use a newer version of OpenMPI or switch to MPICH if you plan on using MPI-RMA."
)
endif()
else()
if(CP2K_USE_SIRIUS
OR CP2K_USE_COSMA
OR CP2K_USE_SPLA
OR CP2K_USE_ELPA
OR CP2K_USE_METIS
OR CP2K_USE_PLUMED
OR CP2K_USE_PEXSI
OR CP2K_USE_QUIP)
message(
WARNING
"SIRIUS, COSMA, SPLA, ELPA, METIS, PLUMED, PEXSI and QUIP require MPI support. Either change -DCP2K_USE_MPI to ON or turn the following dependencies off"
)
foreach(
__libs
SIRIUS
COSMA
SPLA
ELPA
METIS
PLUMED
PEXSI
QUIP)
if(CP2K_USE_${__libs})
message(WARNING " - ${__libs}")
endif()
endforeach()
message(FATAL_ERROR " -- ")
endif()
endif()
# BLAS & LAPACK, PkgConfig
@ -266,7 +300,9 @@ endif()
# in practice it is always for any decent configuration. But I add a flags to
# turn it off
find_package(SCALAPACK REQUIRED)
if(CP2K_USE_MPI)
find_package(SCALAPACK REQUIRED)
endif()
# CUDA / ROCM easy for cuda a moving target for hip
@ -335,20 +371,20 @@ elseif(CP2K_USE_ACCEL MATCHES "HIP")
set(CMAKE_HIP_ARCHITECTURES gfx801 gfx900 gfx90a)
if(NOT CMAKE_BUILD_TYPE)
set(HIP_RELEASE_OPTIONS "-O3 -g -DNDEBUG")
set(HIP_RELEASE_OPTIONS "-O3 -g -DNDEBUG --std=c++11")
elseif(${CMAKE_BUILD_TYPE} STREQUAL "RelWithDebInfo")
set(HIP_RELEASE_OPTIONS "-O3 -g -DNDEBUG")
set(HIP_RELEASE_OPTIONS "-O3 -g -DNDEBUG --std=c++11")
elseif(${CMAKE_BUILD_TYPE} STREQUAL "Release")
set(HIP_RELEASE_OPTIONS "-O3 -DNDEBUG")
set(HIP_RELEASE_OPTIONS "-O3 -DNDEBUG --std=c++11")
elseif(${CMAKE_BUILD_TYPE} STREQUAL "Debug")
set(HIP_RELEASE_OPTIONS "-O0 -g")
set(HIP_RELEASE_OPTIONS "-O0 -g --std=c++11")
endif()
set(CP2K_ACC_ARCH_NUMBER ${CP2K_GPU_ARCH_NUMBER_${CP2K_WITH_GPU}})
set(CP2K_USE_HIP ON)
endif()
find_package(DBCSR 2.2.0 REQUIRED)
find_package(DBCSR 2.4 REQUIRED)
# =================================================================================================
# PACKAGE DISCOVERY (compiler configuration can impact package discovery)
@ -365,20 +401,14 @@ if(CP2K_USE_LIBXC)
endif()
if(CP2K_USE_COSMA)
find_package(cosma REQUIRED HINTS "${COSMA_ROOT}" "$ENV(COSMA_ROOT)")
get_target_property(COSMA_INCLUDE_DIRS cosma::cosma
INTERFACE_INCLUDE_DIRECTORIES)
if(NOT COSMA_INCLUDE_DIRS)
set(COSMA_INCLUDE_DIRS "/usr/include;/usr/include/cosma")
endif()
find_package(cosma REQUIRED)
# check that cosma::cosma_pxgemm and cosma::cosma_prefixed_pxgemm exist
if(NOT TARGET cosma::cosma_pxgemm OR NOT TARGET cosma::cosma_prefixed_pxgemm)
message(ERROR_ERROR
" COSMA needs to be build with scalapack offloading support")
message(
FATAL_ERROR
" COSTA_SCALAPACK and COSMA_SCALAPACK should probably be set properly")
" COSMA needs to be build with scalapack offloading support. COSTA_SCALAPACK and COSMA_SCALAPACK should probably be set properly"
)
endif()
endif()
@ -397,14 +427,14 @@ if(CP2K_USE_FFTW3)
endif()
if((CP2K_ENABLE_FFTW3_THREADS_SUPPORT) AND (NOT TARGET
CP2K_FFTW3::fftw3_threads))
CP2K::FFTW3::fftw3_threads))
message(
FATAL_ERROR
"fftw3 was compiled without multithreading support (--enable-threads option in fftw build system)."
)
endif()
if((CP2K_ENABLE_FFTW3_OPENMP_SUPPORT) AND (NOT TARGET CP2K_FFTW3::fftw3_omp))
if((CP2K_ENABLE_FFTW3_OPENMP_SUPPORT) AND (NOT TARGET CP2K::FFTW3::fftw3_omp))
message(
FATAL_ERROR
"fftw3 was compiled without openmp support (--enable-openmp option in fftw build system)."
@ -481,6 +511,13 @@ if(CP2K_USE_LIBTORCH)
find_package(Torch REQUIRED)
endif()
if(CP2K_USE_MPI_F08 AND NOT MPI_Fortran_HAVE_F08_MODULE)
message(
FATAL_ERROR
"The Fortran 2008 interface is not supported by the MPI implementation found by cmake."
)
endif()
# OPTION HANDLING
# make sure that the default build type is RELEASE
@ -535,14 +572,27 @@ message(STATUS " - include directories : " ${CP2K_BLAS_INCLUDE_DIRS}
message(STATUS " - libraries : " ${CP2K_BLAS_LINK_LIBRARIES} " "
${CP2K_LAPACK_LINK_LIBRARIES})
message(STATUS " ")
message(STATUS "- MPI")
message(STATUS " - include directories : " ${MPI_INCLUDE_DIRS})
message(STATUS " - libraries : " ${MPI_LIBRARIES})
if(CP2K_USE_MPI)
message(STATUS " ")
message(STATUS "- MPI")
message(STATUS " - include directories : " ${MPI_INCLUDE_DIRS})
message(STATUS " - libraries : " ${MPI_LIBRARIES})
message(STATUS " ")
message(STATUS "- SCALAPACK:")
message(STATUS " - libraries : " ${CP2K_SCALAPACK_LINK_LIBRARIES})
if(CP2K_USE_MPI_F08)
message(STATUS " - MPI_08 : ON")
endif()
if(MPI_Fortran_HAVE_F08_MODULE AND NOT CP2K_USE_MPI_F08)
message(
STATUS
" - MPI_08 is supposed by MPI but turned off by default. To use it add -DCP2K_USE_MPI_F08=ON to cmake"
)
endif()
message(STATUS " ")
message(STATUS "- SCALAPACK:")
message(STATUS " - libraries : " ${CP2K_SCALAPACK_LINK_LIBRARIES})
endif()
message(STATUS " - Hardware Acceleration:")
message(STATUS " ")
@ -600,7 +650,10 @@ if(CP2K_USE_LIBXSMM)
message(STATUS " ")
message(STATUS "- libxsmm")
message(STATUS " - include directories : " ${CP2K_LIBXSMM_INCLUDE_DIRS})
message(STATUS " - libraries : " ${CP2K_LIBXSMM_LINK_LIBRARIES})
message(
STATUS
" - libraries : ${CP2K_LIBXSMMEXT_LINK_LIBRARIES};${CP2K_LIBXSMMF_LINK_LIBRARIES}"
)
endif()
if(CP2K_USE_SPLA)
@ -696,6 +749,10 @@ message(
message(STATUS " List of dependencies not included in this build :")
if(NOT CP2K_USE_MPI)
message(STATUS " - MPI")
endif()
if(NOT CP2K_USE_SIRIUS)
message(STATUS " - SIRIUS")
endif()

View file

@ -7,7 +7,7 @@
if(CMAKE_Fortran_COMPILER_ID STREQUAL "GNU")
set(CMAKE_Fortran_FLAGS
"-ffree-line-length-512 -ffree-form -std=f2008ts -fimplicit-none -Werror=aliasing -Werror=ampersand -Werror=c-binding-type -Werror=intrinsic-shadow -Werror=intrinsics-std -Werror=tabs -Werror=target-lifetime -Werror=underflow -Werror=unused-but-set-variable -Werror=unused-variable -Werror=conversion -Werror=zerotrip -Wuninitialized -Wno-maybe-uninitialized -Wunused-parameter"
"-mtune=native -ffree-line-length-512 -ffree-form -std=f2008 -fimplicit-none -Werror=aliasing -Werror=ampersand -Werror=c-binding-type -Werror=intrinsic-shadow -Werror=intrinsics-std -Werror=tabs -Werror=target-lifetime -Werror=underflow -Werror=unused-but-set-variable -Werror=unused-variable -Werror=conversion -Werror=zerotrip -Wuninitialized -Wno-maybe-uninitialized -Wunused-parameter"
)
if(CMAKE_Fortran_COMPILER_VERSION VERSION_GREATER 10)
@ -20,7 +20,7 @@ if(CMAKE_Fortran_COMPILER_ID STREQUAL "GNU")
"-O0 -g --coverage -fno-omit-frame-pointer -fcheck=all -ffpe-trap=invalid,zero,overflow -fbacktrace -finit-real=snan -finit-integer=-42 -finit-derived -Werror=realloc-lhs -finline-matmul-limit=0"
)
set(CMAKE_Fortran_FLAGS_DEBUG
"-O2 -ggdb -fno-omit-frame-pointer -fcheck=all -ffpe-trap=invalid,zero,overflow -fbacktrace -finit-real=snan -finit-integer=-42 -finit-derived -finline-matmul-limit=0 -fsanitize=undefined -fsanitize=address -fsanitize-recover=all -Wall -Wextra -Werror=realloc-lhs -Wno-error=array-temporaries -Wno-error=compare-reals -Wno-error=function-elimination -Wno-error=surprising"
"-fbacktrace -ffree-form -fimplicit-none -std=f2008 -fsanitize=leak -fcheck=all,no-array-temps -ffpe-trap=invalid,zero,overflow -finit-derived -finit-real=snan -finit-integer=-42 -Werror=realloc-lhs -finline-matmul-limit=0"
)
if((NOT (USE_MPI)) OR (NOT ("${MPI_Fortran_LIBRARY_VERSION_STRING}" MATCHES
"Open MPI")))
@ -75,7 +75,7 @@ if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
set(CMAKE_C_FLAGS_RELEASE "-O3 -g -funroll-loops -Wall")
set(CMAKE_C_FLAGS_COVERAGE "-O0 -g --coverage -Wall")
set(CMAKE_C_FLAGS_DEBUG
"-O2 -ggdb -Wall -fsanitize=undefined -fsanitize=address -fsanitize-recover=all"
"-O2 -ggdb -Wall -fsanitize=undefined -fsanitize=address -fsanitize-recover=all -Wall -Wextra -Werror -Wno-vla-parameter -Wno-deprecated-declarations"
)
if((NOT (USE_MPI)) OR (NOT ("${MPI_Fortran_LIBRARY_VERSION_STRING}" MATCHES
"Open MPI")))
@ -85,7 +85,7 @@ if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
elseif(CMAKE_C_COMPILER_ID STREQUAL "Clang")
set(CMAKE_C_FLAGS_RELEASE "-O3 -funroll-loops")
set(CMAKE_C_FLAGS_COVERAGE "-O0 -g --coverage")
set(CMAKE_C_FLAGS_DEBUG "-O0 -g")
set(CMAKE_C_FLAGS_DEBUG "-O1 -g -fno-omit-frame-pointer")
elseif(CMAKE_C_COMPILER_ID STREQUAL "AppleClang")
set(CMAKE_C_FLAGS_RELEASE "-O3 -funroll-loops")
set(CMAKE_C_FLAGS_COVERAGE "-O0 -g --coverage")

View file

@ -37,33 +37,42 @@ endif()
# check if found
find_package_handle_standard_args(
Armpl REQUIRED_VARS CP2K_ARMPL_INCLUDE_DIRS CP2K_ARMPL_LP64_LIBRARIES
CP2K_ARMPL_LP64_MP_LIBRARIES)
Armpl
REQUIRED_VARS
CP2K_ARMPL_INCLUDE_DIRS CP2K_ARMPL_LP64_LIBRARIES
CP2K_ARMPL_LP64_MP_LIBRARIES CP2K_ARMPL_ILP64_LIBRARIES
CP2K_ARMPL_ILP64_MP_LIBRARIES)
# add target to link against
if(CP2K_ARMPL_LP64_FOUND AND NOT TARGET ARMPL::armpl)
add_library(CP2K_ARMPL::armpl INTERFACE IMPORTED)
foreach(_var armpl_ilp64 armpl_lp64 armpl_ilp64_mp armpl_lp64_mp)
string(TOUPPER "CP2K_${_var}_LINK_LIBRARIES" _var_up)
if(_var_up)
add_library(CP2K_ARMPL::${_var} INTERFACE IMPORTED)
set_property(TARGET ARMPL::${_var} PROPERTY INTERFACE_INCLUDE_DIRECTORIES
${CP2K_ARMPL_INCLUDE_DIRS})
set_property(TARGET ARMPL::${_var} PROPERTY INTERFACE_LINK_LIBRARIES
" ${${_var_up}}")
endif()
endforeach()
if(CP2K_ARMPL_LP64_FOUND)
# check that what version of the library we want actually exists
if(NOT TARGET CP2K_ARMPL::${CP2K_BLAS_armpl_LIB})
message(
FATAL
"ARMPL installation is incomplete. Some of the components are missing.")
if(NOT TARGET Armpl::armpl)
add_library(CP2K::BLAS::Armpl::armpl INTERFACE IMPORTED)
# now define an alias to the target library
add_library(CP2K::BLAS::Armpl::blas ALIAS CP2K::BLAS::Armpl::armpl)
endif()
# now define an alias to the target library
add_library(CP2K_ARMPL::blas INTERFACE ARMPL::${CP2K_BLAS_armpl_LIB})
# we need to iniitialize the targets of each individual libraries only once.
if(NOT TARGET CP2K::BLAS::Armpl::${_var})
foreach(_var armpl_ilp64 armpl_lp64 armpl_ilp64_mp armpl_lp64_mp)
string(TOUPPER "CP2K_${_var}_LINK_LIBRARIES" _var_up)
add_library(CP2K::BLAS::Armpl::${_var} INTERFACE IMPORTED)
set_property(
TARGET CP2K::BLAS::Armpl::${_var} PROPERTY INTERFACE_INCLUDE_DIRECTORIES
${CP2K_ARMPL_INCLUDE_DIRS})
set_property(TARGET CP2K::BLAS::Armpl::${_var}
PROPERTY INTERFACE_LINK_LIBRARIES "${${_var_up}}")
endif()
endforeach()
endif()
set_property(
TARGET CP2K::BLAS::Armpl::armpl PROPERTY INTERFACE_INCLUDE_DIRECTORIES
${CP2K_ARMPL_INCLUDE_DIRS})
set_property(
TARGET CP2K::BLAS::Armpl::armpl
PROPERTY INTERFACE_LINK_LIBRARIES
"CP2K_${CP2K_BLAS_armpl_LIB}_LINK_LIBRARIES")
endif()
mark_as_advanced(CP2K_ARMPL_FOUND CP2K_ARMPL_LINK_LIBRARIES

View file

@ -22,13 +22,14 @@ find_package_handle_standard_args(Atlas REQUIRED_VARS CP2K_ATLAS_INCLUDE_DIRS
# add target to link against
if(CP2K_ATLAS_FOUND AND NOT TARGET CP2K_ATLAS::atlas)
if(NOT TARGET CP2K_ATLAS::atlas)
add_library(CP2K_ATLAS::atlas INTERFACE IMPORTED)
if(NOT TARGET CP2K::BLAS::ATLAS::atlas)
add_library(CP2K::BLAS::ATLAS::atlas INTERFACE IMPORTED)
endif()
set_property(TARGET CP2K_ATLAS::atlas PROPERTY INTERFACE_LINK_LIBRARIES
${CP2K_ATLAS_LINK_LIBRARIES})
set_property(TARGET CP2K_ATLAS::atlas PROPERTY INTERFACE_INCLUDE_DIRECTORIES
${CP2K_ATLAS_INCLUDE_DIRS})
set_property(TARGET CP2K::BLAS::ATLAS::atlas
PROPERTY INTERFACE_LINK_LIBRARIES ${CP2K_ATLAS_LINK_LIBRARIES})
set_property(
TARGET CP2K::BLAS::ATLAS::atlas PROPERTY INTERFACE_INCLUDE_DIRECTORIES
${CP2K_ATLAS_INCLUDE_DIRS})
endif()
# prevent clutter in cache

View file

@ -78,22 +78,24 @@ set(CP2K_BLAS_FOUND FALSE)
if(NOT CP2K_BLAS_VENDOR MATCHES "auto")
find_package(${CP2K_BLAS_VENDOR} REQUIRED)
if(TARGET CP2K_${CP2K_BLAS_VENDOR}::blas)
get_target_property(CP2K_BLAS_INCLUDE_DIRS CP2K_${CP2K_BLAS_VENDOR}::blas
INTERFACE_INCLUDE_DIRECTORIES)
get_target_property(CP2K_BLAS_LINK_LIBRARIES CP2K_${CP2K_BLAS_VENDOR}::blas
INTERFACE_LINK_LIBRARIES)
if(TARGET CP2K::BLAS::${CP2K_BLAS_VENDOR}::blas)
get_target_property(
CP2K_BLAS_INCLUDE_DIRS CP2K::BLAS::${CP2K_BLAS_VENDOR}::blas
INTERFACE_INCLUDE_DIRECTORIES)
get_target_property(
CP2K_BLAS_LINK_LIBRARIES CP2K::BLAS::${CP2K_BLAS_VENDOR}::blas
INTERFACE_LINK_LIBRARIES)
set(CP2K_BLAS_FOUND TRUE)
endif()
else()
# search for any blas implementation
# search for any blas implementation and exit imediately if one is found
foreach(_libs ${__BLAS_VENDOR_LIST})
# i exclude the first item of the list
find_package(${_libs})
if(TARGET CP2K_${_libs}::blas)
get_target_property(CP2K_BLAS_INCLUDE_DIRS CP2K_${_libs}::blas
if(TARGET CP2K::BLAS::${_libs}::blas)
get_target_property(CP2K_BLAS_INCLUDE_DIRS CP2K::BLAS::${_libs}::blas
INTERFACE_INCLUDE_DIRECTORIES)
get_target_property(CP2K_BLAS_LINK_LIBRARIES CP2K_${_libs}::blas
get_target_property(CP2K_BLAS_LINK_LIBRARIES CP2K::BLAS::${_libs}::blas
INTERFACE_LINK_LIBRARIES)
set(CP2K_BLAS_VENDOR "${_libs}")
set(CP2K_BLAS_FOUND TRUE)
@ -111,16 +113,17 @@ else()
CP2K_BLAS_VENDOR)
endif()
if(NOT TARGET CP2K_BLAS::blas)
add_library(CP2K_BLAS::blas INTERFACE IMPORTED)
if(NOT TARGET CP2K::BLAS::blas)
add_library(CP2K::BLAS::blas INTERFACE IMPORTED)
endif()
set_target_properties(CP2K_BLAS::blas PROPERTIES INTERFACE_LINK_LIBRARIES
"${CP2K_BLAS_LINK_LIBRARIES}")
set_target_properties(CP2K::BLAS::blas PROPERTIES INTERFACE_LINK_LIBRARIES
"${CP2K_BLAS_LINK_LIBRARIES}")
if(CP2K_BLAS_INCLUDE_DIRS)
set_target_properties(CP2K_BLAS::blas PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
"${CP2K_BLAS_INCLUDE_DIRS}")
set_target_properties(
CP2K::BLAS::blas PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
"${CP2K_BLAS_INCLUDE_DIRS}")
endif()
mark_as_advanced(CP2K_BLAS_INCLUDE_DIRS)

View file

@ -38,21 +38,25 @@ if(CP2K_BLIS_INCLUDE_DIRS)
BLIS REQUIRED_VARS CP2K_BLIS_FOUND CP2K_BLIS_INCLUDE_DIRS
CP2K_BLIS_LINK_LIBRARIES)
else()
find_package_handle_standard_args(BLIS REQUIRED_VARS CP2K_BLIS_FOUND
find_package_handle_standard_args(Blis REQUIRED_VARS CP2K_BLIS_FOUND
CP2K_BLIS_LINK_LIBRARIES)
endif()
# add target to link against
if(CP2K_BLIS_FOUND AND NOT TARGET CP2K_BLIS::blis)
add_library(CP2K_BLIS::blis INTERFACE IMPORTED)
endif()
if(CP2K_BLIS_FOUND)
if(NOT TARGET CP2K::BLAS::Blis::blis)
add_library(CP2K::BLAS::Blis::blis INTERFACE IMPORTED)
add_library(CP2K::BLAS::Blis::blas alias CP2K::BLAS::Blis::blis)
endif()
set_property(TARGET CP2K_BLIS::blis PROPERTY INTERFACE_LINK_LIBRARIES
${CP2K_BLIS_LINK_LIBRARIES})
set_property(TARGET CP2K::BLAS::Blis::blis
PROPERTY INTERFACE_LINK_LIBRARIES ${CP2K_BLIS_LINK_LIBRARIES})
if(BLIS_INCLUDE_DIRS)
set_property(TARGET CP2K_BLIS::blis PROPERTY INTERFACE_INCLUDE_DIRECTORIES
${CP2K_BLIS_INCLUDE_DIRS})
if(BLIS_INCLUDE_DIRS)
set_property(
TARGET CP2K::BLAS::Blis::blis PROPERTY INTERFACE_INCLUDE_DIRECTORIES
${CP2K_BLIS_INCLUDE_DIRS})
endif()
endif()
# prevent clutter in cache

View file

@ -31,15 +31,15 @@ find_package_handle_standard_args(Elpa "DEFAULT_MSG" CP2K_ELPA_LINK_LIBRARIES
CP2K_ELPA_INCLUDE_DIRS)
if(CP2K_ELPA_FOUND)
if(NOT TARGET CP2K_elpa::elpa)
add_library(CP2K_ELPA::elpa INTERFACE IMPORTED)
if(NOT TARGET CP2K::ELPA::elpa)
add_library(CP2K::ELPA::elpa INTERFACE IMPORTED)
endif()
set_target_properties(
CP2K_ELPA::elpa PROPERTIES INTERFACE_LINK_LIBRARIES
"${CP2K_ELPA_LINK_LIBRARIES}")
CP2K::ELPA::elpa PROPERTIES INTERFACE_LINK_LIBRARIES
"${CP2K_ELPA_LINK_LIBRARIES}")
if(CP2K_ELPA_INCLUDE_DIRS)
set_target_properties(
CP2K_ELPA::elpa
CP2K::ELPA::elpa
PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
"${CP2K_ELPA_INCLUDE_DIRS};${CP2K_ELPA_INCLUDE_DIRS}/modules")
endif()

View file

@ -60,30 +60,30 @@ foreach(lib_name "fftw3" "fftw3l" "fftw3q" "fftw3f")
string(TOUPPER "${lib_name}" __lib_name_up)
if(CP2K_${__lib_name_up}_FOUND)
if(NOT TARGET CP2K_FFTW3::${lib_name})
add_library(CP2K_FFTW3::${lib_name} INTERFACE IMPORTED)
if(NOT TARGET CP2K::FFTW3::${lib_name})
add_library(CP2K::FFTW3::${lib_name} INTERFACE IMPORTED)
endif()
# we do not recheck if the libraries are found when pkg_config is
# successful.
set_target_properties(
CP2K_FFTW3::${lib_name}
CP2K::FFTW3::${lib_name}
PROPERTIES INTERFACE_LINK_LIBRARIES
"${CP2K_${__lib_name_up}_LINK_LIBRARIES}")
if(CP2K_FFTW3_INCLUDE_DIRS)
set_target_properties(
CP2K_FFTW3::${lib_name} PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
"${CP2K_FFTW3_INCLUDE_DIRS}")
CP2K::FFTW3::${lib_name} PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
"${CP2K_FFTW3_INCLUDE_DIRS}")
endif()
foreach(sub_type "threads" "mpi" "omp")
string(TOUPPER "${lib_name}_${sub_type}" __libs)
if(CP2K_${__libs}_FOUND)
if(NOT TARGET CP2K_FFTW3::${lib_name}_${sub_type})
add_library(CP2K_FFTW3::${lib_name}_${sub_type} INTERFACE IMPORTED)
if(NOT TARGET CP2K::FFTW3::${lib_name}_${sub_type})
add_library(CP2K::FFTW3::${lib_name}_${sub_type} INTERFACE IMPORTED)
endif()
set_target_properties(
CP2K_FFTW3::${lib_name}_${sub_type}
CP2K::FFTW3::${lib_name}_${sub_type}
PROPERTIES INTERFACE_LINK_LIBRARIES
"${CP2K_${__libs}_LINK_LIBRARIES}")
endif()

View file

@ -28,7 +28,7 @@ endif()
# search for include directories anyway
if(NOT CP2K_FLEXIBLAS_INCLUDE_DIRS)
cp2k_include_dirs(FFTW3 "flexiblas.h")
cp2k_include_dirs(FLEXIBLAS "flexiblas.h")
endif()
find_package_handle_standard_args(
@ -39,18 +39,21 @@ if(NOT CP2K_FLEXIBLAS_FOUND)
set(CP2K_BLAS_VENDOR "FlexiBLAS")
endif()
if(CP2K_FLEXIBLAS_FOUND AND NOT TARGET CP2K_FlexiBLAS::flexiblas)
add_library(CP2K_FlexiBLAS::flexiblas INTERFACE IMPORTED)
add_library(CP2K_FlexiBLAS::blas ALIAS CP2K_FlexiBLAS::flexiblas)
if(CP2K_FLEXIBLAS_FOUND)
if(NOT TARGET CP2K::BLAS::FlexiBLAS::flexiblas)
add_library(CP2K::BLAS::FlexiBLAS::flexiblas INTERFACE IMPORTED)
add_library(CP2K::BLAS::FlexiBLAS::blas ALIAS
CP2K::BLAS::FlexiBLAS::flexiblas)
endif()
set_target_properties(
CP2K_FlexiBLAS::flexiblas PROPERTIES INTERFACE_LINK_LIBRARIES
"${CP2K_FLEXIBLAS_LINK_LIBRARIES}")
CP2K::BLAS::FlexiBLAS::flexiblas
PROPERTIES INTERFACE_LINK_LIBRARIES "${CP2K_FLEXIBLAS_LINK_LIBRARIES}")
if(CP2K_FLEXIBLAS_INCLUDE_DIRS)
set_target_properties(
CP2K_FlexiBLAS::flexiblas PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
"${CP2K_FLEXIBLAS_INCLUDE_DIRS}")
CP2K::BLAS::FlexiBLAS::flexiblas
PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${CP2K_FLEXIBLAS_INCLUDE_DIRS}")
endif()
set(CP2K_BLAS_VENDOR "flexiblas")
set(CP2K_BLAS_VENDOR "FlexiBLAS")
endif()
mark_as_advanced(CP2K_FLEXIBLAS_FOUND CP2K_FLEXIBLAS_INCLUDE_DIRS

View file

@ -43,14 +43,15 @@ endif()
# add target to link against
if(GenericBLAS_FOUND)
if(NOT TARGET CP2K_GenericBLAS::blas)
add_library(CP2K_GenericBLAS::blas INTERFACE IMPORTED)
if(NOT TARGET CP2K::BLAS::GenericBLAS::blas)
add_library(CP2K::BLAS::GenericBLAS::blas INTERFACE IMPORTED)
endif()
set_property(TARGET CP2K_GenericBLAS::blas PROPERTY INTERFACE_LINK_LIBRARIES
${GenericBLAS_LIBRARIES})
set_property(TARGET CP2K::BLAS::GenericBLAS::blas
PROPERTY INTERFACE_LINK_LIBRARIES ${GenericBLAS_LIBRARIES})
set_property(
TARGET CP2K_GenericBLAS::blas PROPERTY INTERFACE_INCLUDE_DIRECTORIES
${GenericBLAS_INCLUDE_DIRS})
TARGET CP2K::BLAS::GenericBLAS::blas PROPERTY INTERFACE_INCLUDE_DIRECTORIES
${GenericBLAS_INCLUDE_DIRS})
endif()
# prevent clutter in cache

View file

@ -26,9 +26,9 @@ if(CP2K_BLAS_FOUND)
OR CP2K_BLAS_VENDOR MATCHES "FlexiBLAS")
# we just need to create the interface that's all
set(CP2K_LAPACK_FOUND TRUE)
get_target_property(CP2K_LAPACK_INCLUDE_DIRS CP2K_BLAS::blas
get_target_property(CP2K_LAPACK_INCLUDE_DIRS CP2K::BLAS::blas
INTERFACE_INCLUDE_DIRECTORIES)
get_target_property(CP2K_LAPACK_LIBRARIES CP2K_BLAS::blas
get_target_property(CP2K_LAPACK_LIBRARIES CP2K::BLAS::blas
INTERFACE_LINK_LIBRARIES)
else()
@ -53,16 +53,16 @@ endif()
find_package_handle_standard_args(Lapack REQUIRED_VARS CP2K_LAPACK_LIBRARIES)
if(CP2K_LAPACK_FOUND)
if(NOT TARGET CP2K_LAPACK::lapack)
add_library(CP2K_LAPACK::lapack INTERFACE IMPORTED)
set_property(TARGET CP2K_LAPACK::lapack PROPERTY INTERFACE_LINK_LIBRARIES
${CP2K_LAPACK_LIBRARIES})
if(CP2K_LAPACK_INCLUDE_DIRS)
set_property(
TARGET CP2K_LAPACK::lapack PROPERTY INTERFACE_INCLUDE_DIRECTORIES
${CP2K_LAPACK_INCLUDE_DIRS})
endif()
add_library(CP2K_LAPACK::LAPACK ALIAS CP2K_LAPACK::lapack)
if(NOT TARGET CP2K::LAPACK::lapack)
add_library(CP2K::LAPACK::lapack INTERFACE IMPORTED)
add_library(CP2K::LAPACK::LAPACK ALIAS CP2K::LAPACK::lapack)
endif()
set_property(TARGET CP2K::LAPACK::lapack PROPERTY INTERFACE_LINK_LIBRARIES
${CP2K_LAPACK_LIBRARIES})
if(CP2K_LAPACK_INCLUDE_DIRS)
set_property(
TARGET CP2K::LAPACK::lapack PROPERTY INTERFACE_INCLUDE_DIRECTORIES
${CP2K_LAPACK_INCLUDE_DIRS})
endif()
endif()

View file

@ -36,15 +36,15 @@ else()
CP2K_LIBSPG_LINK_LIBRARIES)
endif()
if(CP2K_LIBSPG_FOUND AND NOT TARGET CP2K_LIBSPG::libspg)
add_library(CP2K_LIBSPG::libspg INTERFACE IMPORTED)
if(CP2K_LIBSPG_FOUND AND NOT TARGET CP2K::LIBSPG::libspg)
add_library(CP2K::LIBSPG::libspg INTERFACE IMPORTED)
set_target_properties(
CP2K_LIBSPG::libspg PROPERTIES INTERFACE_LINK_LIBRARIES
"${CP2K_LIBSPG_LINK_LIBRARIES}")
CP2K::LIBSPG::libspg PROPERTIES INTERFACE_LINK_LIBRARIES
"${CP2K_LIBSPG_LINK_LIBRARIES}")
if(CP2K_LIBSPG_INCLUDE_DIRS)
set_target_properties(
CP2K_LIBSPG::libspg PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
"${CP2K_LIBSPG_INCLUDE_DIRS}")
CP2K::LIBSPG::libspg PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
"${CP2K_LIBSPG_INCLUDE_DIRS}")
endif()
endif()

View file

@ -36,10 +36,10 @@ check_symbol_exists(vdwxc_init_mpi "${CP2K_LIBVDWXC_INCLUDE_DIRS}/vdwxc_mpi.h"
find_package_handle_standard_args(
LibVDWXC DEFAULT_MSG CP2K_LIBVDWXC_LINK_LIBRARIES CP2K_LIBVDWXC_INCLUDE_DIRS)
if(LibVDWXC_FOUND AND NOT TARGET CP2K_libvdwxc::libvdwxc)
add_library(CP2K_libvdwxc::libvdwxc INTERFACE IMPORTED)
if(LibVDWXC_FOUND AND NOT TARGET CP2K::libvdwxc::libvdwxc)
add_library(CP2K::libvdwxc::libvdwxc INTERFACE IMPORTED)
set_target_properties(
CP2K_libvdwxc::libvdwxc
CP2K::libvdwxc::libvdwxc
PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${CP2K_LIBVDWXC_INCLUDE_DIRS}"
INTERFACE_LINK_LIBRARIES "${CP2K_LIBVDWXC_LINK_LIBRARIES}")
endif()

View file

@ -24,15 +24,15 @@ else()
CP2K_LIBVORI_LINK_LIBRARIES)
endif()
if(NOT TARGET CP2K_VORI::vori)
add_library(CP2K_VORI::vori INTERFACE IMPORTED)
if(NOT TARGET CP2K::VORI::vori)
add_library(CP2K::VORI::vori INTERFACE IMPORTED)
set_target_properties(
CP2K_VORI::vori PROPERTIES INTERFACE_LINK_LIBRARIES
"${CP2K_LIBVORI_LINK_LIBRARIES}")
CP2K::VORI::vori PROPERTIES INTERFACE_LINK_LIBRARIES
"${CP2K_LIBVORI_LINK_LIBRARIES}")
if(CP2K_LIBVORI_INCLUDE_DIRS)
set_target_properties(
CP2K_VORI::vori PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
"${CP2K_LIBVORI_INCLUDE_DIRS}")
CP2K::VORI::vori PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
"${CP2K_LIBVORI_INCLUDE_DIRS}")
endif()
endif()

View file

@ -46,16 +46,16 @@ else()
CP2K_LIBXC_LINK_LIBRARIES)
endif()
if(CP2K_LIBXC_FOUND)
if(NOT TARGET CP2K_CP2K_Libxc::xc)
add_library(CP2K_Libxc::xc INTERFACE IMPORTED)
if(NOT TARGET CP2K::Libxc::xc)
add_library(CP2K::Libxc::xc INTERFACE IMPORTED)
endif()
if(LIBXC_INCLUDE_DIRS)
if(CP2K_LIBXC_INCLUDE_DIRS)
set_target_properties(
CP2K_Libxc::xc PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
"${CP2K_LIBXC_INCLUDE_DIRS}")
CP2K::Libxc::xc PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
"${CP2K_LIBXC_INCLUDE_DIRS}")
endif()
target_link_libraries(CP2K_Libxc::xc INTERFACE ${CP2K_LIBXC_LINK_LIBRARIES})
target_link_libraries(CP2K::Libxc::xc INTERFACE ${CP2K_LIBXC_LINK_LIBRARIES})
endif()
mark_as_advanced(CP2K_LIBXC_FOUND CP2K_LIBXC_LINK_LIBRARIES

View file

@ -31,15 +31,6 @@ if(NOT CP2K_LIBXSMM_FOUND)
endforeach()
endif()
if(CP2K_LIBXSMM_FOUND
AND CP2K_LIBXSMMF_FOUND
AND CP2K_LIBXSMMEXT_FOUND
AND CP2K_LIBXSMMNOBLAS_FOUND)
set(CP2K_LIBXSMM_LINK_LIBRARIES
"${CP2K_LIBXSMM_LIBRARIES};${CP2K_LIBXSMMF_LIBRARIES};${CP2K_LIBXSMMEXT_LIBRARIES};${CP2K_LIBXSMMNOBLAS_LIBRARIES}"
)
endif()
if(NOT CP2K_LIBXSMM_INCLUDE_DIRS)
cp2k_include_dirs(LIBXSMM "libxsmm.h;include/libxsmm.h")
endif()
@ -60,20 +51,20 @@ else()
CP2K_LIBXSMM_LINK_LIBRARIES)
endif()
if(NOT TARGET CP2K_LibXSMM::libxsmm)
if(NOT TARGET CP2K::LibXSMM::libxsmm)
foreach(__lib libxsmm libxsmmf libxsmmext libxsmmnoblas)
string(TOUPPER "CP2K_${__lib}" __lib_search_up)
if(${__lib_search_up}_FOUND AND NOT TARGET CP2K_LibXSMM::${__lib})
add_library(CP2K_LibXSMM::${__lib} INTERFACE IMPORTED)
if(${__lib_search_up}_FOUND AND NOT TARGET CP2K::LibXSMM::${__lib})
add_library(CP2K::LibXSMM::${__lib} INTERFACE IMPORTED)
endif()
set_target_properties(
CP2K_LibXSMM::${__lib} PROPERTIES INTERFACE_LINK_LIBRARIES
"${${__lib_search_up}_LINK_LIBRARIES}")
CP2K::LibXSMM::${__lib} PROPERTIES INTERFACE_LINK_LIBRARIES
"${${__lib_search_up}_LINK_LIBRARIES}")
if(CP2K_LIBXSMM_INCLUDE_DIRS)
set_target_properties(
CP2K_LibXSMM::${__lib}
CP2K::LibXSMM::${__lib}
PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
"${CP2K_LIBXSMM_INCLUDE_DIRS};${CP2K_LIBXSMM_PREFIX}/include"
)

View file

@ -42,19 +42,19 @@ find_package_handle_standard_args(
CP2K_LIBINT2_LINK_LIBRARIES)
if(CP2K_LIBINT2_FOUND)
if(NOT TARGET CP2K_Libint2::int2)
add_library(CP2K_Libint2::int2 INTERFACE IMPORTED)
if(NOT TARGET CP2K::Libint2::int2)
add_library(CP2K::Libint2::int2 INTERFACE IMPORTED)
endif()
if(CP2K_LIBINT2_INCLUDE_DIRS)
set_target_properties(
CP2K_Libint2::int2 PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
"${CP2K_LIBINT2_INCLUDE_DIRS}")
CP2K::Libint2::int2 PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
"${CP2K_LIBINT2_INCLUDE_DIRS}")
endif()
set_target_properties(
CP2K_Libint2::int2 PROPERTIES INTERFACE_LINK_LIBRARIES
${CP2K_LIBINT2_LINK_LIBRARIES})
CP2K::Libint2::int2 PROPERTIES INTERFACE_LINK_LIBRARIES
${CP2K_LIBINT2_LINK_LIBRARIES})
endif()
mark_as_advanced(CP2K_LIBINT2_FOUND CP2K_LIBINT2_LINK_LIBRARIES

View file

@ -291,7 +291,7 @@ foreach(_libtype "ST" "DYN")
string(TOLOWER "${_iface}_${_bits}_${_threading}_${_libtype}"
_tgt_config)
set(_mkl_tgt CP2K_MKL::${_tgt_config})
set(_mkl_tgt CP2K::BLAS::MKL::${_tgt_config})
if(MKL_FOUND
AND _mkl_interface_lib
@ -321,12 +321,12 @@ foreach(_libtype "ST" "DYN")
TOLOWER "${_mpi_impl}_${_iface}_${_bits}_${_threading}_${_libtype}"
_tgt_config)
set(_scalapack_tgt CP2K_MKL::scalapack_${_tgt_config})
set(_scalapack_tgt CP2K::BLAS::MKL::scalapack_${_tgt_config})
if(_mkl_blacs_lib
AND TARGET ${_mkl_tgt}
AND TARGET MPI::MPI_CXX
AND NOT TARGET CP2K_MKL::blacs_${_tgt_config})
AND NOT TARGET CP2K::BLAS::MKL::blacs_${_tgt_config})
set(_blacs_libs
"${_mkl_linker_pre_flags_${_libtype}}"
"${_mkl_interface_lib}"
@ -337,20 +337,22 @@ foreach(_libtype "ST" "DYN")
"MPI::MPI_CXX"
"${_mkl_dep_${_threading}}"
"Threads::Threads")
add_library(CP2K_MKL::blacs_${_tgt_config} INTERFACE IMPORTED)
add_library(CP2K::BLAS::MKL::blacs_${_tgt_config} INTERFACE
IMPORTED)
set_target_properties(
CP2K_MKL::blacs_${_tgt_config}
CP2K::BLAS::MKL::blacs_${_tgt_config}
PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
"${CP2K_MKL_INCLUDE_DIRS}" INTERFACE_LINK_LIBRARIES
"${_mkl_blacs_lib}")
endif()
if(_mkl_scalapack_lib AND NOT TARGET
CP2K_MKL::scalapack_${_tgt_config})
CP2K::BLAS::MKL::scalapack_${_tgt_config})
set(_scalapack_libs "${_mkl_scalapack_lib}" "${_blacs_tgt}")
add_library(CP2K_MKL::scalapack_${_tgt_config} INTERFACE IMPORTED)
add_library(CP2K::BLAS::MKL::scalapack_${_tgt_config} INTERFACE
IMPORTED)
set_target_properties(
CP2K_MKL::scalapack_${_tgt_config}
CP2K::BLAS::MKL::scalapack_${_tgt_config}
PROPERTIES INTERFACE_LINK_LIBRARIES "${_scalapack_libs}")
endif()
endforeach()
@ -359,7 +361,7 @@ foreach(_libtype "ST" "DYN")
endforeach()
endforeach()
if(MKL_FOUND AND NOT TARGET CP2K_MKL::blas)
if(MKL_FOUND)
# BLAS in the Intel MKL 10+ library?
# the findMKL package finds all possible combination and define target for
@ -373,8 +375,7 @@ if(MKL_FOUND AND NOT TARGET CP2K_MKL::blas)
set(BLAS_mkl_INTFACE "intel")
endif()
if(CP2K_BLAS_THREADING MATCHES "thread" OR CP2K_BLAS_THREADING MATCHES
"gnu-thread")
if(CP2K_BLAS_THREADING MATCHES "thread|gnu-thread")
set(BLAS_mkl_thread__ "omp")
endif()
@ -398,24 +399,20 @@ if(MKL_FOUND AND NOT TARGET CP2K_MKL::blas)
get_target_property(
MKL_BLAS_INCLUDE_DIRS
CP2K_MKL::${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE}_${BLAS_mkl_thread__}_dyn
CP2K::BLAS::MKL::${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE}_${BLAS_mkl_thread__}_dyn
INTERFACE_INCLUDE_DIRECTORIES)
get_target_property(
MKL_BLAS_LIBRARIES
CP2K_MKL::${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE}_${BLAS_mkl_thread__}_dyn
CP2K::BLAS::MKL::${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE}_${BLAS_mkl_thread__}_dyn
INTERFACE_LINK_LIBRARIES)
if(NOT TARGET CP2K_MKL::blas)
add_library(CP2K_MKL::blas INTERFACE IMPORTED)
add_library(CP2K_MKL::MKL INTERFACE IMPORTED)
if(NOT TARGET CP2K::BLAS::MKL::blas)
add_library(CP2K::BLAS::MKL::MKL INTERFACE IMPORTED)
add_library(CP2K::BLAS::MKL::blas ALIAS CP2K::BLAS::MKL::MKL)
# create a empty lapack
add_library(CP2K_MKL::lapack INTERFACE IMPORTED)
add_library(CP2K::BLAS::MKL::lapack INTERFACE IMPORTED)
endif()
set_target_properties(
CP2K_MKL::blas
PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${CP2K_MKL_INCLUDE_DIRS}"
INTERFACE_LINK_LIBRARIES "${MKL_BLAS_LIBRARIES}")
set_target_properties(
CP2K_MKL::MKL
CP2K::BLAS::MKL::MKL
PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${CP2K_MKL_INCLUDE_DIRS}"
INTERFACE_LINK_LIBRARIES "${MKL_BLAS_LIBRARIES}")
@ -427,24 +424,24 @@ if(MKL_FOUND AND NOT TARGET CP2K_MKL::blas)
get_target_property(
__mkl_scalapack_inc
CP2K_MKL::scalapack_${__mkl_mpi_ver_}_${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE}_${BLAS_mkl_thread__}_dyn
CP2K::BLAS::MKL::scalapack_${__mkl_mpi_ver_}_${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE}_${BLAS_mkl_thread__}_dyn
INTERFACE_INCLUDE_DIRECTORIES)
get_target_property(
__mkl_scalapack_lib
CP2K_MKL::scalapack_${__mkl_mpi_ver_}_${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE}_${BLAS_mkl_thread__}_dyn
CP2K::BLAS::MKL::scalapack_${__mkl_mpi_ver_}_${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE}_${BLAS_mkl_thread__}_dyn
INTERFACE_LINK_LIBRARIES)
get_target_property(
__mkl_blacs_inc
CP2K_MKL::blacs_${__mkl_mpi_ver_}_${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE}_${BLAS_mkl_thread__}_dyn
CP2K::BLAS::MKL::blacs_${__mkl_mpi_ver_}_${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE}_${BLAS_mkl_thread__}_dyn
INTERFACE_INCLUDE_DIRECTORIES)
get_target_property(
__mkl_blacs_lib
CP2K_MKL::blacs_${__mkl_mpi_ver_}_${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE}_${BLAS_mkl_thread__}_dyn
CP2K::BLAS::MKL::blacs_${__mkl_mpi_ver_}_${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE}_${BLAS_mkl_thread__}_dyn
INTERFACE_LINK_LIBRARIES)
if(NOT TARGET CP2K_MKL::scalapack_link)
add_library(CP2K_MKL::scalapack_link INTERFACE IMPORTED)
if(NOT TARGET CP2K::BLAS::MKL::scalapack_link)
add_library(CP2K::BLAS::MKL::scalapack_link INTERFACE IMPORTED)
set_target_properties(
CP2K_MKL::scalapack_link
CP2K::BLAS::MKL::scalapack_link
PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${__mkl_scalapack_inc}"
INTERFACE_LINK_LIBRARIES
"${__mkl_scalapack_lib};${__mkl_blacs_lib}")

View file

@ -22,10 +22,10 @@ cp2k_include_dirs(FFTW3 "metis.h")
find_package_handle_standard_args(Metis DEFAULT_MSG CP2K_METIS_LINK_LIBRARIES
CP2K_METIS_INCLUDE_DIRS CP2K_METIS_FOUND)
if(CP2K_METIS_FOUND AND NOT TARGET CP2K_metis::metis)
add_library(CP2K_metis::metis INTERFACE IMPORTED)
if(CP2K_METIS_FOUND AND NOT TARGET CP2K::metis::metis)
add_library(CP2K::metis::metis INTERFACE IMPORTED)
set_target_properties(
CP2K_metis::metis
CP2K::metis::metis
PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${CP2K_METIS_INCLUDE_DIRS}"
INTERFACE_LINK_LIBRARIES "${CP2K_METIS_LINK_LIBRARIES}")
endif()

View file

@ -46,18 +46,20 @@ endif()
# add target to link against
if(CP2K_OPENBLAS_FOUND)
if(NOT TARGET CP2K_OpenBLAS::openblas)
add_library(CP2K_OpenBLAS::openblas INTERFACE IMPORTED)
if(NOT TARGET CP2K::BLAS::OpenBLAS::openblas)
add_library(CP2K::BLAS::OpenBLAS::openblas INTERFACE IMPORTED)
endif()
set_property(
TARGET CP2K_OpenBLAS::openblas PROPERTY INTERFACE_LINK_LIBRARIES
${CP2K_OPENBLAS_LINK_LIBRARIES})
TARGET CP2K::BLAS::OpenBLAS::openblas
PROPERTY INTERFACE_LINK_LIBRARIES ${CP2K_OPENBLAS_LINK_LIBRARIES})
if(CP2K_OPENBLAS_INCLUDE_DIRS)
set_property(
TARGET CP2K_OpenBLAS::openblas PROPERTY INTERFACE_INCLUDE_DIRECTORIES
${CP2K_OPENBLAS_INCLUDE_DIRS})
TARGET CP2K::BLAS::OpenBLAS::openblas
PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${CP2K_OPENBLAS_INCLUDE_DIRS})
endif()
if(NOT TARGET CP2K::BLAS::OpenBLAS::blas)
add_library(CP2K::BLAS::OpenBLAS::blas ALIAS CP2K::BLAS::OpenBLAS::openblas)
endif()
add_library(CP2K_OpenBLAS::blas ALIAS CP2K_OpenBLAS::openblas)
set(CP2K_BLAS_VENDOR "OpenBLAS")
endif()

View file

@ -32,13 +32,13 @@ endif()
find_package_handle_standard_args(PEXSI DEFAULT_MSG CP2K_PEXSI_INCLUDE_DIRS
CP2K_PEXSI_LINK_LIBRARIES)
if(CP2K_PEXSI_FOUND AND NOT TARGET CP2K_PEXSI::pexsi)
add_library(CP2K_PEXSI::pexsi INTERFACE IMPORTED)
set_target_properties(CP2K_PEXSI PROPERTIES INTERFACE_LINK_LIBRARIES
"${CP2K_PEXSI_LINK_LIBRARIES}")
if(CP2K_PEXSI_FOUND AND NOT TARGET CP2K::PEXSI::pexsi)
add_library(CP2K::PEXSI::pexsi INTERFACE IMPORTED)
set_target_properties(CP2K::PEXSI PROPERTIES INTERFACE_LINK_LIBRARIES
"${CP2K_PEXSI_LINK_LIBRARIES}")
if(DEFINED CP2K_PEXSI_INCLUDE_DIRS)
set_target_properties(CP2K_PEXSI PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
"${CP2K_PEXSI_INCLUDE_DIRS}")
set_target_properties(CP2K::PEXSI PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
"${CP2K_PEXSI_INCLUDE_DIRS}")
endif()
endif()

View file

@ -35,11 +35,11 @@ else()
endif()
if(CP2K_PLUMED_FOUND)
if(NOT TARGET CP2K_plumed::plumed)
add_library(CP2K_plumed::plumed INTERFACE IMPORTED)
if(NOT TARGET CP2K::plumed::plumed)
add_library(CP2K::plumed::plumed INTERFACE IMPORTED)
endif()
set_target_properties(
CP2K_plumed::plumed
CP2K::plumed::plumed
PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${CP2K_PLUMED_INCLUDE_DIRS}"
INTERFACE_LINK_LIBRARIES "${CP2K_PLUMED_LINK_LIBRARIES}")
endif()

View file

@ -51,10 +51,10 @@ find_package_handle_standard_args(
CP2K_SCOTCHERR_LINK_LIBRARIES
CP2K_PTESMUMPS_LINK_LIBRARIES)
if(CP2K_PTSCOTCH_FOUND AND NOT TARGET CP2K_ptscotch::ptscotch)
add_library(CP2K_ptscotch::ptscotch INTERFACE IMPORTED)
if(CP2K_PTSCOTCH_FOUND AND NOT TARGET CP2K::ptscotch::ptscotch)
add_library(CP2K::ptscotch::ptscotch INTERFACE IMPORTED)
set_target_properties(
CP2K_ptscotch::ptscotch
CP2K::ptscotch::ptscotch
PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${PTSCOTCH_INCLUDE_DIRS}"
INTERFACE_LINK_LIBRARIES

View file

@ -22,10 +22,10 @@ endif()
find_package_handle_standard_args(Quip DEFAULT_MSG CP2K_LIBQUIP_INCLUDE_DIRS
CP2K_QUIP_LINK_LIBRARIES)
if(CP2K_LIBQUIP_FOUND AND NOT TARGET CP2K_quip::quip)
add_library(CP2K_quip::quip INTERFACE IMPORTED)
if(CP2K_LIBQUIP_FOUND AND NOT TARGET CP2K::quip::quip)
add_library(CP2K::quip::quip INTERFACE IMPORTED)
set_target_properties(
CP2K_quip::quip
CP2K::quip::quip
PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${CP2K_LIBQUIP_INCLUDE_DIRS}"
INTERFACE_LINK_LIBRARIES "${CP2K_LIBQUIP_LINK_LIBRARIES}")
endif()

View file

@ -18,7 +18,7 @@ cp2k_set_default_paths(SCALAPACK "SCALAPACK")
# distro if found
if(CP2K_SCALAPACK_VENDOR STREQUAL "GENERIC")
if(TARGET CP2K_MKL::scalapack_link)
if(TARGET CP2K::BLAS::MKL::scalapack_link)
message("-----------------------------------------------------------------")
message("- FindScalapack warning -")
message("-----------------------------------------------------------------")
@ -29,7 +29,7 @@ if(CP2K_SCALAPACK_VENDOR STREQUAL "GENERIC")
)
endif()
if(TARGET CP2K_SCI::scalapack_link)
if(TARGET CP2K::BLAS::SCI::scalapack_link)
message("-----------------------------------------------------------------")
message("- FindScalapack warning -")
message("-----------------------------------------------------------------")
@ -45,7 +45,7 @@ if(CP2K_SCALAPACK_VENDOR STREQUAL "GENERIC")
# try to detect location with pkgconfig
find_package(PkgConfig QUIET)
if(PKG_CONFIG_FOUND)
pkg_check_modules(CP2K_SCALAPACK "scalapack")
pkg_check_modules(CP2K_SCALAPACK IMPORTED_TARGET GLOBAL "scalapack")
endif()
# this should be enough for detecting scalapack compiled by hand. If scalapack
@ -56,15 +56,15 @@ if(CP2K_SCALAPACK_VENDOR STREQUAL "GENERIC")
if(NOT CP2K_SCALAPACK_FOUND)
cp2k_find_libraries(SCALAPACK "scalapack")
endif()
elseif(TARGET CP2K_MKL::scalapack_link)
elseif(TARGET CP2K::BLAS::MKL::scalapack_link)
# we have mkl check for the different mkl target
get_target_property(CP2K_SCALAPACK_LINK_LIBRARIES CP2K_MKL::scalapack_link
INTERFACE_LINK_LIBRARIES)
get_target_property(CP2K_SCALAPACK_LINK_LIBRARIES
CP2K::BLAS::MKL::scalapack_link INTERFACE_LINK_LIBRARIES)
set(CP2K_SCALAPACK_FOUND yes)
elseif(TARGET CP2K_SCI::scalapack_link)
elseif(TARGET CP2K::BLAS::SCI::scalapack_link)
# we have mkl check for the different mkl target
get_target_property(CP2K_SCALAPACK_LINK_LIBRARIES CP2K_SCI::scalapack_link
INTERFACE_LINK_LIBRARIES)
get_target_property(CP2K_SCALAPACK_LINK_LIBRARIES
CP2K::BLAS::SCI::scalapack_link INTERFACE_LINK_LIBRARIES)
set(CP2K_SCALAPACK_FOUND yes)
endif()
@ -76,12 +76,12 @@ find_package_handle_standard_args(SCALAPACK
# add target to link against
if(CP2K_SCALAPACK_FOUND)
if(NOT TARGET CP2K_SCALAPACK::scalapack)
add_library(CP2K_SCALAPACK::scalapack INTERFACE IMPORTED)
if(NOT TARGET CP2K::SCALAPACK::scalapack)
add_library(CP2K::SCALAPACK::scalapack INTERFACE IMPORTED)
endif()
set_property(
TARGET CP2K_SCALAPACK::scalapack PROPERTY INTERFACE_LINK_LIBRARIES
${CP2K_SCALAPACK_LINK_LIBRARIES})
TARGET CP2K::SCALAPACK::scalapack PROPERTY INTERFACE_LINK_LIBRARIES
${CP2K_SCALAPACK_LINK_LIBRARIES})
endif()
mark_as_advanced(CP2K_SCALAPACK_FOUND CP2K_SCALAPACK_LINK_LIBRARIES)

View file

@ -43,56 +43,58 @@ find_package_handle_standard_args(SCI REQUIRED_VARS CP2K_LIBSCI_INCLUDE_DIRS
# add target to link against
if(CP2K_LIBSCI_FOUND)
if(NOT TARGET CP2K_SCI::sci)
add_library(CP2K_SCI::sci INTERFACE IMPORTED)
add_library(CP2K_SCI::sci_mpi INTERFACE IMPORTED)
add_library(CP2K_SCI::sci_mp INTERFACE IMPORTED)
add_library(CP2K_SCI::sci_mpi_mp INTERFACE IMPORTED)
add_library(CP2K_SCI::scalapack_link INTERFACE IMPORTED)
add_library(CP2K_SCI::blas INTERFACE IMPORTED)
if(NOT TARGET CP2K::BLAS::SCI::sci)
add_library(CP2K::BLAS::SCI::sci INTERFACE IMPORTED)
add_library(CP2K::BLAS::SCI::sci_mpi INTERFACE IMPORTED)
add_library(CP2K::BLAS::SCI::sci_mp INTERFACE IMPORTED)
add_library(CP2K::BLAS::SCI::sci_mpi_mp INTERFACE IMPORTED)
add_library(CP2K::BLAS::SCI::scalapack_link INTERFACE IMPORTED)
add_library(CP2K::BLAS::SCI::blas INTERFACE IMPORTED)
if(CP2K_LIBSCI_INCLUDE_DIRS)
set_property(TARGET CP2K_SCI::sci PROPERTY INTERFACE_INCLUDE_DIRECTORIES
set_property(
TARGET CP2K::BLAS::SCI::sci PROPERTY INTERFACE_INCLUDE_DIRECTORIES
"${CP2K_LIBSCI_INCLUDE_DIRS}")
set_property(
TARGET CP2K::BLAS::SCI::sci_mp PROPERTY INTERFACE_INCLUDE_DIRECTORIES
"${CP2K_LIBSCI_INCLUDE_DIRS}")
set_property(
TARGET CP2K::BLAS::SCI::sci_mpi PROPERTY INTERFACE_INCLUDE_DIRECTORIES
"${CP2K_LIBSCI_INCLUDE_DIRS}")
set_property(
TARGET CP2K_SCI::sci_mp PROPERTY INTERFACE_INCLUDE_DIRECTORIES
"${CP2K_LIBSCI_INCLUDE_DIRS}")
set_property(
TARGET CP2K_SCI::sci_mpi PROPERTY INTERFACE_INCLUDE_DIRECTORIES
"${CP2K_LIBSCI_INCLUDE_DIRS}")
set_property(
TARGET CP2K_SCI::sci_mpi_mp PROPERTY INTERFACE_INCLUDE_DIRECTORIES
"${CP2K_LIBSCI_INCLUDE_DIRS}")
TARGET CP2K::BLAS::SCI::sci_mpi_mp
PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${CP2K_LIBSCI_INCLUDE_DIRS}")
endif()
set_property(TARGET CP2K_SCI::sci PROPERTY INTERFACE_LINK_LIBRARIES
${CP2K_LIBSCI_LINK_LIBRARIES})
set_property(
TARGET CP2K_SCI::sci_mp PROPERTY INTERFACE_LINK_LIBRARIES
${CP2K_LIBSCI_MP_LINK_LIBRARIES})
TARGET CP2K::BLAS::SCI::sci PROPERTY INTERFACE_LINK_LIBRARIES
${CP2K_LIBSCI_LINK_LIBRARIES})
set_property(
TARGET CP2K_SCI::sci_mpi
TARGET CP2K::BLAS::SCI::sci_mp PROPERTY INTERFACE_LINK_LIBRARIES
${CP2K_LIBSCI_MP_LINK_LIBRARIES})
set_property(
TARGET CP2K::BLAS::SCI::sci_mpi
PROPERTY INTERFACE_LINK_LIBRARIES ${CP2K_LIBSCI_MPI_LINK_LIBRARIES}
CP2K_SCI::sci)
CP2K::BLAS::SCI::sci)
set_property(
TARGET CP2K_SCI::sci_mpi_mp
TARGET CP2K::BLAS::SCI::sci_mpi_mp
PROPERTY INTERFACE_LINK_LIBRARIES ${CP2K_LIBSCI_MPI_MP_LINK_LIBRARIES}
CP2K_SCI::sci_mp)
CP2K::BLAS::SCI::sci_mp)
set_property(
TARGET CP2K_SCI::scalapack_link PROPERTY INTERFACE_INCLUDE_DIRECTORIES
"${CP2K_LIBSCI_INCLUDE_DIRS}")
TARGET CP2K::BLAS::SCI::scalapack_link
PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${CP2K_LIBSCI_INCLUDE_DIRS}")
endif()
if(CP2K_BLAS_THREADING MATCHES "sequential")
set_property(TARGET CP2K_SCI::blas PROPERTY INTERFACE_LINK_LIBRARIES
CP2K_SCI::sci)
set_property(TARGET CP2K_SCI::scalapack_link
PROPERTY INTERFACE_LINK_LIBRARIES CP2K_SCI::sci_mpi)
set_property(TARGET CP2K::BLAS::SCI::blas PROPERTY INTERFACE_LINK_LIBRARIES
CP2K::BLAS::SCI::sci)
set_property(TARGET CP2K::BLAS::SCI::scalapack_link
PROPERTY INTERFACE_LINK_LIBRARIES CP2K::BLAS::SCI::sci_mpi)
else()
set_property(TARGET CP2K_SCI::blas PROPERTY INTERFACE_LINK_LIBRARIES
CP2K_SCI::sci_mp)
set_property(TARGET CP2K_SCI::scalapack_link
PROPERTY INTERFACE_LINK_LIBRARIES CP2K_SCI::sci_mpi_mp)
set_property(TARGET CP2K::BLAS::SCI::blas PROPERTY INTERFACE_LINK_LIBRARIES
CP2K::BLAS::SCI::sci_mp)
set_property(TARGET CP2K::BLAS::SCI::scalapack_link
PROPERTY INTERFACE_LINK_LIBRARIES CP2K::BLAS::SCI::sci_mpi_mp)
endif()
set(CP2K_BLAS_VENDOR "SCI")

View file

@ -28,11 +28,11 @@ endif()
find_package_handle_standard_args(SuperLU DEFAULT_MSG CP2K_SUPERLU_INCLUDE_DIRS
CP2K_SUPERLU_LINK_LIBRARIES)
if(CP2K_SUPERLU_FOUND AND NOT TARGET CP2K_superlu::superlu)
add_library(CP2K_superlu::superlu INTERFACE IMPORTED)
if(CP2K_SUPERLU_FOUND AND NOT TARGET CP2K::superlu::superlu)
add_library(CP2K::superlu::superlu INTERFACE IMPORTED)
endif()
set_target_properties(
CP2K_superlu::superlu
CP2K::superlu::superlu
PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${CP2K_SUPERLU_INCLUDE_DIRS}"
INTERFACE_LINK_LIBRARIES "${CP2K_SUPERLU_LINK_LIBRARIES}")
mark_as_advanced(CP2K_SUPERLU_LINK_LIBRARIES CP2K_SUPERLU_INCLUDE_DIRS

View file

@ -27,6 +27,7 @@ function(cp2k_set_default_paths _varname _package_name)
OLCF_${_varname}_ROOT
${_varname}_PREFIX
${_varname}ROOT
${_varname}_HOME
EB${_varname}ROOT)
if(DEFINED ENV{${__var}})
set(CP2K_${_varname}_PREFIX_TMP $ENV{${__var}})

View file

@ -1359,11 +1359,11 @@ endforeach()
add_library(cp2k "${CP2K_SRCS};${CP2K_SRCS_C};${CP2K_SRCS_GPU}")
target_compile_features(cp2k PUBLIC cxx_std_11)
target_compile_features(cp2k PUBLIC cxx_std_14)
target_compile_features(cp2k PUBLIC c_std_99)
target_compile_features(cp2k PUBLIC cuda_std_11)
set_target_properties(cp2k PROPERTIES CXX_STANDARD 11)
set_target_properties(cp2k PROPERTIES CXX_STANDARD 14)
set_target_properties(cp2k PROPERTIES IMPORTED_LINK_INTERFACE_LANGUAGES "CXX")
# =================================================================================================
@ -1381,19 +1381,18 @@ add_library(cp2k_link_libs INTERFACE)
target_link_libraries(
cp2k_link_libs
INTERFACE
$<$<BOOL:${CP2K_USE_PEXSI}>:PEXSI::pexsi>
$<$<BOOL:${CP2K_USE_SIRIUS}>:sirius::sirius>
$<$<BOOL:${CP2K_USE_VORI}>:CP2K_VORI::vori>
$<$<BOOL:${CP2K_USE_PEXSI}>:CP2K_PEXSI::pexsi>
$<$<BOOL:${CP2K_USE_PEXSI}>:CP2K_ptscotch::ptscotch>
$<$<BOOL:${CP2K_USE_SPGLIB}>:CP2K_LIBSPG::libspg>
$<$<BOOL:${CP2K_USE_LIBXC}>:CP2K_Libxc::xc>
$<$<BOOL:${CP2K_USE_ELPA}>:CP2K_ELPA::elpa>
$<$<BOOL:${CP2K_USE_FFTW3}>:CP2K_FFTW3::fftw3>
$<$<BOOL:${CP2K_ENABLE_FFTW3_THREADS_SUPPORT}>:CP2K_FFTW3::fftw3_threads>
$<$<BOOL:${CP2K_ENABLE_FFTW3_OPENMP_SUPPORT}>:CP2K_FFTW3::fftw3_omp>
$<$<BOOL:${CP2K_USE_VORI}>:CP2K::VORI::vori>
$<$<BOOL:${CP2K_USE_PEXSI}>:CP2K::PEXSI::pexsi>
$<$<BOOL:${CP2K_USE_PEXSI}>:CP2K::ptscotch::ptscotch>
$<$<BOOL:${CP2K_USE_SPGLIB}>:CP2K::LIBSPG::libspg>
$<$<BOOL:${CP2K_USE_LIBXC}>:CP2K::Libxc::xc>
$<$<BOOL:${CP2K_USE_ELPA}>:CP2K::ELPA::elpa>
$<$<BOOL:${CP2K_USE_FFTW3}>:CP2K::FFTW3::fftw3>
$<$<BOOL:${CP2K_ENABLE_FFTW3_THREADS_SUPPORT}>:CP2K::FFTW3::fftw3_threads>
$<$<BOOL:${CP2K_ENABLE_FFTW3_OPENMP_SUPPORT}>:CP2K::FFTW3::fftw3_omp>
$<$<BOOL:${CP2K_USE_SPLA}>:SPLA::spla>
$<$<BOOL:${CP2K_USE_LIBINT2}>:CP2K_Libint2::int2>
$<$<BOOL:${CP2K_USE_LIBINT2}>:CP2K::Libint2::int2>
$<$<BOOL:${CP2K_USE_COSMA}>:cosma::cosma_prefixed_pxgemm>
$<$<BOOL:${CP2K_USE_COSMA}>:cosma::cosma>
$<$<BOOL:${CP2K_USE_COSMA}>:costa::costa>
@ -1406,15 +1405,14 @@ target_link_libraries(
$<$<BOOL:${CP2K_USE_HIP}>:hip::hipfft>
$<$<BOOL:${CP2K_USE_HIP}>:roc::hipblas>
$<$<BOOL:${CP2K_USE_HIP}>:hip::device>
CP2K_SCALAPACK::scalapack
$<$<BOOL:${CP2K_USE_LIBXSMM}>:CP2K_LibXSMM::libxsmmf>
$<$<BOOL:${CP2K_USE_LIBXSMM}>:CP2K_LibXSMM::libxsmmext>
$<$<BOOL:${CP2K_USE_LIBXSMM}>:CP2K_LibXSMM::libxsmm>
CP2K_LAPACK::lapack
CP2K_BLAS::blas
MPI::MPI_Fortran
MPI::MPI_C
MPI::MPI_CXX
$<$<BOOL:${CP2K_USE_MPI}>:CP2K::SCALAPACK::scalapack>
$<$<BOOL:${CP2K_USE_LIBXSMM}>:CP2K::LibXSMM::libxsmmf>
$<$<BOOL:${CP2K_USE_LIBXSMM}>:CP2K::LibXSMM::libxsmmext>
CP2K::LAPACK::lapack
CP2K::BLAS::blas
$<$<BOOL:${CP2K_USE_MPI}>:MPI::MPI_Fortran>
$<$<BOOL:${CP2K_USE_MPI}>:MPI::MPI_C>
$<$<BOOL:${CP2K_USE_MPI}>:MPI::MPI_CXX>
OpenMP::OpenMP_Fortran
OpenMP::OpenMP_C
OpenMP::OpenMP_CXX)
@ -1442,14 +1440,18 @@ string(TIMESTAMP CP2K_TIMESTAMP "%Y-%m-%d %H:%M:%S")
target_link_libraries(cp2k PUBLIC cp2k_link_libs)
target_compile_definitions(
cp2k
PUBLIC __parallel
__SCALAPACK
PUBLIC $<$<BOOL:${CP2K_USE_MPI}>:__parallel>
$<$<BOOL:${CP2K_USE_MPI}>:__SCALAPACK>
$<$<BOOL:${CP2K_ENABLE_F08_MPI}>:__MPI_08>
__COMPILE_DATE=\"${CP2K_TIMESTAMP}\"
__COMPILE_HOST=\"${CP2K_HOST_NAME}\"
__COMPILE_REVISION=\"${CP2K_GIT_HASH}\"
__DATA_DIR=\"${CMAKE_INSTALL_FULL_DATAROOTDIR}/cp2k/data\"
__COMPILE_ARCH=\"${CMAKE_SYSTEM_PROCESSOR}\"
$<$<CONFIG:Release>:NDEBUG>
$<$<CONFIG:COVERAGE>:__NO_ABORT>
$<$<CONFIG:DEBUG>:__HAS_IEEE_EXCEPTIONS>
$<$<CONFIG:DEBUG>:__CHECK_DIAG>
$<$<BOOL:${CP2K_USE_PEXSI}>:__PEXSI>
$<$<BOOL:${CP2K_USE_PLUMED2}>:__PLUMED2>
$<$<BOOL:${CP2K_USE_QUIP}>:__QUIP>
@ -1531,7 +1533,7 @@ add_executable(xyz2dcd motion/xyz2dcd.F)
add_executable(libcp2k_unittest start/libcp2k_unittest.c)
add_executable(nequip_unittest nequip_unittest.F)
set_target_properties(cp2k-bin PROPERTIES CXX_STANDARD 11)
set_target_properties(cp2k-bin PROPERTIES CXX_STANDARD 14)
set_target_properties(cp2k-bin PROPERTIES IMPORTED_LINK_INTERFACE_LANGUAGES
"CXX")
set_target_properties(cp2k-bin PROPERTIES LINKER_LANGUAGE "CXX")
@ -1540,7 +1542,7 @@ target_link_libraries(cp2k-bin PUBLIC cp2k)
foreach(_app ${__CP2K_APPS})
set_target_properties(${_app} PROPERTIES LINKER_LANGUAGE "CXX")
set_target_properties(${_app} PROPERTIES CXX_STANDARD 11)
set_target_properties(${_app} PROPERTIES CXX_STANDARD 14)
set_target_properties(${_app} PROPERTIES IMPORTED_LINK_INTERFACE_LANGUAGES
"CXX")
target_compile_features(${_app} PUBLIC c_std_99)
@ -1574,9 +1576,9 @@ foreach(_app ${__GRID_APPS})
${_app}
PUBLIC $<$<BOOL:${CP2K_USE_CUDA}>:CUDA::cudart>
$<$<BOOL:${CP2K_USE_HIP}>:hip::device>
$<$<BOOL:${CP2K_USE_LIBXSMM}>:CP2K_LibXSMM::libxsmmf>
$<$<BOOL:${CP2K_USE_LIBXSMM}>:CP2K_LibXSMM::libxsmm>
CP2K_BLAS::blas
$<$<BOOL:${CP2K_USE_LIBXSMM}>:CP2K::LibXSMM::libxsmmf>
$<$<BOOL:${CP2K_USE_LIBXSMM}>:CP2K::LibXSMM::libxsmm>
CP2K::BLAS::blas
OpenMP::OpenMP_C
m)
@ -1618,11 +1620,11 @@ target_link_libraries(
dbm_miniapp
PUBLIC $<$<BOOL:${CP2K_USE_CUDA}>:CUDA::cudart>
$<$<BOOL:${CP2K_USE_HIP}>:hip::device>
$<$<BOOL:${CP2K_USE_LIBXSMM}>:CP2K_LibXSMM::libxsmmf>
$<$<BOOL:${CP2K_USE_LIBXSMM}>:CP2K_LibXSMM::libxsmmext>
$<$<BOOL:${CP2K_USE_LIBXSMM}>:CP2K_LibXSMM::libxsmm>
MPI::MPI_C
CP2K_BLAS::blas
$<$<BOOL:${CP2K_USE_LIBXSMM}>:CP2K::LibXSMM::libxsmmf>
$<$<BOOL:${CP2K_USE_LIBXSMM}>:CP2K::LibXSMM::libxsmmext>
$<$<BOOL:${CP2K_USE_LIBXSMM}>:CP2K::LibXSMM::libxsmm>
$<$<BOOL:${CP2K_USE_MPI}>:MPI::MPI_C>
CP2K::BLAS::blas
OpenMP::OpenMP_C
m)