set(CNGFX_SRCS ./CNFG3D.c ./CNFGFunctions.c) IF(UNIX) check_include_file("X11/Xlib.h" HAVE_X11_H) IF(HAVE_X11_H) list(APPEND CNGFX_SRCS ./CNFGXDriver.c) set(CNGFX_LIBS X11) else() SET(CNGFX_SRCS) endif() elseif(WIN32) list(APPEND CNGFX_SRCS ./CNFGWinDriver.c) endif() if(CNGFX_SRCS) add_library(CNGFX ${CNGFX_SRCS}) set_target_properties(CNGFX PROPERTIES FOLDER "libraries") target_link_libraries(CNGFX ${CNGFX_LIBS}) endif() add_library(mpfit STATIC mpfit/mpfit.c) target_link_libraries(mpfit cnmatrix) set_target_properties(mpfit PROPERTIES LINKER_LANGUAGE C) set_target_properties(mpfit PROPERTIES FOLDER "libraries") macro(find_library_path var pkg) find_library(${var}_RAWFIND ${pkg} ${ARGN}) if(${var}_RAWFIND) set(${var} ${${var}_RAWFIND}) message("Found ${pkg} at ${${var}}") else() message("Could not find ${pkg}") set(${var} ${pkg}) endif() endmacro() find_library_path(CBLAS_LOCATION cblas HINTS /usr/local/opt/openblas/lib) find_library_path(OPENBLAS_LOCATION openblas HINTS /usr/local/opt/openblas/lib) find_library_path(LAPACKE_LOCATION lapacke HINTS /usr/local/opt/lapack/lib) if(USE_OPENBLAS OR WIN32) set(BLAS_BACKEND "openblas") include_directories(openblas) else() set(BLAS_BACKEND "${CBLAS_LOCATION}") find_file(CBLAS_FULL_PATH cblas.h HINT "/usr/local/opt/openblas/include") message("Searching for 'cblas.h'; found at ${CBLAS_FULL_PATH}") IF(CBLAS_FULL_PATH) get_filename_component(CBLAS_PATH ${CBLAS_FULL_PATH} DIRECTORY) include_directories( ${CBLAS_PATH}) ENDIF() endif() check_include_file(lapacke/lapacke.h LAPACKE_FILE) if(LAPACKE_FILE) add_definitions(-DLAPACKE_FOLDER) endif() if(USE_EIGEN) message("Using eigen backend") else() message("Using blas backend ${BLAS_BACKEND}") endif() IF (ENABLE_TESTS) add_executable(lintest linmath.c linmath.h lintest.c) target_link_libraries(lintest cnmatrix) set_target_properties(lintest PROPERTIES FOLDER "tests") add_test(NAME lintest COMMAND lintest) ENDIF() install(TARGETS mpfit DESTINATION lib)