Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- cmake_minimum_required (VERSION 2.8)
- # set(OPENVINO ON)
- set(PROFILE_PERFORMANCE OFF CACHE BOOL "Print performance profile logs")
- set(OPENVINO ON CACHE BOOL "Use OpenVINO algo to generate tensor for FR")
- set(MIVISIONX OFF CACHE BOOL "Use MiVisonX algo to generate tensor for FR")
- set(VIDEO_DISPLAY ON CACHE BOOL "Display overlaid video")
- set(VIDEO_WRITE ON CACHE BOOL "Generate video dump for overlaid video")
- project (AMD_dev)
- set (CMAKE_CXX_STANDARD 11)
- list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
- find_package(OpenCV REQUIRED)
- link_directories (/usr/local/lib)
- include_directories(${OpenCV_INCLUDE_DIRS})
- include_directories (/usr/local/include)
- include_directories (${CMAKE_CURRENT_SOURCE_DIR})
- if(MIVISIONX)
- find_package(OpenCL REQUIRED)
- endif()
- find_package(OpenCV QUIET)
- include_directories(${CMAKE_CURRENT_BINARY_DIR})
- include_directories (${OpenCL_INCLUDE_DIRS} ${OpenCL_INCLUDE_DIRS}/Headers )
- include_directories (/opt/rocm/mivisionx/include)
- link_directories (/opt/rocm/mivisionx/lib)
- include_directories (~/MIVisionX/amd_openvx/openvx/include)
- include_directories (~/MIVisionX/amd_openvx_extensions/amd_nn/include)
- include_directories (~/MIVisionX/)
- link_directories (~/MIVisionX/amd_openvx_extensions/lib)
- link_directories (~/MIVisionX/amd_openvx_extensions/amd_nn)
- list(APPEND SOURCES annmodule.cpp)
- # add_library(${PROJECT_NAME} SHARED ${SOURCES})
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4.2 -mf16c -std=c++11")
- # target_link_libraries(${PROJECT_NAME} openvx vx_nn pthread)
- # add_subdirectory(FR/openvx)
- if(OPENVINO)
- add_library(${PROJECT_NAME} SHARED main.cpp display.cpp pp_OV_faceDetectCNN.cpp person.cpp faceboundarybox.cpp pp_OV_faceRecognition.cpp tracker.cpp)
- elseif(MIVISIONX)
- 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)
- endif()
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4.2 -std=c++11 -pthread")
- add_executable(output application.cpp)
- if(OPENVINO)
- set(CMAKE_CXX_FLAGS "-fpermissive -fPIC -std=c++11 -g -Wall -march=x86-64") ## Change -march for different platforms
- message("-- Processor is ${CMAKE_SYSTEM_PROCESSOR}")
- if(CMAKE_SYSTEM_PROCESSOR MATCHES "amd64.*|x86_64.*|AMD64.*")
- set(X86_64 1)
- elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "i686.*|i386.*|x86.*|amd64.*|AMD64.*")
- set(X86 1)
- elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(arm.*|ARM.*)")
- set(ARM 1)
- elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64.*|AARCH64.*)")
- set(AARCH64 1)
- elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "PPC64*|ppc64*|powerpc64*")
- set(PPC64 1)
- elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "PPC*|ppc*|powerpc*")
- set(PPC 1)
- endif()
- if(X86 OR X86_64)
- if(APOLLOLAKE)
- SET(HAVE_SSSE3 1)
- else()
- SET(HAVE_AVX2 1)
- endif()
- #SSE
- if(${HAVE_AVX2})
- ADD_DEFINITIONS("-DAVX2")
- IF (WIN32)
- ELSE()
- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mavx2 -Wa,-q")
- message("AVX2 enabled")
- ENDIF()
- elseif(${HAVE_SSSE3})
- ADD_DEFINITIONS("-DSSE")
- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mssse3")
- else()
- #include(CheckSSEFeatures)
- ADD_DEFINITIONS(${CXX_DFLAGS})
- if(${HAVE_AVX2_EXTENSIONS})
- ADD_DEFINITIONS("-DAVX2")
- elseif(${HAVE_SSSE3_EXTENSIONS})
- ADD_DEFINITIONS("-DSSE")
- else()
- message( FATAL_ERROR "SSSE3 is needed to run compile! CMake will exit." )
- endif(${HAVE_AVX2_EXTENSIONS})
- endif()
- else() #
- message("!! NOT X86 OR X86_64 !!")
- endif() # NOT X86 OR X86_64
- if(ARM OR AARCH64)
- message("arm detected")
- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native -O3")
- endif()
- #===================== OpenVINO =========================
- list (APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
- # environment variable InferenceEngine_DIR can be use instead of relaive path to specify location of configuration file
- #get_filename_component(CMAKE_PREFIX_PATH "${CMAKE_SOURCE_DIR}/../share" ABSOLUTE)
- get_filename_component(CMAKE_PREFIX_PATH "${InferenceEngine_DIR}" ABSOLUTE)
- #message(STATUS "Looking for inference engine configuration file at: ${CMAKE_PREFIX_PATH}")
- find_package(InferenceEngine 1.2)
- if (NOT InferenceEngine_FOUND)
- message(FATAL_ERROR "")
- endif()
- if (NOT(BIN_FOLDER))
- if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
- set (ARCH intel64)
- else()
- set (ARCH ia32)
- endif()
- set (BIN_FOLDER ${ARCH})
- endif()
- if (NOT (IE_MAIN_SOURCE_DIR))
- set(NEED_EXTENSIONS TRUE)
- if (WIN32)
- set (IE_MAIN_SOURCE_DIR ${CMAKE_SOURCE_DIR}/../bin/)
- else()
- set (IE_MAIN_SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR})
- endif()
- endif()
- if(NOT(UNIX))
- set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${IE_MAIN_SOURCE_DIR}/${BIN_FOLDER})
- set (CMAKE_LIBRARY_PATH ${IE_MAIN_SOURCE_DIR}/${BIN_FOLDER})
- set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${IE_MAIN_SOURCE_DIR}/${BIN_FOLDER})
- set (CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY ${IE_MAIN_SOURCE_DIR}/${BIN_FOLDER})
- set (CMAKE_PDB_OUTPUT_DIRECTORY ${IE_MAIN_SOURCE_DIR}/${BIN_FOLDER})
- set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${IE_MAIN_SOURCE_DIR}/${BIN_FOLDER})
- set (LIBRARY_OUTPUT_DIRECTORY ${IE_MAIN_SOURCE_DIR}/${BIN_FOLDER})
- set (LIBRARY_OUTPUT_PATH ${LIBRARY_OUTPUT_DIRECTORY}) # compatibility issue: linux uses LIBRARY_OUTPUT_PATH, windows uses LIBRARY_OUTPUT_DIRECTORY
- else ()
- set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${IE_MAIN_SOURCE_DIR}/${BIN_FOLDER}/${CMAKE_BUILD_TYPE}/lib)
- set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${IE_MAIN_SOURCE_DIR}/${BIN_FOLDER}/${CMAKE_BUILD_TYPE}/lib)
- set (CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY ${IE_MAIN_SOURCE_DIR}/${BIN_FOLDER}/${CMAKE_BUILD_TYPE})
- set (CMAKE_PDB_OUTPUT_DIRECTORY ${IE_MAIN_SOURCE_DIR}/${BIN_FOLDER}/${CMAKE_BUILD_TYPE})
- set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${IE_MAIN_SOURCE_DIR}/${BIN_FOLDER}/${CMAKE_BUILD_TYPE})
- set (LIBRARY_OUTPUT_DIRECTORY ${IE_MAIN_SOURCE_DIR}/${BIN_FOLDER}/${CMAKE_BUILD_TYPE}/lib)
- set (LIBRARY_OUTPUT_PATH ${LIBRARY_OUTPUT_DIRECTORY}/lib)
- endif()
- set(CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS}")
- if (WIN32)
- if(NOT "${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
- message(FATAL_ERROR "Only 64-bit supported on Windows")
- endif()
- set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS _CRT_SECURE_NO_WARNINGS)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_SCL_SECURE_NO_WARNINGS -DNOMINMAX")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc") #no asynchronous structured exception handling
- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /LARGEADDRESSAWARE")
- if (ENABLE_OMP)
- find_package(OpenMP)
- if (OPENMP_FOUND)
- set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
- endif()
- endif()
- else()
- # MK
- #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror -Werror=return-type ")
- if (APPLE)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error=unused-command-line-argument")
- elseif(UNIX)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wuninitialized -Winit-self -Wmaybe-uninitialized")
- endif()
- endif()
- include(feature_defs OPTIONAL)
- ####################################
- ## to use C++11
- set (CMAKE_CXX_STANDARD 11)
- set (CMAKE_CXX_STANDARD_REQUIRED ON)
- set(CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS}")
- ####################################
- # Properties->C/C++->General->Additional Include Directories
- include_directories (
- ${InferenceEngine_INCLUDE_DIRS}
- ${InferenceEngine_INCLUDE_DIRS}/../samples/extension
- ${InferenceEngine_INCLUDE_DIRS}/../samples/common/format_reader
- ${InferenceEngine_INCLUDE_DIRS}/../samples/common
- ${CMAKE_CURRENT_SOURCE_DIR}/common
- )
- if (UNIX)
- SET(LIB_DL dl)
- endif()
- #--------------------------------------------------------
- include_directories(${OpenCV_INCLUDE_DIRS})
- include_directories(../../inc)
- include_directories(../../include/)
- include_directories(../../include/thirdparty)
- #add_library(faceDetectCNN STATIC pp_OV_faceDetectCNN.cpp pp_OV_faceRecognition.cpp)
- #link_directories(${LIB_FOLDER})
- #target_link_libraries(faceDetectCNN ${InferenceEngine_LIBRARIES} )
- if(UNIX)
- #target_link_libraries(faceDetectCNN ${LIB_DL} pthread)
- endif()
- target_link_libraries(output ${OpenCV_LIBS})
- if (MIVISIONX)
- target_link_libraries(output pthread ${PROJECT_NAME} ${InferenceEngine_LIBRARIES} ${LIB_DL} openvx vx_nn)
- else()
- target_link_libraries(output pthread ${PROJECT_NAME} ${InferenceEngine_LIBRARIES} ${LIB_DL})
- endif()
- endif()
- configure_file(config.h.in config.h)
Add Comment
Please, Sign In to add comment