Commit d828be82 authored by Patrik Huber's avatar Patrik Huber

Merge branch 'cmake-modernise' into devel

parents 56cbd19b 2eb60193
...@@ -4,22 +4,25 @@ dist: trusty ...@@ -4,22 +4,25 @@ dist: trusty
language: cpp language: cpp
env: env:
- C_COMPILER=gcc-4.9 CXX_COMPILER=g++-4.9
- C_COMPILER=gcc-5 CXX_COMPILER=g++-5 - C_COMPILER=gcc-5 CXX_COMPILER=g++-5
- C_COMPILER=clang-3.5 CXX_COMPILER=clang++-3.5
- C_COMPILER=clang-3.8 CXX_COMPILER=clang++-3.8 - C_COMPILER=clang-3.8 CXX_COMPILER=clang++-3.8
before_install: before_install:
- sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y - sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
- wget -O - http://llvm.org/apt/llvm-snapshot.gpg.key | sudo apt-key add - - wget -O - http://llvm.org/apt/llvm-snapshot.gpg.key | sudo apt-key add -
- echo "deb http://llvm.org/apt/trusty/ llvm-toolchain-trusty-3.5 main" | sudo tee -a /etc/apt/sources.list
- echo "deb http://llvm.org/apt/trusty/ llvm-toolchain-trusty-3.8 main" | sudo tee -a /etc/apt/sources.list - echo "deb http://llvm.org/apt/trusty/ llvm-toolchain-trusty-3.8 main" | sudo tee -a /etc/apt/sources.list
- sudo apt-get update -q - sudo apt-get update -q
- sudo apt-get install gcc-5 g++-5 -y - sudo apt-get install g++-4.9 gcc-5 g++-5 -y
- sudo apt-get install clang-3.8 -y - sudo apt-get install clang-3.5 clang-3.8 -y
- sudo apt-get install libboost-all-dev libeigen3-dev libopencv-dev -y - sudo apt-get install libboost-all-dev libeigen3-dev libopencv-dev -y
before_script: before_script:
- mkdir build - mkdir build
- cd build - cd build
- cmake -DCMAKE_C_COMPILER=${C_COMPILER} -DCMAKE_CXX_COMPILER=${CXX_COMPILER} -DBUILD_EXAMPLES=on -DBUILD_UTILS=on -DGENERATE_PYTHON_BINDINGS=on -DPYTHON_EXECUTABLE=`which python3.5` .. - cmake -DCMAKE_C_COMPILER=${C_COMPILER} -DCMAKE_CXX_COMPILER=${CXX_COMPILER} -DEOS_BUILD_EXAMPLES=on -DEOS_BUILD_UTILS=on -DEOS_GENERATE_PYTHON_BINDINGS=on -DPYTHON_EXECUTABLE=`which python3.5` ..
script: script:
- make VERBOSE=1 - make VERBOSE=1
This diff is collapsed.
...@@ -26,7 +26,7 @@ At the moment, it mainly provides the following functionality: ...@@ -26,7 +26,7 @@ At the moment, it mainly provides the following functionality:
## Usage ## Usage
* Tested with the following compilers: >=gcc-4.8.4, >=clang-3.5, Visual Studio 2015 * Tested with the following compilers: >=gcc-4.9, >=clang-3.5, Visual Studio 2015
* Needed dependencies for the library: Boost system (>=1.50.0), OpenCV core (>=2.4.3) * Needed dependencies for the library: Boost system (>=1.50.0), OpenCV core (>=2.4.3)
To use the library in your own project, just add the following directories to your include path: To use the library in your own project, just add the following directories to your include path:
...@@ -34,6 +34,8 @@ To use the library in your own project, just add the following directories to yo ...@@ -34,6 +34,8 @@ To use the library in your own project, just add the following directories to yo
* `eos/include` * `eos/include`
* `eos/3rdparty/cereal-1.1.1/include` * `eos/3rdparty/cereal-1.1.1/include`
* `eos/3rdparty/glm` * `eos/3rdparty/glm`
* `eos/3rdparty/nanoflann/include`
* `eos/3rdparty/eigen3-nnls/src`
**Make sure to clone with `--recursive` to download the required submodules!** **Make sure to clone with `--recursive` to download the required submodules!**
...@@ -82,7 +84,7 @@ The full model is available at [http://www.cvssp.org/facemodel](http://www.cvssp ...@@ -82,7 +84,7 @@ The full model is available at [http://www.cvssp.org/facemodel](http://www.cvssp
## Python bindings ## Python bindings
_Experimental_: eos includes python bindings for some of its functionality (and more can be added!). Set `-DGENERATE_PYTHON_BINDINGS=on` when running `cmake` to build them (and optionally set `PYTHON_EXECUTABLE` to point to your python interpreter if it's not found automatically). _Experimental_: eos includes python bindings for some of its functionality (and more can be added!). Set `-DEOS_GENERATE_PYTHON_BINDINGS=on` when running `cmake` to build them (and optionally set `PYTHON_EXECUTABLE` to point to your python interpreter if it's not found automatically).
After building the bindings, they can be used like any python module: After building the bindings, they can be used like any python module:
...@@ -99,7 +101,7 @@ help(eos) # check the documentation ...@@ -99,7 +101,7 @@ help(eos) # check the documentation
## Matlab bindings ## Matlab bindings
_Experimental_: eos includes Matlab bindings for the `fit_shape_and_pose(...)` function, which means the fitting can be run from Matlab. Set `-DGENERATE_MATLAB_BINDINGS=on` when running `cmake` to build the required mex-file and run the `INSTALL` target to install everything. (Set `Matlab_ROOT_DIR` to point to your Matlab directory if it's not found automatically). More bindings (e.g. the MorphableModel itself) might be added in the future. _Experimental_: eos includes Matlab bindings for the `fit_shape_and_pose(...)` function, which means the fitting can be run from Matlab. Set `-DEOS_GENERATE_MATLAB_BINDINGS=on` when running `cmake` to build the required mex-file and run the `INSTALL` target to install everything. (Set `Matlab_ROOT_DIR` to point to your Matlab directory if it's not found automatically). More bindings (e.g. the MorphableModel itself) might be added in the future.
Go to the `install/eos/matlab` directory and run [`demo.m`](https://github.com/patrikhuber/eos/blob/master/matlab/demo.m) to see how to run the fitting. The result is a mesh and rendering parameters (pose). Go to the `install/eos/matlab` directory and run [`demo.m`](https://github.com/patrikhuber/eos/blob/master/matlab/demo.m) to see how to run the fitting. The result is a mesh and rendering parameters (pose).
......
...@@ -25,7 +25,7 @@ install: ...@@ -25,7 +25,7 @@ install:
before_build: # We're still in %home% before_build: # We're still in %home%
- cmd: mkdir build - cmd: mkdir build
- cmd: cd build - cmd: cd build
- cmd: '%cmake% -G "Visual Studio 14 Win64" -DOpenCV_DIR=C:\projects\opencv -DBOOST_ROOT=C:\Libraries\boost_1_59_0 -DBOOST_LIBRARYDIR=C:\Libraries\boost_1_59_0\lib64-msvc-14.0 -DEIGEN3_INCLUDE_DIR=C:\projects\eigen-eigen-ce5a455b34c0 -DCMAKE_INSTALL_PREFIX=..\install -DBUILD_EXAMPLES=on -DBUILD_UTILS=on -DGENERATE_PYTHON_BINDINGS=on -DPYTHON_EXECUTABLE:path=C:\Python35-x64\python.exe ..\eos' - cmd: '%cmake% -G "Visual Studio 14 Win64" -DOpenCV_DIR=C:\projects\opencv -DBOOST_ROOT=C:\Libraries\boost_1_59_0 -DBOOST_LIBRARYDIR=C:\Libraries\boost_1_59_0\lib64-msvc-14.0 -DEIGEN3_INCLUDE_DIR=C:\projects\eigen-eigen-ce5a455b34c0 -DCMAKE_INSTALL_PREFIX=..\install -DEOS_BUILD_EXAMPLES=on -DEOS_BUILD_UTILS=on -DEOS_GENERATE_PYTHON_BINDINGS=on -DPYTHON_EXECUTABLE:path=C:\Python35-x64\python.exe ..\eos'
build: build:
project: C:\projects\build\eos.sln project: C:\projects\build\eos.sln
......
...@@ -9,6 +9,12 @@ ...@@ -9,6 +9,12 @@
# EIGEN3_FOUND - system has eigen lib with correct version # EIGEN3_FOUND - system has eigen lib with correct version
# EIGEN3_INCLUDE_DIR - the eigen include directory # EIGEN3_INCLUDE_DIR - the eigen include directory
# EIGEN3_VERSION - eigen version # EIGEN3_VERSION - eigen version
#
# This module reads hints about search locations from
# the following enviroment variables:
#
# EIGEN3_ROOT
# EIGEN3_ROOT_DIR
# Copyright (c) 2006, 2007 Montel Laurent, <montel@kde.org> # Copyright (c) 2006, 2007 Montel Laurent, <montel@kde.org>
# Copyright (c) 2008, 2009 Gael Guennebaud, <g.gael@free.fr> # Copyright (c) 2008, 2009 Gael Guennebaud, <g.gael@free.fr>
...@@ -60,13 +66,23 @@ if (EIGEN3_INCLUDE_DIR) ...@@ -60,13 +66,23 @@ if (EIGEN3_INCLUDE_DIR)
set(EIGEN3_FOUND ${EIGEN3_VERSION_OK}) set(EIGEN3_FOUND ${EIGEN3_VERSION_OK})
else (EIGEN3_INCLUDE_DIR) else (EIGEN3_INCLUDE_DIR)
find_path(EIGEN3_INCLUDE_DIR NAMES signature_of_eigen3_matrix_library # search first if an Eigen3Config.cmake is available in the system,
PATHS # if successful this would set EIGEN3_INCLUDE_DIR and the rest of
${CMAKE_INSTALL_PREFIX}/include # the script will work as usual
${KDE4_INCLUDE_DIR} find_package(Eigen3 ${Eigen3_FIND_VERSION} NO_MODULE QUIET)
PATH_SUFFIXES eigen3 eigen
) if(NOT EIGEN3_INCLUDE_DIR)
find_path(EIGEN3_INCLUDE_DIR NAMES signature_of_eigen3_matrix_library
HINTS
ENV EIGEN3_ROOT
ENV EIGEN3_ROOT_DIR
PATHS
${CMAKE_INSTALL_PREFIX}/include
${KDE4_INCLUDE_DIR}
PATH_SUFFIXES eigen3 eigen
)
endif(NOT EIGEN3_INCLUDE_DIR)
if(EIGEN3_INCLUDE_DIR) if(EIGEN3_INCLUDE_DIR)
_eigen3_check_version() _eigen3_check_version()
......
...@@ -10,10 +10,8 @@ if("${OpenCV_VERSION_MAJOR}$" EQUAL 2) ...@@ -10,10 +10,8 @@ if("${OpenCV_VERSION_MAJOR}$" EQUAL 2)
find_package(OpenCV 2.4.3 REQUIRED core imgproc highgui) find_package(OpenCV 2.4.3 REQUIRED core imgproc highgui)
elseif("${OpenCV_VERSION_MAJOR}$" EQUAL 3) elseif("${OpenCV_VERSION_MAJOR}$" EQUAL 3)
message(STATUS "OpenCV 3.x detected - including imgcodecs for compatibility") message(STATUS "OpenCV 3.x detected - including imgcodecs for compatibility")
find_package(OpenCV 3.0.0 REQUIRED core imgproc imgcodecs) find_package(OpenCV 3 REQUIRED core imgproc imgcodecs)
endif() endif()
message(STATUS "OpenCV include dir found at ${OpenCV_INCLUDE_DIRS}")
message(STATUS "OpenCV lib dir found at ${OpenCV_LIB_DIR}")
# This allows us to compile in RelWithDebInfo. It'll use the Release-version of OpenCV: # This allows us to compile in RelWithDebInfo. It'll use the Release-version of OpenCV:
set_target_properties(${OpenCV_LIBS} PROPERTIES MAP_IMPORTED_CONFIG_RELWITHDEBINFO RELEASE) set_target_properties(${OpenCV_LIBS} PROPERTIES MAP_IMPORTED_CONFIG_RELWITHDEBINFO RELEASE)
...@@ -29,19 +27,18 @@ else(Boost_FOUND) ...@@ -29,19 +27,18 @@ else(Boost_FOUND)
message(FATAL_ERROR "Boost not found") message(FATAL_ERROR "Boost not found")
endif() endif()
if(MSVC)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj")
endif()
# Simple model fitting (orthographic camera & shape to landmarks) example: # Simple model fitting (orthographic camera & shape to landmarks) example:
add_executable(fit-model-simple fit-model-simple.cpp) add_executable(fit-model-simple fit-model-simple.cpp)
target_link_libraries(fit-model-simple ${OpenCV_LIBS} ${Boost_LIBRARIES}) target_link_libraries(fit-model-simple eos ${OpenCV_LIBS} ${Boost_LIBRARIES})
target_link_libraries(fit-model-simple "$<$<CXX_COMPILER_ID:GNU>:-pthread>$<$<CXX_COMPILER_ID:Clang>:-pthreads>")
# Model fitting example that fits orthographic camera, shape, blendshapes, and contours: # Model fitting example that fits orthographic camera, shape, blendshapes, and contours:
add_executable(fit-model fit-model.cpp) add_executable(fit-model fit-model.cpp)
target_link_libraries(fit-model ${OpenCV_LIBS} ${Boost_LIBRARIES}) target_link_libraries(fit-model eos ${OpenCV_LIBS} ${Boost_LIBRARIES})
target_link_libraries(fit-model "$<$<CXX_COMPILER_ID:GNU>:-pthread>$<$<CXX_COMPILER_ID:Clang>:-pthreads>")
if(BUILD_CERES_EXAMPLE) if(EOS_BUILD_CERES_EXAMPLE)
# Find Ceres, for the fit-model-ceres app: # Find Ceres, for the fit-model-ceres app:
find_package(Ceres REQUIRED) find_package(Ceres REQUIRED)
message(STATUS "Ceres locations: Headers: ${CERES_INCLUDE_DIRS} Library: ${CERES_LIBRARIES}") message(STATUS "Ceres locations: Headers: ${CERES_INCLUDE_DIRS} Library: ${CERES_LIBRARIES}")
...@@ -49,13 +46,13 @@ if(BUILD_CERES_EXAMPLE) ...@@ -49,13 +46,13 @@ if(BUILD_CERES_EXAMPLE)
# Single and multi-image non-linear model fitting with Ceres example: # Single and multi-image non-linear model fitting with Ceres example:
add_executable(fit-model-ceres fit-model-ceres.cpp) add_executable(fit-model-ceres fit-model-ceres.cpp)
target_link_libraries(fit-model-ceres ${CERES_LIBRARIES} ${OpenCV_LIBS} ${Boost_LIBRARIES}) target_link_libraries(fit-model-ceres eos ${CERES_LIBRARIES} ${OpenCV_LIBS} ${Boost_LIBRARIES})
install(TARGETS fit-model-ceres DESTINATION bin) install(TARGETS fit-model-ceres DESTINATION bin)
endif() endif()
# Generate random samples from the model: # Generate random samples from the model:
add_executable(generate-obj generate-obj.cpp) add_executable(generate-obj generate-obj.cpp)
target_link_libraries(generate-obj ${OpenCV_LIBS} ${Boost_LIBRARIES}) target_link_libraries(generate-obj eos ${OpenCV_LIBS} ${Boost_LIBRARIES})
# install target: # install target:
......
...@@ -30,9 +30,9 @@ ...@@ -30,9 +30,9 @@
# Configuration options # Configuration options
# ============================== # ==============================
set(BUILD_EXAMPLES ON CACHE BOOL "Build the example applications." FORCE) set(EOS_BUILD_EXAMPLES ON CACHE BOOL "Build the example applications." FORCE)
set(BUILD_CERES_EXAMPLE OFF CACHE BOOL "Build the fit-model-ceres example (requires Ceres)." FORCE) set(EOS_BUILD_CERES_EXAMPLE OFF CACHE BOOL "Build the fit-model-ceres example (requires Ceres)." FORCE)
set(BUILD_UTILS OFF CACHE BOOL "Build utility applications." FORCE) set(EOS_BUILD_UTILS OFF CACHE BOOL "Build utility applications." FORCE)
set(BUILD_DOCUMENTATION OFF CACHE BOOL "Build the library documentation." FORCE) set(EOS_BUILD_DOCUMENTATION OFF CACHE BOOL "Build the library documentation." FORCE)
set(GENERATE_PYTHON_BINDINGS OFF CACHE BOOL "Build python bindings. Requires python to be installed." FORCE) set(EOS_GENERATE_PYTHON_BINDINGS OFF CACHE BOOL "Build python bindings. Requires python to be installed." FORCE)
set(GENERATE_MATLAB_BINDINGS OFF CACHE BOOL "Build Matlab bindings. Requires Matlab with the compiler installed or the Matlab Compiler Runtime." FORCE) set(EOS_GENERATE_MATLAB_BINDINGS OFF CACHE BOOL "Build Matlab bindings. Requires Matlab with the compiler installed or the Matlab Compiler Runtime." FORCE)
...@@ -5,8 +5,17 @@ cmake_minimum_required(VERSION 3.7.0) ...@@ -5,8 +5,17 @@ cmake_minimum_required(VERSION 3.7.0)
find_package(Matlab COMPONENTS MX_LIBRARY REQUIRED) find_package(Matlab COMPONENTS MX_LIBRARY REQUIRED)
# Dependencies of the modules: # Dependencies of the modules:
find_package(OpenCV 2.4.3 REQUIRED core) #check installed version in order to include the correct OpenCV libraries
#version variable is defined from project root's CMakeLists
if("${OpenCV_VERSION_MAJOR}$" EQUAL 2)
message(STATUS "OpenCV 2.x detected")
find_package(OpenCV 2.4.3 REQUIRED core imgproc highgui)
elseif("${OpenCV_VERSION_MAJOR}$" EQUAL 3)
message(STATUS "OpenCV 3.x detected - including imgcodecs for compatibility")
find_package(OpenCV 3 REQUIRED core imgproc imgcodecs)
endif()
set_target_properties(${OpenCV_LIBS} PROPERTIES MAP_IMPORTED_CONFIG_RELWITHDEBINFO RELEASE) set_target_properties(${OpenCV_LIBS} PROPERTIES MAP_IMPORTED_CONFIG_RELWITHDEBINFO RELEASE)
if(MSVC) if(MSVC)
# The standard find_package for boost on Win finds the dynamic libs, so for dynamic linking to boost we need to #define: # The standard find_package for boost on Win finds the dynamic libs, so for dynamic linking to boost we need to #define:
add_definitions(-DBOOST_ALL_NO_LIB) # Don't use the automatic library linking by boost with VS (#pragma ...). Instead, we specify everything here in cmake. add_definitions(-DBOOST_ALL_NO_LIB) # Don't use the automatic library linking by boost with VS (#pragma ...). Instead, we specify everything here in cmake.
...@@ -21,7 +30,7 @@ matlab_add_mex( ...@@ -21,7 +30,7 @@ matlab_add_mex(
SRC +eos/+fitting/private/fitting.cpp SRC +eos/+fitting/private/fitting.cpp
OUTPUT_NAME fitting #[OUTPUT_NAME output_name] OUTPUT_NAME fitting #[OUTPUT_NAME output_name]
# DOCUMENTATION +eos/+fitting/fit_shape_and_pose.m # doesn't work - wrong path probably. But it renames the file to fitting.m, so not what we want anyway. # DOCUMENTATION +eos/+fitting/fit_shape_and_pose.m # doesn't work - wrong path probably. But it renames the file to fitting.m, so not what we want anyway.
LINK_TO ${OpenCV_LIBS} ${Boost_LIBRARIES} #[LINK_TO target1 target2 ...] LINK_TO eos ${OpenCV_LIBS} ${Boost_LIBRARIES} #[LINK_TO target1 target2 ...]
#[...] #[...]
) )
......
...@@ -11,10 +11,8 @@ if("${OpenCV_VERSION_MAJOR}$" EQUAL 2) ...@@ -11,10 +11,8 @@ if("${OpenCV_VERSION_MAJOR}$" EQUAL 2)
find_package(OpenCV 2.4.3 REQUIRED core imgproc) find_package(OpenCV 2.4.3 REQUIRED core imgproc)
elseif("${OpenCV_VERSION_MAJOR}$" EQUAL 3) elseif("${OpenCV_VERSION_MAJOR}$" EQUAL 3)
message(STATUS "OpenCV 3.x detected - including imgcodecs for compatibility") message(STATUS "OpenCV 3.x detected - including imgcodecs for compatibility")
find_package(OpenCV 3.0.0 REQUIRED core imgproc imgcodecs) find_package(OpenCV 3 REQUIRED core imgproc imgcodecs)
endif() endif()
message(STATUS "OpenCV include dir found at ${OpenCV_INCLUDE_DIRS}")
message(STATUS "OpenCV lib dir found at ${OpenCV_LIB_DIR}")
# This allows us to compile in RelWithDebInfo. It'll use the Release-version of OpenCV: # This allows us to compile in RelWithDebInfo. It'll use the Release-version of OpenCV:
set_target_properties(${OpenCV_LIBS} PROPERTIES MAP_IMPORTED_CONFIG_RELWITHDEBINFO RELEASE) set_target_properties(${OpenCV_LIBS} PROPERTIES MAP_IMPORTED_CONFIG_RELWITHDEBINFO RELEASE)
...@@ -30,12 +28,8 @@ else(Boost_FOUND) ...@@ -30,12 +28,8 @@ else(Boost_FOUND)
message(FATAL_ERROR "Boost not found") message(FATAL_ERROR "Boost not found")
endif() endif()
if(MSVC) # not sure this is required for the python bindings, just keep it for now
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj")
endif()
pybind11_add_module(python-bindings generate-python-bindings.cpp pybind11_glm.hpp) pybind11_add_module(python-bindings generate-python-bindings.cpp pybind11_glm.hpp)
target_link_libraries(python-bindings PRIVATE ${OpenCV_LIBS} ${Boost_LIBRARIES}) target_link_libraries(python-bindings PRIVATE eos ${OpenCV_LIBS} ${Boost_LIBRARIES})
set_target_properties(python-bindings PROPERTIES OUTPUT_NAME eos) set_target_properties(python-bindings PROPERTIES OUTPUT_NAME eos)
install(TARGETS python-bindings DESTINATION python) install(TARGETS python-bindings DESTINATION python)
......
...@@ -10,10 +10,8 @@ if("${OpenCV_VERSION_MAJOR}$" EQUAL 2) ...@@ -10,10 +10,8 @@ if("${OpenCV_VERSION_MAJOR}$" EQUAL 2)
find_package(OpenCV 2.4.3 REQUIRED core imgproc highgui) find_package(OpenCV 2.4.3 REQUIRED core imgproc highgui)
elseif("${OpenCV_VERSION_MAJOR}$" EQUAL 3) elseif("${OpenCV_VERSION_MAJOR}$" EQUAL 3)
message(STATUS "OpenCV 3.x detected - including imgcodecs for compatibility") message(STATUS "OpenCV 3.x detected - including imgcodecs for compatibility")
find_package(OpenCV 3.0.0 REQUIRED core imgproc imgcodecs) find_package(OpenCV 3 REQUIRED core imgproc imgcodecs)
endif() endif()
message(STATUS "OpenCV include dir found at ${OpenCV_INCLUDE_DIRS}")
message(STATUS "OpenCV lib dir found at ${OpenCV_LIB_DIR}")
# This allows us to compile in RelWithDebInfo. It'll use the Release-version of OpenCV: # This allows us to compile in RelWithDebInfo. It'll use the Release-version of OpenCV:
set_target_properties(${OpenCV_LIBS} PROPERTIES MAP_IMPORTED_CONFIG_RELWITHDEBINFO RELEASE) set_target_properties(${OpenCV_LIBS} PROPERTIES MAP_IMPORTED_CONFIG_RELWITHDEBINFO RELEASE)
...@@ -29,25 +27,21 @@ else(Boost_FOUND) ...@@ -29,25 +27,21 @@ else(Boost_FOUND)
message(FATAL_ERROR "Boost not found") message(FATAL_ERROR "Boost not found")
endif() endif()
if(MSVC)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj")
endif()
# Converts a CVSSP .scm Morphable Model to a cereal binary file: # Converts a CVSSP .scm Morphable Model to a cereal binary file:
add_executable(scm-to-cereal scm-to-cereal.cpp) add_executable(scm-to-cereal scm-to-cereal.cpp)
target_link_libraries(scm-to-cereal ${OpenCV_LIBS} ${Boost_LIBRARIES}) target_link_libraries(scm-to-cereal eos ${OpenCV_LIBS} ${Boost_LIBRARIES})
# Converts a file created with share/convert_bfm2009_to_raw_binary.m to a cereal binary file: # Converts a file created with share/convert_bfm2009_to_raw_binary.m to a cereal binary file:
add_executable(bfm-binary-to-cereal bfm-binary-to-cereal.cpp) add_executable(bfm-binary-to-cereal bfm-binary-to-cereal.cpp)
target_link_libraries(bfm-binary-to-cereal ${OpenCV_LIBS} ${Boost_LIBRARIES}) target_link_libraries(bfm-binary-to-cereal eos ${OpenCV_LIBS} ${Boost_LIBRARIES})
# Reads an edgestruct CSV file created from Matlab, and converts it to json: # Reads an edgestruct CSV file created from Matlab, and converts it to json:
add_executable(edgestruct-csv-to-json edgestruct-csv-to-json.cpp) add_executable(edgestruct-csv-to-json edgestruct-csv-to-json.cpp)
target_link_libraries(edgestruct-csv-to-json ${Boost_LIBRARIES}) target_link_libraries(edgestruct-csv-to-json eos ${Boost_LIBRARIES})
# Store a json file as cereal .bin: # Store a json file as cereal .bin:
add_executable(json-to-cereal-binary json-to-cereal-binary.cpp) add_executable(json-to-cereal-binary json-to-cereal-binary.cpp)
target_link_libraries(json-to-cereal-binary ${OpenCV_LIBS} ${Boost_LIBRARIES}) target_link_libraries(json-to-cereal-binary eos ${OpenCV_LIBS} ${Boost_LIBRARIES})
# install target: # install target:
install(TARGETS scm-to-cereal DESTINATION bin) install(TARGETS scm-to-cereal DESTINATION bin)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment