cmake_minimum_required(VERSION 3.14.4)

message(STATUS "Using CMake ${CMAKE_VERSION}")

include(cmake/add_files.cmake)
include(cmake/create_source_groups.cmake)

# Project ----------------------------------------------------------------------

project(DotaFactory)

set(CMAKE_BUILD_TYPE_INIT "Release")


# Qt ---------------------------------------------------------------------------

find_package(Qt5 COMPONENTS Widgets Network Multimedia Charts REQUIRED)

if(Qt5Widgets_FOUND)
	message(STATUS "Found Qt ${Qt5Widgets_VERSION_STRING}")

	# FIX: Qt was built with -reduce-relocations
	if (Qt5_POSITION_INDEPENDENT_CODE)
		SET(CMAKE_POSITION_INDEPENDENT_CODE ON)
	endif()
endif()


# Setup ---------------------------------------------------------------------------

get_filename_component(QT_BINARY_DIR "${QT_MOC_EXECUTABLE}" PATH)
set(QT_PLUGINS_DIR "${QT_BINARY_DIR}/../plugins")

function(COPY_QT_BINARIES TARGET_DIR IS_DEBUG)
	set(SUFFIX "")
	if (IS_DEBUG)
		set(SUFFIX "d")
	endif()

	set(CONFIGURATION "Release")
	if (IS_DEBUG)
		set(CONFIGURATION "Debug")
	endif()

	if(CMAKE_CL_64)
		set(BITS "64")
	else()
		set(BITS "32")
	endif()
	
	configure_file("${QT_BINARY_DIR}/Qt5Charts${SUFFIX}.dll" "${TARGET_DIR}/Qt5Charts${SUFFIX}.dll" COPYONLY)
	configure_file("${QT_BINARY_DIR}/Qt5Core${SUFFIX}.dll" "${TARGET_DIR}/Qt5Core${SUFFIX}.dll" COPYONLY)
	configure_file("${QT_BINARY_DIR}/Qt5Gui${SUFFIX}.dll" "${TARGET_DIR}/Qt5Gui${SUFFIX}.dll" COPYONLY)
	configure_file("${QT_BINARY_DIR}/Qt5Network${SUFFIX}.dll" "${TARGET_DIR}/Qt5Network${SUFFIX}.dll" COPYONLY)
	configure_file("${QT_BINARY_DIR}/Qt5Widgets${SUFFIX}.dll" "${TARGET_DIR}/Qt5Widgets${SUFFIX}.dll" COPYONLY)
	configure_file("${QT_BINARY_DIR}/Qt5Multimedia${SUFFIX}.dll" "${TARGET_DIR}/Qt5Multimedia${SUFFIX}.dll" COPYONLY)
endfunction(COPY_QT_BINARIES)


# Src ----------------------------------------------------------------------

find_package(OpenGL REQUIRED)

add_subdirectory(src)

