evaleev / libint

Libint: high-performance library for computing Gaussian integrals in quantum mechanics
Other
218 stars 96 forks source link

Sigma #287

Closed loriab closed 7 months ago

evaleev commented 7 months ago

@loriab after switching from include(srclist.cmake) to file(STRINGS srclist.cmake ENCODING UTF-8) CMake sees correct file names: https://github.com/evaleev/libint/actions/runs/7038208595/job/19156047711#step:7:6302

But Ninja does not: https://github.com/evaleev/libint/actions/runs/7038208595/job/19156047711#step:7:7264 ... Ninja 1.11+ supports UTF-8 on Windows, and it appears that CMake 3.21+ should work correctly with Ninja UTF-8: https://gitlab.kitware.com/cmake/cmake/-/issues/21866

loriab commented 7 months ago

Yes, I was reading about Ninja problems with non-ascii on Windows https://github.com/ninja-build/ninja/pull/1915 and then CMake problems in turn. Giving nmake a shot ...

loriab commented 7 months ago

fwiw, NMake is no happier ...

[ 25%] Building CXX object CMakeFiles/libint2_obj.dir/src/CR_aB_d__0___CartesianMultipole_sB_3_c_0_c_0_Sb__s__0___Ab__up_.cc.obj
    C:\PROGRA~1\LLVM\bin\clang-cl.exe @C:\Users\RUNNER~1\AppData\Local\Temp\nmEF5C.tmp
[ 25%] Building CXX object CMakeFiles/libint2_obj.dir/src/CR_aB_d__0___σpVσp_sB_0_Sb__d__0___Ab__up_.cc.obj
    C:\PROGRA~1\LLVM\bin\clang-cl.exe @C:\Users\RUNNER~1\AppData\Local\Temp\nmF25A.tmp
clang-cl: error: no such file or directory: 'D:\a\libint\libint\libint\src\CR_aB_d__0___spVsp_sB_0_Sb__d__0___Ab__up_.cc'
clang-cl: error: no input files
NMAKE : fatal error U1077: 'C:\PROGRA~1\LLVM\bin\clang-cl.exe @C:\Users\RUNNER~1\AppData\Local\Temp\nmF25A.tmp' : return code '0x1'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.37.32822\bin\HostX64\x64\nmake.exe"  -f CMakeFiles\libint2_obj.dir\build.make /nologo -L                  CMakeFiles\libint2_obj.dir\build' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.37.32822\bin\HostX64\x64\nmake.exe"  -f CMakeFiles\Makefile2 /nologo -L                  all' : return code '0x2'
Stop.
evaleev commented 7 months ago

@loriab I think using ninja + windows-only symlinks is the cleanest solution (see https://github.com/evaleev/libint/pull/273/commits/9e5ba3140bab5101ee34dc7507de739f7adb9d90) ... I'd prefer to stick with Unicode in code itself so that names are sanish.

loriab commented 7 months ago

@loriab I think using ninja + windows-only symlinks is the cleanest solution (see https://github.com/evaleev/libint/commit/9e5ba3140bab5101ee34dc7507de739f7adb9d90) ... I'd prefer to stick with Unicode in code itself so that names are sanish.

Sounds like a good solution to me! And if you want to not support pylibint on Windows, I've no objection.