cmake_minimum_required(VERSION 3.8)

project(game CXX)

file(GLOB_RECURSE sources
  src/*.cpp src/*.h
)

include_directories(${PROJECT_BINARY_DIR}/src/)

include_directories(src/)

# Find dependencies
find_package(libmysql REQUIRED)
find_package(Boost COMPONENTS system REQUIRED)
find_package(DevIL REQUIRED)
find_package(LZO REQUIRED)
find_package(cryptopp CONFIG REQUIRED)

add_executable(${PROJECT_NAME} ${sources})

# Link dependencies if found
target_link_libraries (${PROJECT_NAME} ${MYSQL_LIBRARIES})

# Crypto++
target_link_libraries (${PROJECT_NAME} cryptopp-static)

# Boost
include_directories(${Boost_INCLUDE_DIR})
target_link_libraries (${PROJECT_NAME} ${Boost_LIBRARIES})

# Libevent
find_package(Libevent CONFIG REQUIRED)
target_link_libraries(${PROJECT_NAME} libevent::core libevent::extra libevent::pthreads)

if (IL_FOUND)
  include_directories(${IL_INCLUDE_DIR})
  target_link_libraries (${PROJECT_NAME} ${IL_LIBRARIES})
endif (IL_FOUND)

if (LZO_FOUND)
  include_directories(${LZO_INCLUDE_DIR})
  target_link_libraries (${PROJECT_NAME} ${LZO_LIBRARIES})
endif (LZO_FOUND)


# Pthreads
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package (Threads REQUIRED)
target_link_libraries (${PROJECT_NAME} Threads::Threads)

target_link_libraries(${PROJECT_NAME} libgame libpoly libsql libthecore liblua)