@@ -78,11 +78,12 @@ set(SYMBOLPREFIX "" CACHE STRING "Add a prefix to all exported symbol names in
78
78
set (SYMBOLSUFFIX "" CACHE STRING "Add a suffix to all exported symbol names in the shared library, e.g. _64 for INTERFACE64 builds" )
79
79
80
80
if (CMAKE_SYSTEM_NAME MATCHES "Windows" AND BUILD_SHARED_LIBS AND NOT ("${SYMBOLPREFIX}${SYMBOLSUFFIX} " STREQUAL "" ))
81
+ set (DELETE_STATIC_LIBS "" )
81
82
if (NOT BUILD_STATIC_LIBS)
82
83
message (STATUS "forcing build of a temporary static library for symbol renaming" )
83
84
set (BUILD_SHARED_LIBS OFF CACHE BOOL "Build shared library" FORCE)
84
85
set (BUILD_STATIC_LIBS ON CACHE BOOL "Build static library" FORCE)
85
- set (DELETE_STATIC_LIBS 1 )
86
+ set (DELETE_STATIC_LIBS file (REMOVE $<TARGET_FILE_DIR: ${OpenBLAS_LIBNAME} _static>/ ${OpenBLAS_LIBNAME} .lib) )
86
87
endif ()
87
88
endif ()
88
89
@@ -491,15 +492,22 @@ if (BUILD_SHARED_LIBS OR DELETE_STATIC_LIBS AND NOT ${SYMBOLPREFIX}${SYMBOLSUFFI
491
492
if (CMAKE_SYSTEM_NAME MATCHES "Windows" )
492
493
set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR} /lib)
493
494
set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR} /lib)
494
- #if (USE_PERL)
495
+ if (CMAKE_BUILD_TYPE MATCHES "Debug" )
496
+ set (CRTLIB msvcrtd)
497
+ set (PDBOPT -debug -pdb:$<TARGET_FILE_DIR:${OpenBLAS_LIBNAME} _static>/${OpenBLAS_LIBNAME} .pdb)
498
+ set (PDB_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR} /lib)
499
+ else ()
500
+ set (CRTLIB msvcrt)
501
+ set (PDBOPT "" )
502
+ endif ()
503
+ #if (USE_PERL)
495
504
message (STATUS "adding postbuild instruction to rename syms" )
496
505
add_custom_command (TARGET ${OpenBLAS_LIBNAME} _static POST_BUILD
497
- COMMAND perl ${PROJECT_SOURCE_DIR} /exports/gensymbol.pl "win2k" "${ARCH} " "${BU} " "${EXPRECISION_IN} " "${NO_CBLAS_IN} " "${NO_LAPACK_IN} " "${NO_LAPACKE_IN} " "${NEED2UNDERSCORES_IN} " "${ONLY_CBLAS_IN} " \ "${SYMBOLPREFIX} \" \ "${SYMBOLSUFFIX} \ " "${BLD} " "${BBF16} " "${BS} " "${BD} " "${BC} " "${BZ} " > ${PROJECT_BINARY_DIR} /renamesyms.def
506
+ COMMAND perl ${PROJECT_SOURCE_DIR} /exports/gensymbol.pl "win2k" "${ARCH} " "${BU} " "${EXPRECISION_IN} " "${NO_CBLAS_IN} " "${NO_LAPACK_IN} " "${NO_LAPACKE_IN} " "${NEED2UNDERSCORES_IN} " "${ONLY_CBLAS_IN} " "${SYMBOLPREFIX} " "${SYMBOLSUFFIX} " "${BLD} " "${BBF16} " "${BS} " "${BD} " "${BC} " "${BZ} " > ${PROJECT_BINARY_DIR} /renamesyms.def
498
507
COMMAND ${CMAKE_C_COMPILER} ${CMAKE_C_FLAGS} -I${PROJECT_SOURCE_DIR} -I${PROJECT_BINARY_DIR} -c -o ${PROJECT_BINARY_DIR} /dllinit.o ${PROJECT_SOURCE_DIR} /exports/dllinit.c
499
- COMMAND lld-link -nodefaultlib:libcmt -defaultlib:msvcrt ${CMAKE_LINKER_FLAGS} -errorlimit:0 -def:${PROJECT_BINARY_DIR} /renamesyms.def ${PROJECT_BINARY_DIR} /dllinit.o $<TARGET_FILE:${OpenBLAS_LIBNAME} _static> -wholearchive:$<TARGET_FILE:${OpenBLAS_LIBNAME} _static> -dll -out:$<TARGET_FILE_DIR:${OpenBLAS_LIBNAME} _static>/${OpenBLAS_LIBNAME} .dll -implib:$<TARGET_FILE_DIR:${OpenBLAS_LIBNAME} _static>/${OpenBLAS_LIBNAME} .dll.a
500
- #if (${REMOVE_STATIC_LIB})
501
- #file (REMOVE $<TARGET_FILE_DIR:${OpenBLAS_LIBNAME}_static>/${OpenBLAS_LIBNAME}.lib)
502
- #endif ()
508
+ COMMAND lld-link -nodefaultlib:libcmt -defaultlib:${CRTLIB} ${CMAKE_LINKER_FLAGS} -errorlimit:0 -def:${PROJECT_BINARY_DIR} /renamesyms.def ${PROJECT_BINARY_DIR} /dllinit.o $<TARGET_FILE:${OpenBLAS_LIBNAME} _static> -wholearchive:$<TARGET_FILE:${OpenBLAS_LIBNAME} _static> -dll -out:$<TARGET_FILE_DIR:${OpenBLAS_LIBNAME} _static>/${OpenBLAS_LIBNAME} .dll -implib:$<TARGET_FILE_DIR:${OpenBLAS_LIBNAME} _static>/${OpenBLAS_LIBNAME} .dll.a ${PDBOPT}
509
+ #COMMAND lld-link -nodefaultlib:libcmt -defaultlib:msvcrt ${CMAKE_LINKER_FLAGS} -errorlimit:0 -def:${PROJECT_BINARY_DIR}/renamesyms.def ${PROJECT_BINARY_DIR}/dllinit.o $<TARGET_FILE:${OpenBLAS_LIBNAME}_static> -wholearchive:$<TARGET_FILE:${OpenBLAS_LIBNAME}_static> -dll -out:$<TARGET_FILE_DIR:${OpenBLAS_LIBNAME}_static>/${OpenBLAS_LIBNAME}.dll -implib:$<TARGET_FILE_DIR:${OpenBLAS_LIBNAME}_static>/${OpenBLAS_LIBNAME}.dll.a
510
+ ${REMOVE_STATIC_LIB} VERBATIM
503
511
)
504
512
#endif ()
505
513
else ()
0 commit comments