Merge branch 'development' into TIF/Runtime
This commit is contained in:
+1
-1
@@ -26,7 +26,7 @@ ly_associate_package(PACKAGE_NAME lz4-r128-multiplatform
|
||||
ly_associate_package(PACKAGE_NAME expat-2.1.0-multiplatform TARGETS expat PACKAGE_HASH 452256acd1fd699cef24162575b3524fccfb712f5321c83f1df1ce878de5b418)
|
||||
ly_associate_package(PACKAGE_NAME zstd-1.35-multiplatform TARGETS zstd PACKAGE_HASH 45d466c435f1095898578eedde85acf1fd27190e7ea99aeaa9acfd2f09e12665)
|
||||
ly_associate_package(PACKAGE_NAME SQLite-3.32.2-rev3-multiplatform TARGETS SQLite PACKAGE_HASH dd4d3de6cbb4ce3d15fc504ba0ae0587e515dc89a25228037035fc0aef4831f4)
|
||||
ly_associate_package(PACKAGE_NAME azslc-1.7.21-rev1-multiplatform TARGETS azslc PACKAGE_HASH 772b7a2d9cc68aa1da4f0ee7db57ee1b4e7a8f20b81961fc5849af779582f4df)
|
||||
ly_associate_package(PACKAGE_NAME azslc-1.7.22-rev1-multiplatform TARGETS azslc PACKAGE_HASH 71b4545d221d4fcd564ccc121c249a8f8f164bcc616faf146f926c3d5c78d527)
|
||||
ly_associate_package(PACKAGE_NAME glad-2.0.0-beta-rev2-multiplatform TARGETS glad PACKAGE_HASH ff97ee9664e97d0854b52a3734c2289329d9f2b4cd69478df6d0ca1f1c9392ee)
|
||||
ly_associate_package(PACKAGE_NAME lux_core-2.2-rev5-multiplatform TARGETS lux_core PACKAGE_HASH c8c13cf7bc351643e1abd294d0841b24dee60e51647dff13db7aec396ad1e0b5)
|
||||
ly_associate_package(PACKAGE_NAME xxhash-0.7.4-rev1-multiplatform TARGETS xxhash PACKAGE_HASH e81f3e6c4065975833996dd1fcffe46c3cf0f9e3a4207ec5f4a1b564ba75861e)
|
||||
|
||||
@@ -26,7 +26,7 @@ ly_associate_package(PACKAGE_NAME lz4-r128-multiplatform
|
||||
ly_associate_package(PACKAGE_NAME expat-2.1.0-multiplatform TARGETS expat PACKAGE_HASH 452256acd1fd699cef24162575b3524fccfb712f5321c83f1df1ce878de5b418)
|
||||
ly_associate_package(PACKAGE_NAME zstd-1.35-multiplatform TARGETS zstd PACKAGE_HASH 45d466c435f1095898578eedde85acf1fd27190e7ea99aeaa9acfd2f09e12665)
|
||||
ly_associate_package(PACKAGE_NAME SQLite-3.32.2-rev3-multiplatform TARGETS SQLite PACKAGE_HASH dd4d3de6cbb4ce3d15fc504ba0ae0587e515dc89a25228037035fc0aef4831f4)
|
||||
ly_associate_package(PACKAGE_NAME azslc-1.7.21-rev1-multiplatform TARGETS azslc PACKAGE_HASH 772b7a2d9cc68aa1da4f0ee7db57ee1b4e7a8f20b81961fc5849af779582f4df)
|
||||
ly_associate_package(PACKAGE_NAME azslc-1.7.22-rev1-multiplatform TARGETS azslc PACKAGE_HASH 71b4545d221d4fcd564ccc121c249a8f8f164bcc616faf146f926c3d5c78d527)
|
||||
ly_associate_package(PACKAGE_NAME glad-2.0.0-beta-rev2-multiplatform TARGETS glad PACKAGE_HASH ff97ee9664e97d0854b52a3734c2289329d9f2b4cd69478df6d0ca1f1c9392ee)
|
||||
ly_associate_package(PACKAGE_NAME lux_core-2.2-rev5-multiplatform TARGETS lux_core PACKAGE_HASH c8c13cf7bc351643e1abd294d0841b24dee60e51647dff13db7aec396ad1e0b5)
|
||||
ly_associate_package(PACKAGE_NAME xxhash-0.7.4-rev1-multiplatform TARGETS xxhash PACKAGE_HASH e81f3e6c4065975833996dd1fcffe46c3cf0f9e3a4207ec5f4a1b564ba75861e)
|
||||
|
||||
@@ -24,6 +24,7 @@ ly_set(PAL_TRAIT_BUILD_CPACK_SUPPORTED FALSE)
|
||||
# Test library support
|
||||
ly_set(PAL_TRAIT_TEST_GOOGLE_TEST_SUPPORTED FALSE)
|
||||
ly_set(PAL_TRAIT_TEST_GOOGLE_BENCHMARK_SUPPORTED FALSE)
|
||||
ly_set(PAL_TRAIT_TEST_LYTESTTOOLS_SUPPORTED FALSE)
|
||||
ly_set(PAL_TRAIT_TEST_PYTEST_SUPPORTED FALSE)
|
||||
ly_set(PAL_TRAIT_TEST_TARGET_TYPE MODULE)
|
||||
|
||||
|
||||
@@ -40,7 +40,6 @@ ly_append_configurations_options(
|
||||
-Wno-unused-private-field
|
||||
-Wno-unused-value
|
||||
-Wno-unused-variable
|
||||
-Wno-non-pod-varargs
|
||||
-Wno-unused-lambda-capture
|
||||
# Workaround for compiler seeing file case differently from what OS show in console.
|
||||
-Wno-nonportable-include-path
|
||||
|
||||
@@ -162,7 +162,18 @@ function(ly_setup_target OUTPUT_CONFIGURED_TARGET ALIAS_TARGET_NAME)
|
||||
elseif(target_type STREQUAL MODULE_LIBRARY)
|
||||
set(target_location "\${LY_ROOT_FOLDER}/${library_output_directory}/${PAL_PLATFORM_NAME}/$<CONFIG>/${target_library_output_subdirectory}/$<TARGET_FILE_NAME:${TARGET_NAME}>")
|
||||
elseif(target_type STREQUAL SHARED_LIBRARY)
|
||||
string(APPEND target_file_contents "set_property(TARGET ${TARGET_NAME} PROPERTY IMPORTED_IMPLIB_$<CONFIG> \"\${LY_ROOT_FOLDER}/${archive_output_directory}/${PAL_PLATFORM_NAME}/$<CONFIG>/$<TARGET_LINKER_FILE_NAME:${TARGET_NAME}>\")\n")
|
||||
string(APPEND target_file_contents
|
||||
"set_property(TARGET ${TARGET_NAME}
|
||||
APPEND_STRING PROPERTY IMPORTED_IMPLIB
|
||||
$<$<CONFIG:$<CONFIG>$<ANGLE-R>:\"\${LY_ROOT_FOLDER}/${archive_output_directory}/${PAL_PLATFORM_NAME}/$<CONFIG>/$<TARGET_LINKER_FILE_NAME:${TARGET_NAME}>\"$<ANGLE-R>
|
||||
)
|
||||
")
|
||||
string(APPEND target_file_contents
|
||||
"set_property(TARGET ${TARGET_NAME}
|
||||
PROPERTY IMPORTED_IMPLIB_$<UPPER_CASE:$<CONFIG>>
|
||||
\"\${LY_ROOT_FOLDER}/${archive_output_directory}/${PAL_PLATFORM_NAME}/$<CONFIG>/$<TARGET_LINKER_FILE_NAME:${TARGET_NAME}>\"
|
||||
)
|
||||
")
|
||||
set(target_location "\${LY_ROOT_FOLDER}/${library_output_directory}/${PAL_PLATFORM_NAME}/$<CONFIG>/${target_library_output_subdirectory}/$<TARGET_FILE_NAME:${TARGET_NAME}>")
|
||||
else() # STATIC_LIBRARY, OBJECT_LIBRARY, INTERFACE_LIBRARY
|
||||
set(target_location "\${LY_ROOT_FOLDER}/${archive_output_directory}/${PAL_PLATFORM_NAME}/$<CONFIG>/$<TARGET_LINKER_FILE_NAME:${TARGET_NAME}>")
|
||||
@@ -363,7 +374,7 @@ function(ly_setup_cmake_install)
|
||||
string(APPEND builtinpackages "ly_associate_package(PACKAGE_NAME ${package_name} TARGETS ${targets} PACKAGE_HASH ${package_hash})\n")
|
||||
endforeach()
|
||||
|
||||
ly_get_absolute_pal_filename(pal_builtin_file ${CMAKE_CURRENT_BINARY_DIR}/cmake/3rdParty/Platform/${PAL_PLATFORM_NAME}/BuiltInPackages_${PAL_PLATFORM_NAME_LOWERCASE}.cmake)
|
||||
set(pal_builtin_file ${CMAKE_CURRENT_BINARY_DIR}/cmake/3rdParty/Platform/${PAL_PLATFORM_NAME}/BuiltInPackages_${PAL_PLATFORM_NAME_LOWERCASE}.cmake)
|
||||
file(GENERATE OUTPUT ${pal_builtin_file}
|
||||
CONTENT ${builtinpackages}
|
||||
)
|
||||
|
||||
@@ -63,12 +63,9 @@ ly_append_configurations_options(
|
||||
|
||||
# Disabling these warnings while they get fixed
|
||||
/wd4018 # signed/unsigned mismatch
|
||||
/wd4121 # alignment of a member was sensitive to packing
|
||||
/wd4244 # conversion, possible loss of data
|
||||
/wd4245 # conversion, signed/unsigned mismatch
|
||||
/wd4267 # conversion, possible loss of data
|
||||
/wd4310 # cast truncates constant value
|
||||
/wd4324 # structure was padded due to alignment specifier
|
||||
/wd4389 # comparison, signed/unsigned mismatch
|
||||
|
||||
# Enabling warnings that are disabled by default from /W4
|
||||
|
||||
@@ -10,5 +10,5 @@
|
||||
#
|
||||
|
||||
if(CMAKE_GENERATOR MATCHES "Visual Studio 16")
|
||||
configure_file("${CMAKE_CURRENT_LIST_DIR}/Directory.Build.props" "${CMAKE_CURRENT_BINARY_DIR}/Directory.Build.props" COPYONLY)
|
||||
configure_file("${CMAKE_CURRENT_LIST_DIR}/Directory.Build.props" "${CMAKE_BINARY_DIR}/Directory.Build.props" COPYONLY)
|
||||
endif()
|
||||
@@ -24,6 +24,7 @@ ly_set(PAL_TRAIT_BUILD_CPACK_SUPPORTED FALSE)
|
||||
# Test library support
|
||||
ly_set(PAL_TRAIT_TEST_GOOGLE_TEST_SUPPORTED TRUE)
|
||||
ly_set(PAL_TRAIT_TEST_GOOGLE_BENCHMARK_SUPPORTED TRUE)
|
||||
ly_set(PAL_TRAIT_TEST_LYTESTTOOLS_SUPPORTED FALSE)
|
||||
ly_set(PAL_TRAIT_TEST_PYTEST_SUPPORTED TRUE)
|
||||
ly_set(PAL_TRAIT_TEST_TARGET_TYPE MODULE)
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@ ly_set(PAL_TRAIT_BUILD_CPACK_SUPPORTED FALSE)
|
||||
# Test library support
|
||||
ly_set(PAL_TRAIT_TEST_GOOGLE_TEST_SUPPORTED TRUE)
|
||||
ly_set(PAL_TRAIT_TEST_GOOGLE_BENCHMARK_SUPPORTED TRUE)
|
||||
ly_set(PAL_TRAIT_TEST_LYTESTTOOLS_SUPPORTED TRUE)
|
||||
ly_set(PAL_TRAIT_TEST_PYTEST_SUPPORTED FALSE)
|
||||
ly_set(PAL_TRAIT_TEST_TARGET_TYPE MODULE)
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@ ly_set(PAL_TRAIT_BUILD_CPACK_SUPPORTED TRUE)
|
||||
# Test library support
|
||||
ly_set(PAL_TRAIT_TEST_GOOGLE_TEST_SUPPORTED TRUE)
|
||||
ly_set(PAL_TRAIT_TEST_GOOGLE_BENCHMARK_SUPPORTED TRUE)
|
||||
ly_set(PAL_TRAIT_TEST_LYTESTTOOLS_SUPPORTED TRUE)
|
||||
ly_set(PAL_TRAIT_TEST_PYTEST_SUPPORTED TRUE)
|
||||
ly_set(PAL_TRAIT_TEST_TARGET_TYPE MODULE)
|
||||
|
||||
|
||||
@@ -22,6 +22,8 @@
|
||||
<bal:WixStandardBootstrapperApplication
|
||||
LicenseUrl="$(var.CPACK_LICENSE_URL)"
|
||||
LogoFile="$(var.CPACK_WIX_PRODUCT_LOGO)"
|
||||
ThemeFile="$(var.CPACK_BOOTSTRAP_THEME_FILE).xml"
|
||||
LocalizationFile="$(var.CPACK_BOOTSTRAP_THEME_FILE).wxl"
|
||||
ShowVersion="yes" />
|
||||
</BootstrapperApplicationRef>
|
||||
<?else?>
|
||||
@@ -29,6 +31,8 @@
|
||||
<bal:WixStandardBootstrapperApplication
|
||||
LicenseFile="$(var.CPACK_WIX_LICENSE_RTF)"
|
||||
LogoFile="$(var.CPACK_WIX_PRODUCT_LOGO)"
|
||||
ThemeFile="$(var.CPACK_BOOTSTRAP_THEME_FILE).xml"
|
||||
LocalizationFile="$(var.CPACK_BOOTSTRAP_THEME_FILE).wxl"
|
||||
ShowVersion="yes" />
|
||||
</BootstrapperApplicationRef>
|
||||
<?endif?>
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<WixLocalization Culture="en-us"
|
||||
Language="1033"
|
||||
xmlns="http://schemas.microsoft.com/wix/2006/localization">
|
||||
|
||||
<!-- common -->
|
||||
<String Id="WindowTitle">[WixBundleName] Setup</String>
|
||||
<String Id="Title">[WixBundleName]</String>
|
||||
<String Id="InstallVersion">Version [WixBundleVersion]</String>
|
||||
<String Id="ConfirmCancelMessage">Are you sure you want to cancel?</String>
|
||||
|
||||
<!-- welcome page -->
|
||||
<String Id="InstallHeader">Welcome</String>
|
||||
<String Id="InstallMessage">
|
||||
Setup will install [WixBundleName] on your computer. Click install to continue, options to set the install directory or Close to exit.
|
||||
</String>
|
||||
<String Id="InstallLicenseLinkText">[WixBundleName] <a href="#">license terms</a>.</String>
|
||||
<String Id="InstallAcceptCheckbox">I &agree to the license terms and conditions</String>
|
||||
<String Id="InstallOptionsButton">&Options</String>
|
||||
<String Id="InstallInstallButton">&Install</String>
|
||||
<String Id="InstallCloseButton">&Close</String>
|
||||
|
||||
<!-- configure install page -->
|
||||
<String Id="OptionsHeader">Setup Options</String>
|
||||
<String Id="OptionsLocationLabel">Install location:</String>
|
||||
<String Id="OptionsBrowseButton">&Browse</String>
|
||||
<String Id="OptionsOkButton">&OK</String>
|
||||
<String Id="OptionsCancelButton">&Cancel</String>
|
||||
|
||||
<!-- edit existing install page -->
|
||||
<String Id="ModifyHeader">Modify Setup</String>
|
||||
<String Id="ModifyRepairButton">&Repair</String>
|
||||
<String Id="ModifyUninstallButton">&Uninstall</String>
|
||||
<String Id="ModifyCloseButton">&Close</String>
|
||||
|
||||
<!-- action progress page -->
|
||||
<String Id="ProgressHeader">Setup Progress</String>
|
||||
<String Id="ProgressLabel">Processing:</String>
|
||||
<String Id="OverallProgressPackageText">Initializing...</String>
|
||||
<String Id="ProgressCancelButton">&Cancel</String>
|
||||
|
||||
<!-- final page (success state) -->
|
||||
<String Id="SuccessHeader">Setup Successful</String>
|
||||
<String Id="SuccessInstallHeader">Installation Successfully Completed</String>
|
||||
<String Id="SuccessRepairHeader">Repair Successfully Completed</String>
|
||||
<String Id="SuccessUninstallHeader">Uninstall Successfully Completed</String>
|
||||
<String Id="SuccessLaunchButton">&Launch</String>
|
||||
<String Id="SuccessCloseButton">&Close</String>
|
||||
|
||||
<!-- final page (fail state) -->
|
||||
<String Id="FailureHeader">Setup Failed</String>
|
||||
<String Id="FailureInstallHeader">Setup Failed</String>
|
||||
<String Id="FailureUninstallHeader">Uninstall Failed</String>
|
||||
<String Id="FailureRepairHeader">Repair Failed</String>
|
||||
<String Id="FailureHyperlinkLogText">
|
||||
One or more issues caused the setup to fail. Please fix the issues and then retry setup. For more information see the <a href="#">log file</a>.
|
||||
</String>
|
||||
<String Id="FailureCloseButton">&Close</String>
|
||||
|
||||
<!-- help page -->
|
||||
<String Id="HelpHeader">Setup Help</String>
|
||||
<String Id="HelpText">
|
||||
/install | /repair | /uninstall | /layout [directory] - installs, repairs, uninstalls or creates a complete local copy of the bundle in directory. Install is the default.
|
||||
|
||||
/passive | /quiet - displays minimal UI with no prompts or displays no UI and no prompts. By default UI and all prompts are displayed.
|
||||
|
||||
/log log.txt - logs to a specific file. By default a log file is created in %TEMP%.
|
||||
</String>
|
||||
<String Id="HelpCloseButton">&Close</String>
|
||||
</WixLocalization>
|
||||
@@ -0,0 +1,87 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Theme xmlns="http://wixtoolset.org/schemas/thmutil/2010">
|
||||
|
||||
<Window Width="485" Height="300" HexStyle="100a0000" FontId="0">#(loc.WindowTitle)</Window>
|
||||
|
||||
<Font Id="0" Height="-12" Weight="500" Foreground="000000" Background="FFFFFF">Segoe UI</Font>
|
||||
<Font Id="1" Height="-24" Weight="500" Foreground="000000">Segoe UI</Font>
|
||||
<Font Id="2" Height="-22" Weight="500" Foreground="666666">Segoe UI</Font>
|
||||
<Font Id="3" Height="-12" Weight="500" Foreground="000000" Background="FFFFFF">Segoe UI</Font>
|
||||
|
||||
<!-- top banner -->
|
||||
<Image X="11" Y="11" Width="64" Height="64" ImageFile="logo.png" Visible="yes"/>
|
||||
<Text X="80" Y="11" Width="-11" Height="64" FontId="1" Visible="yes" DisablePrefix="yes">#(loc.Title)</Text>
|
||||
|
||||
<!-- welcome page -->
|
||||
<Page Name="Install">
|
||||
@WIX_THEME_INSTALL_LICENSE_ELEMENT@
|
||||
|
||||
<Checkbox Name="EulaAcceptCheckbox" X="-11" Y="-41" Width="260" Height="17" TabStop="yes" FontId="3" HideWhenDisabled="yes">#(loc.InstallAcceptCheckbox)</Checkbox>
|
||||
<Button Name="OptionsButton" X="-171" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" HideWhenDisabled="yes">#(loc.InstallOptionsButton)</Button>
|
||||
<Button Name="InstallButton" X="-91" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.InstallInstallButton)</Button>
|
||||
<Button Name="WelcomeCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.InstallCloseButton)</Button>
|
||||
</Page>
|
||||
|
||||
<!-- configure install page -->
|
||||
<Page Name="Options">
|
||||
<Text X="11" Y="80" Width="-11" Height="30" FontId="2" DisablePrefix="yes">#(loc.OptionsHeader)</Text>
|
||||
|
||||
<Text X="11" Y="121" Width="-11" Height="17" FontId="3" DisablePrefix="yes">#(loc.OptionsLocationLabel)</Text>
|
||||
<Editbox Name="FolderEditbox" X="11" Y="143" Width="-91" Height="21" TabStop="yes" FontId="3" FileSystemAutoComplete="yes" />
|
||||
<Button Name="BrowseButton" X="-11" Y="142" Width="75" Height="23" TabStop="yes" FontId="3">#(loc.OptionsBrowseButton)</Button>
|
||||
|
||||
<Button Name="OptionsOkButton" X="-91" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.OptionsOkButton)</Button>
|
||||
<Button Name="OptionsCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.OptionsCancelButton)</Button>
|
||||
</Page>
|
||||
|
||||
<!-- edit existing install page -->
|
||||
<Page Name="Modify">
|
||||
<Text X="11" Y="80" Width="-11" Height="30" FontId="2" DisablePrefix="yes">#(loc.ModifyHeader)</Text>
|
||||
|
||||
<Button Name="RepairButton" X="-171" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" HideWhenDisabled="yes">#(loc.ModifyRepairButton)</Button>
|
||||
<Button Name="UninstallButton" X="-91" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.ModifyUninstallButton)</Button>
|
||||
<Button Name="ModifyCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.ModifyCloseButton)</Button>
|
||||
</Page>
|
||||
|
||||
<!-- action progress page -->
|
||||
<Page Name="Progress">
|
||||
<Text X="11" Y="80" Width="-11" Height="30" FontId="2" DisablePrefix="yes">#(loc.ProgressHeader)</Text>
|
||||
|
||||
<Text X="11" Y="121" Width="70" Height="17" FontId="3" DisablePrefix="yes">#(loc.ProgressLabel)</Text>
|
||||
<Text Name="OverallProgressPackageText" X="85" Y="121" Width="-11" Height="17" FontId="3" DisablePrefix="yes">#(loc.OverallProgressPackageText)</Text>
|
||||
<Progressbar Name="OverallCalculatedProgressbar" X="11" Y="143" Width="-11" Height="15" />
|
||||
|
||||
<Button Name="ProgressCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.ProgressCancelButton)</Button>
|
||||
</Page>
|
||||
|
||||
<!-- final page (success state) -->
|
||||
<Page Name="Success">
|
||||
<Text Name="SuccessHeader" X="11" Y="80" Width="-11" Height="30" FontId="2" HideWhenDisabled="yes" DisablePrefix="yes">#(loc.SuccessHeader)</Text>
|
||||
<Text Name="SuccessInstallHeader" X="11" Y="80" Width="-11" Height="30" FontId="2" HideWhenDisabled="yes" DisablePrefix="yes">#(loc.SuccessInstallHeader)</Text>
|
||||
<Text Name="SuccessRepairHeader" X="11" Y="80" Width="-11" Height="30" FontId="2" HideWhenDisabled="yes" DisablePrefix="yes">#(loc.SuccessRepairHeader)</Text>
|
||||
<Text Name="SuccessUninstallHeader" X="11" Y="80" Width="-11" Height="30" FontId="2" HideWhenDisabled="yes" DisablePrefix="yes">#(loc.SuccessUninstallHeader)</Text>
|
||||
|
||||
<Button Name="LaunchButton" X="-91" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" HideWhenDisabled="yes">#(loc.SuccessLaunchButton)</Button>
|
||||
<Button Name="SuccessCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.SuccessCloseButton)</Button>
|
||||
</Page>
|
||||
|
||||
<!-- final page (failure state) -->
|
||||
<Page Name="Failure">
|
||||
<Text Name="FailureHeader" X="11" Y="80" Width="-11" Height="30" FontId="2" HideWhenDisabled="yes" DisablePrefix="yes">#(loc.FailureHeader)</Text>
|
||||
<Text Name="FailureInstallHeader" X="11" Y="80" Width="-11" Height="30" FontId="2" HideWhenDisabled="yes" DisablePrefix="yes">#(loc.FailureInstallHeader)</Text>
|
||||
<Text Name="FailureUninstallHeader" X="11" Y="80" Width="-11" Height="30" FontId="2" HideWhenDisabled="yes" DisablePrefix="yes">#(loc.FailureUninstallHeader)</Text>
|
||||
<Text Name="FailureRepairHeader" X="11" Y="80" Width="-11" Height="30" FontId="2" HideWhenDisabled="yes" DisablePrefix="yes">#(loc.FailureRepairHeader)</Text>
|
||||
|
||||
<Hypertext Name="FailureLogFileLink" X="11" Y="121" Width="-11" Height="42" FontId="3" TabStop="yes" HideWhenDisabled="yes">#(loc.FailureHyperlinkLogText)</Hypertext>
|
||||
<Hypertext Name="FailureMessageText" X="22" Y="163" Width="-11" Height="51" FontId="3" TabStop="yes" HideWhenDisabled="yes" />
|
||||
|
||||
<Button Name="FailureCloseButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.FailureCloseButton)</Button>
|
||||
</Page>
|
||||
|
||||
<!-- help page -->
|
||||
<Page Name="Help">
|
||||
<Text X="11" Y="80" Width="-11" Height="30" FontId="2" DisablePrefix="yes">#(loc.HelpHeader)</Text>
|
||||
<Text X="11" Y="112" Width="-11" Height="-35" FontId="3" DisablePrefix="yes">#(loc.HelpText)</Text>
|
||||
<Button Name="HelpCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.HelpCloseButton)</Button>
|
||||
</Page>
|
||||
</Theme>
|
||||
@@ -25,6 +25,7 @@ set(_ext_flags
|
||||
)
|
||||
|
||||
set(_addtional_defines
|
||||
-dCPACK_BOOTSTRAP_THEME_FILE=${CPACK_BINARY_DIR}/BootstrapperTheme
|
||||
-dCPACK_BOOTSTRAP_UPGRADE_GUID=${CPACK_WIX_BOOTSTRAP_UPGRADE_GUID}
|
||||
-dCPACK_DOWNLOAD_SITE=${CPACK_DOWNLOAD_SITE}
|
||||
-dCPACK_LOCAL_INSTALLER_DIR=${_cpack_wix_out_dir}
|
||||
|
||||
@@ -92,6 +92,28 @@ set(CPACK_WIX_EXTENSIONS
|
||||
set(_embed_artifacts "yes")
|
||||
|
||||
if(LY_INSTALLER_DOWNLOAD_URL)
|
||||
|
||||
if(LY_INSTALLER_LICENSE_URL)
|
||||
set(WIX_THEME_INSTALL_LICENSE_ELEMENT
|
||||
"<Hypertext Name=\"EulaHyperlink\" X=\"11\" Y=\"121\" Width=\"-11\" Height=\"51\" TabStop=\"yes\" FontId=\"3\" HideWhenDisabled=\"yes\">#(loc.InstallLicenseLinkText)</Hypertext>"
|
||||
)
|
||||
else()
|
||||
set(WIX_THEME_INSTALL_LICENSE_ELEMENT
|
||||
"<Richedit Name=\"EulaRichedit\" X=\"11\" Y=\"80\" Width=\"-11\" Height=\"-70\" TabStop=\"yes\" FontId=\"0\" HexStyle=\"0x800000\" />"
|
||||
)
|
||||
endif()
|
||||
|
||||
configure_file(
|
||||
"${CPACK_SOURCE_DIR}/Platform/Windows/Packaging/BootstrapperTheme.xml.in"
|
||||
"${CPACK_BINARY_DIR}/BootstrapperTheme.xml"
|
||||
@ONLY
|
||||
)
|
||||
configure_file(
|
||||
"${CPACK_SOURCE_DIR}/Platform/Windows/Packaging/BootstrapperTheme.wxl.in"
|
||||
"${CPACK_BINARY_DIR}/BootstrapperTheme.wxl"
|
||||
@ONLY
|
||||
)
|
||||
|
||||
set(_embed_artifacts "no")
|
||||
|
||||
# the bootstrapper will at the very least need a different upgrade guid
|
||||
|
||||
@@ -26,6 +26,8 @@ set(FILES
|
||||
Packaging_windows.cmake
|
||||
PackagingPostBuild.cmake
|
||||
Packaging/Bootstrapper.wxs
|
||||
Packaging/BootstrapperTheme.wxl.in
|
||||
Packaging/BootstrapperTheme.xml.in
|
||||
Packaging/Shortcuts.wxs
|
||||
Packaging/Template.wxs.in
|
||||
)
|
||||
|
||||
@@ -24,6 +24,7 @@ ly_set(PAL_TRAIT_BUILD_CPACK_SUPPORTED FALSE)
|
||||
# Test library support
|
||||
ly_set(PAL_TRAIT_TEST_GOOGLE_TEST_SUPPORTED FALSE)
|
||||
ly_set(PAL_TRAIT_TEST_GOOGLE_BENCHMARK_SUPPORTED FALSE)
|
||||
ly_set(PAL_TRAIT_TEST_LYTESTTOOLS_SUPPORTED FALSE)
|
||||
ly_set(PAL_TRAIT_TEST_PYTEST_SUPPORTED FALSE)
|
||||
ly_set(PAL_TRAIT_TEST_TARGET_TYPE MODULE)
|
||||
|
||||
|
||||
@@ -184,11 +184,15 @@ class AndroidDeployment(object):
|
||||
|
||||
call_arguments.extend(arg_list)
|
||||
|
||||
output = subprocess.check_output(call_arguments,
|
||||
shell=True,
|
||||
stderr=subprocess.DEVNULL).decode(common.DEFAULT_TEXT_READ_ENCODING,
|
||||
common.ENCODING_ERROR_HANDLINGS)
|
||||
return output
|
||||
try:
|
||||
output = subprocess.check_output(call_arguments,
|
||||
shell=True,
|
||||
stderr=subprocess.PIPE).decode(common.DEFAULT_TEXT_READ_ENCODING,
|
||||
common.ENCODING_ERROR_HANDLINGS)
|
||||
return output
|
||||
except subprocess.CalledProcessError as err:
|
||||
raise common.LmbrCmdError(err.stderr.decode(common.DEFAULT_TEXT_READ_ENCODING,
|
||||
common.ENCODING_ERROR_HANDLINGS))
|
||||
|
||||
def adb_shell(self, command, device_id):
|
||||
"""
|
||||
|
||||
@@ -48,7 +48,7 @@ def verify_gradle(override_gradle_path=None):
|
||||
|
||||
|
||||
CMAKE_ARGUMENT_NAME = '--cmake-install-path'
|
||||
CMAKE_MIN_VERSION = LooseVersion('3.19.0')
|
||||
CMAKE_MIN_VERSION = LooseVersion('3.20.0')
|
||||
CMAKE_VERSION_REGEX = re.compile(r'cmake version (\d+.\d+.?\d*)')
|
||||
CMAKE_EXECUTABLE = 'cmake'
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@ import pathlib
|
||||
import sys
|
||||
|
||||
SCHEME_NAME = 'AzTestRunner'
|
||||
XCODE_PROJECT_NAME = 'O3DE'
|
||||
|
||||
# Resolve the common python module
|
||||
ROOT_DEV_PATH = os.path.realpath(os.path.join(os.path.dirname(__file__), '..', '..', '..', '..'))
|
||||
@@ -30,7 +31,7 @@ def build_ios_test(build_dir, configuration):
|
||||
|
||||
xcode_build = common.CommandLineExec('/usr/bin/xcodebuild')
|
||||
command_line_arguments = ['build-for-testing',
|
||||
'-project', 'Lumberyard.xcodeproj',
|
||||
'-project', f'{XCODE_PROJECT_NAME}.xcodeproj',
|
||||
'-scheme', SCHEME_NAME,
|
||||
'-configuration', configuration,
|
||||
'-allowProvisioningUpdates',
|
||||
@@ -55,7 +56,7 @@ def main(args):
|
||||
parsed_args = parser.parse_args(args)
|
||||
|
||||
build_ios_test(build_dir=parsed_args.build_dir,
|
||||
configuration=parsed_args.configuration)
|
||||
configuration=parsed_args.configuration)
|
||||
return 0
|
||||
|
||||
|
||||
|
||||
@@ -11,17 +11,22 @@
|
||||
|
||||
import argparse
|
||||
import glob
|
||||
import json
|
||||
import logging
|
||||
import os
|
||||
import pathlib
|
||||
import plistlib
|
||||
import re
|
||||
import sys
|
||||
import time
|
||||
|
||||
TEST_TARGET_NAME = 'TestLauncherTarget'
|
||||
TEST_STARTED_STRING = 'TEST STARTED'
|
||||
TEST_SUCCESS_STRING = 'TEST SUCCEEDED'
|
||||
TEST_FAILURE_STRING = 'TEST FAILED'
|
||||
|
||||
TEST_RUN_SEARCH_PATTERN=re.compile(r'^\[\s*([a-zA-Z0-9]*\s*)\]\s*([a-zA-Z0-9\.\s]*)(\(.*\))')
|
||||
|
||||
# Resolve the common python module
|
||||
ROOT_DEV_PATH = os.path.realpath(os.path.join(os.path.dirname(__file__), '..', '..', '..', '..'))
|
||||
if ROOT_DEV_PATH not in sys.path:
|
||||
@@ -29,7 +34,7 @@ if ROOT_DEV_PATH not in sys.path:
|
||||
|
||||
from cmake.Tools import common
|
||||
|
||||
def launch_ios_test(build_dir, target_dev_name, test_target, timeout_secs, test_filter, xctestrun_file):
|
||||
def launch_ios_test(build_dir, target_dev_name, test_target, timeout_secs, test_filter, xctestrun_file, test_report_json_file):
|
||||
|
||||
build_path = pathlib.Path(build_dir) if os.path.isabs(build_dir) else pathlib.Path(ROOT_DEV_PATH) / build_dir
|
||||
if not build_path.is_dir():
|
||||
@@ -57,6 +62,11 @@ def launch_ios_test(build_dir, target_dev_name, test_target, timeout_secs, test_
|
||||
test_targets = common.get_validated_test_modules(test_modules=test_target, build_dir_path=build_path)
|
||||
|
||||
test_run_contents = []
|
||||
test_case_successes = []
|
||||
test_case_fails = []
|
||||
crashed_test_modules = []
|
||||
test_case_count = 0
|
||||
|
||||
with open(test_run_file, 'rb') as fp:
|
||||
test_run_contents = plistlib.load(fp)
|
||||
|
||||
@@ -74,7 +84,7 @@ def launch_ios_test(build_dir, target_dev_name, test_target, timeout_secs, test_
|
||||
with open(test_run_file, 'wb') as fp:
|
||||
plistlib.dump(test_run_contents, fp, sort_keys=False)
|
||||
|
||||
xcode_args = ['test-without-building', '-xctestrun', test_run_file, '-destination', f'platform=iOS,name={target_dev_name}']
|
||||
xcode_args = ['test-without-building', '-xctestrun', test_run_file, '-destination', f'platform=iOS,name={target_dev_name}', '-allowProvisioningUpdates', '-allowProvisioningDeviceRegistration']
|
||||
if timeout_secs < 0:
|
||||
xcode_args.extend(['-test-timeouts-enabled', 'NO'])
|
||||
else:
|
||||
@@ -89,6 +99,22 @@ def launch_ios_test(build_dir, target_dev_name, test_target, timeout_secs, test_
|
||||
test_output = False
|
||||
while xcode_out.poll() is None:
|
||||
line = xcode_out.stdout.readline()
|
||||
if line.startswith('** TEST EXECUTE FAILED **'):
|
||||
# The test run crashed, so we need to track the failed test module
|
||||
crashed_test_modules.append(target)
|
||||
else:
|
||||
matched = TEST_RUN_SEARCH_PATTERN.search(line)
|
||||
if matched:
|
||||
test_case_action = matched.group(1).strip()
|
||||
test_case_name = matched.group(2).strip()
|
||||
test_case_elapsed = matched.group(3).strip() if len(matched.groups()) > 2 else ''
|
||||
if test_case_action == 'OK':
|
||||
test_case_successes.append(f'{test_case_name} {test_case_elapsed}')
|
||||
test_case_count += 1
|
||||
elif test_case_action == 'FAILED' and 'listed below:' not in test_case_name:
|
||||
test_case_fails.append(f'{test_case_name} {test_case_elapsed}')
|
||||
test_case_count += 1
|
||||
|
||||
if TEST_STARTED_STRING in line:
|
||||
test_output = True
|
||||
|
||||
@@ -99,11 +125,32 @@ def launch_ios_test(build_dir, target_dev_name, test_target, timeout_secs, test_
|
||||
test_output = False
|
||||
|
||||
if test_output:
|
||||
print(line)
|
||||
print(line, end='')
|
||||
else:
|
||||
logging.debug(line)
|
||||
|
||||
print(f'{target} Succeeded') if test_success else print(f'{target} Failed')
|
||||
logging.info(f'{target} Succeeded') if test_success else print(f'{target} Failed')
|
||||
|
||||
if test_report_json_file:
|
||||
test_report_json_path = pathlib.Path(test_report_json_file)
|
||||
test_timestamp = time.strftime("%Y-%m-%dT%H:%M:%SZ", time.localtime())
|
||||
result_dict = {
|
||||
'index': 'ly_platforms.test',
|
||||
'payload': {
|
||||
'Git Success': True,
|
||||
'Build Success': True,
|
||||
'Passed': test_case_successes,
|
||||
'Failed': test_case_fails,
|
||||
'CrashedModules': crashed_test_modules,
|
||||
'Count': test_case_count
|
||||
},
|
||||
'pipeline': 'filebeat',
|
||||
'timestamp': test_timestamp
|
||||
}
|
||||
result_json = json.dumps(result_dict, indent=4)
|
||||
test_report_json_path.write_text(result_json, encoding='UTF-8', errors='ignore')
|
||||
logging.info(f'MARS report saved to {test_report_json_path}')
|
||||
logging.info(f"MARS report:\n{result_json}")
|
||||
|
||||
|
||||
def main(args):
|
||||
@@ -140,20 +187,24 @@ def main(args):
|
||||
help='Enable debug logging',
|
||||
action='store_true')
|
||||
|
||||
parser.add_argument('--test-report-json',
|
||||
help='The optional path to the test report json file that will be generated for MARS reporting',
|
||||
default=None)
|
||||
|
||||
parsed_args = parser.parse_args(args)
|
||||
|
||||
logging.basicConfig(format='%(levelname)s: %(message)s',
|
||||
level=logging.DEBUG if parsed_args.debug else logging.INFO)
|
||||
|
||||
result = launch_ios_test(build_dir=parsed_args.build_dir,
|
||||
target_dev_name=parsed_args.device_name,
|
||||
test_target=parsed_args.test_module,
|
||||
timeout_secs=int(parsed_args.timeout),
|
||||
test_filter=parsed_args.test_filter,
|
||||
xctestrun_file=parsed_args.xctestrun_file)
|
||||
target_dev_name=parsed_args.device_name,
|
||||
test_target=parsed_args.test_module,
|
||||
timeout_secs=int(parsed_args.timeout),
|
||||
test_filter=parsed_args.test_filter,
|
||||
xctestrun_file=parsed_args.xctestrun_file,
|
||||
test_report_json_file=parsed_args.test_report_json)
|
||||
return 0 if result else 1
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
try:
|
||||
|
||||
+13
-5
@@ -274,6 +274,8 @@ def verify_tool(override_tool_path, tool_name, tool_filename, argument_name, too
|
||||
:return: Tuple of the resolved tool version and the resolved override tool path if provided
|
||||
"""
|
||||
|
||||
tool_source = tool_name
|
||||
|
||||
try:
|
||||
# Use either the provided gradle override or the gradle in the path environment
|
||||
if override_tool_path:
|
||||
@@ -306,18 +308,17 @@ def verify_tool(override_tool_path, tool_name, tool_filename, argument_name, too
|
||||
tool_desc = f"{tool_name} path provided in the command line argument '{argument_name}={override_tool_path}' "
|
||||
else:
|
||||
resolved_override_tool_path = None
|
||||
tool_source = tool_name
|
||||
tool_desc = f"installed {tool_name} in the system path"
|
||||
|
||||
# Extract the version and verify
|
||||
version_output = subprocess.check_output([tool_source, tool_version_argument],
|
||||
shell=True).decode(DEFAULT_TEXT_READ_ENCODING,
|
||||
ENCODING_ERROR_HANDLINGS)
|
||||
shell=True,
|
||||
stderr=subprocess.PIPE).decode(DEFAULT_TEXT_READ_ENCODING,
|
||||
ENCODING_ERROR_HANDLINGS)
|
||||
version_match = tool_version_regex.search(version_output)
|
||||
if not version_match:
|
||||
raise RuntimeError()
|
||||
|
||||
|
||||
# Since we are doing a compare, strip out any non-numeric and non . character from the version otherwise we will get a TypeError on the LooseVersion comparison
|
||||
result_version_str = re.sub(r"[^\.0-9]", "", str(version_match.group(1)).strip())
|
||||
result_version = LooseVersion(result_version_str)
|
||||
@@ -331,7 +332,14 @@ def verify_tool(override_tool_path, tool_name, tool_filename, argument_name, too
|
||||
|
||||
return result_version, resolved_override_tool_path
|
||||
|
||||
except (CalledProcessError, WindowsError, RuntimeError) as e:
|
||||
except CalledProcessError as e:
|
||||
error_msg = e.output.decode(DEFAULT_TEXT_READ_ENCODING,
|
||||
ENCODING_ERROR_HANDLINGS)
|
||||
raise LmbrCmdError(f"{tool_name} cannot be resolved or there was a problem determining its version number. "
|
||||
f"Either make sure its in the system path environment or a valid path is passed in "
|
||||
f"through the {argument_name} argument.\n{error_msg}",
|
||||
ERROR_CODE_ERROR_NOT_SUPPORTED)
|
||||
except (WindowsError, RuntimeError) as e:
|
||||
logging.error(f"Call to '{tool_source}' resulted in error: {e}")
|
||||
raise LmbrCmdError(f"{tool_name} cannot be resolved or there was a problem determining its version number. "
|
||||
f"Either make sure its in the system path environment or a valid path is passed in "
|
||||
|
||||
Reference in New Issue
Block a user