Skip to content
Snippets Groups Projects
Commit 973e1ad0 authored by Pep Martí Saumell's avatar Pep Martí Saumell
Browse files

Strcture created. CMake environment configured

parents
No related branches found
No related tags found
No related merge requests found
# Pre-requisites about cmake itself
CMAKE_MINIMUM_REQUIRED(VERSION 2.4)
if(COMMAND cmake_policy)
cmake_policy(SET CMP0005 NEW)
cmake_policy(SET CMP0003 NEW)
endif(COMMAND cmake_policy)
# The project name and the type of project
PROJECT(gnss-utils)
SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/bin)
SET(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/lib)
SET(CMAKE_INSTALL_PREFIX /usr/local)
IF (NOT CMAKE_BUILD_TYPE)
SET(CMAKE_BUILD_TYPE "RELEASE")
ENDIF (NOT CMAKE_BUILD_TYPE)
SET(CMAKE_CXX_FLAGS_DEBUG "-g -Wall -D_REENTRANT")
SET(CMAKE_CXX_FLAGS_RELEASE "-O3 -D_REENTRANT")
#Set compiler according C++11 support
include(CheckCXXCompilerFlag)
CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
if(COMPILER_SUPPORTS_CXX11)
message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has C++11 support.")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
elseif(COMPILER_SUPPORTS_CXX0X)
message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has C++0x support.")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
else()
message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")
endif()
ADD_SUBDIRECTORY(src)
FIND_PACKAGE(Doxygen)
FIND_PATH(IRI_DOC_DIR doxygen.conf ${CMAKE_SOURCE_DIR}/doc/iri_doc/)
IF (IRI_DOC_DIR)
ADD_CUSTOM_TARGET (doc ${DOXYGEN_EXECUTABLE} ${CMAKE_SOURCE_DIR}/doc/iri_doc/doxygen.conf)
ELSE (IRI_DOC_DIR)
ADD_CUSTOM_TARGET (doc ${DOXYGEN_EXECUTABLE} ${CMAKE_SOURCE_DIR}/doc/doxygen.conf)
ENDIF (IRI_DOC_DIR)
ADD_CUSTOM_TARGET (distclean @echo cleaning cmake files)
IF (UNIX)
ADD_CUSTOM_COMMAND(
COMMENT "distribution clean"
COMMAND make ARGS clean
COMMAND rm ARGS -rf ${CMAKE_SOURCE_DIR}/build/*
TARGET distclean
)
ELSE(UNIX)
ADD_CUSTOM_COMMAND(
COMMENT "distclean only implemented in unix"
TARGET distclean
)
ENDIF(UNIX)
ADD_CUSTOM_TARGET (uninstall @echo uninstall package)
IF (UNIX)
ADD_CUSTOM_COMMAND(
COMMENT "uninstall package"
COMMAND xargs ARGS rm < install_manifest.txt
TARGET uninstall
)
ELSE(UNIX)
ADD_CUSTOM_COMMAND(
COMMENT "uninstall only implemented in unix"
TARGET uninstall
)
ENDIF(UNIX)
#edit the following line to add the librarie's header files
FIND_PATH(RTKLIB_INCLUDE_DIR rtklib.h /usr/include /usr/local/include ~/)
GET_FILENAME_COMPONENT(RTK_LIB_PATH ${RTKLIB_INCLUDE_DIR} DIRECTORY)
IF (RTKLIB_INCLUDE_DIR)
SET(RTKLIB_FOUND TRUE)
ENDIF (RTKLIB_INCLUDE_DIR)
IF (RTKLIB_FOUND)
IF (NOT RTKLIB_FOUND_QUIETLY)
MESSAGE(STATUS "Found RTKLIB: ${RTKLIB_INCLUDE_DIR}")
ENDIF (NOT RTKLIB_FOUND_QUIETLY)
ELSE (RTKLIB_FOUND)
IF (RTKLIB_FIND_REQUIRED)
MESSAGE(FATAL_ERROR "Could not find RTKLIB")
ENDIF (RTKLIB_FIND_REQUIRED)
ENDIF (RTKLIB_FOUND)
extern "C"
{
#include "src/rtklib.h"
}
# driver source files
SET(sources gnss_utils.cpp)
# application header files
SET(headers gnss_utils.h)
# RTKLIB
INCLUDE (${PROJECT_SOURCE_DIR}/cmake_modules/FindRTKLIB.cmake)
# Eigen #######
FIND_PACKAGE(Eigen3 REQUIRED)
# Boost #######
set(Boost_USE_STATIC_LIBS OFF)
set(Boost_USE_MULTITHREADED OFF)
set(Boost_USE_STATIC_RUNTIME OFF)
FIND_PACKAGE(Boost REQUIRED)
# Adding libraries' directories
link_directories(/usr/lib/x86_64-linux-gnu/)
# Adding include directories
INCLUDE_DIRECTORIES(. ${EIGEN3_INCLUDE_DIR} ${Boost_INCLUDE_DIRS} ${RTK_LIB_PATH})
# create the shared library
ADD_LIBRARY(gnss_utils SHARED ${sources})
TARGET_LINK_LIBRARIES(gnss_utils ${Boost_LIBRARIES})
# Installing
INSTALL(TARGETS
RUNTIME DESTINATION bin
LIBRARY DESTINATION /usr/local/lib
ARCHIVE DESTINATION lib)
INSTALL(FILES ${headers} DESTINATION include/gnss_utils)
INSTALL(FILES ../gnss_utils.cmake DESTINATION ${CMAKE_ROOT}/Modules/)
#include "../include/gnss_utils.h"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment