Skip to content

Instantly share code, notes, and snippets.

@alef
Created February 11, 2021 20:59
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alef/f1fce3d795511d40dab305c587a4b21c to your computer and use it in GitHub Desktop.
Save alef/f1fce3d795511d40dab305c587a4b21c to your computer and use it in GitHub Desktop.
Creates protobuf for blendwarf.py
cmake_minimum_required(VERSION 3.17)
project(blendwarf NONE)
include(ExternalProject)
ExternalProject_Add(protobuf
URL https://github.com/protocolbuffers/protobuf/releases/download/v3.14.0/protobuf-python-3.14.0.zip
SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/protobuf"
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
)
ExternalProject_Add(protoc
URL https://github.com/protocolbuffers/protobuf/releases/download/v3.14.0/protoc-3.14.0-win64.zip
SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/protoc"
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
)
add_custom_command(OUTPUT setupbuf
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/protoc/bin/protoc.exe ${CMAKE_CURRENT_SOURCE_DIR}/protobuf/src
COMMAND python setup.py build
COMMAND python setup.py install --root ${CMAKE_CURRENT_BINARY_DIR}
DEPENDS protoc protobuf
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/protobuf/python
)
add_custom_command(OUTPUT protos
COMMAND protoc.exe
-I${CMAKE_CURRENT_SOURCE_DIR}/protos
--python_out=${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/protos/RemoteFortressReader.proto
${CMAKE_CURRENT_SOURCE_DIR}/protos/ItemdefInstrument.proto
${CMAKE_CURRENT_SOURCE_DIR}/protos/CoreProtocol.proto
${CMAKE_CURRENT_SOURCE_DIR}/protos/Basic.proto
${CMAKE_CURRENT_SOURCE_DIR}/protos/BasicApi.proto
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/protoc/bin
)
add_custom_target(DONE ALL
DEPENDS setupbuf protos
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment