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 2.3 kB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. message(STATUS "LAPACKE enable")
  2. enable_language(C)
  3. # Create a header file netlib.h for the routines called in my C programs
  4. include(FortranCInterface)
  5. FortranCInterface_HEADER( ${CMAKE_CURRENT_SOURCE_DIR}/include/lapacke_mangling.h
  6. MACRO_NAMESPACE "LAPACK_"
  7. SYMBOL_NAMESPACE "LAPACK_" )
  8. # Old way to detect mangling
  9. #include(FortranMangling)
  10. #FORTRAN_MANGLING(CDEFS)
  11. #set(CDEFS ${CDEFS} CACHE STRING "Fortran Mangling" FORCE)
  12. #MESSAGE(STATUS "=========")
  13. # --------------------------------------------------
  14. # Compiler Flags
  15. #ADD_DEFINITIONS( "-D${CDEFS}")
  16. if (WIN32 AND NOT UNIX)
  17. ADD_DEFINITIONS(-DHAVE_LAPACK_CONFIG_H -DLAPACK_COMPLEX_STRUCTURE)
  18. MESSAGE (STATUS "Windows BUILD")
  19. endif (WIN32 AND NOT UNIX)
  20. get_directory_property( DirDefs COMPILE_DEFINITIONS )
  21. message( "COMPILE_DEFINITIONS = ${DirDefs}" )
  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. )