rahulch

Untitled

Jun 28th, 2019
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
CMake 8.62 KB | None | 0 0
  1. cmake_minimum_required (VERSION 2.8)
  2. # set(OPENVINO ON)
  3.  
  4. set(PROFILE_PERFORMANCE OFF CACHE BOOL "Print performance profile logs")
  5. set(OPENVINO ON CACHE BOOL "Use OpenVINO algo to generate tensor for FR")
  6. set(MIVISIONX OFF CACHE BOOL "Use MiVisonX algo to generate tensor for FR")
  7. set(VIDEO_DISPLAY ON CACHE BOOL "Display overlaid video")
  8. set(VIDEO_WRITE ON CACHE BOOL "Generate video dump for overlaid video")
  9.  
  10. project (AMD_dev)
  11. set (CMAKE_CXX_STANDARD 11)
  12. list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
  13. find_package(OpenCV REQUIRED)
  14. link_directories (/usr/local/lib)
  15. include_directories(${OpenCV_INCLUDE_DIRS})
  16. include_directories (/usr/local/include)
  17. include_directories (${CMAKE_CURRENT_SOURCE_DIR})
  18. if(MIVISIONX)
  19.     find_package(OpenCL REQUIRED)
  20. endif()
  21.  
  22. find_package(OpenCV QUIET)
  23. include_directories(${CMAKE_CURRENT_BINARY_DIR})
  24. include_directories (${OpenCL_INCLUDE_DIRS} ${OpenCL_INCLUDE_DIRS}/Headers )
  25. include_directories (/opt/rocm/mivisionx/include)
  26. link_directories    (/opt/rocm/mivisionx/lib)
  27. include_directories (~/MIVisionX/amd_openvx/openvx/include)
  28. include_directories (~/MIVisionX/amd_openvx_extensions/amd_nn/include)
  29. include_directories (~/MIVisionX/)
  30. link_directories    (~/MIVisionX/amd_openvx_extensions/lib)
  31. link_directories    (~/MIVisionX/amd_openvx_extensions/amd_nn)
  32. list(APPEND SOURCES annmodule.cpp)
  33. # add_library(${PROJECT_NAME} SHARED ${SOURCES})
  34. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4.2 -mf16c -std=c++11")
  35. # target_link_libraries(${PROJECT_NAME} openvx vx_nn pthread)
  36.  
  37. # add_subdirectory(FR/openvx)
  38.  
  39. if(OPENVINO)
  40.     add_library(${PROJECT_NAME} SHARED main.cpp display.cpp pp_OV_faceDetectCNN.cpp person.cpp faceboundarybox.cpp pp_OV_faceRecognition.cpp tracker.cpp)
  41. elseif(MIVISIONX)
  42.     add_library(${PROJECT_NAME} SHARED main.cpp display.cpp faceboundarybox.cpp person.cpp pp_OV_faceDetectCNN.cpp  FR/openvx/annmodule.cpp FR/openvx/anntest.cpp FR/openvx/annpython.cpp  pp_OV_faceRecognition.cpp tracker.cpp openvxtensor.cpp)
  43. endif()
  44.  
  45. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4.2 -std=c++11 -pthread")
  46. add_executable(output application.cpp)
  47.  
  48. if(OPENVINO)
  49.  
  50. set(CMAKE_CXX_FLAGS "-fpermissive -fPIC -std=c++11 -g -Wall -march=x86-64")   ## Change -march for different platforms
  51. message("-- Processor is ${CMAKE_SYSTEM_PROCESSOR}")
  52.  
  53. if(CMAKE_SYSTEM_PROCESSOR MATCHES "amd64.*|x86_64.*|AMD64.*")
  54.   set(X86_64 1)
  55. elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "i686.*|i386.*|x86.*|amd64.*|AMD64.*")
  56.   set(X86 1)
  57. elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(arm.*|ARM.*)")
  58.   set(ARM 1)
  59. elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64.*|AARCH64.*)")
  60.   set(AARCH64 1)
  61. elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "PPC64*|ppc64*|powerpc64*")
  62.   set(PPC64 1)
  63. elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "PPC*|ppc*|powerpc*")
  64.   set(PPC 1)
  65. endif()
  66.  
  67. if(X86 OR X86_64)
  68. if(APOLLOLAKE)
  69.   SET(HAVE_SSSE3 1)
  70. else()
  71.   SET(HAVE_AVX2 1)
  72. endif()
  73. #SSE
  74. if(${HAVE_AVX2})
  75.     ADD_DEFINITIONS("-DAVX2")
  76. IF (WIN32)    
  77. ELSE()  
  78.    set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mavx2 -Wa,-q")
  79.    message("AVX2 enabled")
  80. ENDIF()
  81. elseif(${HAVE_SSSE3})
  82.     ADD_DEFINITIONS("-DSSE")
  83.     set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mssse3")
  84. else()
  85.     #include(CheckSSEFeatures)
  86.     ADD_DEFINITIONS(${CXX_DFLAGS})
  87.     if(${HAVE_AVX2_EXTENSIONS})
  88.         ADD_DEFINITIONS("-DAVX2")
  89.     elseif(${HAVE_SSSE3_EXTENSIONS})
  90.         ADD_DEFINITIONS("-DSSE")
  91.     else()
  92.         message( FATAL_ERROR "SSSE3 is needed to run compile! CMake will exit." )
  93.     endif(${HAVE_AVX2_EXTENSIONS})
  94. endif()
  95.  
  96. else() #
  97.  
  98. message("!! NOT X86 OR X86_64 !!")
  99.  
  100. endif() # NOT X86 OR X86_64
  101.  
  102. if(ARM OR AARCH64)
  103. message("arm detected")
  104.     set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native -O3")
  105. endif()
  106.  
  107. #===================== OpenVINO =========================
  108.     list (APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
  109.  
  110.     # environment variable InferenceEngine_DIR can be use instead of relaive path to specify location of configuration file
  111.     #get_filename_component(CMAKE_PREFIX_PATH "${CMAKE_SOURCE_DIR}/../share" ABSOLUTE)
  112.     get_filename_component(CMAKE_PREFIX_PATH "${InferenceEngine_DIR}" ABSOLUTE)
  113.  
  114.     #message(STATUS "Looking for inference engine configuration file at: ${CMAKE_PREFIX_PATH}")
  115.     find_package(InferenceEngine 1.2)
  116.  
  117.     if (NOT InferenceEngine_FOUND)
  118.         message(FATAL_ERROR "")
  119.     endif()
  120.  
  121.     if (NOT(BIN_FOLDER))
  122.         if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
  123.         set (ARCH intel64)
  124.         else()
  125.         set (ARCH ia32)
  126.         endif()
  127.  
  128.         set (BIN_FOLDER ${ARCH})
  129.     endif()
  130.  
  131.     if (NOT (IE_MAIN_SOURCE_DIR))
  132.         set(NEED_EXTENSIONS TRUE)
  133.         if (WIN32)
  134.         set (IE_MAIN_SOURCE_DIR ${CMAKE_SOURCE_DIR}/../bin/)
  135.         else()
  136.         set (IE_MAIN_SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR})
  137.         endif()
  138.     endif()
  139.  
  140.     if(NOT(UNIX))
  141.         set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${IE_MAIN_SOURCE_DIR}/${BIN_FOLDER})
  142.         set (CMAKE_LIBRARY_PATH ${IE_MAIN_SOURCE_DIR}/${BIN_FOLDER})
  143.         set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${IE_MAIN_SOURCE_DIR}/${BIN_FOLDER})
  144.         set (CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY ${IE_MAIN_SOURCE_DIR}/${BIN_FOLDER})
  145.         set (CMAKE_PDB_OUTPUT_DIRECTORY ${IE_MAIN_SOURCE_DIR}/${BIN_FOLDER})
  146.         set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${IE_MAIN_SOURCE_DIR}/${BIN_FOLDER})
  147.         set (LIBRARY_OUTPUT_DIRECTORY ${IE_MAIN_SOURCE_DIR}/${BIN_FOLDER})
  148.         set (LIBRARY_OUTPUT_PATH ${LIBRARY_OUTPUT_DIRECTORY}) # compatibility issue: linux uses LIBRARY_OUTPUT_PATH, windows uses LIBRARY_OUTPUT_DIRECTORY
  149.     else ()
  150.         set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${IE_MAIN_SOURCE_DIR}/${BIN_FOLDER}/${CMAKE_BUILD_TYPE}/lib)
  151.         set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${IE_MAIN_SOURCE_DIR}/${BIN_FOLDER}/${CMAKE_BUILD_TYPE}/lib)
  152.         set (CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY ${IE_MAIN_SOURCE_DIR}/${BIN_FOLDER}/${CMAKE_BUILD_TYPE})
  153.         set (CMAKE_PDB_OUTPUT_DIRECTORY ${IE_MAIN_SOURCE_DIR}/${BIN_FOLDER}/${CMAKE_BUILD_TYPE})
  154.         set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${IE_MAIN_SOURCE_DIR}/${BIN_FOLDER}/${CMAKE_BUILD_TYPE})
  155.         set (LIBRARY_OUTPUT_DIRECTORY ${IE_MAIN_SOURCE_DIR}/${BIN_FOLDER}/${CMAKE_BUILD_TYPE}/lib)
  156.         set (LIBRARY_OUTPUT_PATH ${LIBRARY_OUTPUT_DIRECTORY}/lib)
  157.     endif()
  158.  
  159.     set(CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS}")
  160.     if (WIN32)
  161.         if(NOT "${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
  162.         message(FATAL_ERROR "Only 64-bit supported on Windows")
  163.         endif()
  164.  
  165.         set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS _CRT_SECURE_NO_WARNINGS)
  166.         set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_SCL_SECURE_NO_WARNINGS -DNOMINMAX")
  167.         set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc") #no asynchronous structured exception handling
  168.         set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /LARGEADDRESSAWARE")
  169.         if (ENABLE_OMP)
  170.         find_package(OpenMP)
  171.         if (OPENMP_FOUND)
  172.             set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
  173.             set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
  174.         endif()
  175.         endif()
  176.     else()
  177.         # MK
  178.         #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror -Werror=return-type ")
  179.         if (APPLE)
  180.         set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error=unused-command-line-argument")
  181.         elseif(UNIX)
  182.         set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wuninitialized -Winit-self -Wmaybe-uninitialized")
  183.         endif()
  184.     endif()
  185.  
  186.     include(feature_defs OPTIONAL)
  187.  
  188.     ####################################
  189.     ## to use C++11
  190.     set (CMAKE_CXX_STANDARD 11)
  191.     set (CMAKE_CXX_STANDARD_REQUIRED ON)
  192.     set(CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS}")
  193.     ####################################
  194.  
  195.     # Properties->C/C++->General->Additional Include Directories
  196.     include_directories (
  197.         ${InferenceEngine_INCLUDE_DIRS}
  198.         ${InferenceEngine_INCLUDE_DIRS}/../samples/extension
  199.         ${InferenceEngine_INCLUDE_DIRS}/../samples/common/format_reader
  200.         ${InferenceEngine_INCLUDE_DIRS}/../samples/common
  201.         ${CMAKE_CURRENT_SOURCE_DIR}/common
  202.     )
  203.  
  204.     if (UNIX)
  205.         SET(LIB_DL dl)
  206.     endif()
  207.  
  208.     #--------------------------------------------------------
  209.  
  210.     include_directories(${OpenCV_INCLUDE_DIRS})
  211.     include_directories(../../inc)
  212.     include_directories(../../include/)
  213.     include_directories(../../include/thirdparty)
  214.  
  215.     #add_library(faceDetectCNN STATIC pp_OV_faceDetectCNN.cpp pp_OV_faceRecognition.cpp)
  216.  
  217.     #link_directories(${LIB_FOLDER})
  218.     #target_link_libraries(faceDetectCNN ${InferenceEngine_LIBRARIES} )
  219.     if(UNIX)
  220.         #target_link_libraries(faceDetectCNN ${LIB_DL} pthread)
  221.     endif()
  222.  
  223.  
  224. target_link_libraries(output ${OpenCV_LIBS})
  225. if (MIVISIONX)
  226.     target_link_libraries(output pthread ${PROJECT_NAME} ${InferenceEngine_LIBRARIES} ${LIB_DL} openvx vx_nn)
  227. else()
  228.     target_link_libraries(output pthread ${PROJECT_NAME} ${InferenceEngine_LIBRARIES} ${LIB_DL})
  229. endif()
  230.  
  231. endif()
  232.  
  233. configure_file(config.h.in config.h)
Add Comment
Please, Sign In to add comment