From 55682fdc4ec8b4fd2367a19207e6ad2a4c09c561 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D9=85=D9=87=D8=AF=D9=8A=20=D8=B4=D9=8A=D9=86=D9=88=D9=86?= =?UTF-8?q?=20=28Mehdi=20Chinoune=29?= Date: Sat, 26 Oct 2024 06:55:19 +0100 Subject: [PATCH] siesta: update to 5.0.1 --- mingw-w64-siesta/001-fix-build-on-mingw.patch | 187 +++--------------- mingw-w64-siesta/PKGBUILD | 6 +- 2 files changed, 33 insertions(+), 160 deletions(-) diff --git a/mingw-w64-siesta/001-fix-build-on-mingw.patch b/mingw-w64-siesta/001-fix-build-on-mingw.patch index 030cbfbcd7..77bbc5dc19 100644 --- a/mingw-w64-siesta/001-fix-build-on-mingw.patch +++ b/mingw-w64-siesta/001-fix-build-on-mingw.patch @@ -38,112 +38,40 @@ pexsi-solver/m_pexsi.F90 pexsi-solver/m_pexsi_dos.F90 pexsi-solver/m_pexsi_driver.F90 -@@ -610,6 +610,8 @@ +@@ -607,6 +607,8 @@ $<$:OpenMP::OpenMP_Fortran> # Profiling - $<$:nvtx-c> + $<$:${PROJECT_NAME}.nvtx-c> + # Windows + $<$:ws2_32> ) - #get_target_property(out SIESTA_libsiesta INTERFACE_LINK_LIBRARIES) -@@ -750,7 +752,9 @@ + ## For stuff that depends on libsiesta, add its include directory +@@ -741,7 +743,9 @@ if( SIESTA_INSTALL ) install( - TARGETS SIESTA_libsiesta + TARGETS ${PROJECT_NAME}.libsiesta - RUNTIME DESTINATION "${CMAKE_INSTALL_LIBDIR}" + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" ) install( - TARGETS SIESTA_siesta_exe ---- a/Src/MatrixSwitch/src/CMakeLists.txt -+++ b/Src/MatrixSwitch/src/CMakeLists.txt -@@ -1,7 +1,7 @@ - # Built-in MatrixSwitch - # - add_library(${PROJECT_NAME}-libms -- -+ STATIC - MatrixSwitch.F90 - MatrixSwitch_m_add.F90 - MatrixSwitch_m_copy.F90 + TARGETS ${PROJECT_NAME}.siesta --- a/Src/MPI/CMakeLists.txt +++ b/Src/MPI/CMakeLists.txt -@@ -65,4 +65,11 @@ - COMMENT "Creating MPI interfaces and modules" +@@ -77,3 +77,11 @@ + POP + VARIABLES EXECUTABLE ) - -- +if( SIESTA_INSTALL ) + install( -+ TARGETS mpi_siesta ++ TARGETS ${PROJECT_NAME}.mpi + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" + ) +endif() ---- a/Src/easy-fdict/CMakeLists.txt -+++ b/Src/easy-fdict/CMakeLists.txt -@@ -3,7 +3,7 @@ - - add_library( - ${PROJECT_NAME}-libfdict -- -+ STATIC - variable.F90 - dictionary.f90 - ) ---- a/Src/easy-ncdf/CMakeLists.txt -+++ b/Src/easy-ncdf/CMakeLists.txt -@@ -3,7 +3,7 @@ - # - add_library( - ${PROJECT_NAME}-libncdf -- -+ STATIC - netcdf_ncdf.F90 - ) - ---- a/Src/libsys/CMakeLists.txt -+++ b/Src/libsys/CMakeLists.txt -@@ -2,6 +2,7 @@ - # - add_library( - ${PROJECT_NAME}-libsys -+ STATIC - sys.F90 - external_entries.F90 - ) ---- a/Src/libxc-compat/CMakeLists.txt -+++ b/Src/libxc-compat/CMakeLists.txt -@@ -1,4 +1,4 @@ --add_library(${PROJECT_NAME}-libxc-trans -+add_library(${PROJECT_NAME}-libxc-trans STATIC - m_libxc_compat.f90 - m_libxc_list.F90 - m_libxc_sxc_translation.F90 ---- a/Src/ncps/src/CMakeLists.txt -+++ b/Src/ncps/src/CMakeLists.txt -@@ -1,6 +1,6 @@ - add_library( - ${PROJECT_NAME}-libncps -- -+ STATIC - interpolation.f90 - m_ncps.f90 - m_ncps_froyen_ps_t.f90 ---- a/Src/psoplib/src/CMakeLists.txt -+++ b/Src/psoplib/src/CMakeLists.txt -@@ -1,6 +1,6 @@ - add_library( - ${PROJECT_NAME}-libpsop -- -+ STATIC - arw.f - m_kbgen.F - m_localgen.f --- a/Src/sockets.c +++ b/Src/sockets.c @@ -39,10 +39,16 @@ @@ -165,113 +93,58 @@ /* Opens a socket. --- a/Util/Grid/CMakeLists.txt +++ b/Util/Grid/CMakeLists.txt -@@ -8,8 +8,8 @@ - # To avoid "multiple rules" in Ninja - # Maybe turn into global-utility targets - --add_library(aux_opts ${top_src_dir}/m_getopts.f90) --add_library(aux_gridfunc m_gridfunc.F90) -+add_library(aux_opts STATIC ${top_src_dir}/m_getopts.f90) -+add_library(aux_gridfunc STATIC m_gridfunc.F90) - - #----------------------------------------- - add_executable(g2c_ng -@@ -81,7 +81,7 @@ +@@ -98,7 +98,7 @@ # To avoid "multiple rules" in Ninja # (could add OBJECT qualifier to avoid the lib appearing) --add_library(aux_m_grid m_grid.F90) -+add_library(aux_m_grid STATIC m_grid.F90) - target_compile_definitions(aux_m_grid PRIVATE CDF ) - target_link_libraries(aux_m_grid PUBLIC NetCDF::NetCDF_Fortran ) +-siesta_add_library(${PROJECT_NAME}.aux_m_grid m_grid.F90) ++siesta_add_library(${PROJECT_NAME}.aux_m_grid STATIC m_grid.F90) + target_compile_definitions(${PROJECT_NAME}.aux_m_grid PRIVATE CDF ) + target_link_libraries(${PROJECT_NAME}.aux_m_grid PUBLIC NetCDF::NetCDF_Fortran ) -@@ -100,7 +100,7 @@ - #----------------------------------------- - - # To avoid "multiple rules" in Ninja --add_library(aux_fft ${top_src_dir}/m_fft_gpfa.F) -+add_library(aux_fft STATIC ${top_src_dir}/m_fft_gpfa.F) - target_link_libraries(aux_fft PRIVATE ${PROJECT_NAME}-libsys) - - add_executable(cdf_laplacian --- a/Util/JobList/Src/CMakeLists.txt +++ b/Util/JobList/Src/CMakeLists.txt @@ -1,7 +1,7 @@ # To avoid "multiple rules" in Ninja # Maybe turn into global-utility targets --add_library(aux_joblist jobList.f90 posix_calls.f90) -+add_library(aux_joblist STATIC jobList.f90 posix_calls.f90) +-siesta_add_library(${PROJECT_NAME}.aux_joblist ++siesta_add_library(${PROJECT_NAME}.aux_joblist STATIC + jobList.f90 posix_calls.f90) - add_executable(countJobs countJobs.f90 ) - add_executable(runJobs runJobs.f90 ) ---- a/Util/Optimizer/CMakeLists.txt -+++ b/Util/Optimizer/CMakeLists.txt -@@ -1,4 +1,5 @@ - add_library(aux_optim -+ STATIC - io.f - parse.f - minimizer.f90 + siesta_add_executable(${PROJECT_NAME}.countJobs countJobs.f90 ) --- a/Util/STM/simple-stm/CMakeLists.txt +++ b/Util/STM/simple-stm/CMakeLists.txt @@ -4,7 +4,7 @@ # To avoid "multiple rules" in Ninja # Maybe turn into global-utility targets --add_library(stm_gridfunc ${grid_srcdir}/m_gridfunc.F90) -+add_library(stm_gridfunc STATIC ${grid_srcdir}/m_gridfunc.F90) +-siesta_add_library(${PROJECT_NAME}.stm_gridfunc ${grid_srcdir}/m_gridfunc.F90) ++siesta_add_library(${PROJECT_NAME}.stm_gridfunc STATIC ${grid_srcdir}/m_gridfunc.F90) - add_executable( plstm + siesta_add_executable( ${PROJECT_NAME}.plstm plstm.f90 --- a/Util/SiestaSubroutine/SimpleTest/Src/CMakeLists.txt +++ b/Util/SiestaSubroutine/SimpleTest/Src/CMakeLists.txt -@@ -10,7 +10,7 @@ - # to satisfy Ninja. This is also good practice in general - # - # -- Sockets --siesta_add_library(sockets-siesta-dispatch -+siesta_add_library(sockets-siesta-dispatch STATIC - ${top_srcdir}/fsiesta_sockets.F90 - ${top_srcdir}/fsockets.f90 - ${top_srcdir}/sockets.c -@@ -19,6 +19,9 @@ - set_target_properties(sockets-siesta-dispatch +@@ -21,6 +21,9 @@ + set_target_properties(${PROJECT_NAME}.sockets-dispatch PROPERTIES Fortran_MODULE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/sockets-include") +if(WIN32) -+ target_link_libraries(sockets-siesta-dispatch PUBLIC ws2_32) ++ target_link_libraries(${PROJECT_NAME}.sockets-dispatch PUBLIC ws2_32) +endif() - target_include_directories(sockets-siesta-dispatch + target_include_directories(${PROJECT_NAME}.sockets-dispatch INTERFACE -@@ -25,7 +28,7 @@ - "${CMAKE_CURRENT_BINARY_DIR}/sockets-include") - - # -- Pipes --siesta_add_library(pipes-siesta-dispatch -+siesta_add_library(pipes-siesta-dispatch STATIC - ${top_srcdir}/fsiesta_pipes.F90 - ${top_srcdir}/pxf.F90 - ${top_srcdir}/posix_calls.f90 -@@ -40,7 +43,7 @@ - if (SIESTA_WITH_MPI) - - # -- MPI dispatch -- uses 'libsiesta' --siesta_add_library(mpi-siesta-dispatch -+siesta_add_library(mpi-siesta-dispatch STATIC - ${top_srcdir}/fsiesta_mpi.F90 - ) - target_link_libraries(mpi-siesta-dispatch PUBLIC SIESTA_libsiesta) --- a/Util/Sockets/CMakeLists.txt +++ b/Util/Sockets/CMakeLists.txt @@ -11,6 +11,10 @@ - target_link_libraries(f2fmaster sockets_objs ) - target_link_libraries(f2fslave sockets_objs ) + target_link_libraries(${PROJECT_NAME}.f2fmaster PRIVATE ${PROJECT_NAME}.sockets_objs ) + target_link_libraries(${PROJECT_NAME}.f2fslave PRIVATE ${PROJECT_NAME}.sockets_objs ) +if(WIN32) -+ target_link_libraries(f2fmaster ws2_32) -+ target_link_libraries(f2fslave ws2_32) ++ target_link_libraries(${PROJECT_NAME}.f2fmaster PUBLIC ws2_32) ++ target_link_libraries(${PROJECT_NAME}.f2fslave PUBLIC ws2_32) +endif() if( SIESTA_INSTALL ) diff --git a/mingw-w64-siesta/PKGBUILD b/mingw-w64-siesta/PKGBUILD index f990fdafbe..74504f9c01 100644 --- a/mingw-w64-siesta/PKGBUILD +++ b/mingw-w64-siesta/PKGBUILD @@ -3,7 +3,7 @@ _realname=siesta pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=5.0.0 +pkgver=5.0.1 pkgrel=1 pkgdesc="A first-principles materials simulation code using DFT. (mingw-w64)" arch=('any') @@ -38,9 +38,9 @@ _w90_ver=3.1.0 source=("https://gitlab.com/siesta-project/siesta/-/releases/${pkgver}/downloads/${_realname}-${pkgver}.tar.gz" "https://github.com/wannier-developers/wannier90/archive/v${_w90_ver}/wannier90-${_w90_ver}.tar.gz" "001-fix-build-on-mingw.patch") -sha256sums=('b7c18e0bbfb4c8707c483fc516953c10ea5489de43a744957a9b0e10fb4ae5af' +sha256sums=('1933cde879d921577a5e854c459531951d0afc9fd193f086a04457e9022ba9a0' '40651a9832eb93dec20a8360dd535262c261c34e13c41b6755fa6915c936b254' - '7fa2cf211e958d658ebe832c4baec59bc664b859b135d95a46aa0125503c7228') + '95ea74aa1083bad50480bc2abf1777aa463df1c8393845e1fe83402240f91efd') noextract=("wannier90-${_w90_ver}.tar.gz") prepare() {