cmake_minimum_required(VERSION 3.5)

project(BlackHoleOptics VERSION 9.2 LANGUAGES CXX)

set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# Odkomentuj pro Release build
#set(CMAKE_BUILD_TYPE Release)
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG")

find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets)

set(PROJECT_SOURCES
    mainwindow.h
    mainwindow.ui
    postfix.h
    numerics.h
    struktury.h
    geodetics.h
    glob_prom.h
    operators.h
    formulas.h
    image_generate.h
    avi/avi-utils.h
    avi/fileio.h
    avi/gwavi.h
    avi/gwavi_private.h
    avi/QAviWriter.h
    zdroje.qrc
)

if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)
    qt_add_executable(BlackHoleOptics
        MANUAL_FINALIZATION
        ${PROJECT_SOURCES}
        main.cpp
        mainwindow.cpp
        struktury.cpp
        glob_prom.cpp
        operators.cpp
        postfix.cpp
        numerics.cpp
        formulas.cpp
        geodetics.cpp
        image_generate.cpp
        avi/avi-utils.cpp
        avi/fileio.cpp
        avi/gwavi.cpp
        avi/QAviWriter.cpp)
else()
    if(ANDROID)
        add_library(BlackHoleOptics SHARED
            ${PROJECT_SOURCES}
        )
    else()
        add_executable(BlackHoleOptics
            ${PROJECT_SOURCES}
        )
    endif()
endif()

target_link_libraries(BlackHoleOptics PRIVATE Qt${QT_VERSION_MAJOR}::Widgets)

set_target_properties(BlackHoleOptics PROPERTIES
    MACOSX_BUNDLE_GUI_IDENTIFIER my.example.com
    MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
    MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
    MACOSX_BUNDLE TRUE
    WIN32_EXECUTABLE TRUE
)

# Instalace spustitelného souboru do /usr/bin
install(TARGETS BlackHoleOptics
    RUNTIME DESTINATION bin
    BUNDLE DESTINATION .
    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
)

# Instalace UI souboru a resource souboru (pokud chceš, nebo když nejsou zabalené do binárky)
install(FILES mainwindow.ui zdroje.qrc
    DESTINATION share/BlackHoleOptics
)

if(QT_VERSION_MAJOR EQUAL 6)
    qt_finalize_executable(BlackHoleOptics)
endif()

