# Protobuf # first try the package provided config find_package(Protobuf CONFIG) if(NOT Protobuf_FOUND) # Fall back to the CMake provide module find_package(Protobuf MODULE REQUIRED) endif() add_library(mixxx-proto OBJECT) if(TARGET protobuf::libprotobuf-lite) target_link_libraries(mixxx-proto PUBLIC protobuf::libprotobuf-lite) elseif(TARGET protobuf::libprotobuf) target_link_libraries(mixxx-proto PUBLIC protobuf::libprotobuf) else() message( FATAL_ERROR "Protobuf or Protobuf-lite libraries are required to compile Mixxx." ) endif() if(EMSCRIPTEN) # If we try linking in a proto lib built without -pthread we get # wasm-ld: error: --shared-memory is disallowed by keys.pb.cc.o # because it was not compiled with 'atomics' or 'bulk-memory' features. # See https://groups.google.com/g/emscripten-discuss/c/G4nwFprZFYo target_compile_options(mixxx-proto PRIVATE -pthread) endif() protobuf_generate( LANGUAGE cpp TARGET mixxx-proto PROTOS beats.proto headers.proto keys.proto skin.proto waveform.proto )