Add linux equivalents for all the places that enumerate platforms (#3325)
* Add linux equivalents for all the places that enumerate platforms Signed-off-by: Chris Burel <burelc@amazon.com> * Fix the AssetFileInfoListComparisonTest fixture to not hardcode the PC platform Signed-off-by: Chris Burel <burelc@amazon.com>
This commit is contained in:
@@ -15,7 +15,7 @@ namespace AZ
|
||||
{
|
||||
inline namespace PlatformDefaults
|
||||
{
|
||||
static const char* PlatformNames[PlatformId::NumPlatformIds] = { PlatformPC, PlatformAndroid, PlatformIOS, PlatformMac, PlatformProvo, PlatformSalem, PlatformJasper, PlatformServer, PlatformAll, PlatformAllClient };
|
||||
static const char* PlatformNames[PlatformId::NumPlatformIds] = { PlatformPC, PlatformLinux, PlatformAndroid, PlatformIOS, PlatformMac, PlatformProvo, PlatformSalem, PlatformJasper, PlatformServer, PlatformAll, PlatformAllClient };
|
||||
|
||||
const char* PlatformIdToPalFolder(AZ::PlatformId platform)
|
||||
{
|
||||
@@ -27,6 +27,8 @@ namespace AZ
|
||||
{
|
||||
case AZ::PC:
|
||||
return "PC";
|
||||
case AZ::LINUX_ID:
|
||||
return "Linux";
|
||||
case AZ::ANDROID_ID:
|
||||
return "Android";
|
||||
case AZ::IOS:
|
||||
@@ -56,10 +58,14 @@ namespace AZ
|
||||
|
||||
const char* OSPlatformToDefaultAssetPlatform(AZStd::string_view osPlatform)
|
||||
{
|
||||
if (osPlatform == PlatformCodeNameWindows || osPlatform == PlatformCodeNameLinux)
|
||||
if (osPlatform == PlatformCodeNameWindows)
|
||||
{
|
||||
return PlatformPC;
|
||||
}
|
||||
if (osPlatform == PlatformCodeNameLinux)
|
||||
{
|
||||
return PlatformLinux;
|
||||
}
|
||||
else if (osPlatform == PlatformCodeNameMac)
|
||||
{
|
||||
return PlatformMac;
|
||||
@@ -201,6 +207,8 @@ namespace AZ
|
||||
{
|
||||
case PlatformId::PC:
|
||||
platformCodes.emplace_back(PlatformCodeNameWindows);
|
||||
break;
|
||||
case PlatformId::LINUX_ID:
|
||||
platformCodes.emplace_back(PlatformCodeNameLinux);
|
||||
break;
|
||||
case PlatformId::ANDROID_ID:
|
||||
|
||||
@@ -23,6 +23,7 @@ namespace AZ
|
||||
inline namespace PlatformDefaults
|
||||
{
|
||||
constexpr char PlatformPC[] = "pc";
|
||||
constexpr char PlatformLinux[] = "linux";
|
||||
constexpr char PlatformAndroid[] = "android";
|
||||
constexpr char PlatformIOS[] = "ios";
|
||||
constexpr char PlatformMac[] = "mac";
|
||||
@@ -50,6 +51,7 @@ namespace AZ
|
||||
AZ_ENUM_WITH_UNDERLYING_TYPE(PlatformId, int,
|
||||
(Invalid, -1),
|
||||
PC,
|
||||
LINUX_ID,
|
||||
ANDROID_ID,
|
||||
IOS,
|
||||
MAC_ID,
|
||||
@@ -63,12 +65,13 @@ namespace AZ
|
||||
// Add new platforms above this
|
||||
NumPlatformIds
|
||||
);
|
||||
constexpr int NumClientPlatforms = 7;
|
||||
constexpr int NumClientPlatforms = 8;
|
||||
constexpr int NumPlatforms = NumClientPlatforms + 1; // 1 "Server" platform currently
|
||||
enum class PlatformFlags : AZ::u32
|
||||
{
|
||||
Platform_NONE = 0x00,
|
||||
Platform_PC = 1 << PlatformId::PC,
|
||||
Platform_LINUX = 1 << PlatformId::LINUX_ID,
|
||||
Platform_ANDROID = 1 << PlatformId::ANDROID_ID,
|
||||
Platform_IOS = 1 << PlatformId::IOS,
|
||||
Platform_MAC = 1 << PlatformId::MAC_ID,
|
||||
@@ -83,7 +86,7 @@ namespace AZ
|
||||
// A special platform that will always correspond to all non-server platforms, even if new ones are added
|
||||
Platform_ALL_CLIENT = 1ULL << 31,
|
||||
|
||||
AllNamedPlatforms = Platform_PC | Platform_ANDROID | Platform_IOS | Platform_MAC | Platform_PROVO | Platform_SALEM | Platform_JASPER | Platform_SERVER,
|
||||
AllNamedPlatforms = Platform_PC | Platform_LINUX | Platform_ANDROID | Platform_IOS | Platform_MAC | Platform_PROVO | Platform_SALEM | Platform_JASPER | Platform_SERVER,
|
||||
};
|
||||
|
||||
AZ_DEFINE_ENUM_BITWISE_OPERATORS(PlatformFlags);
|
||||
|
||||
@@ -38,7 +38,7 @@ TEST_F(PlatformHelperTest, SpecialAllFlag_PlatformId_Valid)
|
||||
AzFramework::PlatformFlags platformFlags = AzFramework::PlatformFlags::Platform_ALL;
|
||||
auto platforms = AzFramework::PlatformHelper::GetPlatformsInterpreted(platformFlags);
|
||||
EXPECT_EQ(platforms.size(), AzFramework::NumPlatforms);
|
||||
EXPECT_THAT(platforms, testing::UnorderedElementsAre("pc", "android", "ios", "mac", "provo", "salem", "jasper", "server"));
|
||||
EXPECT_THAT(platforms, testing::UnorderedElementsAre("pc", "linux", "android", "ios", "mac", "provo", "salem", "jasper", "server"));
|
||||
}
|
||||
|
||||
TEST_F(PlatformHelperTest, SpecialAllClientFlag_PlatformId_Valid)
|
||||
@@ -46,7 +46,7 @@ TEST_F(PlatformHelperTest, SpecialAllClientFlag_PlatformId_Valid)
|
||||
AzFramework::PlatformFlags platformFlags = AzFramework::PlatformFlags::Platform_ALL_CLIENT;
|
||||
auto platforms = AzFramework::PlatformHelper::GetPlatformsInterpreted(platformFlags);
|
||||
EXPECT_EQ(platforms.size(), AzFramework::NumClientPlatforms);
|
||||
EXPECT_THAT(platforms, testing::UnorderedElementsAre("pc", "android", "ios", "mac", "provo", "salem", "jasper"));
|
||||
EXPECT_THAT(platforms, testing::UnorderedElementsAre("pc", "linux", "android", "ios", "mac", "provo", "salem", "jasper"));
|
||||
}
|
||||
|
||||
TEST_F(PlatformHelperTest, InvalidPlatformFlags_PlatformId_Empty)
|
||||
@@ -102,11 +102,7 @@ TEST_F(PlatformHelperTest, AppendPlatformCodeNames_ByValidName_OK)
|
||||
{
|
||||
AZStd::fixed_vector<AZStd::string_view, AzFramework::MaxPlatformCodeNames> platformCodes;
|
||||
AzFramework::PlatformHelper::AppendPlatformCodeNames(platformCodes, AzFramework::PlatformPC);
|
||||
ASSERT_EQ(2, platformCodes.size());
|
||||
AZStd::string windows = platformCodes[0];
|
||||
AZStd::string linux = platformCodes[1];
|
||||
EXPECT_STRCASEEQ(AzFramework::PlatformCodeNameWindows, windows.c_str());
|
||||
EXPECT_STRCASEEQ(AzFramework::PlatformCodeNameLinux, linux.c_str());
|
||||
EXPECT_THAT(platformCodes, testing::Pointwise(testing::Eq(), {AzFramework::PlatformCodeNameWindows}));
|
||||
}
|
||||
|
||||
TEST_F(PlatformHelperTest, AppendPlatformCodeNames_ByInvalidName_OK)
|
||||
@@ -122,11 +118,7 @@ TEST_F(PlatformHelperTest, AppendPlatformCodeNames_ByValidId_OK)
|
||||
{
|
||||
AZStd::fixed_vector<AZStd::string_view, AzFramework::MaxPlatformCodeNames> platformCodes;
|
||||
AzFramework::PlatformHelper::AppendPlatformCodeNames(platformCodes, AzFramework::PlatformId::PC);
|
||||
ASSERT_EQ(2, platformCodes.size());
|
||||
AZStd::string windows = platformCodes[0];
|
||||
AZStd::string linux = platformCodes[1];
|
||||
EXPECT_STRCASEEQ(AzFramework::PlatformCodeNameWindows, windows.c_str());
|
||||
EXPECT_STRCASEEQ(AzFramework::PlatformCodeNameLinux, linux.c_str());
|
||||
EXPECT_THAT(platformCodes, testing::Pointwise(testing::Eq(), {AzFramework::PlatformCodeNameWindows}));
|
||||
}
|
||||
|
||||
TEST_F(PlatformHelperTest, AppendPlatformCodeNames_ByInvalidId_OK)
|
||||
|
||||
@@ -312,8 +312,7 @@ namespace AzToolsFramework
|
||||
#elif defined(AZ_PLATFORM_WINDOWS)
|
||||
return "pc";
|
||||
#elif defined(AZ_PLATFORM_LINUX)
|
||||
// set this to pc because that's what bootstrap.cfg currently defines the platform to "pc", even on Linux
|
||||
return "pc";
|
||||
return "linux";
|
||||
#else
|
||||
#error Unimplemented Host Asset Platform
|
||||
#endif
|
||||
|
||||
@@ -65,7 +65,8 @@ namespace UnitTest
|
||||
AzToolsFramework::AssetSeedManager assetSeedManager;
|
||||
AzFramework::AssetRegistry assetRegistry;
|
||||
|
||||
const AZStd::string assetRoot = AzToolsFramework::PlatformAddressedAssetCatalog::GetAssetRootForPlatform(AzFramework::PlatformId::PC);
|
||||
const AZ::PlatformId thisPlatform = AZ::PlatformHelper::GetPlatformIdFromName(AZ::OSPlatformToDefaultAssetPlatform(AZ_TRAIT_OS_PLATFORM_CODENAME));
|
||||
const AZStd::string assetRoot = AzToolsFramework::PlatformAddressedAssetCatalog::GetAssetRootForPlatform(thisPlatform);
|
||||
|
||||
for (int idx = 0; idx < TotalAssets; idx++)
|
||||
{
|
||||
@@ -113,17 +114,18 @@ namespace UnitTest
|
||||
// Currently I am serializing the asset registry to disk
|
||||
// and invoking the LoadCatalog API to populate the asset catalog created by the azframework app.
|
||||
|
||||
AZStd::string pcCatalogFile = AzToolsFramework::PlatformAddressedAssetCatalog::GetCatalogRegistryPathForPlatform(AzFramework::PlatformId::PC);
|
||||
const AZStd::string catalogFile = AzToolsFramework::PlatformAddressedAssetCatalog::GetCatalogRegistryPathForPlatform(thisPlatform);
|
||||
|
||||
bool catalogSaved = AzFramework::AssetCatalog::SaveCatalog(pcCatalogFile.c_str(), &assetRegistry);
|
||||
bool catalogSaved = AzFramework::AssetCatalog::SaveCatalog(catalogFile.c_str(), &assetRegistry);
|
||||
EXPECT_TRUE(catalogSaved) << "Unable to save the asset catalog file.\n";
|
||||
|
||||
m_pcCatalog = new AzToolsFramework::PlatformAddressedAssetCatalog(AzFramework::PlatformId::PC);
|
||||
m_catalog = new AzToolsFramework::PlatformAddressedAssetCatalog(thisPlatform);
|
||||
|
||||
assetSeedManager.AddSeedAsset(m_assets[0], AzFramework::PlatformFlags::Platform_PC);
|
||||
assetSeedManager.AddSeedAsset(m_assets[1], AzFramework::PlatformFlags::Platform_PC);
|
||||
const auto thisPlatformFlags = AZ::PlatformHelper::GetPlatformFlag(AZ::OSPlatformToDefaultAssetPlatform(AZ_TRAIT_OS_PLATFORM_CODENAME));
|
||||
assetSeedManager.AddSeedAsset(m_assets[0], thisPlatformFlags);
|
||||
assetSeedManager.AddSeedAsset(m_assets[1], thisPlatformFlags);
|
||||
|
||||
bool firstAssetFileInfoListSaved = assetSeedManager.SaveAssetFileInfo(TempFiles[FileIndex::FirstAssetFileInfoList], AzFramework::PlatformFlags::Platform_PC, {});
|
||||
bool firstAssetFileInfoListSaved = assetSeedManager.SaveAssetFileInfo(TempFiles[FileIndex::FirstAssetFileInfoList], thisPlatformFlags, {});
|
||||
EXPECT_TRUE(firstAssetFileInfoListSaved);
|
||||
|
||||
// Modify contents of asset2
|
||||
@@ -156,10 +158,10 @@ namespace UnitTest
|
||||
GTEST_FATAL_FAILURE_(AZStd::string::format("Unable to open asset file.\n").c_str());
|
||||
}
|
||||
|
||||
assetSeedManager.RemoveSeedAsset(m_assets[0], AzFramework::PlatformFlags::Platform_PC);
|
||||
assetSeedManager.AddSeedAsset(m_assets[5], AzFramework::PlatformFlags::Platform_PC);
|
||||
assetSeedManager.RemoveSeedAsset(m_assets[0], thisPlatformFlags);
|
||||
assetSeedManager.AddSeedAsset(m_assets[5], thisPlatformFlags);
|
||||
|
||||
bool secondAssetFileInfoListSaved = assetSeedManager.SaveAssetFileInfo(TempFiles[FileIndex::SecondAssetFileInfoList], AzFramework::PlatformFlags::Platform_PC, {});
|
||||
bool secondAssetFileInfoListSaved = assetSeedManager.SaveAssetFileInfo(TempFiles[FileIndex::SecondAssetFileInfoList], thisPlatformFlags, {});
|
||||
EXPECT_TRUE(secondAssetFileInfoListSaved);
|
||||
}
|
||||
|
||||
@@ -202,7 +204,7 @@ namespace UnitTest
|
||||
AZ_TEST_STOP_TRACE_SUPPRESSION(1); // deleting from asset cache folder
|
||||
}
|
||||
|
||||
delete m_pcCatalog;
|
||||
delete m_catalog;
|
||||
m_application->Stop();
|
||||
delete m_application;
|
||||
|
||||
@@ -754,7 +756,7 @@ namespace UnitTest
|
||||
|
||||
ToolsTestApplication* m_application = nullptr;
|
||||
UnitTest::ScopedTemporaryDirectory m_tempDir;
|
||||
AzToolsFramework::PlatformAddressedAssetCatalog* m_pcCatalog = nullptr;
|
||||
AzToolsFramework::PlatformAddressedAssetCatalog* m_catalog = nullptr;
|
||||
AZ::IO::FileIOStream m_fileStreams[TotalAssets];
|
||||
AZ::Data::AssetId m_assets[TotalAssets];
|
||||
AZStd::string m_assetsPath[TotalAssets];
|
||||
|
||||
@@ -74,6 +74,10 @@ namespace AssetBuilderSDK
|
||||
{
|
||||
return AssetBuilderSDK::Platform_PC;
|
||||
}
|
||||
if (azstricmp(newPlatformName, "linux") == 0)
|
||||
{
|
||||
return AssetBuilderSDK::Platform_LINUX;
|
||||
}
|
||||
if (azstricmp(newPlatformName, "android") == 0)
|
||||
{
|
||||
return AssetBuilderSDK::Platform_ANDROID;
|
||||
|
||||
@@ -144,15 +144,16 @@ namespace AssetBuilderSDK
|
||||
{
|
||||
Platform_NONE = 0x00,
|
||||
Platform_PC = 0x01,
|
||||
Platform_ANDROID = 0x02,
|
||||
Platform_IOS = 0x04,
|
||||
Platform_MAC = 0x08,
|
||||
Platform_LINUX = 0x02,
|
||||
Platform_ANDROID = 0x04,
|
||||
Platform_IOS = 0x08,
|
||||
Platform_MAC = 0x10,
|
||||
Platform_PROVO = 0x20,
|
||||
Platform_SALEM = 0x40,
|
||||
Platform_JASPER = 0x80,
|
||||
|
||||
//! if you add a new platform entry to this enum, you must add it to allplatforms as well otherwise that platform would not be considered valid.
|
||||
AllPlatforms = Platform_PC | Platform_ANDROID | Platform_IOS | Platform_MAC | Platform_PROVO | Platform_SALEM | Platform_JASPER
|
||||
AllPlatforms = Platform_PC | Platform_LINUX | Platform_ANDROID | Platform_IOS | Platform_MAC | Platform_PROVO | Platform_SALEM | Platform_JASPER
|
||||
};
|
||||
#endif // defined(ENABLE_LEGACY_PLATFORMFLAGS_SUPPORT)
|
||||
//! Map data structure to holder parameters that are passed into a job for ProcessJob requests.
|
||||
|
||||
+3
@@ -14,6 +14,9 @@
|
||||
"Platform server": {
|
||||
"tags": "server"
|
||||
},
|
||||
"Platform linux": {
|
||||
"tags": "tools,renderer"
|
||||
},
|
||||
"Platforms": {
|
||||
"android": "enabled",
|
||||
"server": "enabled"
|
||||
|
||||
+4
-1
@@ -14,6 +14,9 @@
|
||||
"Platform mac": {
|
||||
"tags": "tools,renderer"
|
||||
},
|
||||
"Platform linux": {
|
||||
"tags": "tools,renderer"
|
||||
},
|
||||
"Platform server": {
|
||||
"tags": "server"
|
||||
},
|
||||
@@ -110,4 +113,4 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -460,6 +460,10 @@ namespace AZ
|
||||
{
|
||||
platformId = AzFramework::PlatformId::PC;
|
||||
}
|
||||
else if (platformIdentifier == "linux")
|
||||
{
|
||||
platformId = AzFramework::PlatformId::LINUX_ID;
|
||||
}
|
||||
else if (platformIdentifier == "mac")
|
||||
{
|
||||
platformId = AzFramework::PlatformId::MAC_ID;
|
||||
|
||||
@@ -24,6 +24,9 @@
|
||||
"Platform pc": {
|
||||
"tags": "tools,renderer,dx12,vulkan,null"
|
||||
},
|
||||
"Platform linux": {
|
||||
"tags": "tools,renderer,vulkan,null"
|
||||
},
|
||||
"Platform android": {
|
||||
"tags": "android,mobile,renderer,vulkan"
|
||||
},
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
"ios_remote_filesystem": 0,
|
||||
"mac_remote_filesystem": 0,
|
||||
"assets": "pc",
|
||||
"linux_assets": "linux",
|
||||
"android_assets": "android",
|
||||
"ios_assets": "ios",
|
||||
"mac_assets": "mac",
|
||||
@@ -16,6 +17,7 @@
|
||||
"remote_port": 45643,
|
||||
"connect_to_remote": 0,
|
||||
"windows_connect_to_remote": 1,
|
||||
"linux_connect_to_remote": 0,
|
||||
"provo_connect_to_remote": 1,
|
||||
"salem_connect_to_remote": 0,
|
||||
"jasper_connect_to_remote": 0,
|
||||
@@ -27,6 +29,7 @@
|
||||
"salem_wait_for_connect": 0,
|
||||
"jasper_wait_for_connect": 0,
|
||||
"windows_wait_for_connect": 1,
|
||||
"linux_wait_for_connect": 0,
|
||||
"android_wait_for_connect": 0,
|
||||
"ios_wait_for_connect": 0,
|
||||
"mac_wait_for_connect": 0,
|
||||
@@ -36,4 +39,4 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -113,7 +113,7 @@
|
||||
"CMAKE_TARGET": "AssetProcessorBatch",
|
||||
"ASSET_PROCESSOR_BINARY": "bin/profile/AssetProcessorBatch",
|
||||
"ASSET_PROCESSOR_OPTIONS": "/zeroAnalysisMode",
|
||||
"ASSET_PROCESSOR_PLATFORMS": "pc,server"
|
||||
"ASSET_PROCESSOR_PLATFORMS": "linux,server"
|
||||
}
|
||||
},
|
||||
"asset_profile_nounity": {
|
||||
@@ -127,7 +127,7 @@
|
||||
"CMAKE_TARGET": "AssetProcessorBatch",
|
||||
"ASSET_PROCESSOR_BINARY": "bin/profile/AssetProcessorBatch",
|
||||
"ASSET_PROCESSOR_OPTIONS": "/zeroAnalysisMode",
|
||||
"ASSET_PROCESSOR_PLATFORMS": "pc,server"
|
||||
"ASSET_PROCESSOR_PLATFORMS": "linux,server"
|
||||
}
|
||||
},
|
||||
"periodic_test_profile": {
|
||||
|
||||
Reference in New Issue
Block a user