cmake_minimum_required(VERSION 3.0)
project(piqt_utils)
set(PIQT_UTILS_UTILS 1)
if(LIBPROJECT)
	include(PIPMacros)
	include(SDKMacros)
	set(PIQT_UTILS_UTILS ${UTILS})
else()
	find_package(PIP REQUIRED)
	option(LIB "System install" 0)
	option(DEBUG "Build with -g3" 0)
	set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -Wall")
	if(DEBUG)
		set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g3")
	endif()
endif()
set(LIBTYPE SHARED)
if(DEFINED ENV{QNX_HOST})
	set(LIBTYPE STATIC)
endif()
find_package(QAD REQUIRED)
list(APPEND QT_MULTILIB_LIST ${PROJECT_NAME})
set(QT_MULTILIB_LIST ${QT_MULTILIB_LIST} PARENT_SCOPE)
include_directories(${PIP_INCLUDES} ${QAD_INCLUDES})
file(GLOB SRC "*.h" "*.cpp" "*.ui" "*.qrc" "lang/*.ts")
pip_code_model(CCM "../pip/lib/main/io_devices/piiodevice.h" "../pip/lib/main/io_utils/pipacketextractor.h" OPTIONS "-DPIP_EXPORT" "-Es")
find_qt(${QtVersions} Core Gui)
qt_wrap(${SRC} HDRS out_HDR CPPS out_CPP QMS out_QM)
qt_add_library(${PROJECT_NAME} ${LIBTYPE} out_CPP CCM)
qt_target_link_libraries(${PROJECT_NAME} pip qad_utils qad_widgets qad_blockview piqt)
message(STATUS "Building ${PROJECT_NAME}")

if (LIBPROJECT)
	foreach(_v ${_QT_VERSIONS_})
		if (LOCAL_FOUND${_v})
			add_dependencies(piqt_utils${_v} pip_cmg)
		endif()
	endforeach()
endif()

if (NOT DEFINED ENV{QNX_HOST})
	if (PIQT_UTILS_UTILS)
		add_subdirectory(piconnedit)
		add_subdirectory(pidumper)
		add_subdirectory(piintrospector)
	endif()
endif()

if(LIBPROJECT)
	sdk_install("pip" "${PROJECT_NAME}" "${out_HDR}" "${out_QM}")
else()
	if(LIB)
		if(WIN32)
			install(FILES ${out_HDR} DESTINATION ${MINGW_INCLUDE}/pip)
			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()
			install(FILES ${out_HDR} DESTINATION ${CMAKE_INSTALL_PREFIX}/include/pip)
			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()
		install(FILES ${out_HDR} DESTINATION include/pip)
		message(STATUS "Install ${PROJECT_NAME} to local \"bin\", \"lib\" and \"include\"")
	endif()
endif()
