Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 16 additions & 8 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,12 @@
# Date : 2019-08-20
#

cmake_minimum_required(VERSION 2.8)
cmake_minimum_required(VERSION 3.10)

project(SeetaFace)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS ON)

# Create uninstall files
CONFIGURE_FILE(
Expand Down Expand Up @@ -46,6 +49,11 @@ if(NOT BUILD_VERSION)
endif()
message(STATUS "== BUILD_VERSION: ${BUILD_VERSION}")

if(NOT DEFINED CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE "Release")
endif(NOT DEFINED CMAKE_BUILD_TYPE)
string(TOLOWER "${CMAKE_BUILD_TYPE}" build_type)

if(WIN32 OR UNIX)
# default used SSE2
if(ANDROID OR MINGW)
Expand Down Expand Up @@ -77,11 +85,11 @@ IF(CMAKE_CXX_COMPILER_ID STREQUAL "GNU"

add_compile_options(-std=c++0x -Wno-sign-compare -Wno-unused-parameter)

# if ("${CMAKE_BUILD_TYPE}" STREQUAL "Debug")
# add_compile_options(-g -ggdb)
# else()
# add_compile_options(-O3 -Os)
# endif()
if("debug" STREQUAL build_type)
add_compile_options(-g -ggdb)
else()
add_compile_options(-O3)
endif()

# if ("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "x86")
# add_compile_options(-m32)
Expand Down Expand Up @@ -149,7 +157,7 @@ option(BUILD_ASSESSOR "Set to ON to build quality assessor" ON)
if(BUILD_ASSESSOR)
add_subdirectory(QualityAssessor)
endif(BUILD_ASSESSOR)
option(BUILD_EXAMPLE "Set to ON to build example" ON)
option(BUILD_EXAMPLE "Set to ON to build example" OFF)
if(BUILD_EXAMPLE)
add_subdirectory(example)
endif(BUILD_EXAMPLE)
Expand All @@ -162,7 +170,7 @@ install(FILES ${CMAKE_BINARY_DIR}/${PROJECT_NAME}.pc
# Install cmake configure files
install(
FILES cmake/${PROJECT_NAME}Config.cmake
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/SeetaFace2"
)

message(STATUS "== Build detector and tracker: ${BUILD_DETECOTOR}")
Expand Down
123 changes: 123 additions & 0 deletions CMakePresets.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
{
"version": 7,
"cmakeMinimumRequired": {
"major": 3,
"minor": 27,
"patch": 0
},
"configurePresets": [
{
"name": "vcpkg",
"displayName": "Configure with vcpkg. please set VCPKG_ROOT environment first",
"toolchainFile": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"
},

{
"name": "default",
"displayName": "Default",
"inherits": "vcpkg",
"cacheVariables": {
"BUILD_DETECOTOR": "ON",
"BUILD_LANDMARKER": "ON",
"BUILD_RECOGNIZER": "ON",
"BUILD_ASSESSOR": "ON",
"BUILD_EXAMPLE": "OFF"
}
},
{
"name": "default-msvc",
"displayName": "Default using Visual Studio 17 2022",
"inherits": "default",
"generator": "Visual Studio 17 2022",
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Windows"
}
},
{
"name": "default-ninja",
"displayName": "Default using ninja",
"inherits": "default",
"generator": "Ninja"
},
{
"name": "default-android",
"displayName": "Default for android",
"hidden": true,
"inherits": "default-ninja",
"cacheVariables": {
"VCPKG_CHAINLOAD_TOOLCHAIN_FILE":
"$env{ANDROID_NDK_HOME}/build/cmake/android.toolchain.cmake"
}
},
{
"name": "default-android-arm64",
"displayName": "Default for android arm64",
"inherits": "default-android",
"cacheVariables": {
"ANDROID_ABI": "arm64-v8a",
"VCPKG_TARGET_TRIPLET": "arm64-android"
}
},
{
"name": "default-android-arm64-make",
"displayName": "Default for android arm64 with make",
"inherits": "default-android-arm64",
"generator": "Unix Makefiles",
"cacheVariables": {
"CMAKE_MAKE_PROGRAM":
"$env{ANDROID_NDK_HOME}/prebuilt/${hostSystemName}-x86_64/bin/make"
}
},
{
"name": "default-android-x86_64",
"displayName": "Default for android x86_64",
"inherits": "default-android",
"cacheVariables": {
"ANDROID_ABI": "x86_64",
"VCPKG_TARGET_TRIPLET": "x64-android"
}
},
{
"name": "default-android-x86_64-make",
"displayName": "Default for android x86_64 with make",
"inherits": "default-android-x86_64",
"generator": "Unix Makefiles",
"cacheVariables": {
"CMAKE_MAKE_PROGRAM":
"$env{ANDROID_NDK_HOME}/prebuilt/${hostSystemName}-x86_64/bin/make"
}
},

{
"name": "example",
"displayName": "Example",
"inherits": "vcpkg",
"cacheVariables": {
"BUILD_DETECOTOR": "ON",
"BUILD_LANDMARKER": "ON",
"BUILD_RECOGNIZER": "ON",
"BUILD_ASSESSOR": "ON",
"BUILD_EXAMPLE": "ON"
}
},
{
"name": "example-msvc",
"displayName": "example using Visual Studio 17 2022",
"inherits": "example",
"generator": "Visual Studio 17 2022",
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Windows"
}
},
{
"name": "example-ninja",
"displayName": "example using ninja",
"inherits": "example",
"generator": "Ninja"
}
]
}
29 changes: 25 additions & 4 deletions FaceDetector/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,16 @@ target_include_directories(${PROJECT_NAME} PRIVATE
${CMAKE_SOURCE_DIR}/SeetaNet/include
)
target_link_libraries(${PROJECT_NAME} PUBLIC SeetaNet)
# Set flags
if(ANDROID)
if(ANDROID_ARM_NEON)
target_compile_definitions(${PROJECT_NAME} PRIVATE __ARM_NEON__)
target_compile_options(${PROJECT_NAME} PUBLIC -mfpu=neon-vfpv4)
endif()

target_compile_options(${PROJECT_NAME} PUBLIC
-frtti -fexceptions -funsafe-math-optimizations -ftree-vectorize -ffast-math)
endif()

GENERATE_EXPORT_HEADER(${PROJECT_NAME}
EXPORT_MACRO_NAME SEETA_DETECTOR_API
Expand All @@ -61,9 +71,20 @@ target_include_directories(${PROJECT_NAME} PRIVATE

set_target_properties(${PROJECT_NAME} PROPERTIES
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib
VERSION ${BUILD_VERSION})
VERSION ${BUILD_VERSION}
INSTALL_RPATH
"$ORIGIN;$ORIGIN/../lib;$ORIGIN/../lib/${CMAKE_LIBRARY_ARCHITECTURE};lib;../lib;../lib/${CMAKE_LIBRARY_ARCHITECTURE}"
)
if(WIN32)
set_target_properties(${PROJECT_NAME} PROPERTIES
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
)
else()
set_target_properties(${PROJECT_NAME} PROPERTIES
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib
)
endif()

# Be will to install header files
set_property(TARGET ${PROJECT_NAME} PROPERTY PUBLIC_HEADER ${INCLUDE_FILES})
Expand Down Expand Up @@ -93,15 +114,15 @@ export(TARGETS ${PROJECT_NAME}
# Install cmake configure files
install(
EXPORT ${PROJECT_NAME}Config
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/SeetaFace2"
NAMESPACE
SeetaFace::
)
write_basic_package_version_file(
"${CMAKE_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake"
VERSION ${BUILD_VERSION}
COMPATIBILITY AnyNewerVersion)
install(FILES "${CMAKE_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake" DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake")
install(FILES "${CMAKE_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake" DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/SeetaFace2")

# Install configure file
set(SeetaFace2_LIBS "${PROJECT_NAME} ${SeetaFace2_LIBS}" PARENT_SCOPE)
Expand Down
29 changes: 25 additions & 4 deletions FaceLandmarker/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,16 @@ target_include_directories(${PROJECT_NAME} PRIVATE
${CMAKE_SOURCE_DIR}/SeetaNet/include
)
target_link_libraries(${PROJECT_NAME} PUBLIC SeetaNet)
# Set flags
if(ANDROID)
if(ANDROID_ARM_NEON)
target_compile_definitions(${PROJECT_NAME} PRIVATE __ARM_NEON__)
target_compile_options(${PROJECT_NAME} PUBLIC -mfpu=neon-vfpv4)
endif()

target_compile_options(${PROJECT_NAME} PUBLIC
-frtti -fexceptions -funsafe-math-optimizations -ftree-vectorize -ffast-math)
endif()

GENERATE_EXPORT_HEADER(${PROJECT_NAME}
EXPORT_MACRO_NAME SEETA_LANDMARKER_API
Expand All @@ -61,9 +71,20 @@ target_include_directories(${PROJECT_NAME} PRIVATE

set_target_properties(${PROJECT_NAME} PROPERTIES
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib
VERSION ${BUILD_VERSION})
VERSION ${BUILD_VERSION}
INSTALL_RPATH
"$ORIGIN;$ORIGIN/../lib;$ORIGIN/../lib/${CMAKE_LIBRARY_ARCHITECTURE};lib;../lib;../lib/${CMAKE_LIBRARY_ARCHITECTURE}"
)
if(WIN32)
set_target_properties(${PROJECT_NAME} PROPERTIES
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
)
else()
set_target_properties(${PROJECT_NAME} PROPERTIES
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib
)
endif()
# Be will to install header files
set_property(TARGET ${PROJECT_NAME} PROPERTY PUBLIC_HEADER ${INCLUDE_FILES})

Expand Down Expand Up @@ -92,15 +113,15 @@ export(TARGETS ${PROJECT_NAME}
# Install cmake configure files
install(
EXPORT ${PROJECT_NAME}Config
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/SeetaFace2"
NAMESPACE
SeetaFace::
)
write_basic_package_version_file(
"${CMAKE_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake"
VERSION ${BUILD_VERSION}
COMPATIBILITY AnyNewerVersion)
install(FILES "${CMAKE_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake" DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake")
install(FILES "${CMAKE_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake" DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/SeetaFace2")
# Install configure file
set(SeetaFace2_LIBS "${PROJECT_NAME} ${SeetaFace2_LIBS}" PARENT_SCOPE)
configure_file(SeetaFaceLandmarker.pc.in ${CMAKE_BINARY_DIR}/${PROJECT_NAME}.pc @ONLY)
Expand Down
29 changes: 25 additions & 4 deletions FaceRecognizer/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,16 @@ target_include_directories(${PROJECT_NAME} PRIVATE
${CMAKE_SOURCE_DIR}/SeetaNet/include
)
target_link_libraries(${PROJECT_NAME} PUBLIC SeetaNet)
# Set flags
if(ANDROID)
if(ANDROID_ARM_NEON)
target_compile_definitions(${PROJECT_NAME} PRIVATE __ARM_NEON__)
target_compile_options(${PROJECT_NAME} PUBLIC -mfpu=neon-vfpv4)
endif()

target_compile_options(${PROJECT_NAME} PUBLIC
-frtti -fexceptions -funsafe-math-optimizations -ftree-vectorize -ffast-math)
endif()

GENERATE_EXPORT_HEADER(${PROJECT_NAME}
EXPORT_MACRO_NAME SEETA_RECOGNIZER_API
Expand All @@ -61,9 +71,20 @@ target_include_directories(${PROJECT_NAME} PRIVATE

set_target_properties(${PROJECT_NAME} PROPERTIES
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib
VERSION ${BUILD_VERSION})
VERSION ${BUILD_VERSION}
INSTALL_RPATH
"$ORIGIN;$ORIGIN/../lib;$ORIGIN/../lib/${CMAKE_LIBRARY_ARCHITECTURE};lib;../lib;../lib/${CMAKE_LIBRARY_ARCHITECTURE}"
)
if(WIN32)
set_target_properties(${PROJECT_NAME} PROPERTIES
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
)
else()
set_target_properties(${PROJECT_NAME} PROPERTIES
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib
)
endif()
# Be will to install header files
set_property(TARGET ${PROJECT_NAME} PROPERTY PUBLIC_HEADER ${INCLUDE_FILES})

Expand Down Expand Up @@ -92,15 +113,15 @@ export(TARGETS ${PROJECT_NAME}
# Install cmake configure files
install(
EXPORT ${PROJECT_NAME}Config
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/SeetaFace2"
NAMESPACE
SeetaFace::
)
write_basic_package_version_file(
"${CMAKE_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake"
VERSION ${BUILD_VERSION}
COMPATIBILITY AnyNewerVersion)
install(FILES "${CMAKE_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake" DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake")
install(FILES "${CMAKE_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake" DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/SeetaFace2")
# Install configure file
set(SeetaFace2_LIBS "${PROJECT_NAME} ${SeetaFace2_LIBS}" PARENT_SCOPE)
configure_file(FaceRecognizer.pc.in ${CMAKE_BINARY_DIR}/${PROJECT_NAME}.pc @ONLY)
Expand Down
Loading