######################
# The Expression app #
######################
set(APP_SRCS
ExpressionApp.cpp
MeshRenderer.cpp MeshRenderer.h
DirectoryIterator.cpp DirectoryIterator.h
BackEndOpenGL/GLMaterial.cpp BackEndOpenGL/GLMaterial.h
BackEndOpenGL/GLMesh.cpp BackEndOpenGL/GLMesh.h
BackEndOpenGL/GLShaders.cpp BackEndOpenGL/GLShaders.h
BackEndOpenGL/GLSpectrum.h
BackEndOpenGL/SimpleFaceModel.h
BackEndOpenGL/OpenGLMeshRenderer.cpp BackEndOpenGL/OpenGLMeshRenderer.h
BackEndOpenGL/FaceIO.cpp BackEndOpenGL/FaceIO.h
)
if(WIN32)
set(APP_SRCS ${APP_SRCS} nvARProxy.cpp nvCVImageProxy.cpp)
find_package(OpenGL REQUIRED)
endif(WIN32)
option(ENABLE_UI "Enable UI to adjust rigging" OFF) # ON still needs some more
link debugging
if (${ENABLE_UI})
set(APP_SRCS ${APP_SRCS}
ExpressionAppUI.h
ExpressionAppUI.cpp
${CMAKE_CURRENT_SOURCE_DIR}/../external/Imgui/imgui-docking/imgui.h
${CMAKE_CURRENT_SOURCE_DIR}/../external/Imgui/imgui-docking/imconfig.h
${CMAKE_CURRENT_SOURCE_DIR}/../external/Imgui/imgui-docking/imgui_internal.h
${CMAKE_CURRENT_SOURCE_DIR}/../external/Imgui/imgui-docking/imstb_textedit.h
${CMAKE_CURRENT_SOURCE_DIR}/../external/Imgui/imgui-docking/imstb_rectpack.h
${CMAKE_CURRENT_SOURCE_DIR}/../external/Imgui/imgui-docking/imstb_truetype.h
${CMAKE_CURRENT_SOURCE_DIR}/../external/Imgui/imgui-docking/backends/
imgui_impl_glfw.h
${CMAKE_CURRENT_SOURCE_DIR}/../external/Imgui/imgui-docking/backends/
imgui_impl_opengl3.h
${CMAKE_CURRENT_SOURCE_DIR}/../external/Imgui/imgui-docking/backends/
imgui_impl_opengl3_loader.h
${CMAKE_CURRENT_SOURCE_DIR}/../external/Imgui/imgui-docking/misc/cpp/
imgui_stdlib.h
${CMAKE_CURRENT_SOURCE_DIR}/../external/Imgui/imgui-docking/imgui_tables.cpp
${CMAKE_CURRENT_SOURCE_DIR}/../external/Imgui/imgui-docking/imgui_widgets.cpp
${CMAKE_CURRENT_SOURCE_DIR}/../external/Imgui/imgui-docking/imgui.cpp
${CMAKE_CURRENT_SOURCE_DIR}/../external/Imgui/imgui-docking/imgui_draw.cpp
${CMAKE_CURRENT_SOURCE_DIR}/../external/Imgui/imgui-docking/backends/
imgui_impl_glfw.cpp
${CMAKE_CURRENT_SOURCE_DIR}/../external/Imgui/imgui-docking/backends/
imgui_impl_opengl3.cpp
${CMAKE_CURRENT_SOURCE_DIR}/../external/Imgui/imgui-docking/misc/cpp/
imgui_stdlib.cpp
)
endif (${ENABLE_UI})
add_executable(ExpressionApp ${APP_SRCS})
target_include_directories(ExpressionApp PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/BackEndOpenGL
${CMAKE_CURRENT_SOURCE_DIR}/../utils
${CMAKE_CURRENT_SOURCE_DIR}/../external/glm/include
${SDK_INCLUDES_PATH}
)
if (${ENABLE_UI})
add_definitions("-D_ENABLE_UI")
target_include_directories(ExpressionApp PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/../external/Imgui/imgui-docking
${CMAKE_CURRENT_SOURCE_DIR}/../external/nlohmann/json/single_include/
nlohmann
)
endif (${ENABLE_UI})
if(WIN32)
target_link_libraries(ExpressionApp PUBLIC
opencv346
glfw3
GLAD
${OPENGL_gl_LIBRARY}
)
target_link_directories(ExpressionApp PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/../external/GLAD/lib
${CMAKE_CURRENT_SOURCE_DIR}/../external/GLFW/lib
)
target_include_directories(ExpressionApp PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/../external/GLAD/include
${CMAKE_CURRENT_SOURCE_DIR}/../external/GLFW/include
)
set(OPENCV_PATH_STR ${CMAKE_CURRENT_SOURCE_DIR}/../external/opencv/bin)
set(PATH_STR "PATH=%PATH%" ${OPENCV_PATH_STR})
set_target_properties(ExpressionApp PROPERTIES
FOLDER SampleApps
VS_DEBUGGER_ENVIRONMENT "${PATH_STR}"
VS_DEBUGGER_COMMAND_ARGUMENTS "${CMD_ARG_STR}" )
elseif(UNIX)
#find_package(PNG REQUIRED)
#find_package(JPEG REQUIRED)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread -fpermissive")
target_link_libraries(ExpressionApp PUBLIC
nvARPose
NVCVImage
OpenCV
glfw
OpenGL
dl
)
endif()