72 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			CMake
		
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			CMake
		
	
	
	
| message(STATUS "LAPACKE enable")
 | |
| enable_language(C)
 | |
| 
 | |
| # Create a header file netlib.h for the routines called in my C programs
 | |
| include(FortranCInterface)
 | |
| FortranCInterface_HEADER( ${CMAKE_CURRENT_SOURCE_DIR}/include/lapacke_mangling.h 
 | |
|                           MACRO_NAMESPACE "LAPACK_"
 | |
|                           SYMBOL_NAMESPACE "LAPACK_" )
 | |
| 
 | |
| # Old way to detect mangling
 | |
| #include(FortranMangling)
 | |
| #FORTRAN_MANGLING(CDEFS)
 | |
| #set(CDEFS ${CDEFS} CACHE STRING "Fortran Mangling" FORCE)
 | |
| #MESSAGE(STATUS "=========")
 | |
| 
 | |
| # --------------------------------------------------
 | |
| # Compiler Flags
 | |
| #ADD_DEFINITIONS( "-D${CDEFS}")
 | |
| 
 | |
| if (WIN32 AND NOT UNIX)
 | |
|  ADD_DEFINITIONS(-DHAVE_LAPACK_CONFIG_H -DLAPACK_COMPLEX_STRUCTURE)
 | |
|  MESSAGE (STATUS "Windows BUILD")
 | |
| endif (WIN32 AND NOT UNIX)
 | |
| 
 | |
| get_directory_property( DirDefs COMPILE_DEFINITIONS )
 | |
| message( "COMPILE_DEFINITIONS = ${DirDefs}" )
 | |
| 
 | |
| include_directories( include )
 | |
| add_subdirectory(include)
 | |
| add_subdirectory(src)
 | |
| add_subdirectory(utils)
 | |
| 
 | |
| macro(append_subdir_files variable dirname)
 | |
| get_directory_property(holder DIRECTORY ${dirname} DEFINITION ${variable})
 | |
| foreach(depfile ${holder})
 | |
|   list(APPEND ${variable} "${dirname}/${depfile}")
 | |
| endforeach()
 | |
| endmacro()
 | |
| 
 | |
| append_subdir_files(LAPACKE_INCLUDE "include")
 | |
| append_subdir_files(SRC_OBJ "src")
 | |
| append_subdir_files(SRCX_OBJ "src")
 | |
| append_subdir_files(MATGEN_OBJ "src")
 | |
| append_subdir_files(UTILS_OBJ "utils")
 | |
| 
 | |
| if (USE_XBLAS)
 | |
|    add_library(lapacke ${SRC_OBJ} ${SRCX_OBJ} ${UTILS_OBJ})
 | |
|    target_link_libraries(lapacke ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${XBLAS_LIBRARY})
 | |
| else (USE_XBLAS)
 | |
|   if (LAPACKE_WITH_TMG)
 | |
|    add_library(lapacke ${SRC_OBJ} ${MATGEN_OBJ} ${UTILS_OBJ})
 | |
|    target_link_libraries(lapacke tmglib ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
 | |
|   else (LAPACKE_WITH_TMG)
 | |
|    add_library(lapacke ${SRC_OBJ} ${UTILS_OBJ})
 | |
|    target_link_libraries(lapacke ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
 | |
|   endif(LAPACKE_WITH_TMG)
 | |
| endif(USE_XBLAS)
 | |
| 
 | |
| lapack_install_library(lapacke)
 | |
| INSTALL( FILES ${LAPACKE_INCLUDE} DESTINATION include )
 | |
| 
 | |
| if(BUILD_TESTING)
 | |
|    add_subdirectory(example)
 | |
| endif(BUILD_TESTING)
 | |
| 
 | |
| 
 | |
| configure_file(${CMAKE_CURRENT_SOURCE_DIR}/lapacke.pc.in ${CMAKE_CURRENT_BINARY_DIR}/lapacke.pc)
 | |
|  install(FILES
 | |
|   ${CMAKE_CURRENT_BINARY_DIR}/lapacke.pc
 | |
|   DESTINATION ${PKG_CONFIG_DIR}
 | |
|    )
 |