
find_package(Qt5 COMPONENTS Widgets LinguistTools REQUIRED)

set(CMAKE_AUTOUIC_SEARCH_PATHS forms)
set(CMAKE_INCLUDE_CURRENT_DIR ON)

file(GLOB launcher_src
	"include/*.h"
	"src/*.cpp"
)

file(GLOB launcher_forms
	"forms/*.ui"
)

file(GLOB launcher_res
	"res/*.qrc"
)

set(launcher_ts "ts/launcher_ru_RU.ts")

add_executable(launcher WIN32
	${launcher_src}
	${launcher_forms}
	${launcher_res}
	${launcher_ts}
)


target_link_libraries(launcher Qt5::Widgets)
target_link_libraries(launcher psapi)
target_link_libraries(launcher setupapi)
if (CLANG AND NOT MSVC)
target_link_libraries(launcher pthread)
endif()
#if (CLANG AND MSVC)
#target_link_libraries(launcher winpthread)
#endif()
target_include_directories(launcher PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/include" "${CMAKE_CURRENT_SOURCE_DIR}/src")
set_target_properties(launcher PROPERTIES AUTOUIC ON AUTOMOC ON AUTORCC ON)

if(MINGW)
	set_target_properties(launcher PROPERTIES LINK_FLAGS "${KYTY_LD_OPTIONS}")
endif()

add_dependencies(launcher KytyGitVersion)  

find_program(QT_WINDEPLOYQT NAMES windeployqt PATHS "${Qt5_DIR}/../../../bin")
if(NOT QT_WINDEPLOYQT)
	message(FATAL_ERROR "Could not find windeployqt")
endif()

set(launcher_name "launcher")

set_target_properties(launcher PROPERTIES OUTPUT_NAME ${launcher_name})

install(TARGETS launcher DESTINATION .)

install(CODE "
		execute_process(
			COMMAND ${QT_WINDEPLOYQT} \"\${CMAKE_INSTALL_PREFIX}/${launcher_name}.exe\"
                --no-svg
                --no-angle
                --no-opengl
                --no-opengl-sw
                --no-system-d3d-compiler
				--no-translations
		)
")


qt5_create_translation(QM_FILES ${launcher_src} ${launcher_forms} ${launcher_ts} OPTIONS -I ${CMAKE_SOURCE_DIR}/launcher/include)

set(tidy_dirs "${CMAKE_SOURCE_DIR}/launcher/include") 
set(iwyu_maps "${CMAKE_SOURCE_DIR}/launcher/utils/qt5_15.imp")

get_property(inc_headers TARGET launcher PROPERTY INCLUDE_DIRECTORIES)

list(APPEND inc_headers
	${CMAKE_SOURCE_DIR}/launcher
	${CMAKE_BINARY_DIR}/launcher/launcher_autogen/include
	${Qt5_DIR}/../../../include
	${Qt5_DIR}/../../../include/QtWidgets
	${Qt5_DIR}/../../../include/QtCore
	${Qt5_DIR}/../../../include/QtGui
)

include_what_you_use_with_mappings(launcher "${inc_headers}" "${iwyu_maps}")

clang_tidy_check(launcher "" "${tidy_dirs}" "${inc_headers}")
