From a217514592896e360e29381504c95f308da88889 Mon Sep 17 00:00:00 2001 From: Heiko Thiel Date: Fri, 10 May 2019 16:53:59 +0200 Subject: Added CMake support to generate a static library --- CMakeLists.txt | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 CMakeLists.txt (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..05eb9f2 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,78 @@ +cmake_minimum_required(VERSION 3.1) +project(NemaTode VERSION 1.1) + +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_EXTENSIONS OFF) + +set(CMAKE_RELEASE_POSTFIX "" CACHE STRING "Add postfix to target for Release build.") +set(CMAKE_DEBUG_POSTFIX "d" CACHE STRING "Add postfix to target for Debug build.") +set(CMAKE_RELWITHDEBINFO_POSTFIX "rd" CACHE STRING "Add postfix to target for RelWithDebInfo build.") +set(CMAKE_MINSIZEREL_POSTFIX "s" CACHE STRING "Add postfix to target for MinSizeRel build") + +set(headers + include/nmeaparse/Event.h + include/nmeaparse/GPSFix.h + include/nmeaparse/GPSService.h + include/nmeaparse/nmea.h + include/nmeaparse/NMEACommand.h + include/nmeaparse/NMEAParser.h + include/nmeaparse/NumberConversion.h +) + +set(sources + src/GPSFix.cpp + src/GPSService.cpp + src/NMEACommand.cpp + src/NMEAParser.cpp + src/NumberConversion.cpp +) + +add_library(${PROJECT_NAME} STATIC ${headers} ${sources}) + +set_target_properties(${PROJECT_NAME} PROPERTIES + VERSION ${PROJECT_VERSION} + SOVERSION 1 +) + +target_include_directories(${PROJECT_NAME} PUBLIC + $ + $ +) + +include(GNUInstallDirs) +set(INSTALL_CONFIGDIR ${CMAKE_INSTALL_LIBDIR}/cmake) + +install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) + +# We have no other dependencies, so we export direct to NemaTodeConfig +# instead of using write_basic_package_version_file to generate a helper file +install(TARGETS ${PROJECT_NAME} + EXPORT NemaTodeConfig + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + PUBLIC_HEADER DESTINATION include +) + +install(EXPORT NemaTodeConfig + DESTINATION ${INSTALL_CONFIGDIR} + NAMESPACE ${PROJECT_NAME}:: +) + +include(CMakePackageConfigHelpers) +write_basic_package_version_file( + ${CMAKE_CURRENT_BINARY_DIR}/NemaTodeVersion.cmake + COMPATIBILITY SameMajorVersion +) +install( + FILES ${CMAKE_CURRENT_BINARY_DIR}/NemaTodeVersion.cmake + DESTINATION ${INSTALL_CONFIGDIR} +) + +# build demo_advanced +add_executable(demo_advanced demo_advanced.cpp) +target_link_libraries(demo_advanced ${PROJECT_NAME}) + +# build demo_simple +add_executable(demo_simple demo_simple.cpp) +target_link_libraries(demo_simple ${PROJECT_NAME}) \ No newline at end of file -- cgit v1.2.3