cmake_minimum_required(VERSION 3.20)project(WebTopBuilder LANGUAGES CXX)set(CMAKE_CXX_STANDARD 17)set(CMAKE_CXX_STANDARD_REQUIRED ON)set(CMAKE_AUTOMOC ON)set(CMAKE_AUTORCC ON)set(QT_COMPONENTS Widgets Concurrent)find_package(Qt6 COMPONENTS ${QT_COMPONENTS} REQUIRED)set(CORE_DIR "${CMAKE_SOURCE_DIR}/../core")set(CORE_LIB "${CORE_DIR}/target/release/${CMAKE_STATIC_LIBRARY_PREFIX}webtop_core${CMAKE_STATIC_LIBRARY_SUFFIX}")add_custom_command( OUTPUT "${CORE_LIB}" COMMAND cargo build --release WORKING_DIRECTORY "${CORE_DIR}" COMMENT "Building Rust core (webtop_core)" VERBATIM)add_custom_target(webtop_core_lib DEPENDS "${CORE_LIB}")add_executable(webtop_builder WIN32 src/main.cpp src/main_window.cpp)target_include_directories(webtop_builder PRIVATE src)target_link_libraries(webtop_builder PRIVATE Qt6::Widgets Qt6::Concurrent ws2_32 userenv ntdll bcrypt "${CORE_LIB}")add_dependencies(webtop_builder webtop_core_lib)set_target_properties(webtop_builder PROPERTIES OUTPUT_NAME "webtop_builder" LINK_FLAGS "/SUBSYSTEM:WINDOWS")install(TARGETS webtop_builder DESTINATION bin)set(POST_BUILD_DIST "${CMAKE_SOURCE_DIR}/../dist" CACHE PATH "dist dir")add_custom_command(TARGET webtop_builder POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory "${POST_BUILD_DIST}" "$<TARGET_FILE_DIR:webtop_builder>/dist" COMMAND ${CMAKE_COMMAND} -E copy "$<TARGET_FILE_DIR:webtop_builder>/../core/target/release/webtop_cli.exe" "$<TARGET_FILE_DIR:webtop_builder>/webtop_cli.exe" COMMENT "Bundling dist + CLI next to builder")