CMakeLists.txt 3.0 KB

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