1
0

CMakeLists.txt 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. cmake_minimum_required(VERSION 3.0)
  2. if(DEFINED ENV{VCPKG_ROOT} AND NOT DEFINED CMAKE_TOOLCHAIN_FILE)
  3. set(CMAKE_TOOLCHAIN_FILE "$ENV{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"
  4. CACHE STRING "")
  5. MESSAGE(STATUS "Using vcpkg")
  6. endif()
  7. project(traph)
  8. SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
  9. SET(TRAPH_PATH ${PROJECT_SOURCE_DIR} CACHE STRING "Adds a path to TRAPH" FORCE)
  10. SET(TRAPH_PATH_INCLUDE ${TRAPH_PATH}/traph/include CACHE STRING "Adds a path to TRAPH header" FORCE)
  11. SET(TRAPH_PATH_HEADER ${TRAPH_PATH_INCLUDE}/traph CACHE STRING "Adds a path to TRAPH header" FORCE)
  12. SET(TRAPH_PATH_SOURCE ${TRAPH_PATH}/traph/source CACHE STRING "Adds a path to TRAPH source" FORCE)
  13. SET(TRAPH_PATH_DEPENDENCIES ${TRAPH_PATH}/traph/contrib CACHE STRING "Adds a path to TRAPH dependencies" FORCE)
  14. find_package(Boost)
  15. if(Boost_FOUND)
  16. message(STATUS Boost found: ${Boost_INCLUDE_DIRS})
  17. endif()
  18. # languge feature
  19. set(ENABLE_PYTHON True CACHE BOOL "Language: Python")
  20. # gpgpu feature
  21. set(ENABLE_CUDA FALSE CACHE BOOL "Feature: OPENCL")
  22. set(ENABLE_OPENCL FALSE CACHE BOOL "Feature: OPENCL")
  23. IF(ENABLE_CUDA)
  24. SET(TRAPH_ENABLE_CUDA TRUE)
  25. ADD_DEFINITIONS(-DTRAPH_ENABLE_CUDA)
  26. FIND_PACKAGE(CUDA REQUIRED)
  27. SET(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS};-gencode arch=compute_61,code=sm_61;-std=c++11;)
  28. IF(CUDA_FOUND)
  29. include_directories(${CUDA_INCLUDE_DIRS})
  30. message(STATUS cuda found)
  31. ENDIF()
  32. ENDIF()
  33. IF(ENABLE_OPENCL)
  34. SET(TRAPH_ENABLE_OPENCL TRUE)
  35. ADD_DEFINITIONS(-DTRAPH_ENABLE_OPENCL)
  36. find_package(OpenCL REQUIRED)
  37. if (OpenCL_FOUND)
  38. include_directories(${OpenCL_INCLUDE_DIRS})
  39. message(STATUS opencl found: ${OpenCL_INCLUDE_DIRS})
  40. endif()
  41. ENDIF()
  42. # blas feature
  43. SET(TRAPH_ACCELERATE 0 CACHE STRING
  44. "Specify the feature Possible values:
  45. 0 - only eigen
  46. 1 - mkl
  47. 2 - openblas")
  48. IF(TRAPH_ACCELERATE EQUAL 0)
  49. SET(TRAPH_BUILD_EIGEN TRUE)
  50. ADD_DEFINITIONS(-DTRAPH_BUILD_EIGEN)
  51. message(STATUS using eigen blas)
  52. ELSEIF(TRAPH_ACCELERATE EQUAL 1)
  53. SET(TRAPH_BUILD_MKL TRUE)
  54. ADD_DEFINITIONS(-DTRAPH_BUILD_MKL)
  55. # set(BLA_VENDOR Intel)
  56. find_package(BLAS REQUIRED)
  57. if (BLAS_FOUND)
  58. include_directories(${BLAS_INCDIR})
  59. message(STATUS BLAS found: ${BLAS_DIR})
  60. endif()
  61. ELSEIF(TRAPH_ACCELERATE EQUAL 2)
  62. SET(TRAPH_BUILD_OPENBLAS TRUE)
  63. ADD_DEFINITIONS(-DTRAPH_BUILD_OPENBLAS)
  64. set(BLA_VENDOR Open)
  65. find_package(BLAS REQUIRED)
  66. if (BLAS_FOUND)
  67. include_directories(${BLAS_INCDIR})
  68. message(STATUS BLAS found: ${BLAS_DIR})
  69. endif()
  70. ELSE()
  71. MESSAGE(FATAL_ERROR "Unsupported build platform: " ${OCTOON_BUILD_PLATFORM})
  72. ENDIF()
  73. ADD_SUBDIRECTORY(traph)