You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

CMakeLists.txt 3.0 kB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. message(STATUS "LAPACKE enable")
  2. enable_language(C)
  3. set(LAPACK_INSTALL_EXPORT_NAME lapacke-targets)
  4. # Create a header file netlib.h for the routines called in my C programs
  5. include(FortranCInterface)
  6. FortranCInterface_HEADER( ${CMAKE_CURRENT_SOURCE_DIR}/include/lapacke_mangling.h
  7. MACRO_NAMESPACE "LAPACK_"
  8. SYMBOL_NAMESPACE "LAPACK_" )
  9. # Old way to detect mangling
  10. #include(FortranMangling)
  11. #FORTRAN_MANGLING(CDEFS)
  12. #set(CDEFS ${CDEFS} CACHE STRING "Fortran Mangling" FORCE)
  13. #MESSAGE(STATUS "=========")
  14. # --------------------------------------------------
  15. # Compiler Flags
  16. #ADD_DEFINITIONS( "-D${CDEFS}")
  17. if (WIN32 AND NOT UNIX)
  18. ADD_DEFINITIONS(-DHAVE_LAPACK_CONFIG_H -DLAPACK_COMPLEX_STRUCTURE)
  19. MESSAGE (STATUS "Windows BUILD")
  20. endif (WIN32 AND NOT UNIX)
  21. get_directory_property( DirDefs COMPILE_DEFINITIONS )
  22. include_directories( include )
  23. add_subdirectory(include)
  24. add_subdirectory(src)
  25. add_subdirectory(utils)
  26. macro(append_subdir_files variable dirname)
  27. get_directory_property(holder DIRECTORY ${dirname} DEFINITION ${variable})
  28. foreach(depfile ${holder})
  29. list(APPEND ${variable} "${dirname}/${depfile}")
  30. endforeach()
  31. endmacro()
  32. append_subdir_files(LAPACKE_INCLUDE "include")
  33. append_subdir_files(SRC_OBJ "src")
  34. append_subdir_files(SRCX_OBJ "src")
  35. append_subdir_files(MATGEN_OBJ "src")
  36. append_subdir_files(UTILS_OBJ "utils")
  37. if (USE_XBLAS)
  38. add_library(lapacke ${SRC_OBJ} ${SRCX_OBJ} ${UTILS_OBJ})
  39. target_link_libraries(lapacke ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${XBLAS_LIBRARY})
  40. else (USE_XBLAS)
  41. if (LAPACKE_WITH_TMG)
  42. add_library(lapacke ${SRC_OBJ} ${MATGEN_OBJ} ${UTILS_OBJ})
  43. target_link_libraries(lapacke tmglib ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
  44. else (LAPACKE_WITH_TMG)
  45. add_library(lapacke ${SRC_OBJ} ${UTILS_OBJ})
  46. target_link_libraries(lapacke ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
  47. endif(LAPACKE_WITH_TMG)
  48. endif(USE_XBLAS)
  49. lapack_install_library(lapacke)
  50. INSTALL( FILES ${LAPACKE_INCLUDE} DESTINATION include )
  51. if(BUILD_TESTING)
  52. add_subdirectory(example)
  53. endif(BUILD_TESTING)
  54. configure_file(${CMAKE_CURRENT_SOURCE_DIR}/lapacke.pc.in ${CMAKE_CURRENT_BINARY_DIR}/lapacke.pc)
  55. install(FILES
  56. ${CMAKE_CURRENT_BINARY_DIR}/lapacke.pc
  57. DESTINATION ${PKG_CONFIG_DIR}
  58. )
  59. configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/lapacke-config-version.cmake.in
  60. ${LAPACK_BINARY_DIR}/lapacke-config-version.cmake @ONLY)
  61. configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/lapacke-config-build.cmake.in
  62. ${LAPACK_BINARY_DIR}/lapacke-config.cmake @ONLY)
  63. configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/lapacke-config-install.cmake.in
  64. ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/lapacke-config.cmake @ONLY)
  65. install(FILES
  66. ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/lapacke-config.cmake
  67. ${LAPACK_BINARY_DIR}/lapacke-config-version.cmake
  68. DESTINATION lib/cmake/lapacke-${LAPACK_VERSION}
  69. )
  70. install(EXPORT lapacke-targets
  71. DESTINATION lib/cmake/lapacke-${LAPACK_VERSION})