mirror of
https://gitlab.com/famedly/fluffychat.git
synced 2024-12-22 13:32:37 +01:00
142 lines
5.0 KiB
CMake
142 lines
5.0 KiB
CMake
|
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)
|