cmake_minimum_required(VERSION 3.10) project(fastimagehash) set(BUILD_UT OFF CACHE INTERNAL "") add_subdirectory(thirdparty/wavelib) set(BENCHMARK_ENABLE_GTEST_TESTS OFF CACHE INTERNAL "") set(BENCHMARK_ENABLE_TESTING OFF CACHE INTERNAL "") set(BENCHMARK_ENABLE_INSTALL OFF CACHE INTERNAL "") set(CMAKE_BUILD_TYPE RELEASE CACHE INTERNAL "") add_subdirectory(thirdparty/benchmark) set(CMAKE_CXX_STANDARD 14) set(CMAKE_C_STANDARD 11) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "cmake/" CACHE INTERNAL "") find_package(OpenCV REQUIRED) find_package(FFTW REQUIRED) add_library( fastimagehash SHARED fastimagehash.cpp fastimagehash.h ) target_include_directories( fastimagehash PUBLIC ${CMAKE_SOURCE_DIR}/thirdparty/wavelib/header/ ${OpenCV_INCLUDE_DIRS} ${FFTW_INCLUDE_DIRS} ) target_link_libraries( fastimagehash ${OpenCV_LIBS} ${FFTW_LIBRARIES} wavelib pthread ) target_compile_options( fastimagehash PRIVATE -fPIC -Ofast # -march=native -fno-stack-protector -fomit-frame-pointer -freciprocal-math ) #add_executable(bm benchmark.cpp) #target_link_libraries( # bm # fastimagehash # benchmark #) #set_target_properties( # bm # PROPERTIES # RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/bench/" #) #add_executable(imhash imhash.c) #target_link_libraries( # imhash # ${CMAKE_SOURCE_DIR}/libfastimagehash.so #) #target_compile_options( # imhash # PRIVATE # -g #) set_target_properties(fastimagehash PROPERTIES PUBLIC_HEADER "fastimagehash.h") INSTALL( TARGETS fastimagehash LIBRARY DESTINATION /usr/lib/ PUBLIC_HEADER DESTINATION /usr/include/ ) #add_dependencies(fastimagehash wavelib) #add_dependencies(bm fastimagehash) #add_dependencies(bm benchmark) #add_dependencies(imhash fastimagehash)