wl_library(logic_widelands_geometry
  SRCS
    widelands_geometry.cc
    widelands_geometry.h
)

wl_library(logic_game_settings
  SRCS
    game_settings.h
    single_player_game_settings_provider.cc
    single_player_game_settings_provider.h
  DEPENDS
    ai
    base_exceptions
    io_filesystem
    logic
    scripting_lua_interface
    scripting_lua_table
)

wl_library(logic_game_controller
  SRCS
    game_controller.h
    replay_game_controller.h
    replay_game_controller.cc
    single_player_game_controller.h
    single_player_game_controller.cc
  DEPENDS
    ai
    logic
    profile
    ui_basic
    widelands_ball_of_mud
    wui
)

wl_library(logic_campaign_visibility
  SRCS
    campaign_visibility.cc
    campaign_visibility.h
  DEPENDS
    base_exceptions
    io_filesystem
    profile
)

wl_library(logic
  SRCS
    backtrace.cc
    backtrace.h
    cmd_calculate_statistics.cc
    cmd_calculate_statistics.h
    cmd_delete_message.cc
    cmd_delete_message.h
    cmd_incorporate.cc
    cmd_incorporate.h
    cmd_luacoroutine.cc
    cmd_luacoroutine.h
    cmd_luascript.cc
    cmd_luascript.h
    cmd_queue.cc
    cmd_queue.h
    constants.h
    cookie_priority_queue.h
    description_maintainer.h
    editor_game_base.cc
    editor_game_base.h
    field.cc
    field.h
    findbob.cc
    findbob.h
    findimmovable.cc
    findimmovable.h
    findnode.cc
    findnode.h
    game_data_error.cc
    game_data_error.h
    game.cc
    game.h
    map_revision.cc
    map_revision.h
    map.cc
    map.h
    mapastar.cc
    mapastar.h
    mapdifferenceregion.cc
    mapdifferenceregion.h
    mapfringeregion.cc
    mapfringeregion.h
    maphollowregion.cc
    maphollowregion.h
    mapregion.h
    maptriangleregion.cc
    maptriangleregion.h
    message_id.h
    message_queue.h
    message.h
    nodecaps.h
    objective.h
    path.cc
    path.h
    pathfield.cc
    pathfield.h
    player_area.h
    player.cc
    player.h
    playercommand.cc
    playercommand.h
    playersmanager.cc
    playersmanager.h
    queue_cmd_factory.cc
    queue_cmd_factory.h
    queue_cmd_ids.h
    replay.cc
    replay.h
    roadtype.h
    save_handler.cc
    save_handler.h
    widelands_geometry_io.cc
    widelands_geometry_io.h
    widelands.h
    map_objects/attackable.h
    map_objects/bob.cc
    map_objects/bob.h
    map_objects/buildcost.cc
    map_objects/buildcost.h
    map_objects/checkstep.cc
    map_objects/checkstep.h
    map_objects/immovable_program.h
    map_objects/immovable.cc
    map_objects/immovable.h
    map_objects/map_object.cc
    map_objects/map_object.h
    map_objects/terrain_affinity.cc
    map_objects/terrain_affinity.h
    map_objects/walkingdir.cc
    map_objects/walkingdir.h
    map_objects/tribes/battle.cc
    map_objects/tribes/battle.h
    map_objects/tribes/bill_of_materials.h
    map_objects/tribes/building.cc
    map_objects/tribes/building.h
    map_objects/tribes/carrier.cc
    map_objects/tribes/carrier.h
    map_objects/tribes/constructionsite.cc
    map_objects/tribes/constructionsite.h
    map_objects/tribes/dismantlesite.cc
    map_objects/tribes/dismantlesite.h
    map_objects/tribes/militarysite.cc
    map_objects/tribes/militarysite.h
    map_objects/tribes/partially_finished_building.cc
    map_objects/tribes/partially_finished_building.h
    map_objects/tribes/production_program.cc
    map_objects/tribes/production_program.h
    map_objects/tribes/productionsite.cc
    map_objects/tribes/productionsite.h
    map_objects/tribes/program_result.h
    map_objects/tribes/requirements.cc
    map_objects/tribes/requirements.h
    map_objects/tribes/road_textures.cc
    map_objects/tribes/road_textures.h
    map_objects/tribes/ship.cc
    map_objects/tribes/ship.h
    map_objects/tribes/soldier.cc
    map_objects/tribes/soldier.h
    map_objects/tribes/soldiercontrol.h
    map_objects/tribes/training_attribute.h
    map_objects/tribes/trainingsite.cc
    map_objects/tribes/trainingsite.h
    map_objects/tribes/tribe_basic_info.cc
    map_objects/tribes/tribe_basic_info.h
    map_objects/tribes/tribe_descr.cc
    map_objects/tribes/tribe_descr.h
    map_objects/tribes/tribes.cc
    map_objects/tribes/tribes.h
    map_objects/tribes/ware_descr.cc
    map_objects/tribes/ware_descr.h
    map_objects/tribes/warehouse.cc
    map_objects/tribes/warehouse.h
    map_objects/tribes/warelist.cc
    map_objects/tribes/warelist.h
    map_objects/tribes/wareworker.h
    map_objects/tribes/workarea_info.h
    map_objects/tribes/worker_descr.cc
    map_objects/tribes/worker_descr.h
    map_objects/tribes/worker_program.cc
    map_objects/tribes/worker_program.h
    map_objects/tribes/worker.cc
    map_objects/tribes/worker.h
    map_objects/world/critter_program.h
    map_objects/world/critter.cc
    map_objects/world/critter.h
    map_objects/world/editor_category.cc
    map_objects/world/editor_category.h
    map_objects/world/map_gen.cc
    map_objects/world/map_gen.h
    map_objects/world/resource_description.cc
    map_objects/world/resource_description.h
    map_objects/world/terrain_description.cc
    map_objects/world/terrain_description.h
    map_objects/world/world.cc
    map_objects/world/world.h
  # TODO(sirver): Uses SDL2 only on WIN32 for a dirty hack.
  USES_SDL2
  DEPENDS
    ai
    base_exceptions
    base_geometry
    base_i18n
    base_log
    base_macros
    base_md5
    base_scoped_timer
    base_time_string
    build_info
    economy
    editor
    game_io
    graphic
    graphic_color
    graphic_image_io
    graphic_surface
    graphic_text_layout
    helper
    io_fileread
    io_filesystem
    io_stream
    logic_game_controller
    logic_game_settings
    logic_widelands_geometry
    map_io
    map_io_map_loader
    network
    notifications
    random
    scripting_coroutine
    scripting_logic
    scripting_lua_interface
    scripting_lua_table
    sound
    ui_basic
    widelands_ball_of_mud
    wui
    wui_mapview_pixelfunctions
)
