# We need to keep this code into separate directory so CMake will execute it after all other subdirectories install code
# Otherwise we can't fix Mac bundle dependencies since binaries wouldn't be there when this code executed
if(APPLE)
	set(bundleDir "\${CMAKE_INSTALL_PREFIX}/${APP_BUNDLE_DIR}")
	set(bundleContentsDir "${bundleDir}/Contents")

	if(ENABLE_LAUNCHER)
		# cross-compiled Qt 5 builds macdeployqt for target platform instead of host
		if(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL CMAKE_SYSTEM_PROCESSOR)
			# deploy Qt dylibs with macdeployqt
			find_program(TOOL_MACDEPLOYQT NAMES macdeployqt PATHS ${qt_base_dir}/bin)
			if(NOT TOOL_MACDEPLOYQT)
				message(FATAL_ERROR "Could not find macdeployqt")
			endif()
			install(CODE "
				execute_process(COMMAND
					\"${TOOL_MACDEPLOYQT}\" \"${bundleDir}\" -verbose=2
				)
			")
		else()
			# simulate macdeployqt behavior, main Qt libs are copied by conan
			get_target_property(qmakePath Qt5::qmake IMPORTED_LOCATION)
			execute_process(COMMAND
				"${qmakePath}" -query QT_INSTALL_PLUGINS
				OUTPUT_VARIABLE qtPluginsDir
				OUTPUT_STRIP_TRAILING_WHITESPACE
			)
			install(DIRECTORY
				${qtPluginsDir}/
				DESTINATION ${APP_BUNDLE_DIR}/Contents/PlugIns
			)
			install(CODE "
				file(WRITE ${bundleContentsDir}/Resources/qt.conf
					\"[Paths]\nPlugins = PlugIns\"
				)
			")
		endif()
	endif()

	# deploy other dylibs with conan
	install(CODE "
		execute_process(COMMAND
			conan imports \"${CMAKE_SOURCE_DIR}\" --install-folder \"${CMAKE_SOURCE_DIR}/conan-generated\" --import-folder \"${bundleContentsDir}\"
		)
		file(REMOVE \"${bundleContentsDir}/conan_imports_manifest.txt\")
	")
endif(APPLE)

# This will likely only work for Vcpkg
if(WIN32)
	if(ENABLE_LAUNCHER)
		# Temporary ugly fix for Qt deployment since windeployqt broken in Vcpkg

		#there are some weird issues with variables used in path not evaluated properly when trying to remove code duplication from below lines
		if(EXISTS ${CMAKE_BINARY_DIR}/../../vcpkg) #current path to vcpkg main folder on appveyor CI
			if(CMAKE_SIZEOF_VOID_P EQUAL 8) #64 bit build
				install(CODE "
					file(COPY ${CMAKE_BINARY_DIR}/../../vcpkg/installed/x64-windows/plugins/bearer DESTINATION \${CMAKE_INSTALL_PREFIX})
					file(COPY ${CMAKE_BINARY_DIR}/../../vcpkg/installed/x64-windows/plugins/iconengines DESTINATION \${CMAKE_INSTALL_PREFIX})
					file(COPY ${CMAKE_BINARY_DIR}/../../vcpkg/installed/x64-windows/plugins/imageformats DESTINATION \${CMAKE_INSTALL_PREFIX})
					file(COPY ${CMAKE_BINARY_DIR}/../../vcpkg/installed/x64-windows/plugins/platforminputcontexts DESTINATION \${CMAKE_INSTALL_PREFIX})
					file(COPY ${CMAKE_BINARY_DIR}/../../vcpkg/installed/x64-windows/plugins/platforms DESTINATION \${CMAKE_INSTALL_PREFIX})
				")
			else()
				install(CODE "
					file(COPY ${CMAKE_BINARY_DIR}/../../vcpkg/installed/x86-windows/plugins/bearer DESTINATION \${CMAKE_INSTALL_PREFIX})
					file(COPY ${CMAKE_BINARY_DIR}/../../vcpkg/installed/x86-windows/plugins/iconengines DESTINATION \${CMAKE_INSTALL_PREFIX})
					file(COPY ${CMAKE_BINARY_DIR}/../../vcpkg/installed/x86-windows/plugins/imageformats DESTINATION \${CMAKE_INSTALL_PREFIX})
					file(COPY ${CMAKE_BINARY_DIR}/../../vcpkg/installed/x86-windows/plugins/platforminputcontexts DESTINATION \${CMAKE_INSTALL_PREFIX})
					file(COPY ${CMAKE_BINARY_DIR}/../../vcpkg/installed/x86-windows/plugins/platforms DESTINATION \${CMAKE_INSTALL_PREFIX})
				")
			endif()
		else() #not appveyor build - lines below do not work properly
			install(CODE "
			execute_process(
				COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_BINARY_DIR}/bin/\${BUILD_TYPE}/bearer \${CMAKE_INSTALL_PREFIX}/bearer
				COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_BINARY_DIR}/bin/\${BUILD_TYPE}/iconengines \${CMAKE_INSTALL_PREFIX}/iconengines
				COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_BINARY_DIR}/bin/\${BUILD_TYPE}/imageformats \${CMAKE_INSTALL_PREFIX}/imageformats
				COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_BINARY_DIR}/bin/\${BUILD_TYPE}/platforminputcontexts \${CMAKE_INSTALL_PREFIX}/platforminputcontexts
				COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_BINARY_DIR}/bin/\${BUILD_TYPE}/platforms \${CMAKE_INSTALL_PREFIX}/platforms)
			")
		endif()
	endif()

	
	#TODO: check if some equivalent of block below can be used for above block (easy qt dependencies copy)
	if(ENABLE_LUA)
		install_vcpkg_imported_tgt(luajit::luajit)
	endif()

	#LuaJIT will not be copied automatically by not meeting criteria for this block of code
	install(CODE "
		if(\"\${BUILD_TYPE}\" STREQUAL \"Debug\")
			set(dirs \"${CMAKE_PREFIX_PATH}/debug/bin/\")
		else()
			set(dirs \"${CMAKE_PREFIX_PATH}/bin/\")
		endif()
		set(BU_CHMOD_BUNDLE_ITEMS ON)
		include(BundleUtilities)
		fixup_bundle(\"\${CMAKE_INSTALL_PREFIX}/VCMI_Client.exe\" \"\" \"\${dirs}\")

	" COMPONENT Runtime)
endif(WIN32)
