It seems that SYMBOLSUFFIX only works with BUILD_SHARED_LIBS=ON, at least from what I understood from reading CMakeLists. To confirm this, I compiled openblas using the options below
%CMAKE_COMMAND% ^
-G "Ninja" ^
-D CMAKE_BUILD_TYPE:STRING="Release" ^
-D CMAKE_INSTALL_PREFIX="%LAPACK_DIR%" ^
-D CMAKE_C_COMPILER="cl.exe" ^
-D CMAKE_CXX_COMPILER="cl.exe" ^
-D CMAKE_Fortran_COMPILER="ifx.exe" ^
-D CMAKE_Fortran_FLAGS="" ^
-D SYMBOLSUFFIX="_" ^
-D CMAKE_VERBOSE_MAKEFILE:BOOL=OFF ^
-D BUILD_SHARED_LIBS:BOOL=OFF ^
-D BUILD_STATIC_LIBS:BOOL=ON ^
-D BUILD_WITHOUT_CBLAS:BOOL=ON ^
-D BUILD_WITHOUT_LAPACKE:BOOL=ON ^
-D BUILD_LAPACK_DEPRECATED:BOOL=ON ^
-D BUILD_TESTING:BOOL=OFF ^
%LAPACK_HOME%
And extracting the symbol:
dumpbin /SYMBOLS openblas.lib | findstr /i "dgemm"
02C 00000000 UNDEF notype External | dgemm
.....
It seems that
SYMBOLSUFFIXonly works withBUILD_SHARED_LIBS=ON, at least from what I understood from reading CMakeLists. To confirm this, I compiled openblas using the options below%CMAKE_COMMAND% ^
-G "Ninja" ^
-D CMAKE_BUILD_TYPE:STRING="Release" ^
-D CMAKE_INSTALL_PREFIX="%LAPACK_DIR%" ^
-D CMAKE_C_COMPILER="cl.exe" ^
-D CMAKE_CXX_COMPILER="cl.exe" ^
-D CMAKE_Fortran_COMPILER="ifx.exe" ^
-D CMAKE_Fortran_FLAGS="" ^
-D SYMBOLSUFFIX="_" ^
-D CMAKE_VERBOSE_MAKEFILE:BOOL=OFF ^
-D BUILD_SHARED_LIBS:BOOL=OFF ^
-D BUILD_STATIC_LIBS:BOOL=ON ^
-D BUILD_WITHOUT_CBLAS:BOOL=ON ^
-D BUILD_WITHOUT_LAPACKE:BOOL=ON ^
-D BUILD_LAPACK_DEPRECATED:BOOL=ON ^
-D BUILD_TESTING:BOOL=OFF ^
%LAPACK_HOME%
And extracting the symbol:
dumpbin /SYMBOLS openblas.lib | findstr /i "dgemm"
02C 00000000 UNDEF notype External | dgemm
.....