owlps/owlps-positioner/CMakeLists.txt

119 lines
3.2 KiB
CMake

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(EXTRA_LIBS ${EXTRA_LIBS} ${Boost_LIBRARIES} m)
# On Linux and other GNU systems (e.g. GNU/kFreeBSD), we need -lrt for
# clock_gettime()
string(REGEX MATCH "^GNU" GNU_SYSTEM ${CMAKE_SYSTEM_NAME})
if ("${GNU_SYSTEM}" OR ${CMAKE_SYSTEM_NAME} STREQUAL Linux)
set(EXTRA_LIBS ${EXTRA_LIBS} rt)
endif()
set(OWLPS_POSITIONER_SRC_FILES
src/accesspoint.cc
src/accesspointsreadercsv.cc
src/area.cc
src/autocalibration.cc
src/building.cc
src/calibrationrequest.cc
src/cartographyalgorithm.cc
src/configuration.cc
src/csvfilereader.cc
src/csvstringreader.cc
src/direction.cc
src/fbcm.cc
src/frbhmbasic.cc
src/input.cc
src/inputcsv.cc
src/inputdatareader.cc
src/inputlogcsv.cc
src/inputmedium.cc
src/inputudpsocket.cc
src/interlinknetworks.cc
src/measurement.cc
src/minmax.cc
src/mobile.cc
src/mobilesreadercsv.cc
src/nss.cc
src/output.cc
src/outputcsv.cc
src/outputnetworksocket.cc
src/outputtcpsocketevaal.cc
src/outputterminal.cc
src/outputudpsocket.cc
src/owlps-positionerd.cc
src/point3d.cc
src/posexcept.cc
src/positioning.cc
src/posutil.cc
src/realposition.cc
src/referencepoint.cc
src/request.cc
src/result.cc
src/resultlist.cc
src/stock.cc
src/textfilereader.cc
src/textfilewriter.cc
src/timestamp.cc
src/topologyreadercsv.cc
src/trilaterationalgorithm.cc
src/userinterface.cc
src/waypoint.cc
src/wifidevice.cc
)
add_executable(owlps-positionerd
${OWLPS_POSITIONER_SRC_FILES})
target_link_libraries(owlps-positionerd
libowlps.so
${EXTRA_LIBS})
install(
TARGETS owlps-positionerd
DESTINATION bin)
add_executable(owlps-positionerd.semistatic EXCLUDE_FROM_ALL
${OWLPS_POSITIONER_SRC_FILES})
target_link_libraries(owlps-positionerd.semistatic
libowlps.a
${EXTRA_LIBS})
# Add the semistatic target to the global list of semistatic targets
list(APPEND OWLPS_SEMISTATIC_TARGETS owlps-positionerd.semistatic)
set(OWLPS_SEMISTATIC_TARGETS ${OWLPS_SEMISTATIC_TARGETS} PARENT_SCOPE)
add_executable(owlps-positionerd.static EXCLUDE_FROM_ALL
${OWLPS_POSITIONER_SRC_FILES})
set_target_properties(owlps-positionerd.static
PROPERTIES LINK_FLAGS -static)
target_link_libraries(owlps-positionerd.static
libowlps.a
${EXTRA_LIBS})
# Add the static target to the global list of static targets
list(APPEND OWLPS_STATIC_TARGETS owlps-positionerd.static)
set(OWLPS_STATIC_TARGETS ${OWLPS_STATIC_TARGETS} PARENT_SCOPE)
### Extra targets ###
# Indentation
set(INDENTER astyle --style=gnu --indent=spaces=2 --formatted --recursive)
add_custom_target(indent_positioner
${INDENTER} src/*.cc src/*.hh
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
COMMENT "Reindenting source files"
VERBATIM)
# cppcheck
set(CODE_CHECKER cppcheck --quiet --enable=all)
add_custom_target(check_positioner
${CODE_CHECKER} src/*.hh src/*.cc
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
COMMENT "Checking source code")
# Documentation
set(DOXYGEN OWLPS_VERSION=${OWLPS_VERSION} doxygen >/dev/null)
set(DOXYFILE Doxyfile)
add_custom_target(doc_positioner
${DOXYGEN} ${DOXYFILE}
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
COMMENT "Generating Doxygen documentation for OwlPS Positioner")