cmake_minimum_required(VERSION 3.0)
project(qglview)
if (IBPROJECT)
	include(SDKMacros)
else()
	option(LIB "System install" 0)
	option(DEBUG "Build with -g3" 0)
	option(DESIGNER_PLUGINS "Build qt designer plugins" 1)
	set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -Wall")
	if (DEBUG)
		set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g3")
	endif()
endif()
if (MINGW)
	find_package(MinGW REQUIRED)
endif()
find_package(QAD REQUIRED)
find_package(OpenGL REQUIRED)
include_directories(${QAD_INCLUDES})
find_qt(Qt5 Core Gui OpenGL Xml)
if (NOT Qt5)
	message(WARNING "Building ${PROJECT_NAME} available only on Qt5!")
else()
	qt_sources(SRC)
	qt_wrap(${SRC} HDRS out_HDR CPPS out_CPP QMS out_QM)
	qt_add_library(${PROJECT_NAME} SHARED out_CPP)
	qt_target_link_libraries(${PROJECT_NAME} qad_utils qad_widgets ${OPENGL_LIBRARIES})
	qt_target_include_directories(${PROJECT_NAME} PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}")
	message(STATUS "Building ${PROJECT_NAME}")
	if (LIBPROJECT)
		sdk_install("qad" "${PROJECT_NAME}" "${out_HDR}" "${out_QM}")
	else()
		if (LIB)
			if (WIN32)
				qt_install(FILES ${H} DESTINATION ${MINGW_INCLUDE}/qad)
				qt_install(TARGETS ${PROJECT_NAME} ARCHIVE DESTINATION ${MINGW_LIB})
				qt_install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION ${MINGW_BIN})
				qt_install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION QtBin)
			else()
				qt_install(FILES ${H} DESTINATION ${CMAKE_INSTALL_PREFIX}/include/qad)
				qt_install(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_PREFIX}/lib)
			endif()
			message(STATUS "Install ${PROJECT_NAME} to system \"${CMAKE_INSTALL_PREFIX}\"")
		else()
			if(WIN32)
				qt_install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION bin)
				qt_install(TARGETS ${PROJECT_NAME} ARCHIVE DESTINATION lib)
			else()
				qt_install(TARGETS ${PROJECT_NAME} DESTINATION lib)
			endif()
			qt_install(FILES ${H} DESTINATION include/qad)
			message(STATUS "Install ${PROJECT_NAME} to local \"bin\", \"lib\" and \"include\"")
		endif()
	endif()
	foreach(_v ${_QT_VERSIONS_})
		set(MULTILIB_qglview_SUFFIX_Qt${_v} ${_v})
		set(MULTILIB_qglview_SUFFIX_Qt${_v} ${_v} PARENT_SCOPE)
	endforeach()
	list(APPEND QT_MULTILIB_LIST qglview)
	if (NOT DEFINED ANDROID_PLATFORM)
		if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/plugin")
			add_subdirectory(plugin)
		endif()
	endif()

	qt_sources(test_SRC DIR "qglview_test")
	qt_wrap(${test_SRC} CPPS test_CPP)
	qt_add_executable(qglview_test test_CPP)
	qt_target_link_libraries(qglview_test ${PROJECT_NAME})
endif()
