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>
monroegm-disable-blank-issue-2
Chris Burel 4 years ago committed by GitHub
parent b31d673de0
commit 86770deefa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -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.

@ -14,6 +14,9 @@
"Platform server": {
"tags": "server"
},
"Platform linux": {
"tags": "tools,renderer"
},
"Platforms": {
"android": "enabled",
"server": "enabled"

@ -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": {

Loading…
Cancel
Save