project( coretime )
cmake_minimum_required( VERSION 3.16 )

set( PROJECT_VERSION 5.0.1 )
set( PROJECT_VERSION_MAJOR 5 )
set( PROJECT_VERSION_MINOR 0 )
set( PROJECT_VERSION_PATCH 1 )

set( PROJECT_VERSION_MAJOR_MINOR ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} )
add_compile_definitions(VERSION_TEXT="${PROJECT_VERSION}")

set( APP_ID "cc.cubocore.CoreTime" )
add_compile_definitions( APP_ID=\"${APP_ID}\" )

set( CMAKE_CXX_STANDARD 17 )
set( CMAKE_INCLUDE_CURRENT_DIR ON )
set( CMAKE_BUILD_TYPE Release )
set( CMAKE_AUTOMOC ON )
set( CMAKE_AUTORCC ON )
set( CMAKE_AUTOUIC ON )

add_definitions ( -Wall )
if ( CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT )
    set( CMAKE_INSTALL_PREFIX "/usr" CACHE PATH "Location for installing the project" FORCE )
endif()


add_compile_definitions(AUDIO_RESOURCE_FOLDER="${CMAKE_INSTALL_PREFIX}/share/coreapps/resource/")

find_package( Qt6Core REQUIRED )
find_package( Qt6Gui REQUIRED )
find_package( Qt6Widgets REQUIRED )
find_package( Qt6Multimedia REQUIRED )
find_package( Qt6Network REQUIRED )

set( SOURCES
    src/alarmitemwidget.cpp
    src/alarmitemwidget.h
    src/alarmwidget.cpp
    src/alarmwidget.h
    src/apirequest.cpp
    src/apirequest.h
    src/astroinfo.cpp
    src/astroinfo.h
    src/calendarmanage.cpp
    src/calendarmanage.h
    src/commonfunc.cpp
    src/commonfunc.h
    src/coretime.cpp
    src/coretime.h
    src/currentschedule.cpp
    src/currentschedule.h
    src/locationinfo.cpp
    src/locationinfo.h
    src/reminderitemwidget.cpp
    src/reminderitemwidget.h
    src/reminderwidget.cpp
    src/reminderwidget.h
    src/schedulequeue.cpp
    src/schedulequeue.h
    src/settings.cpp
    src/settings.h
    src/stopwatch.cpp
    src/stopwatch.h
    src/weatherdata.cpp
    src/weatherdata.h
    src/weathericon.cpp
    src/weathericon.h
    src/weatherinfo.cpp
    src/weatherinfo.h
    src/weatherview.cpp
    src/weatherview.h
    src/main.cpp
)

set( UIS
    src/alarmitemwidget.ui
    src/alarmwidget.ui
    src/coretime.ui
    src/currentschedule.ui
    src/reminderitemwidget.ui
    src/reminderwidget.ui
    src/weatherview.ui
)

add_executable( coretime ${SOURCES} ${UIS} )
target_link_libraries ( coretime  Qt6::Core Qt6::Gui Qt6::Widgets Qt6::Network Qt6::Multimedia cprime-widgets cprime-core )

install( TARGETS coretime DESTINATION bin )
install( FILES ${APP_ID}.desktop DESTINATION share/applications )
install( FILES ${APP_ID}.svg DESTINATION share/icons/hicolor/scalable/apps/ )
install( FILES ${APP_ID}.metainfo.xml DESTINATION share/metainfo/ )
install( FILES resource/sound.ogg DESTINATION share/coreapps/resource/ )