36 lines
1.2 KiB
CMake
36 lines
1.2 KiB
CMake
cmake_minimum_required(VERSION 3.18.2)
|
|
project(perspective-protos)
|
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
|
|
|
option(PSP_PROTO_PATH "Path to the perspective proto directory" "")
|
|
|
|
if(NOT DEFINED psp_build_message)
|
|
function(psp_build_message message)
|
|
set(BUILD_MESSAGE "${BUILD_MESSAGE}\n${message}")
|
|
endfunction()
|
|
endif()
|
|
|
|
# Include the FindProtobuf.cmake module
|
|
list(APPEND CMAKE_MODULE_PATH "../../cmake/modules")
|
|
|
|
find_package(Protoc REQUIRED)
|
|
find_package(InstallDependency REQUIRED)
|
|
|
|
if(NOT DEFINED PSP_CMAKE_MODULE_PATH)
|
|
set(PSP_CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../cmake")
|
|
message(STATUS "PSP_CMAKE_MODULE_PATH not defined, using ${PSP_CMAKE_MODULE_PATH}")
|
|
endif()
|
|
|
|
psp_build_dep("protobuf" "${PSP_CMAKE_MODULE_PATH}/protobuf.txt.in")
|
|
|
|
set(PROTO_FILES "${PSP_PROTO_PATH}/perspective.proto")
|
|
|
|
protobuf_generate_cpp(PROTO_SRCS PROTO_HDRS ${PROTO_FILES})
|
|
add_library(protos STATIC ${PROTO_SRCS} ${PROTO_HDRS})
|
|
target_include_directories(protos PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/protobuf-src/src)
|
|
target_include_directories(protos PUBLIC ${CMAKE_BINARY_DIR}/protos-build)
|
|
target_link_libraries(protos protobuf::libprotobuf) |