set(CMAKE_INCLUDE_CURRENT_DIRS ON)

find_package(OpenGL REQUIRED)
find_package(epoxy REQUIRED)
find_package(X11 REQUIRED)
find_package(assimp REQUIRED)
find_package(PNG REQUIRED)

set(GAME_SRC
    main.cpp
    opengl.cpp
    glclasses.cpp
    game_window.cpp
    renderer.cpp

    developer_console.cpp

    renderer_polygon_2d/renderer_polygon_2d.cpp

    renderer_polygon_3d/renderer_polygon_3d.cpp
    renderer_polygon_3d/polygon_model.cpp
    renderer_polygon_3d/particle_batch.cpp
    renderer_polygon_3d/image_texture.cpp

    renderer_ray_tracer/renderer_ray_tracer.cpp

    network/session.cpp

    sound/sound_effects.cpp

    util.cpp
    game.cpp

    state/object.cpp
    state/explosion.cpp
    state/trace.cpp
    state/state.cpp
    state/player.cpp
    state/planet.cpp
    state/missile.cpp
    state/commands.cpp
    state/state.cpp
)

set(SOUND_LIBRARIES "")

    # TODO: make optional!
#set(GAME_SRC ${GAME_SRC} sound/sound.cpp)
#set(SOUND_LIBRARIES -lportaudio -lsndfile)
set(GAME_SRC ${GAME_SRC} sound/dummy_sound.cpp)

include_directories(${CMAKE_CURRENT_BINARY_DIR})
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
include_directories(${OPENGL_INCLUDE_DIR})
include_directories(${PNG_INCLUDE_DIR})
include_directories(${CMAKE_SOURCE_DIR}/libs/glm/)
include_directories(${CMAKE_SOURCE_DIR}/libs/asio/asio/include/)
include_directories(${assimp_INCLUDE_DIRS})

add_executable(game ${GAME_SRC})
setup_target(game)

target_link_libraries(game X11 epoxy pthread ${assimp_LIBRARIES} assimp
    ${SOUND_LIBRARIES} ${PNG_LIBRARIES})
