Default-chan is the new default model that will be used instead of the `test` placeholder.
105 lines
3.4 KiB
CMake
105 lines
3.4 KiB
CMake
function( pack_model model_name )
|
|
file( GLOB archive_files ${PROJECT_SOURCE_DIR}/models/${model_name}/* )
|
|
add_custom_command(
|
|
COMMAND
|
|
${CMAKE_COMMAND} -E tar "cf" "${PROJECT_BINARY_DIR}/models/${model_name}.fma" --format=zip ${archive_files}
|
|
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/models/${model_name}
|
|
OUTPUT ${PROJECT_BINARY_DIR}/models/${model_name}.fma
|
|
DEPENDS ${archive_files}
|
|
)
|
|
add_custom_target( fc2d_model_${model_name} ALL DEPENDS ${PROJECT_BINARY_DIR}/models/${model_name}.fma )
|
|
endfunction()
|
|
|
|
cmake_minimum_required( VERSION 3.2 )
|
|
project( Facecam2D VERSION 0.3.2 )
|
|
set( CMAKE_CXX_STANDARD 17 )
|
|
set( CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake )
|
|
add_subdirectory( "libs/Boxer" )
|
|
find_package( libzip REQUIRED )
|
|
find_package( fmt REQUIRED )
|
|
find_package( WebP REQUIRED )
|
|
find_package( OpenCV REQUIRED )
|
|
message (STATUS "Found OpenCV at: " ${OpenCV_INCLUDE_DIRS} )
|
|
find_package( OpenGL REQUIRED )
|
|
message (STATUS "Found OpenGL at: " ${OPENGL_INCLUDE_DIR} )
|
|
find_package( GLEW REQUIRED )
|
|
message (STATUS "Found GLEW at: " ${GLEW_INCLUDE_DIRS} )
|
|
find_package( glm REQUIRED )
|
|
message (STATUS "Found glm at: " ${GLM_INCLUDE_DIRS} )
|
|
find_package( FreeGLUT REQUIRED )
|
|
message (STATUS "Found FreeGLUT at: " ${GLUT_INCLUDE_DIR} )
|
|
find_package( wxWidgets REQUIRED core base )
|
|
message (STATUS "Found wxWidgets at: " ${wxWidgets_USE_FILE} )
|
|
include( ${wxWidgets_USE_FILE} )
|
|
include_directories( ${OpenCV_INCLUDE_DIRS} )
|
|
include_directories( ${OPENGL_INCLUDE_DIR} )
|
|
include_directories( ${GLEW_INCLUDE_DIRS} )
|
|
include_directories( ${GLM_INCLUDE_DIRS} )
|
|
include_directories( ${GLUT_INCLUDE_DIR} )
|
|
include_directories( ${LIBZIP_INCLUDE_DIR} )
|
|
include_directories( ${PROJECT_SOURCE_DIR}/src )
|
|
configure_file( ${PROJECT_SOURCE_DIR}/src/config.hpp.in ${PROJECT_SOURCE_DIR}/src/config.hpp @ONLY )
|
|
configure_file( ${PROJECT_SOURCE_DIR}/packaging/facecam2d.wxs.in ${PROJECT_SOURCE_DIR}/packaging/facecam2d.wxs @ONLY )
|
|
file(
|
|
COPY
|
|
${PROJECT_SOURCE_DIR}/cvdata
|
|
|
|
DESTINATION
|
|
${PROJECT_BINARY_DIR} )
|
|
file( MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/models )
|
|
pack_model( "default" )
|
|
pack_model( "test" )
|
|
pack_model( "rms" )
|
|
if (APPLE)
|
|
file (
|
|
COPY
|
|
${PROJECT_SOURCE_DIR}/Info.plist
|
|
DESTINATION
|
|
$ {PROJECT_BINARY_DIR} )
|
|
endif (APPLE)
|
|
add_executable( fc2d
|
|
src/main.cpp
|
|
src/graphics.cpp
|
|
src/modelpart.cpp
|
|
src/cv.cpp
|
|
src/paths.cpp
|
|
src/args.cpp
|
|
src/model.cpp
|
|
src/toml.c
|
|
src/tomlcpp.cpp
|
|
src/error.cpp
|
|
src/eye.cpp
|
|
src/configfile.cpp
|
|
packaging/fc2d.rc
|
|
)
|
|
target_link_libraries( fc2d ${OpenCV_LIBS} ${OPENGL_LIBRARIES} ${WEBP_LIBRARIES}
|
|
${GLUT_LIBRARY} GLEW::glew zip Boxer fmt )
|
|
add_executable( fc2dconfig
|
|
src/fc2dconfig.cpp
|
|
src/paths.cpp
|
|
src/modellist.cpp
|
|
src/configfile.cpp
|
|
src/toml.c
|
|
src/tomlcpp.cpp
|
|
packaging/fc2dconfig.rc
|
|
)
|
|
target_link_libraries( fc2dconfig ${wxWidgets_LIBRARIES} )
|
|
|
|
install( TARGETS fc2d fc2dconfig
|
|
DESTINATION bin )
|
|
install( DIRECTORY ${PROJECT_BINARY_DIR}/models
|
|
DESTINATION share/facecam2d )
|
|
install( DIRECTORY ${PROJECT_BINARY_DIR}/cvdata
|
|
DESTINATION share/facecam2d )
|
|
install( FILES
|
|
${PROJECT_SOURCE_DIR}/packaging/xyz.epicalert.facecam2d.desktop
|
|
${PROJECT_SOURCE_DIR}/packaging/xyz.epicalert.facecam2d-config.desktop
|
|
DESTINATION share/applications )
|
|
install( FILES
|
|
${PROJECT_SOURCE_DIR}/packaging/fc2d.png
|
|
${PROJECT_SOURCE_DIR}/packaging/fc2dconfig.png
|
|
DESTINATION share/icons/hicolor/48x48/apps )
|
|
install( FILES
|
|
${PROJECT_SOURCE_DIR}/packaging/xyz.epicalert.facecam2d.metainfo.xml
|
|
DESTINATION share/metainfo )
|