1
0

CMakeLists.txt 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  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. set(CMAKE_CXX_STANDARD 17)
  15. set(CMAKE_CXX_STANDARD_REQUIRED ON)
  16. set(CMAKE_CXX_EXTENSIONS OFF)
  17. find_package(Boost)
  18. if(Boost_FOUND)
  19. message(STATUS Boost found: ${Boost_INCLUDE_DIRS})
  20. endif()
  21. # languge feature
  22. set(ENABLE_PYTHON False CACHE BOOL "Language: Python")
  23. # thread feature
  24. FIND_PACKAGE(OpenMP REQUIRED)
  25. if(OPENMP_FOUND)
  26. message("OPENMP FOUND")
  27. set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
  28. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
  29. set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")
  30. endif()
  31. # gpgpu feature
  32. set(ENABLE_CUDA FALSE CACHE BOOL "Feature: OPENCL")
  33. set(ENABLE_OPENCL FALSE CACHE BOOL "Feature: OPENCL")
  34. IF(ENABLE_CUDA)
  35. SET(TRAPH_ENABLE_CUDA TRUE)
  36. ADD_DEFINITIONS(-DTRAPH_ENABLE_CUDA)
  37. FIND_PACKAGE(CUDA REQUIRED)
  38. SET(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS};-gencode arch=compute_61,code=sm_61;-std=c++11;)
  39. IF(CUDA_FOUND)
  40. include_directories(${CUDA_INCLUDE_DIRS})
  41. message(STATUS cuda found)
  42. ENDIF()
  43. ENDIF()
  44. IF(ENABLE_OPENCL)
  45. SET(TRAPH_ENABLE_OPENCL TRUE)
  46. ADD_DEFINITIONS(-DTRAPH_ENABLE_OPENCL)
  47. find_package(OpenCL REQUIRED)
  48. if (OpenCL_FOUND)
  49. include_directories(${OpenCL_INCLUDE_DIRS})
  50. message(STATUS opencl found: ${OpenCL_INCLUDE_DIRS})
  51. endif()
  52. ENDIF()
  53. # blas feature
  54. SET(TRAPH_ACCELERATE 0 CACHE STRING
  55. "Specify the feature Possible values:
  56. 0 - only eigen
  57. 1 - mkl
  58. 2 - openblas")
  59. IF(TRAPH_ACCELERATE EQUAL 0)
  60. SET(TRAPH_BUILD_EIGEN TRUE)
  61. ADD_DEFINITIONS(-DTRAPH_BUILD_EIGEN)
  62. message(STATUS using eigen blas)
  63. ELSEIF(TRAPH_ACCELERATE EQUAL 1)
  64. SET(TRAPH_BUILD_MKL TRUE)
  65. ADD_DEFINITIONS(-DTRAPH_BUILD_MKL)
  66. # set(BLA_VENDOR Intel)
  67. find_package(BLAS REQUIRED)
  68. if (BLAS_FOUND)
  69. include_directories(${BLAS_INCDIR})
  70. message(STATUS BLAS found: ${BLAS_DIR})
  71. endif()
  72. ELSEIF(TRAPH_ACCELERATE EQUAL 2)
  73. SET(TRAPH_BUILD_OPENBLAS TRUE)
  74. ADD_DEFINITIONS(-DTRAPH_BUILD_OPENBLAS)
  75. set(BLA_VENDOR Open)
  76. find_package(BLAS REQUIRED)
  77. if (BLAS_FOUND)
  78. include_directories(${BLAS_INCDIR})
  79. message(STATUS BLAS found: ${BLAS_DIR})
  80. endif()
  81. ELSE()
  82. MESSAGE(FATAL_ERROR "Unsupported build platform: " ${OCTOON_BUILD_PLATFORM})
  83. ENDIF()
  84. ADD_SUBDIRECTORY(traph)