@@ -452,21 +452,55 @@ if (BLAS++ OR LAPACK++)
452452 endif ()
453453
454454 # Adds target blaspp
455- add_custom_target ( blaspp ALL
455+ add_custom_target ( blaspp ALL DEPENDS blaspp-cmd )
456+ add_custom_command ( OUTPUT blaspp-cmd
457+ WORKING_DIRECTORY "${blaspp_SOURCE_DIR} "
458+ COMMENT "Building BLAS++" )
459+
460+ # Set up information about the BLAS and LAPACK libraries
461+ if (NOT BLAS_FOUND)
462+ if (NOT LATESTLAPACK_FOUND)
463+ add_custom_command ( OUTPUT blaspp-cmd APPEND
464+ COMMAND ${CMAKE_COMMAND}
465+ -B "${blaspp_BINARY_DIR} "
466+ -D BLAS_LIBRARIES="$<TARGET_FILE:${BLASLIB} >${BLAS_Fortran_LIB} "
467+ -D LAPACK_LIBRARIES="$<TARGET_FILE:${LAPACKLIB} >" )
468+ else ()
469+ add_custom_command ( OUTPUT blaspp-cmd APPEND
470+ COMMAND ${CMAKE_COMMAND}
471+ -B "${blaspp_BINARY_DIR} "
472+ -D BLAS_LIBRARIES="$<TARGET_FILE:${BLASLIB} >${BLAS_Fortran_LIB} "
473+ -D LAPACK_LIBRARIES="${LAPACK_LIBRARIES} " )
474+ endif ()
475+ else ()
476+ if (NOT LATESTLAPACK_FOUND)
477+ add_custom_command ( OUTPUT blaspp-cmd APPEND
478+ COMMAND ${CMAKE_COMMAND}
479+ -B "${blaspp_BINARY_DIR} "
480+ -D BLAS_LIBRARIES="${BLAS_LIBRARIES} "
481+ -D LAPACK_LIBRARIES="$<TARGET_FILE:${LAPACKLIB} >${BLAS_Fortran_LIB} " )
482+ else ()
483+ add_custom_command ( OUTPUT blaspp-cmd APPEND
484+ COMMAND ${CMAKE_COMMAND}
485+ -B "${blaspp_BINARY_DIR} "
486+ -D BLAS_LIBRARIES="${BLAS_LIBRARIES} "
487+ -D LAPACK_LIBRARIES="${LAPACK_LIBRARIES} " )
488+ endif ()
489+ endif ()
490+
491+ # Setup remaining configuration options and installation
492+ add_custom_command ( OUTPUT blaspp-cmd APPEND
456493 COMMAND ${CMAKE_COMMAND}
457- -B "${blaspp_BINARY_DIR} "
458- -D CMAKE_INSTALL_PREFIX ="${PROJECT_BINARY_DIR} "
459- -D blas_libraries_cached=""
460- "-DBLAS_LIBRARIES=\" $<IF:$<BOOL:${BLAS_FOUND} >,${BLAS_LIBRARIES} ,$<TARGET_FILE:${BLASLIB} >>${BLAS_Fortran_LIB} \" "
461- -D lapack_libraries_cached=""
462- "-DLAPACK_LIBRARIES=\" $<IF:$<BOOL:${LATESTLAPACK_FOUND} >,${LAPACK_LIBRARIES} ,$<TARGET_FILE:${LAPACKLIB} >>\" "
463- -D build_tests=OFF
464- -D BUILD_SHARED_LIBS =${BUILD_SHARED_LIBS}
494+ -B "${blaspp_BINARY_DIR} "
495+ -D CMAKE_INSTALL_PREFIX ="${blaspp_BINARY_DIR} "
496+ -D CMAKE_INSTALL_LIBDIR="${PROJECT_BINARY_DIR} /lib"
497+ -D blas_libraries_cached=""
498+ -D lapack_libraries_cached=""
499+ -D build_tests=OFF
500+ -D BUILD_SHARED_LIBS =${BUILD_SHARED_LIBS}
465501 COMMAND ${CMAKE_COMMAND}
466502 --build "${blaspp_BINARY_DIR} "
467503 --target install
468- WORKING_DIRECTORY "${blaspp_SOURCE_DIR} "
469- COMMENT "Building BLAS++"
470504 )
471505
472506 # Set up dependencies
@@ -489,19 +523,36 @@ if (LAPACK++)
489523 endif ()
490524
491525 # Adds target lapackpp
492- add_custom_target ( lapackpp ALL
493- COMMAND ${CMAKE_COMMAND}
526+ add_custom_target ( lapackpp ALL DEPENDS lapackpp-cmd )
527+ add_custom_command ( OUTPUT lapackpp-cmd
528+ WORKING_DIRECTORY "${lapackpp_SOURCE_DIR} "
529+ COMMENT "Building LAPACK++" )
530+
531+ # Set up information about the LAPACK library
532+ if (NOT LATESTLAPACK_FOUND)
533+ add_custom_command ( OUTPUT lapackpp-cmd APPEND
534+ COMMAND ${CMAKE_COMMAND}
494535 -B "${lapackpp_BINARY_DIR} "
495- -D CMAKE_INSTALL_PREFIX ="${PROJECT_BINARY_DIR} "
496- -D lapack_libraries_cached=""
497- "-DLAPACK_LIBRARIES=\" $<IF:$<BOOL:${LATESTLAPACK_FOUND} >,${LAPACK_LIBRARIES} ,$<TARGET_FILE:${LAPACKLIB} >>\" "
498- -D build_tests=OFF
499- -D BUILD_SHARED_LIBS =${BUILD_SHARED_LIBS}
536+ -D LAPACK_LIBRARIES="$<TARGET_FILE:${LAPACKLIB} >${BLAS_Fortran_LIB} " )
537+ else ()
538+ add_custom_command ( OUTPUT lapackpp-cmd APPEND
539+ COMMAND ${CMAKE_COMMAND}
540+ -B "${lapackpp_BINARY_DIR} "
541+ -D LAPACK_LIBRARIES="${LAPACK_LIBRARIES} " )
542+ endif ()
543+
544+ # Setup remaining configuration options and installation
545+ add_custom_command ( OUTPUT lapackpp-cmd APPEND
546+ COMMAND ${CMAKE_COMMAND}
547+ -B "${lapackpp_BINARY_DIR} "
548+ -D CMAKE_INSTALL_PREFIX ="${lapackpp_BINARY_DIR} "
549+ -D CMAKE_INSTALL_LIBDIR="${PROJECT_BINARY_DIR} /lib"
550+ -D lapack_libraries_cached=""
551+ -D build_tests=OFF
552+ -D BUILD_SHARED_LIBS =${BUILD_SHARED_LIBS}
500553 COMMAND ${CMAKE_COMMAND}
501554 --build "${lapackpp_BINARY_DIR} "
502555 --target install
503- WORKING_DIRECTORY "${lapackpp_SOURCE_DIR} "
504- COMMENT "Building LAPACK++"
505556 )
506557
507558 # Set up dependencies
@@ -615,14 +666,14 @@ install(FILES
615666 )
616667if (LAPACK++)
617668 install (
618- DIRECTORY "${LAPACK_BINARY_DIR} /lib/"
619- DESTINATION ${CMAKE_INSTALL_LIBDIR}
620- FILES_MATCHING REGEX "liblapackpp.(a|so)$"
669+ DIRECTORY "${LAPACK_BINARY_DIR} /lib/"
670+ DESTINATION ${CMAKE_INSTALL_LIBDIR}
671+ FILES_MATCHING REGEX "liblapackpp.(a|so)$"
621672 )
622- write_basic_package_version_file (
623- "lapackppConfigVersion.cmake "
624- VERSION 2023.08.25
625- COMPATIBILITY AnyNewerVersion
673+ install (
674+ DIRECTORY " ${lapackpp_BINARY_DIR} /include/ "
675+ DESTINATION " ${CMAKE_INSTALL_INCLUDEDIR} "
676+ FILES_MATCHING REGEX " \\ .(h|hh)$"
626677 )
627678 install (
628679 FILES "${CMAKE_CURRENT_BINARY_DIR} /lib/cmake/lapackpp/lapackppConfig.cmake"
@@ -632,23 +683,18 @@ if (LAPACK++)
632683
633684endif ()
634685if (BLAS++)
635- install (
636- DIRECTORY "${LAPACK_BINARY_DIR} /lib/"
637- DESTINATION ${CMAKE_INSTALL_LIBDIR}
638- FILES_MATCHING REGEX "libblaspp.(a|so)$"
639- )
640- write_basic_package_version_file(
641- "blasppConfigVersion.cmake"
642- VERSION 2023.08.25
643- COMPATIBILITY AnyNewerVersion
644- )
645686 install (
646687 FILES "${CMAKE_CURRENT_BINARY_DIR} /lib/cmake/blaspp/blasppConfig.cmake"
647688 "${CMAKE_CURRENT_BINARY_DIR} /lib/cmake/blaspp/blasppConfigVersion.cmake"
648689 DESTINATION "${CMAKE_INSTALL_LIBDIR} /cmake/"
649690 )
650691 install (
651- DIRECTORY "${PROJECT_BINARY_DIR} /include/"
692+ DIRECTORY "${LAPACK_BINARY_DIR} /lib/"
693+ DESTINATION ${CMAKE_INSTALL_LIBDIR}
694+ FILES_MATCHING REGEX "libblaspp.(a|so)$"
695+ )
696+ install (
697+ DIRECTORY "${blaspp_BINARY_DIR} /include/"
652698 DESTINATION "${CMAKE_INSTALL_INCLUDEDIR} "
653699 FILES_MATCHING REGEX "\\ .(h|hh)$"
654700 )
0 commit comments