119 lines
3.2 KiB
CMake
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")
|