cmake_minimum_required (VERSION 3.8) set(CMAKE_SYSTEM_NAME WindowsStore) set(CMAKE_SYSTEM_VERSION 10.0) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED YES) include(CMakePrintHelpers) project (runner LANGUAGES CXX) # UWP tile and icon assets. set(ASSET_FILES ${ASSET_FILES} Assets/LargeTile.scale-100.png Assets/LargeTile.scale-125.png Assets/LargeTile.scale-150.png Assets/LargeTile.scale-200.png Assets/LargeTile.scale-400.png Assets/LockScreenLogo.scale-200.png Assets/SmallTile.scale-100.png Assets/SmallTile.scale-125.png Assets/SmallTile.scale-150.png Assets/SmallTile.scale-200.png Assets/SmallTile.scale-400.png Assets/SplashScreen.scale-100.png Assets/SplashScreen.scale-125.png Assets/SplashScreen.scale-150.png Assets/SplashScreen.scale-200.png Assets/SplashScreen.scale-400.png Assets/Square44x44Logo.altform-unplated_targetsize-16.png Assets/Square44x44Logo.altform-unplated_targetsize-32.png Assets/Square44x44Logo.altform-unplated_targetsize-48.png Assets/Square44x44Logo.altform-unplated_targetsize-256.png Assets/Square44x44Logo.scale-100.png Assets/Square44x44Logo.scale-125.png Assets/Square44x44Logo.scale-150.png Assets/Square44x44Logo.scale-200.png Assets/Square44x44Logo.scale-400.png Assets/Square44x44Logo.targetsize-16.png Assets/Square44x44Logo.targetsize-24.png Assets/Square44x44Logo.targetsize-24_altform-unplated.png Assets/Square44x44Logo.targetsize-32.png Assets/Square44x44Logo.targetsize-48.png Assets/Square44x44Logo.targetsize-256.png Assets/Square150x150Logo.scale-100.png Assets/Square150x150Logo.scale-125.png Assets/Square150x150Logo.scale-150.png Assets/Square150x150Logo.scale-200.png Assets/Square150x150Logo.scale-400.png Assets/StoreLogo.png Assets/StoreLogo.scale-100.png Assets/StoreLogo.scale-125.png Assets/StoreLogo.scale-150.png Assets/StoreLogo.scale-200.png Assets/StoreLogo.scale-400.png Assets/Wide310x150Logo.scale-200.png Assets/WideTile.scale-100.png Assets/WideTile.scale-125.png Assets/WideTile.scale-150.png Assets/WideTile.scale-200.png Assets/WideTile.scale-400.png ) # Configure package manifest file. set(APP_MANIFEST_NAME Package.appxmanifest) set(APP_MANIFEST_TARGET_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/${APP_MANIFEST_NAME}) set(SHORT_NAME ${BINARY_NAME}) set(PACKAGE_GUID "086F9B60-CB52-4D0B-9B4E-AE891E7859D1") configure_file( appxmanifest.in ${APP_MANIFEST_TARGET_LOCATION} @ONLY) set(CONTENT_FILES ${APP_MANIFEST_TARGET_LOCATION}) # Configure package content files. set_property(SOURCE ${CONTENT_FILES} PROPERTY VS_DEPLOYMENT_CONTENT 1) set(RESOURCE_FILES ${ASSET_FILES} ${CONTENT_FILES} Windows_TemporaryKey.pfx) set_property(SOURCE ${ASSET_FILES} PROPERTY VS_DEPLOYMENT_CONTENT 1) set_property(SOURCE ${ASSET_FILES} PROPERTY VS_DEPLOYMENT_LOCATION "Assets") set(STRING_FILES Resources.pri) set_property(SOURCE ${STRING_FILES} PROPERTY VS_TOOL_OVERRIDE "PRIResource") source_group("Resource Files" FILES ${RESOURCE_FILES} ${CONTENT_FILES} ${STRING_FILES}) # Configure Flutter assets using tool generated install manifest foreach(ITEM ${INSTALL_MANIFEST_CONTENT}) get_filename_component(ITEM_REL ${CMAKE_BINARY_DIR} DIRECTORY) file(RELATIVE_PATH RELPATH ${ITEM_REL} ${ITEM}) get_filename_component(RELPATH ${RELPATH} DIRECTORY) get_filename_component(ITEMEXT ${ITEM} LAST_EXT) if("${ITEMEXT}" STREQUAL ".dll" OR "${ITEMEXT}" STREQUAL ".pdb") string(CONCAT RELPATH "") elseif ("${ITEMEXT}" STREQUAL ".so") file(RELATIVE_PATH RELPATH "${ITEM_REL}/winuwp" ${ITEM}) string(REGEX REPLACE "/" "\\\\" RELPATH ${RELPATH}) string(CONCAT RELPATH "Assets\\Data") elseif("${ITEMEXT}" STREQUAL ".dat") string(CONCAT RELPATH "Assets\\Data") else() string(REGEX REPLACE "/" "\\\\" RELPATH ${RELPATH}) string(CONCAT RELPATH "Assets\\Data\\" ${RELPATH}) endif() cmake_print_variables(${RELPATH}) set_property(SOURCE ${ITEM} PROPERTY VS_DEPLOYMENT_CONTENT 1) set_property(SOURCE ${ITEM} PROPERTY VS_DEPLOYMENT_LOCATION ${RELPATH}) endforeach() # Define the application target. To change its name, change BINARY_NAME in the # top-level CMakeLists.txt, not the value here, or `flutter run` will no longer # work. # # Any new source files that you add to the application should be added here. add_executable (${BINARY_NAME} WIN32 main.cpp flutter_frameworkview.cpp "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" ${RESOURCE_FILES} ${INSTALL_MANIFEST_CONTENT} ) # Apply the standard set of build settings. This can be removed for applications # that need different build settings. apply_standard_settings(${BINARY_NAME}) # Disable Windows macros that collide with C++ standard library functions. target_compile_definitions(${BINARY_NAME} PRIVATE "NOMINMAX") # Add dependency libraries and include directories. Add any application-specific # dependencies here. target_link_libraries(${BINARY_NAME} PRIVATE WindowsApp flutter flutter_wrapper_app) target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}") # Run the Flutter tool portions of the build. This must not be removed. add_dependencies(${BINARY_NAME} flutter_assemble)