200 lines
6.8 KiB
CMake
200 lines
6.8 KiB
CMake
cmake_minimum_required (VERSION 2.8)
|
|
project (OpenFace)
|
|
|
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin/)
|
|
|
|
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/modules/")
|
|
|
|
set(CMAKE_CONFIG_DIR etc/OpenFace)
|
|
set(CONFIG_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_CONFIG_DIR}")
|
|
add_definitions(-DCONFIG_DIR="${CONFIG_DIR}")
|
|
|
|
find_package( BLAS REQUIRED )
|
|
include_directories( ${BLAS_INCLUDE_DIRS} )
|
|
LINK_DIRECTORIES(${BLAS_LIBRARY_DIRS})
|
|
|
|
find_package( OpenCV 3.1 REQUIRED )
|
|
|
|
MESSAGE("OpenCV information:")
|
|
MESSAGE(" OpenCV_INCLUDE_DIRS: ${OpenCV_INCLUDE_DIRS}")
|
|
MESSAGE(" OpenCV_LIBRARIES: ${OpenCV_LIBRARIES}")
|
|
MESSAGE(" OpenCV_LIBRARY_DIRS: ${OpenCV_LIBRARY_DIRS}")
|
|
include_directories( ${OpenCV_INCLUDE_DIRS} )
|
|
|
|
find_package( Boost 1.5.9 REQUIRED COMPONENTS filesystem system)
|
|
MESSAGE("Boost information:")
|
|
MESSAGE(" Boost_INCLUDE_DIRS: ${Boost_INCLUDE_DIRS}")
|
|
MESSAGE(" Boost_LIBRARIES: ${Boost_LIBRARIES}")
|
|
MESSAGE(" Boost_LIBRARY_DIRS: ${Boost_LIBRARY_DIRS}")
|
|
|
|
INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS})
|
|
INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS}/boost)
|
|
LINK_DIRECTORIES(${Boost_LIBRARY_DIRS})
|
|
|
|
find_package(TBB REQUIRED)
|
|
|
|
# Move LandmarkDetector model
|
|
file(GLOB files "lib/local/LandmarkDetector/model/*.txt")
|
|
foreach(file ${files})
|
|
if (MSVC)
|
|
file(COPY ${file} DESTINATION ${CMAKE_BINARY_DIR}/bin/Debug/model)
|
|
file(COPY ${file} DESTINATION ${CMAKE_BINARY_DIR}/bin/Release/model)
|
|
else(MSVC)
|
|
file(COPY ${file} DESTINATION ${CMAKE_BINARY_DIR}/bin/model)
|
|
endif(MSVC)
|
|
|
|
install(FILES ${file} DESTINATION ${CMAKE_CONFIG_DIR}/model)
|
|
endforeach()
|
|
|
|
# Move the hierarchical LandmarkDetector models
|
|
file(GLOB files "lib/local/LandmarkDetector/model/model*")
|
|
foreach(file ${files})
|
|
if (MSVC)
|
|
file(COPY ${file} DESTINATION ${CMAKE_BINARY_DIR}/bin/Debug/model)
|
|
file(COPY ${file} DESTINATION ${CMAKE_BINARY_DIR}/bin/Release/model)
|
|
else(MSVC)
|
|
file(COPY ${file} DESTINATION ${CMAKE_BINARY_DIR}/bin/model)
|
|
endif(MSVC)
|
|
|
|
install(DIRECTORY ${file} DESTINATION ${CMAKE_CONFIG_DIR}/model)
|
|
endforeach()
|
|
|
|
file(GLOB files "lib/local/LandmarkDetector/model/detection_validation/*.txt")
|
|
foreach(file ${files})
|
|
if (MSVC)
|
|
file(COPY ${file} DESTINATION ${CMAKE_BINARY_DIR}/bin/Debug/model/detection_validation)
|
|
file(COPY ${file} DESTINATION ${CMAKE_BINARY_DIR}/bin/Release/model/detection_validation)
|
|
else(MSVC)
|
|
file(COPY ${file} DESTINATION ${CMAKE_BINARY_DIR}/bin/model/detection_validation)
|
|
endif(MSVC)
|
|
|
|
install(FILES ${file} DESTINATION ${CMAKE_CONFIG_DIR}/model/detection_validation)
|
|
endforeach()
|
|
|
|
file(GLOB files "lib/local/LandmarkDetector/model/patch_experts/*.txt")
|
|
foreach(file ${files})
|
|
if (MSVC)
|
|
file(COPY ${file} DESTINATION ${CMAKE_BINARY_DIR}/bin/Debug/model/patch_experts)
|
|
file(COPY ${file} DESTINATION ${CMAKE_BINARY_DIR}/bin/Release/model/patch_experts)
|
|
else(MSVC)
|
|
file(COPY ${file} DESTINATION ${CMAKE_BINARY_DIR}/bin/model/patch_experts)
|
|
endif(MSVC)
|
|
|
|
install(FILES ${file} DESTINATION ${CMAKE_CONFIG_DIR}/model/patch_experts)
|
|
endforeach()
|
|
|
|
file(GLOB files "lib/local/LandmarkDetector/model/patch_experts/*.dat")
|
|
foreach(file ${files})
|
|
if (MSVC)
|
|
file(COPY ${file} DESTINATION ${CMAKE_BINARY_DIR}/bin/Debug/model/patch_experts)
|
|
file(COPY ${file} DESTINATION ${CMAKE_BINARY_DIR}/bin/Release/model/patch_experts)
|
|
else(MSVC)
|
|
file(COPY ${file} DESTINATION ${CMAKE_BINARY_DIR}/bin/model/patch_experts)
|
|
endif(MSVC)
|
|
|
|
install(FILES ${file} DESTINATION ${CMAKE_CONFIG_DIR}/model/patch_experts)
|
|
endforeach()
|
|
|
|
file(GLOB files "lib/local/LandmarkDetector/model/pdms/*.txt")
|
|
foreach(file ${files})
|
|
if (MSVC)
|
|
file(COPY ${file} DESTINATION ${CMAKE_BINARY_DIR}/bin/Debug/model/pdms)
|
|
file(COPY ${file} DESTINATION ${CMAKE_BINARY_DIR}/bin/Release/model/pdms)
|
|
else(MSVC)
|
|
file(COPY ${file} DESTINATION ${CMAKE_BINARY_DIR}/bin/model/pdms)
|
|
endif(MSVC)
|
|
|
|
install(FILES ${file} DESTINATION ${CMAKE_CONFIG_DIR}/model/pdms)
|
|
endforeach()
|
|
|
|
# Move OpenCV classifiers
|
|
file(GLOB files "lib/3rdParty/OpenCV3.1/classifiers/*.xml")
|
|
foreach(file ${files})
|
|
if (MSVC)
|
|
file(COPY ${file} DESTINATION ${CMAKE_BINARY_DIR}/bin/Debug/classifiers)
|
|
file(COPY ${file} DESTINATION ${CMAKE_BINARY_DIR}/bin/Release/classifiers)
|
|
else(MSVC)
|
|
file(COPY ${file} DESTINATION ${CMAKE_BINARY_DIR}/bin/classifiers)
|
|
endif(MSVC)
|
|
|
|
install(FILES ${file} DESTINATION ${CMAKE_CONFIG_DIR}/classifiers)
|
|
endforeach()
|
|
|
|
# Move AU prediction modules
|
|
file(GLOB files "lib/local/FaceAnalyser/AU_predictors/*.txt")
|
|
foreach(file ${files})
|
|
if (MSVC)
|
|
file(COPY ${file} DESTINATION ${CMAKE_BINARY_DIR}/bin/Debug/AU_predictors)
|
|
file(COPY ${file} DESTINATION ${CMAKE_BINARY_DIR}/bin/Release/AU_predictors)
|
|
else(MSVC)
|
|
file(COPY ${file} DESTINATION ${CMAKE_BINARY_DIR}/bin/AU_predictors)
|
|
endif(MSVC)
|
|
|
|
install(FILES ${file} DESTINATION ${CMAKE_CONFIG_DIR}/AU_predictors)
|
|
endforeach()
|
|
|
|
# Move AU prediction modules
|
|
file(GLOB files "lib/local/FaceAnalyser/AU_predictors/svr*")
|
|
foreach(file ${files})
|
|
if (MSVC)
|
|
file(COPY ${file} DESTINATION ${CMAKE_BINARY_DIR}/bin/Debug/AU_predictors)
|
|
file(COPY ${file} DESTINATION ${CMAKE_BINARY_DIR}/bin/Release/AU_predictors)
|
|
else(MSVC)
|
|
file(COPY ${file} DESTINATION ${CMAKE_BINARY_DIR}/bin/AU_predictors)
|
|
endif(MSVC)
|
|
|
|
install(DIRECTORY ${file} DESTINATION ${CMAKE_CONFIG_DIR}/AU_predictors)
|
|
endforeach()
|
|
|
|
# Move AU prediction modules
|
|
file(GLOB files "lib/local/FaceAnalyser/AU_predictors/svm*")
|
|
foreach(file ${files})
|
|
if (MSVC)
|
|
file(COPY ${file} DESTINATION ${CMAKE_BINARY_DIR}/bin/Debug/AU_predictors)
|
|
file(COPY ${file} DESTINATION ${CMAKE_BINARY_DIR}/bin/Release/AU_predictors)
|
|
else(MSVC)
|
|
file(COPY ${file} DESTINATION ${CMAKE_BINARY_DIR}/bin/AU_predictors)
|
|
endif(MSVC)
|
|
|
|
install(DIRECTORY ${file} DESTINATION ${CMAKE_CONFIG_DIR}/AU_predictors)
|
|
endforeach()
|
|
|
|
if (${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")
|
|
execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
|
|
if (GCC_VERSION VERSION_LESS 4.7)
|
|
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x -msse -msse2 -msse3")
|
|
else ()
|
|
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -msse -msse2 -msse3")
|
|
endif ()
|
|
else ()
|
|
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -msse -msse2 -msse3")
|
|
endif ()
|
|
|
|
# Boost
|
|
if(WIN32)
|
|
include_directories(lib/3rdParty/boost)
|
|
include_directories(lib/3rdParty/boost/boost)
|
|
link_directories( ${PROJECT_SOURCE_DIR}/lib/3rdParty/boost/lib )
|
|
else()
|
|
INCLUDE_DIRECTORIES(${BOOST_INCLUDE_DIR})
|
|
endif()
|
|
|
|
# dlib
|
|
include_directories(lib/3rdParty/dlib/include)
|
|
|
|
# dlib library
|
|
add_subdirectory(lib/3rdParty/dlib)
|
|
|
|
# LandmarkDetector library
|
|
add_subdirectory(lib/local/LandmarkDetector)
|
|
# Facial Expression analysis library
|
|
add_subdirectory(lib/local/FaceAnalyser)
|
|
# Gaze library
|
|
add_subdirectory(lib/local/GazeAnalyser)
|
|
# Utilities library
|
|
add_subdirectory(lib/local/Utilities)
|
|
# executables
|
|
add_subdirectory(exe/FaceLandmarkImg)
|
|
add_subdirectory(exe/FaceLandmarkVid)
|
|
add_subdirectory(exe/FaceLandmarkVidMulti)
|
|
add_subdirectory(exe/FeatureExtraction)
|