cmake_minimum_required(VERSION 3.5)

project(OneLevelXmlOpr VERSION 0.1 LANGUAGES CXX)

# 获取环境变量 HOME
if (UNIX)
    set(USER_HOME $ENV{HOME})
else()
    set(USER_HOME "C:/Qt")
endif()

# 打印用户目录
message(STATUS "User home directory: ${USER_HOME}")

set(CMAKE_PREFIX_PATH
    ${CMAKE_PREFIX_PATH}
    "C:/Qt/6.7.2"
    "${USER_HOME}/Qt5.14.2/5.14.2/gcc_64/"
)

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

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

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

include_directories(3rd)
set(PROJECT_SOURCES
        main.cpp
        MainWidget.cpp
        MainWidget.h
        MainWidget.ui 3rd/tinyxml2.cpp
        src/xml_opr.h src/xml_opr.cpp
        src/config.h src/config.cpp public_def.cpp resource.qrc public_def.h
        resource/ico.rc src/attribute_edit.ui src/attribute_edit.h
        src/attribute_edit.cpp flatgray.qrc
        src/data_edit.h src/data_edit.cpp src/data_edit.ui
)

if (MSVC)
# if(${QT_VERSION_MAJOR} LESS 6)
#     add_compile_options(/source-charset:utf-8)
# endif()
add_compile_options(/source-charset:utf-8)
add_compile_options(/EHsc)
add_compile_options(/wd4267)
add_compile_options(-D_CRT_SECURE_NO_WARNINGS)
endif()

add_executable(OneLevelXmlOpr ${PROJECT_SOURCES}
    conf_setting.h conf_setting.cpp conf_setting.ui
    src/history.h src/history.cpp
    src/uhistory.h src/uhistory.cpp src/uhistory.ui)
target_link_libraries(OneLevelXmlOpr PRIVATE Qt${QT_VERSION_MAJOR}::Widgets)
set_target_properties(OneLevelXmlOpr PROPERTIES
    ${BUNDLE_ID_OPTION}
    MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
    MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
    MACOSX_BUNDLE TRUE
    WIN32_EXECUTABLE TRUE
)