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")