Advertisement
Guest User

Untitled

a guest
Jan 26th, 2017
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
CMake 3.07 KB | None | 0 0
  1. SET(execName vision_layer)
  2.  
  3. CMAKE_MINIMUM_REQUIRED(VERSION 2.4)
  4.  
  5. if(COMMAND cmake_policy)
  6.     cmake_policy(SET CMP0003 OLD)
  7.     cmake_policy(SET CMP0015 OLD)
  8. endif(COMMAND cmake_policy)
  9.  
  10. SET(EXECUTABLE_OUTPUT_PATH "./bin")
  11. IF(WIN32) # Windows
  12.     SET(ZED_INCLUDE_DIRS $ENV{ZED_INCLUDE_DIRS})
  13.         if (CMAKE_CL_64) # 64 bits
  14.                 SET(ZED_LIBRARIES $ENV{ZED_LIBRARIES_64})
  15.         else(CMAKE_CL_64) # 32 bits
  16.                 message("32bits compilation is no more available with CUDA7.0")
  17.         endif(CMAKE_CL_64)
  18.     SET(ZED_LIBRARY_DIR $ENV{ZED_LIBRARY_DIR})
  19.     SET(OPENCV_DIR $ENV{OPENCV_DIR})
  20.     SET(Eigen_INCLUDE_DIRS $ENV{EIGEN_DIR})
  21.  
  22.       find_package(OpenCV 3.1)
  23. ELSE() # Linux
  24.     find_package(ZED 1.0 REQUIRED)
  25.     SET(Eigen_INCLUDE_DIRS "/usr/include/eigen3") ##depends if installed by packet or by own build install
  26.     SET(Eigen_INCLUDE_DIRS_2 "/usr/local/include/eigen3") ##depends if installed by packet or by own build install
  27.     include_directories(${Eigen_INCLUDE_DIRS_2})
  28.  
  29. ##For Jetson, OpenCV4Tegra is based on OpenCV2.4
  30.      exec_program(uname ARGS -p OUTPUT_VARIABLE CMAKE_SYSTEM_NAME2)
  31.      if ( CMAKE_SYSTEM_NAME2 MATCHES "aarch64" OR CMAKE_SYSTEM_NAME2 MATCHES "armv7l" )
  32.         find_package(OpenCV 2.4)
  33.      else()
  34.       find_package(OpenCV 3.1)
  35.      endif()
  36. ENDIF(WIN32)
  37.  
  38. # Mandatory
  39. find_package(CUDA REQUIRED)
  40.  
  41. include_directories(${ZED_INCLUDE_DIRS})
  42. include_directories(${CUDA_INCLUDE_DIRS})
  43. include_directories(${OpenCV_INCLUDE_DIRS})
  44. include_directories(${Eigen_INCLUDE_DIRS})
  45. #include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
  46.  
  47. link_directories(${ZED_LIBRARY_DIR})
  48. link_directories(${CUDA_LIBRARY_DIRS})
  49. link_directories(${OpenCV_LIBRARY_DIRS})
  50. link_directories(${CMAKE_CURRENT_SOURCE_DIR}/lib)
  51.  
  52. SET(SRC_FOLDER src)
  53. FILE(GLOB_RECURSE SRC_FILES "${SRC_FOLDER}/*.cpp")
  54.  
  55. FILE(GLOB_RECURSE SRC_CU_FOLDER "${SRC_FOLDER}/*.cu")
  56.  
  57.  
  58. list(APPEND CUDA_NVCC_FLAGS -gencode arch=compute_20,code=sm_20)
  59. list(APPEND CUDA_NVCC_FLAGS -gencode arch=compute_20,code=sm_21)
  60. list(APPEND CUDA_NVCC_FLAGS -gencode arch=compute_30,code=sm_30)
  61. list(APPEND CUDA_NVCC_FLAGS -gencode arch=compute_30,code=sm_32)
  62. list(APPEND CUDA_NVCC_FLAGS -gencode arch=compute_30,code=sm_35)
  63. list(APPEND CUDA_NVCC_FLAGS -gencode arch=compute_50,code=sm_50)
  64. list(APPEND CUDA_NVCC_FLAGS -gencode arch=compute_50,code=sm_52)
  65.  
  66.  
  67. ##Check x86/K1/X1
  68. exec_program(uname ARGS -p OUTPUT_VARIABLE CMAKE_SYSTEM_NAME2)
  69.  
  70. if (NOT CMAKE_SYSTEM_NAME2 MATCHES "armv7l")
  71. list(APPEND CUDA_NVCC_FLAGS -gencode arch=compute_50,code=sm_53) ##not available for K1 (CUDA 6.5)
  72. endif()
  73.  
  74.  
  75. set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} -std=c++11)
  76.  
  77. cuda_add_executable(${execName} ${SRC_FILES} ${SRC_CU_FOLDER})
  78.  
  79.  
  80. set_property(TARGET ${execName} PROPERTY OUTPUT_NAME "vision_layer")
  81. add_definitions(-std=c++11)# -m64)
  82.  
  83. # Add the required libraries for linking:
  84. TARGET_LINK_LIBRARIES(${execName}
  85.             ${ZED_LIBRARIES}
  86.             ${OpenCV_LIBRARIES}
  87.             ${CUDA_LIBRARIES} ${CUDA_nppi_LIBRARY} ${CUDA_npps_LIBRARY}
  88.             )
  89.  
  90. SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O3" ) # Release Perf mode
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement