43 lines
939 B
CMake
43 lines
939 B
CMake
|
|
cmake_minimum_required(VERSION 3.16)
|
||
|
|
project(phash LANGUAGES CXX)
|
||
|
|
|
||
|
|
set(CMAKE_CXX_STANDARD 17)
|
||
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||
|
|
|
||
|
|
option(PHASH_BUILD_SHARED "Build libphash as a shared library" ON)
|
||
|
|
|
||
|
|
set(PHASH_SOURCES
|
||
|
|
src/phash.cpp
|
||
|
|
src/resize.cpp
|
||
|
|
src/decode_stb.cpp
|
||
|
|
src/hamming.cpp
|
||
|
|
)
|
||
|
|
|
||
|
|
if(PHASH_BUILD_SHARED)
|
||
|
|
add_library(phash SHARED ${PHASH_SOURCES})
|
||
|
|
else()
|
||
|
|
add_library(phash STATIC ${PHASH_SOURCES})
|
||
|
|
endif()
|
||
|
|
|
||
|
|
target_include_directories(phash
|
||
|
|
PUBLIC
|
||
|
|
${CMAKE_CURRENT_SOURCE_DIR}/include
|
||
|
|
PRIVATE
|
||
|
|
${CMAKE_CURRENT_SOURCE_DIR}/third_party
|
||
|
|
)
|
||
|
|
|
||
|
|
# Keep C API symbols visible for dart:ffi / DynamicLibrary.process().
|
||
|
|
set_target_properties(phash PROPERTIES
|
||
|
|
CXX_VISIBILITY_PRESET default
|
||
|
|
VISIBILITY_INLINES_HIDDEN OFF
|
||
|
|
POSITION_INDEPENDENT_CODE ON
|
||
|
|
OUTPUT_NAME phash
|
||
|
|
)
|
||
|
|
|
||
|
|
if(ANDROID)
|
||
|
|
find_library(LOG_LIB log)
|
||
|
|
target_link_libraries(phash PUBLIC m ${LOG_LIB})
|
||
|
|
elseif(UNIX)
|
||
|
|
target_link_libraries(phash PUBLIC m)
|
||
|
|
endif()
|