set(CMAKE_CXX_STANDARD 14)

if(NOT PCL_FOUND)
    find_package(PCL REQUIRED)
endif(NOT PCL_FOUND)
include_directories(${PROJECT_SOURCE_DIR}/libs)
include_directories(${PROJECT_SOURCE_DIR}/libs/locate_system)

###############################################
# test

add_executable(localize_test localize_test.cpp)

target_include_directories(localize_test PUBLIC
    ${BOOST_INCLUDE_DIRS}
    ${PCL_INCLUDE_DIRS}
    localize
    )

target_link_libraries(localize_test PUBLIC
    ${Boost_LIBRARIES}
    ${PCL_LIBRARIES}
    localize
    )

#add_executable(register_test register_test.cpp)

#target_include_directories(register_test PUBLIC
#    ${BOOST_INCLUDE_DIRS}
#    ${PCL_INCLUDE_DIRS}
#    cloud_reg
#    )

#target_link_libraries(register_test PUBLIC
#    ${Boost_LIBRARIES}
#    ${PCL_LIBRARIES}
#    cloud_reg
#    )

#add_executable(performance_test performance_test.cpp)

#target_include_directories(performance_test PUBLIC
#    ${BOOST_INCLUDE_DIRS}
#    ${PCL_INCLUDE_DIRS}
#    localize
#    slam
#    )

#target_link_libraries(performance_test PUBLIC
#    ${Boost_LIBRARIES}
#    ${PCL_LIBRARIES}
#    localize
#    slam
#    )

###############################################
# tools

#add_executable(pcd_register pcd_register.cpp)

#target_include_directories(pcd_register PUBLIC
#    ${PCL_INCLUDE_DIRS}
#    cloud_reg
#    )

#target_link_libraries(pcd_register PUBLIC
#    ${PCL_LIBRARIES}
#    cloud_reg
#    )

###############################################
# feature map

#add_executable(generate_feature_map compress.cpp)

#target_include_directories(generate_feature_map PUBLIC
#    ${PCL_INCLUDE_DIRS}
#    dispatch
#    serialize
#    )

#target_link_libraries(generate_feature_map PUBLIC
#    ${PCL_LIBRARIES}
#    ${Boost_LIBRARIES}
#    ${GLOG_LIBRARIES}
#    ${GFLAGS_LIBRARIES}
#    dispatch
#    serialize
#    glog
#    gflags
#    )
###############################################
# restore_feature_map
add_executable(restore_feature_map extract.cpp)

target_include_directories(restore_feature_map PUBLIC
    ${PCL_INCLUDE_DIRS}
    stream_info
    )

target_link_libraries(restore_feature_map PUBLIC
    ${PCL_LIBRARIES}
    ${Boost_LIBRARIES}
    ${GLOG_LIBRARIES}
    ${GFLAGS_LIBRARIES}
    stream_info
    glog
    gflags
    )
###############################################
# stream_test
#add_executable(stream_test stream_test.cpp)

#target_include_directories(stream_test PUBLIC
#    ${PCL_INCLUDE_DIRS}
#    area
#    )

#target_link_libraries(stream_test PUBLIC
#    ${PCL_LIBRARIES}
#    ${Boost_LIBRARIES}
#    ${GLOG_LIBRARIES}
#    ${GFLAGS_LIBRARIES}
#    area
#    )
###############################################

#add_executable(localize_main localize_main.cpp)

#target_include_directories(localize_main PUBLIC
#    ${BOOST_INCLUDE_DIRS}
#    ${PCL_INCLUDE_DIRS}
#    localize
#    )

#target_link_libraries(localize_main PUBLIC
#    ${Boost_LIBRARIES}
#    ${PCL_LIBRARIES}
#    input
#    system
#    localize
#    output
#    )

###############################################

#add_executable(multi_localize multi_localize.cpp)

#target_include_directories(multi_localize PUBLIC
#    ${BOOST_INCLUDE_DIRS}
#    ${PCL_INCLUDE_DIRS}
#    localize
#    )

#target_link_libraries(multi_localize PUBLIC
#    ${Boost_LIBRARIES}
#    ${PCL_LIBRARIES}
#    input
#    system
#    localize
#    output
#    dispatch
#    serialize
#    )
###############################################

add_executable(localize_ppk localize_ppk.cpp)

target_include_directories(localize_ppk PUBLIC
    ${BOOST_INCLUDE_DIRS}
    ${PCL_INCLUDE_DIRS}
    localize
    )

target_link_libraries(localize_ppk PUBLIC
    ${Boost_LIBRARIES}
    ${PCL_LIBRARIES}
    input
    system
    localize
    output
    adjust_ppk_by_locate
    dispatch
    serialize
    glog
    gflags
    )