cmake_minimum_required(VERSION 2.8) project(nanopb C) set(nanopb_VERSION_STRING nanopb-0.3.8-dev) string(REPLACE "nanopb-" "" nanopb_VERSION ${nanopb_VERSION_STRING}) option(nanopb_MSVC_STATIC_RUNTIME "Link static runtime libraries" ON) if(NOT DEFINED CMAKE_DEBUG_POSTFIX) set(CMAKE_DEBUG_POSTFIX "d") endif() if(MSVC AND nanopb_MSVC_STATIC_RUNTIME) foreach(flag_var CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO) if(${flag_var} MATCHES "/MD") string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}") endif(${flag_var} MATCHES "/MD") endforeach(flag_var) endif() add_library(libprotobuf-nanopb STATIC pb.h pb_common.h pb_common.c pb_encode.h pb_encode.c pb_decode.h pb_decode.c) target_include_directories(libprotobuf-nanopb INTERFACE $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}> ) include(GNUInstallDirs) if(NOT DEFINED CMAKE_INSTALL_CMAKEDIR) set(CMAKE_INSTALL_CMAKEDIR "lib/cmake/nanopb") endif() install(TARGETS libprotobuf-nanopb EXPORT nanopb-targets ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) install(EXPORT nanopb-targets DESTINATION ${CMAKE_INSTALL_CMAKEDIR} NAMESPACE nanopb::) configure_file(extra/nanopb-config-version.cmake.in nanopb-config-version.cmake @ONLY) install(FILES extra/nanopb-config.cmake ${CMAKE_CURRENT_BINARY_DIR}/nanopb-config-version.cmake DESTINATION ${CMAKE_INSTALL_CMAKEDIR}) install(FILES pb.h pb_common.h pb_encode.h pb_decode.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})