cmake_minimum_required(VERSION 2.4.6) include($ENV{ROS_ROOT}/core/rosbuild/rosbuild.cmake) # Set the build type. Options are: # Coverage : w/ debug symbols, w/o optimization, w/ code-coverage # Debug : w/ debug symbols, w/o optimization # Release : w/o debug symbols, w/ optimization # RelWithDebInfo : w/ debug symbols, w/ optimization # MinSizeRel : w/o debug symbols, w/ optimization, stripped binaries #set(ROS_BUILD_TYPE RelWithDebInfo) rosbuild_init() #set the default path for built executables to the "bin" directory set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin) #set the default path for built libraries to the "lib" directory set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib) #check for libpq's configure tool find_program(PG_CONFIG NAMES pg_config DOC "libpq config tool") if (NOT PG_CONFIG) message(FATAL_ERROR "Couldn't find pg_config. Is libpq installed?") endif(NOT PG_CONFIG) find_package(PkgConfig) pkg_check_modules(SQLITE3 REQUIRED sqlite3) include_directories(${SQLITE3_INCLUDE_DIRS}) link_directories(${SQLITE3_LIBRARY_DIRS}) #get the libpq include and lib directories execute_process( COMMAND pg_config --includedir ERROR_VARIABLE IGNORE_VAR OUTPUT_VARIABLE PQ_INCLUDE_DIR OUTPUT_STRIP_TRAILING_WHITESPACE) execute_process( COMMAND pg_config --libdir ERROR_VARIABLE IGNORE_VAR OUTPUT_VARIABLE PQ_LIB_DIR OUTPUT_STRIP_TRAILING_WHITESPACE) include(CheckIncludeFiles) set(CMAKE_REQUIRED_INCLUDES ${PQ_INCLUDE_DIR}) check_include_files(libpq-fe.h HAVE_LIBPQ) if (NOT HAVE_LIBPQ) message(FATAL_ERROR "Error: PostgreSQL implementation cannot find libpq-fe.h") endif(NOT HAVE_LIBPQ) #uncomment if you have defined messages #rosbuild_genmsg() #uncomment if you have defined services #rosbuild_gensrv() #common commands for building c++ executables and libraries #rosbuild_add_library(${PROJECT_NAME} src/example.cpp) #target_link_libraries(${PROJECT_NAME} another_library) #rosbuild_add_boost_directories() #rosbuild_link_boost(${PROJECT_NAME} thread) link_directories(${PQ_LIB_DIR}) include_directories(${PQ_INCLUDE_DIR}) rosbuild_add_executable(remote_monitor src/remote_monitor.cpp) target_link_libraries(remote_monitor pq) #target_link_libraries(example ${PROJECT_NAME})