option(BUILD_SHARED_LIBS "Build shared version of the library" ON) option(Boost_USE_STATIC_LIBS "Use static version of Boost" OFF) if(WIN32) add_definitions(-DBOOST_ALL_NO_LIB -DBOOST_PROGRAM_OPTIONS_DYN_LINK -D_WIN32_WINNT=0x0501) endif() if(UNIX AND NOT APPLE) if(Boost_USE_STATIC_LIBS) set(ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES}) set(CMAKE_FIND_LIBRARY_SUFFIXES .a ) endif() find_library(RT_LIBRARY rt) if(Boost_USE_STATIC_LIBS) set(CMAKE_FIND_LIBRARY_SUFFIXES ${ORIG_CMAKE_FIND_LIBRARY_SUFFIXES}) endif() mark_as_advanced(RT_LIBRARY) add_definitions(-DHAVE_LIBRT) endif() find_package(Boost COMPONENTS date_time program_options serialization system thread REQUIRED) find_package(Eigen REQUIRED) find_package(Threads REQUIRED) set(Boost_INCLUDE_DIRS "${Boost_INCLUDE_DIRS}" PARENT_SCOPE) set(Boost_LIBRARY_DIRS "${Boost_LIBRARY_DIRS}" PARENT_SCOPE) set(Boost_USE_STATIC_LIBS "${Boost_USE_STATIC_LIBS}" PARENT_SCOPE) include(GenerateExportHeader) add_compiler_export_flags() add_library(3dv device.cc error.cc ipm.cc pose_utils.cc detail/device_impl.cc) include_directories(${Boost_INCLUDE_DIR} ${EIGEN_INCLUDE_DIRS} ${CMAKE_SOURCE_DIR}) target_link_libraries(3dv ${Boost_DATE_TIME_LIBRARY} ${Boost_PROGRAM_OPTIONS_LIBRARY} ${Boost_SERIALIZATION_LIBRARY} ${Boost_SYSTEM_LIBRARY} ${Boost_THREAD_LIBRARY} ${CMAKE_THREAD_LIBS_INIT} ${RT_LIBRARY}) set_target_properties(3dv PROPERTIES DEFINE_SYMBOL _3dv) generate_export_header(3dv BASE_NAME LIB3DV EXPORT_FILE_NAME 3dv_export.h) file(COPY ${CMAKE_CURRENT_BINARY_DIR}/3dv_export.h DESTINATION ${PROJECT_SOURCE_DIR}/lib3dv) configure_file(version.h.in ${PROJECT_SOURCE_DIR}/lib3dv/version.h) export(TARGETS 3dv FILE "${PROJECT_BINARY_DIR}/Lib3DVTargets.cmake") install(TARGETS 3dv EXPORT Lib3DVTargets DESTINATION ${LIBRARY_INSTALL_DIR}) install(FILES 3dv.h calibration.h device.h error.h image.h ipm.h obstacle.h point.h stixel.h terrain.h motion.h pose.h pose_utils.h candidate.h classification.h version.h ${PROJECT_BINARY_DIR}/lib3dv/3dv_export.h DESTINATION ${INCLUDE_INSTALL_DIR})