cmake_minimum_required(VERSION 3.12) project(match) find_package(OpenCV 4.8 REQUIRED) option(ENABLE_OPENMP "enable openmp" OFF) if(ENABLE_OPENMP) # find OpenMP find_package(OpenMP REQUIRED) if(OPENMP_FOUND) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}") endif(OPENMP_FOUND) endif(ENABLE_OPENMP) #============================================================== #library #============================================================== add_library(algo SHARED grayMatch.h grayMatch.cpp serialize.cpp privateType.h apiExport.h integral.h integral.cpp ) target_include_directories(algo PRIVATE ${OpenCV_INCLUDE_DIRS}) target_link_libraries(algo ${OpenCV_LIBRARIES} $<$:OpenMP::OpenMP_CXX>) target_compile_options(algo PRIVATE $<$:/W4 /WX /external:W0> $<$: -fPIC -fvisibility=hidden -Wl,--exclude-libs,ALL -Wall -Wextra -Wpedantic -Wmisleading-indentation -Wunused -Wuninitialized -Wshadow -Wconversion -Werror> $<$,$>:/W4 /WX /external:W0> #$<$,$>: -fPIC -fvisibility=hidden -Wall -Wextra -Wpedantic -Wmisleading-indentation -Wunused -Wuninitialized -Wshadow -Wconversion -Werror> $<$:-mlsx> ) target_compile_definitions(algo PUBLIC API_EXPORTS $<$:CV_LSX> ) message("Arch:${CMAKE_SYSTEM_PROCESSOR}") #============================================================== #exe #============================================================== add_executable(${PROJECT_NAME} main.cpp ) target_include_directories(${PROJECT_NAME} PRIVATE ${OpenCV_INCLUDE_DIRS}) target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBRARIES} algo) target_compile_options(${PROJECT_NAME} PRIVATE $<$:/W4 /WX /external:W0> $<$: -fPIC -fvisibility=hidden -Wall -Wextra -Wpedantic -Wmisleading-indentation -Wunused -Wuninitialized -Wshadow -Wconversion -Werror> $<$,$>:/W4 /WX /external:W0> ) target_compile_definitions(${PROJECT_NAME} PRIVATE IMG_DIR="${CMAKE_CURRENT_SOURCE_DIR}/img")