# CMakeLists for common directory
#
# provides the protobuf interfaces

CMAKE_MINIMUM_REQUIRED(VERSION 2.6)

SET(PROTO_FILES
    admin_commands.proto
    card_attributes.proto
    color.proto
    command_attach_card.proto
    command_change_zone_properties.proto
    command_concede.proto
    command_create_arrow.proto
    command_create_counter.proto
    command_create_token.proto
    command_deck_del_dir.proto
    command_deck_del.proto
    command_deck_download.proto
    command_deck_list.proto
    command_deck_new_dir.proto
    command_deck_select.proto
    command_deck_upload.proto
    command_del_counter.proto
    command_delete_arrow.proto
    command_draw_cards.proto
    command_dump_zone.proto
    command_flip_card.proto
    command_game_say.proto
    command_inc_card_counter.proto
    command_inc_counter.proto
    command_kick_from_game.proto
    command_leave_game.proto
    command_move_card.proto
    command_mulligan.proto
    command_next_turn.proto
    command_ready_start.proto
    command_replay_delete_match.proto
    command_replay_list.proto
    command_replay_download.proto
    command_replay_modify_match.proto
    command_reveal_cards.proto
    command_roll_die.proto
    command_set_active_phase.proto
    command_set_card_attr.proto
    command_set_card_counter.proto
    command_set_counter.proto
    command_set_sideboard_plan.proto
    command_set_sideboard_lock.proto
    command_shuffle.proto
    commands.proto
    command_stop_dump_zone.proto
    command_undo_draw.proto
    context_concede.proto
    context_connection_state_changed.proto
    context_deck_select.proto
    context_move_card.proto
    context_mulligan.proto
    context_ping_changed.proto
    context_ready_start.proto
    context_set_sideboard_lock.proto
    context_undo_draw.proto
    event_add_to_list.proto
    event_attach_card.proto
    event_change_zone_properties.proto
    event_connection_closed.proto
    event_create_arrow.proto
    event_create_counter.proto
    event_create_token.proto
    event_del_counter.proto
    event_delete_arrow.proto
    event_destroy_card.proto
    event_draw_cards.proto
    event_dump_zone.proto
    event_flip_card.proto
    event_game_closed.proto
    event_game_host_changed.proto
    event_game_joined.proto
    event_game_say.proto
    event_game_state_changed.proto
    event_join.proto
    event_join_room.proto
    event_kicked.proto
    event_leave.proto
    event_leave_room.proto
    event_list_games.proto
    event_list_rooms.proto
    event_move_card.proto
    event_player_properties_changed.proto
    event_remove_from_list.proto
    event_replay_added.proto
    event_reveal_cards.proto
    event_roll_die.proto
    event_room_say.proto
    event_server_complete_list.proto
    event_server_identification.proto
    event_server_message.proto
    event_server_shutdown.proto
    event_set_active_phase.proto
    event_set_active_player.proto
    event_set_card_attr.proto
    event_set_card_counter.proto
    event_set_counter.proto
    event_shuffle.proto
    event_stop_dump_zone.proto
    event_user_joined.proto
    event_user_left.proto
    event_user_message.proto
    game_commands.proto
    game_event_container.proto
    game_event_context.proto
    game_event.proto
    game_replay.proto
    isl_message.proto
    moderator_commands.proto
    move_card_to_zone.proto
    response_deck_download.proto
    response_deck_list.proto
    response_deck_upload.proto
    response_dump_zone.proto
    response_get_games_of_user.proto
    response_get_user_info.proto
    response_join_room.proto
    response_list_users.proto
    response_login.proto
    response_replay_download.proto
    response_replay_list.proto
    response.proto
    room_commands.proto
    room_event.proto
    serverinfo_arrow.proto
    serverinfo_cardcounter.proto
    serverinfo_card.proto
    serverinfo_counter.proto
    serverinfo_deckstorage.proto
    serverinfo_game.proto
    serverinfo_gametype.proto
    serverinfo_playerping.proto
    serverinfo_playerproperties.proto
    serverinfo_player.proto
    serverinfo_replay.proto
    serverinfo_replay_match.proto
    serverinfo_room.proto
    serverinfo_user.proto
    serverinfo_zone.proto
    server_message.proto
    session_commands.proto
    session_event.proto
)

include_directories(${PROTOBUF_INCLUDE_DIRS})
include_directories(${CMAKE_CURRENT_BINARY_DIR})
PROTOBUF_GENERATE_CPP(PROTO_SRCS PROTO_HDRS ${PROTO_FILES})

add_library(cockatrice_protocol ${PROTO_SRCS} ${PROTO_HDRS})
set(cockatrice_protocol_LIBS ${PROTOBUF_LIBRARIES})
if (MSVC)
    set(cockatrice_protocol_LIBS ${cockatrice_protocol_LIBS} -lprotobuf)
endif (MSVC)
if (UNIX)
    set(cockatrice_protocol_LIBS ${cockatrice_protocol_LIBS} -lpthread)
endif (UNIX)
target_link_libraries(cockatrice_protocol ${cockatrice_protocol_LIBS})
