### Basic Project Setup and Binary Naming Source: https://github.com/vgventures/airplane_entertainment_system/blob/main/windows/CMakeLists.txt Sets the minimum required CMake version, defines the project name and enabled languages, specifies the output binary name, enforces a CMake policy for target properties, and sets the runtime path for installed binaries. ```CMake cmake_minimum_required(VERSION 3.14) project(airplane_entertainment_system LANGUAGES CXX) set(BINARY_NAME "airplane_entertainment_system") cmake_policy(SET CMP0063 NEW) set(CMAKE_INSTALL_RPATH "$ORIGIN/lib") ``` -------------------------------- ### Install Target Executable Source: https://github.com/vgventures/airplane_entertainment_system/blob/main/windows/CMakeLists.txt Installs the main project executable (`${BINARY_NAME}`) to the specified installation prefix directory as part of the Runtime component. ```CMake install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}" COMPONENT Runtime) ``` -------------------------------- ### Example English ARB File (ARB) Source: https://github.com/vgventures/airplane_entertainment_system/blob/main/README.md Provides a complete example of the app_en.arb file structure with a single localized string entry. ```arb { "@@locale": "en", "counterAppBarTitle": "Counter", "@counterAppBarTitle": { "description": "Text shown in the AppBar of the Counter Page" } } ``` -------------------------------- ### Example Spanish ARB File (ARB) Source: https://github.com/vgventures/airplane_entertainment_system/blob/main/README.md Provides a complete example of a translated app_es.arb file structure with the Spanish translation for the counterAppBarTitle string. ```arb { "@@locale": "es", "counterAppBarTitle": "Contador", "@counterAppBarTitle": { "description": "Texto mostrado en la AppBar de la página del contador" } } ``` -------------------------------- ### Installation Path Configuration Source: https://github.com/vgventures/airplane_entertainment_system/blob/main/windows/CMakeLists.txt Sets variables for the build bundle directory based on the target file location, makes the 'install' step default in Visual Studio, sets the install prefix to the build bundle directory if it's the default, and defines variables for data and library installation directories. ```CMake # === Installation === # Support files are copied into place next to the executable, so that it can # run in place. This is done instead of making a separate bundle (as on Linux) # so that building and running from within Visual Studio will work. set(BUILD_BUNDLE_DIR "$") # Make the "install" step default, as it's required to run. set(CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD 1) if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE) endif() set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data") set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}") ``` -------------------------------- ### Base English ARB File Structure (ARB) Source: https://github.com/vgventures/airplane_entertainment_system/blob/main/README.md Example of the base app_en.arb file structure, showing the locale definition and an initial string entry with its description metadata. ```arb { "@@locale": "en", "counterAppBarTitle": "Counter", "@counterAppBarTitle": { "description": "Text shown in the AppBar of the Counter Page" } } ``` -------------------------------- ### Installing Music Repository Dart Package Source: https://github.com/vgventures/airplane_entertainment_system/blob/main/packages/music_repository/README.md Installs the music_repository package into the current Dart/Flutter project using the `dart pub add` command. This command adds the dependency to the project's `pubspec.yaml` file. ```Shell dart pub add music_repository ``` -------------------------------- ### Install Flutter Assets Source: https://github.com/vgventures/airplane_entertainment_system/blob/main/windows/CMakeLists.txt Defines the name for the Flutter assets directory. It then uses an `install(CODE)` command to remove the existing assets directory before using `install(DIRECTORY)` to copy the built Flutter assets into the data installation directory, ensuring assets are always up-to-date. ```CMake # Fully re-copy the assets directory on each build to avoid having stale files # from a previous install. set(FLUTTER_ASSET_DIR_NAME "flutter_assets") install(CODE " file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\") " COMPONENT Runtime) install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime) ``` -------------------------------- ### Installing Weather Api Client with Dart Pub Source: https://github.com/vgventures/airplane_entertainment_system/blob/main/packages/weather_api_client/README.md Installs the Weather API client library into a Dart or Flutter project using the `dart pub add` command. This adds the package as a dependency to the project's pubspec.yaml file. ```sh dart pub add weather_api_client ``` -------------------------------- ### Install AOT Library for Profile/Release Source: https://github.com/vgventures/airplane_entertainment_system/blob/main/windows/CMakeLists.txt Installs the Ahead-Of-Time (AOT) compiled library to the data installation directory. This step is only performed for 'Profile' and 'Release' configurations, as AOT is typically not used in 'Debug' builds. ```CMake install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" CONFIGURATIONS Profile;Release COMPONENT Runtime) ``` -------------------------------- ### Install Plugin Bundled Libraries Source: https://github.com/vgventures/airplane_entertainment_system/blob/main/windows/CMakeLists.txt Conditionally installs any libraries bundled by plugins to the library installation directory if the `PLUGIN_BUNDLED_LIBRARIES` variable is set, as part of the Runtime component. ```CMake if(PLUGIN_BUNDLED_LIBRARIES) install(FILES "${PLUGIN_BUNDLED_LIBRARIES}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" COMPONENT Runtime) endif() ``` -------------------------------- ### Install Flutter Data and Library Files Source: https://github.com/vgventures/airplane_entertainment_system/blob/main/windows/CMakeLists.txt Installs the Flutter ICU data file to the data directory and the main Flutter library file to the library directory, both as part of the Runtime component. ```CMake install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime) install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" COMPONENT Runtime) ``` -------------------------------- ### Viewing Coverage Report with genhtml Source: https://github.com/vgventures/airplane_entertainment_system/blob/main/packages/weather_api_client/README.md Generates an HTML report from the LCOV coverage file and opens it in the default web browser. This requires the `lcov` tool (which includes `genhtml`) to be installed on the system. ```sh # Generate Coverage Report genhtml coverage/lcov.info -o coverage/ # Open Coverage Report open coverage/index.html ``` -------------------------------- ### Using Localized String in Dart Widget (Dart) Source: https://github.com/vgventures/airplane_entertainment_system/blob/main/README.md Example of how to access and use a localized string (helloWorld) within a Flutter widget by obtaining the localization delegate from the context. ```dart import 'package:airplane_entertainment_system/l10n/l10n.dart'; @override Widget build(BuildContext context) { final l10n = context.l10n; return Text(l10n.helloWorld); } ``` -------------------------------- ### Set Parent Scope Variables for Install Source: https://github.com/vgventures/airplane_entertainment_system/blob/main/windows/flutter/CMakeLists.txt Sets variables like the Flutter library path, ICU data file path, project build directory, and AOT library path to be available in the parent scope, typically for use in installation steps. ```CMake # Published to parent scope for install step. set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE) set(FLUTTER_ICU_DATA_FILE "${EPHEMERAL_DIR}/icudtl.dat" PARENT_SCOPE) set(PROJECT_BUILD_DIR "${PROJECT_DIR}/build/" PARENT_SCOPE) set(AOT_LIBRARY "${PROJECT_DIR}/build/windows/app.so" PARENT_SCOPE) ``` -------------------------------- ### Running Flutter App with Flavors (Shell) Source: https://github.com/vgventures/airplane_entertainment_system/blob/main/README.md Commands to run the Flutter application with specific build flavors (development, staging, production) using the --flavor and --target flags. ```sh # Development $ flutter run --flavor development --target lib/main_development.dart # Staging $ flutter run --flavor staging --target lib/main_staging.dart # Production $ flutter run --flavor production --target lib/main_production.dart ``` -------------------------------- ### Running Tests with Coverage using Very Good CLI Source: https://github.com/vgventures/airplane_entertainment_system/blob/main/packages/music_repository/README.md Executes all unit tests in the project using the `very_good test` command provided by `very_good_cli`. The `--coverage` flag generates a code coverage report in the `coverage/lcov.info` file. ```Shell very_good test --coverage ``` -------------------------------- ### Adding New String to English ARB File (ARB) Source: https://github.com/vgventures/airplane_entertainment_system/blob/main/README.md Demonstrates how to add a new localizable string (helloWorld) and its associated description metadata (@helloWorld) to the app_en.arb file. ```arb { "@@locale": "en", "counterAppBarTitle": "Counter", "@counterAppBarTitle": { "description": "Text shown in the AppBar of the Counter Page" }, "helloWorld": "Hello World", "@helloWorld": { "description": "Hello World Text" } } ``` -------------------------------- ### Running Flutter Tests with Coverage (Shell) Source: https://github.com/vgventures/airplane_entertainment_system/blob/main/README.md Command to execute all unit and widget tests for the project, including generating a coverage report using the --coverage flag and randomizing test order. ```sh $ flutter test --coverage --test-randomize-ordering-seed random ``` -------------------------------- ### Activating Very Good CLI Globally Source: https://github.com/vgventures/airplane_entertainment_system/blob/main/packages/music_repository/README.md Activates the `very_good_cli` Dart package globally using `dart pub global activate`. This makes the `very_good` command available system-wide for creating and managing Very Good Ventures projects. ```Shell dart pub global activate very_good_cli ``` -------------------------------- ### Run Dart Tests with Coverage (Shell) Source: https://github.com/vgventures/airplane_entertainment_system/blob/main/packages/weather_repository/README.md Executes unit tests for the Dart project and generates a code coverage report. It first activates the 'coverage' tool globally, then runs tests with coverage enabled, and finally formats the raw coverage data into the lcov format. ```Shell dart pub global activate coverage 1.2.0 dart test --coverage=coverage dart pub global run coverage:format_coverage --lcov --in=coverage --out=coverage/lcov.info ``` -------------------------------- ### Generating and Viewing Coverage Report (Shell) Source: https://github.com/vgventures/airplane_entertainment_system/blob/main/README.md Commands using genhtml (from lcov) to generate an HTML coverage report from the lcov.info file and then opening the generated report in a browser. ```sh # Generate Coverage Report $ genhtml coverage/lcov.info -o coverage/ # Open Coverage Report $ open coverage/index.html ``` -------------------------------- ### Opening HTML Coverage Report Source: https://github.com/vgventures/airplane_entertainment_system/blob/main/packages/music_repository/README.md Opens the generated HTML coverage report file (`index.html`) located in the `coverage/` directory using the default system application (typically a web browser). This command is common on macOS. ```Shell open coverage/index.html ``` -------------------------------- ### Running Tests and Generating Coverage Report Source: https://github.com/vgventures/airplane_entertainment_system/blob/main/packages/weather_api_client/README.md Executes unit tests for the project and generates a code coverage report in LCOV format. It first activates the coverage tool globally, runs tests with coverage enabled, and then formats the raw coverage data. ```sh dart pub global activate coverage 1.2.0 dart test --coverage=coverage dart pub global run coverage:format_coverage --lcov --in=coverage --out=coverage/lcov.info ``` -------------------------------- ### Include Subdirectories and Generated Plugins Source: https://github.com/vgventures/airplane_entertainment_system/blob/main/windows/CMakeLists.txt Sets a variable for the Flutter managed directory, includes the build rules from the Flutter subdirectory and the application runner subdirectory, and includes the generated CMake file for handling plugins. ```CMake set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter") # Flutter library and tool build rules. add_subdirectory(${FLUTTER_MANAGED_DIR}) # Application build add_subdirectory("runner") # Generated plugin build rules, which manage building the plugins and adding # them to the application. include(flutter/generated_plugins.cmake) ``` -------------------------------- ### Handle Multi-Config and Default Build Type Source: https://github.com/vgventures/airplane_entertainment_system/blob/main/windows/CMakeLists.txt Checks if the generator supports multiple configurations (like Visual Studio) and sets the available configuration types (Debug, Profile, Release). If not a multi-config generator and no build type is set, it defaults to 'Debug' and defines the valid options. ```CMake get_property(IS_MULTICONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) if(IS_MULTICONFIG) set(CMAKE_CONFIGURATION_TYPES "Debug;Profile;Release" CACHE STRING "" FORCE) else() if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "Flutter build mode" FORCE) set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Profile" "Release") endif() endif() ``` -------------------------------- ### View LCOV Coverage Report (Shell) Source: https://github.com/vgventures/airplane_entertainment_system/blob/main/packages/weather_repository/README.md Generates an HTML report from the lcov coverage file and then opens the generated report in the default web browser. This allows developers to visualize code coverage results. ```Shell # Generate Coverage Report genhtml coverage/lcov.info -o coverage/ # Open Coverage Report open coverage/index.html ``` -------------------------------- ### Generating HTML Coverage Report from LCOV Source: https://github.com/vgventures/airplane_entertainment_system/blob/main/packages/music_repository/README.md Uses the `genhtml` tool (part of the lcov package) to convert the `lcov.info` coverage data file into a human-readable HTML report. The output is saved to the specified output directory, typically `coverage/`. ```Shell genhtml coverage/lcov.info -o coverage/ ``` -------------------------------- ### Create flutter_wrapper_app Static Library Source: https://github.com/vgventures/airplane_entertainment_system/blob/main/windows/flutter/CMakeLists.txt Creates a STATIC library target named 'flutter_wrapper_app' using the core and app wrapper sources, applies standard settings, links against the 'flutter' interface library, adds include directories, and adds dependencies. ```CMake # Wrapper sources needed for the runner. add_library(flutter_wrapper_app STATIC ${CPP_WRAPPER_SOURCES_CORE} ${CPP_WRAPPER_SOURCES_APP} ) apply_standard_settings(flutter_wrapper_app) target_link_libraries(flutter_wrapper_app PUBLIC flutter) target_include_directories(flutter_wrapper_app PUBLIC "${WRAPPER_ROOT}/include" ) add_dependencies(flutter_wrapper_app flutter_assemble) ``` -------------------------------- ### Configuring Runner Executable with CMake Source: https://github.com/vgventures/airplane_entertainment_system/blob/main/windows/runner/CMakeLists.txt This CMake code block sets the minimum required CMake version, defines the project name and language, adds an executable target with source files, applies standard settings, sets compile definitions, links necessary libraries, includes directories, and adds build dependencies. ```CMake cmake_minimum_required(VERSION 3.14) project(runner LANGUAGES CXX) add_executable(${BINARY_NAME} WIN32 "flutter_window.cpp" "main.cpp" "utils.cpp" "win32_window.cpp" "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" "Runner.rc" "runner.exe.manifest" ) apply_standard_settings(${BINARY_NAME}) target_compile_definitions(${BINARY_NAME} PRIVATE "NOMINMAX") target_link_libraries(${BINARY_NAME} PRIVATE flutter flutter_wrapper_app) target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}") add_dependencies(${BINARY_NAME} flutter_assemble) ``` -------------------------------- ### Function to Apply Standard Compiler Settings Source: https://github.com/vgventures/airplane_entertainment_system/blob/main/windows/CMakeLists.txt Defines a CMake function `APPLY_STANDARD_SETTINGS` that takes a target name and applies common C++ compiler settings. These settings include requiring C++17, setting warning levels, enabling exceptions, and defining configuration-specific macros like `_DEBUG`. ```CMake function(APPLY_STANDARD_SETTINGS TARGET) target_compile_features(${TARGET} PUBLIC cxx_std_17) target_compile_options(${TARGET} PRIVATE /W4 /WX /wd"4100") target_compile_options(${TARGET} PRIVATE /EHsc) target_compile_definitions(${TARGET} PRIVATE "_HAS_EXCEPTIONS=0") target_compile_definitions(${TARGET} PRIVATE "$<$:_DEBUG>") endfunction() ``` -------------------------------- ### Create flutter_wrapper_plugin Static Library Source: https://github.com/vgventures/airplane_entertainment_system/blob/main/windows/flutter/CMakeLists.txt Creates a STATIC library target named 'flutter_wrapper_plugin' using the core and plugin wrapper sources, applies standard settings, sets target properties for position-independent code and visibility, links against the 'flutter' interface library, and adds include directories and dependencies. ```CMake # Wrapper sources needed for a plugin. add_library(flutter_wrapper_plugin STATIC ${CPP_WRAPPER_SOURCES_CORE} ${CPP_WRAPPER_SOURCES_PLUGIN} ) apply_standard_settings(flutter_wrapper_plugin) set_target_properties(flutter_wrapper_plugin PROPERTIES POSITION_INDEPENDENT_CODE ON) set_target_properties(flutter_wrapper_plugin PROPERTIES CXX_VISIBILITY_PRESET hidden) target_link_libraries(flutter_wrapper_plugin PUBLIC flutter) target_include_directories(flutter_wrapper_plugin PUBLIC "${WRAPPER_ROOT}/include" ) add_dependencies(flutter_wrapper_plugin flutter_assemble) ``` -------------------------------- ### Set Profile Build Flags Source: https://github.com/vgventures/airplane_entertainment_system/blob/main/windows/CMakeLists.txt Copies the compiler and linker flags from the Release configuration to the Profile configuration. This ensures that the Profile build uses optimized settings similar to Release. ```CMake set(CMAKE_EXE_LINKER_FLAGS_PROFILE "${CMAKE_EXE_LINKER_FLAGS_RELEASE}") set(CMAKE_SHARED_LINKER_FLAGS_PROFILE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE}") set(CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_RELEASE}") set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_RELEASE}") ``` -------------------------------- ### Define C++ Wrapper Source Lists Source: https://github.com/vgventures/airplane_entertainment_system/blob/main/windows/flutter/CMakeLists.txt Defines lists of source files for the C++ client wrapper, categorized into core, plugin, and app components, and prepends the wrapper root directory path to each file. ```CMake # === Wrapper === list(APPEND CPP_WRAPPER_SOURCES_CORE "core_implementations.cc" "standard_codec.cc" ) list(TRANSFORM CPP_WRAPPER_SOURCES_CORE PREPEND "${WRAPPER_ROOT}/") list(APPEND CPP_WRAPPER_SOURCES_PLUGIN "plugin_registrar.cc" ) list(TRANSFORM CPP_WRAPPER_SOURCES_PLUGIN PREPEND "${WRAPPER_ROOT}/") list(APPEND CPP_WRAPPER_SOURCES_APP "flutter_engine.cc" "flutter_view_controller.cc" ) list(TRANSFORM CPP_WRAPPER_SOURCES_APP PREPEND "${WRAPPER_ROOT}/") ``` -------------------------------- ### Set Wrapper Root and Flutter Library Paths Source: https://github.com/vgventures/airplane_entertainment_system/blob/main/windows/flutter/CMakeLists.txt Defines variables for the root directory of the C++ client wrapper and the path to the Flutter Windows dynamic library. ```CMake # TODO: Move the rest of this into files in ephemeral. See # https://github.com/flutter/flutter/issues/57146. set(WRAPPER_ROOT "${EPHEMERAL_DIR}/cpp_client_wrapper") # === Flutter Library === set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/flutter_windows.dll") ``` -------------------------------- ### Generating Localizations (Shell) Source: https://github.com/vgventures/airplane_entertainment_system/blob/main/README.md Command to manually trigger the generation of localization files from the ARB files using the flutter gen-l10n command, specifying the directory containing the ARB files. ```sh flutter gen-l10n --arb-dir="lib/l10n/arb" ``` -------------------------------- ### Add Weather Repository Dependency (Dart/Shell) Source: https://github.com/vgventures/airplane_entertainment_system/blob/main/packages/weather_repository/README.md Adds the 'weather_repository' package as a dependency to the current Dart or Flutter project using the 'dart pub add' command. This makes the repository's functionality available for use in the project. ```Shell dart pub add weather_repository ``` -------------------------------- ### Define Flutter Library Headers and Interface Library Source: https://github.com/vgventures/airplane_entertainment_system/blob/main/windows/flutter/CMakeLists.txt Lists required Flutter library headers, prepends the ephemeral directory path, and defines an INTERFACE library target named 'flutter' with specified include directories and linked libraries. ```CMake list(APPEND FLUTTER_LIBRARY_HEADERS "flutter_export.h" "flutter_windows.h" "flutter_messenger.h" "flutter_plugin_registrar.h" "flutter_texture_registrar.h" ) list(TRANSFORM FLUTTER_LIBRARY_HEADERS PREPEND "${EPHEMERAL_DIR}/") add_library(flutter INTERFACE) target_include_directories(flutter INTERFACE "${EPHEMERAL_DIR}" ) target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}.lib") add_dependencies(flutter flutter_assemble) ``` -------------------------------- ### Adding Supported Locales to iOS Info.plist (XML) Source: https://github.com/vgventures/airplane_entertainment_system/blob/main/README.md Shows how to update the CFBundleLocalizations array in the iOS Info.plist file to declare the languages supported by the application. ```xml ... CFBundleLocalizations en es ... ``` -------------------------------- ### Define Unicode Support Source: https://github.com/vgventures/airplane_entertainment_system/blob/main/windows/CMakeLists.txt Adds preprocessor definitions to enable Unicode support for all compiled targets. This ensures consistent handling of wide characters. ```CMake add_definitions(-DUNICODE -D_UNICODE) ``` -------------------------------- ### Open iOS Project in Xcode Source: https://github.com/vgventures/airplane_entertainment_system/blob/main/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md This command opens the Xcode workspace for the iOS portion of the Flutter project. This allows developers to manage assets, including launch screen images, using Xcode's graphical interface and asset catalog features. ```Shell open ios/Runner.xcworkspace ``` -------------------------------- ### Include Generated Configuration Source: https://github.com/vgventures/airplane_entertainment_system/blob/main/windows/flutter/CMakeLists.txt Includes a CMake configuration file generated by the Flutter tool, which provides build-specific settings. ```CMake # Configuration provided via flutter tool. include(${EPHEMERAL_DIR}/generated_config.cmake) ``` -------------------------------- ### Set Minimum CMake Version and Ephemeral Directory Source: https://github.com/vgventures/airplane_entertainment_system/blob/main/windows/flutter/CMakeLists.txt Specifies the minimum required CMake version and defines a variable for the ephemeral build directory, which contains generated files. ```CMake cmake_minimum_required(VERSION 3.14) set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral") ``` -------------------------------- ### Define flutter_assemble Custom Command and Target Source: https://github.com/vgventures/airplane_entertainment_system/blob/main/windows/flutter/CMakeLists.txt Defines a custom command that invokes the Flutter tool backend script to assemble necessary build artifacts, using a phony output to ensure it runs every time. A custom target 'flutter_assemble' is created with dependencies on the outputs of this command. ```CMake # === Flutter tool backend === # _phony_ is a non-existent file to force this command to run every time, # since currently there's no way to get a full input/output list from the # flutter tool. set(PHONY_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/_phony_") set_source_files_properties("${PHONY_OUTPUT}" PROPERTIES SYMBOLIC TRUE) add_custom_command( OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS} ${CPP_WRAPPER_SOURCES_CORE} ${CPP_WRAPPER_SOURCES_PLUGIN} ${CPP_WRAPPER_SOURCES_APP} ${PHONY_OUTPUT} COMMAND ${CMAKE_COMMAND} -E env ${FLUTTER_TOOL_ENVIRONMENT} "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.bat" windows-x64 $ VERBATIM ) add_custom_target(flutter_assemble DEPENDS "${FLUTTER_LIBRARY}" ${FLUTTER_LIBRARY_HEADERS} ${CPP_WRAPPER_SOURCES_CORE} ${CPP_WRAPPER_SOURCES_PLUGIN} ${CPP_WRAPPER_SOURCES_APP} ) ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.