@@ -78,14 +78,14 @@ set(SYMBOLPREFIX "" CACHE STRING "Add a prefix to all exported symbol names in
7878
7979set (SYMBOLSUFFIX "" CACHE STRING "Add a suffix to all exported symbol names in the shared library, e.g. _64 for INTERFACE64 builds" )
8080
81- if (CMAKE_SYSTEM_NAME MATCHES "Windows" AND BUILD_SHARED_LIBS AND NOT ("${SYMBOLPREFIX}${SYMBOLSUFFIX} " STREQUAL "" ))
82- set (DELETE_STATIC_LIBS "" )
83- if (NOT BUILD_STATIC_LIBS)
84- message (STATUS "forcing build of a temporary static library for symbol renaming" )
85- set (BUILD_SHARED_LIBS OFF CACHE BOOL "Build shared library" FORCE)
86- set (BUILD_STATIC_LIBS ON CACHE BOOL "Build static library" FORCE)
87- set (DELETE_STATIC_LIBS file (REMOVE $<TARGET_FILE_DIR:${OpenBLAS_LIBNAME} _static>/${OpenBLAS_LIBNAME} .lib))
88- endif ()
81+ if (MSVC AND BUILD_SHARED_LIBS AND NOT ("${SYMBOLPREFIX}${SYMBOLSUFFIX} " STREQUAL "" ))
82+ set (DELETE_STATIC_LIBS "" )
83+ if (NOT BUILD_STATIC_LIBS)
84+ message (STATUS "forcing build of a temporary static library for symbol renaming" )
85+ set (BUILD_SHARED_LIBS OFF CACHE BOOL "Build shared library" FORCE)
86+ set (BUILD_STATIC_LIBS ON CACHE BOOL "Build static library" FORCE)
87+ set (DELETE_STATIC_LIBS file (REMOVE $<TARGET_FILE_DIR:${OpenBLAS_LIBNAME} _static>/${OpenBLAS_LIBNAME} .lib))
88+ endif ()
8989endif ()
9090
9191
@@ -519,43 +519,43 @@ if (BUILD_SHARED_LIBS OR DELETE_STATIC_LIBS AND NOT ${SYMBOLPREFIX}${SYMBOLSUFFI
519519 set (BZ 0)
520520 endif ()
521521
522- if (CMAKE_SYSTEM_NAME MATCHES "Windows" )
523- set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR} /lib)
524- set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR} /lib)
525- if (CMAKE_BUILD_TYPE MATCHES "Debug" )
526- set (CRTLIB msvcrtd)
527- set (PDBOPT -debug -pdb:$<TARGET_FILE_DIR:${OpenBLAS_LIBNAME} _static>/${OpenBLAS_LIBNAME} .pdb)
528- set (PDB_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR} /lib)
529- else ()
530- set (CRTLIB msvcrt)
531- set (PDBOPT "" )
532- endif ()
533- #if (USE_PERL)
534- message (STATUS "adding postbuild instruction to rename syms" )
535- add_custom_command (TARGET ${OpenBLAS_LIBNAME} _static POST_BUILD
536- 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
537- 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
538- 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}
539- #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
540- ${REMOVE_STATIC_LIB} VERBATIM
541- )
542- #endif ()
522+ if (MSVC )
523+ set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR} /lib)
524+ set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR} /lib)
525+ if (CMAKE_BUILD_TYPE MATCHES "Debug" )
526+ set (CRTLIB msvcrtd)
527+ set (PDBOPT -debug -pdb:$<TARGET_FILE_DIR:${OpenBLAS_LIBNAME} _static>/${OpenBLAS_LIBNAME} .pdb)
528+ set (PDB_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR} /lib)
529+ else ()
530+ set (CRTLIB msvcrt)
531+ set (PDBOPT "" )
532+ endif ()
533+ #if (USE_PERL)
534+ message (STATUS "adding postbuild instruction to rename syms" )
535+ add_custom_command (TARGET ${OpenBLAS_LIBNAME} _static POST_BUILD
536+ 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
537+ 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
538+ 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}
539+ #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
540+ ${REMOVE_STATIC_LIB} VERBATIM
541+ )
542+ #endif ()
543543 else ()
544- if (NOT USE_PERL)
545- add_custom_command (TARGET ${OpenBLAS_LIBNAME} _shared POST_BUILD
546- COMMAND sh ${PROJECT_SOURCE_DIR} /exports/gensymbol "objcopy" "${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} /objcopy.def
547- COMMAND objcopy --redefine-syms ${PROJECT_BINARY_DIR} /objcopy.def ${PROJECT_BINARY_DIR} /lib/${OpenBLAS_LIBNAME} .so
548- COMMENT "renaming symbols"
549- )
550- else ()
551- add_custom_command (TARGET ${OpenBLAS_LIBNAME} _shared POST_BUILD
552- COMMAND perl ${PROJECT_SOURCE_DIR} /exports/gensymbol.pl "objcopy" "${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} /objcopy.def
553- COMMAND objcopy --redefine-syms ${PROJECT_BINARY_DIR} /objcopy.def ${PROJECT_BINARY_DIR} /lib/lib${OpenBLAS_LIBNAME} .so
554- COMMENT "renaming symbols"
555- )
544+ if (NOT USE_PERL)
545+ add_custom_command (TARGET ${OpenBLAS_LIBNAME} _shared POST_BUILD
546+ COMMAND sh ${PROJECT_SOURCE_DIR} /exports/gensymbol "objcopy" "${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} /objcopy.def
547+ COMMAND objcopy --redefine-syms ${PROJECT_BINARY_DIR} /objcopy.def ${PROJECT_BINARY_DIR} /lib/${OpenBLAS_LIBNAME} .so
548+ COMMENT "renaming symbols"
549+ )
550+ else ()
551+ add_custom_command (TARGET ${OpenBLAS_LIBNAME} _shared POST_BUILD
552+ COMMAND perl ${PROJECT_SOURCE_DIR} /exports/gensymbol.pl "objcopy" "${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} /objcopy.def
553+ COMMAND objcopy --redefine-syms ${PROJECT_BINARY_DIR} /objcopy.def ${PROJECT_BINARY_DIR} /lib/lib${OpenBLAS_LIBNAME} .so
554+ COMMENT "renaming symbols"
555+ )
556+ endif ()
556557 endif ()
557558endif ()
558- endif ()
559559
560560if (BUILD_BENCHMARKS)
561561 #find_package(OpenMP REQUIRED)
0 commit comments