From 4ebd34fcb35534da732272a34019dba3794ea505 Mon Sep 17 00:00:00 2001 From: Stenzek Date: Sun, 13 Aug 2023 17:21:45 +1000 Subject: [PATCH] MSBuild: Use project referencing instead of .lib linking --- dep/minizip/minizip.vcxproj | 10 ++--- duckstation.sln | 44 ------------------- src/common-tests/common-tests.vcxproj | 2 +- src/common/common.props | 5 +-- src/common/common.vcxproj | 23 ++++++++++ src/core/core.props | 10 +---- src/core/core.vcxproj | 32 ++++++++++++++ .../duckstation-nogui.vcxproj | 19 +++++--- src/duckstation-qt/duckstation-qt.vcxproj | 18 +++++++- .../duckstation-qt.vcxproj.filters | 1 + .../duckstation-regtest.vcxproj | 19 +++++--- src/frontend-common/frontend-common.props | 14 +----- src/frontend-common/frontend-common.vcxproj | 23 ++++++++++ src/util/util.props | 8 +--- src/util/util.vcxproj | 11 +++++ 15 files changed, 146 insertions(+), 93 deletions(-) diff --git a/dep/minizip/minizip.vcxproj b/dep/minizip/minizip.vcxproj index a13e46970..be537b765 100644 --- a/dep/minizip/minizip.vcxproj +++ b/dep/minizip/minizip.vcxproj @@ -1,7 +1,6 @@  - @@ -17,19 +16,20 @@ - + + + {7ff9fdb9-d504-47db-a16a-b08071999620} + + {8BDA439C-6358-45FB-9994-2FF083BABE06} - - TurnOffAllWarnings $(ProjectDir)include;$(SolutionDir)dep\zlib\include;%(AdditionalIncludeDirectories) - \ No newline at end of file diff --git a/duckstation.sln b/duckstation.sln index e4c147bc6..a5c6bc294 100644 --- a/duckstation.sln +++ b/duckstation.sln @@ -10,29 +10,8 @@ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "imgui", "dep\imgui\imgui.vcxproj", "{BB08260F-6FBC-46AF-8924-090EE71360C6}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "common", "src\common\common.vcxproj", "{EE054E08-3799-4A59-A422-18259C105FFD}" - ProjectSection(ProjectDependencies) = postProject - {43540154-9E1E-409C-834F-B84BE5621388} = {43540154-9E1E-409C-834F-B84BE5621388} - {73EE0C55-6FFE-44E7-9C12-BAA52434A797} = {73EE0C55-6FFE-44E7-9C12-BAA52434A797} - {7F909E29-4808-4BD9-A60C-56C51A3AAEC2} = {7F909E29-4808-4BD9-A60C-56C51A3AAEC2} - {7FF9FDB9-D504-47DB-A16A-B08071999620} = {7FF9FDB9-D504-47DB-A16A-B08071999620} - {8BDA439C-6358-45FB-9994-2FF083BABE06} = {8BDA439C-6358-45FB-9994-2FF083BABE06} - {8BE398E6-B882-4248-9065-FECC8728E038} = {8BE398E6-B882-4248-9065-FECC8728E038} - {ED601289-AC1A-46B8-A8ED-17DB9EB73423} = {ED601289-AC1A-46B8-A8ED-17DB9EB73423} - EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core", "src\core\core.vcxproj", "{868B98C8-65A1-494B-8346-250A73A48C0A}" - ProjectSection(ProjectDependencies) = postProject - {09553C96-9F39-49BF-8AE6-7ACBD07C410C} = {09553C96-9F39-49BF-8AE6-7ACBD07C410C} - {4BA0A6D4-3AE1-42B2-9347-096FD023FF64} = {4BA0A6D4-3AE1-42B2-9347-096FD023FF64} - {57F6206D-F264-4B07-BAF8-11B9BBE1F455} = {57F6206D-F264-4B07-BAF8-11B9BBE1F455} - {7FF9FDB9-D504-47DB-A16A-B08071999620} = {7FF9FDB9-D504-47DB-A16A-B08071999620} - {8906836E-F06E-46E8-B11A-74E5E8C7B8FB} = {8906836E-F06E-46E8-B11A-74E5E8C7B8FB} - {933118A9-68C5-47B4-B151-B03C93961623} = {933118A9-68C5-47B4-B151-B03C93961623} - {BB08260F-6FBC-46AF-8924-090EE71360C6} = {BB08260F-6FBC-46AF-8924-090EE71360C6} - {E4357877-D459-45C7-B8F6-DCBB587BB528} = {E4357877-D459-45C7-B8F6-DCBB587BB528} - {ED601289-AC1A-46B8-A8ED-17DB9EB73423} = {ED601289-AC1A-46B8-A8ED-17DB9EB73423} - {F351C4D8-594A-4850-B77B-3C1249812CCE} = {F351C4D8-594A-4850-B77B-3C1249812CCE} - EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "stb", "dep\stb\stb.vcxproj", "{ED601289-AC1A-46B8-A8ED-17DB9EB73423}" EndProject @@ -41,16 +20,10 @@ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tinyxml2", "dep\tinyxml2\tinyxml2.vcxproj", "{933118A9-68C5-47B4-B151-B03C93961623}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "duckstation-qt", "src\duckstation-qt\duckstation-qt.vcxproj", "{28F14272-0EC4-41BB-849F-182ADB81AF70}" - ProjectSection(ProjectDependencies) = postProject - {6245DEC8-D2DA-47EE-A373-CBD6FCF3ECE6} = {6245DEC8-D2DA-47EE-A373-CBD6FCF3ECE6} - EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cubeb", "dep\cubeb\cubeb.vcxproj", "{72F9423C-91EE-4487-AAC6-555ED6F61AA1}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "minizip", "dep\minizip\minizip.vcxproj", "{8BDA439C-6358-45FB-9994-2FF083BABE06}" - ProjectSection(ProjectDependencies) = postProject - {7FF9FDB9-D504-47DB-A16A-B08071999620} = {7FF9FDB9-D504-47DB-A16A-B08071999620} - EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib", "dep\zlib\zlib.vcxproj", "{7FF9FDB9-D504-47DB-A16A-B08071999620}" EndProject @@ -63,15 +36,6 @@ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lzma", "dep\lzma\lzma.vcxproj", "{DD944834-7899-4C1C-A4C1-064B5009D239}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "frontend-common", "src\frontend-common\frontend-common.vcxproj", "{6245DEC8-D2DA-47EE-A373-CBD6FCF3ECE6}" - ProjectSection(ProjectDependencies) = postProject - {075CED82-6A20-46DF-94C7-9624AC9DDBEB} = {075CED82-6A20-46DF-94C7-9624AC9DDBEB} - {3773F4CC-614E-4028-8595-22E08CA649E3} = {3773F4CC-614E-4028-8595-22E08CA649E3} - {4266505B-DBAF-484B-AB31-B53B9C8235B3} = {4266505B-DBAF-484B-AB31-B53B9C8235B3} - {72F9423C-91EE-4487-AAC6-555ED6F61AA1} = {72F9423C-91EE-4487-AAC6-555ED6F61AA1} - {868B98C8-65A1-494B-8346-250A73A48C0A} = {868B98C8-65A1-494B-8346-250A73A48C0A} - {8BDA439C-6358-45FB-9994-2FF083BABE06} = {8BDA439C-6358-45FB-9994-2FF083BABE06} - {933118A9-68C5-47B4-B151-B03C93961623} = {933118A9-68C5-47B4-B151-B03C93961623} - EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xxhash", "dep\xxhash\xxhash.vcxproj", "{09553C96-9F39-49BF-8AE6-7ACBD07C410C}" EndProject @@ -90,9 +54,6 @@ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vixl", "dep\vixl\vixl.vcxproj", "{8906836E-F06E-46E8-B11A-74E5E8C7B8FB}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "duckstation-nogui", "src\duckstation-nogui\duckstation-nogui.vcxproj", "{0A172B2E-DC67-49FC-A4C1-975F93C586C4}" - ProjectSection(ProjectDependencies) = postProject - {6245DEC8-D2DA-47EE-A373-CBD6FCF3ECE6} = {6245DEC8-D2DA-47EE-A373-CBD6FCF3ECE6} - EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rcheevos", "dep\rcheevos\rcheevos.vcxproj", "{4BA0A6D4-3AE1-42B2-9347-096FD023FF64}" EndProject @@ -103,11 +64,6 @@ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fmt", "dep\fmt\fmt.vcxproj", "{8BE398E6-B882-4248-9065-FECC8728E038}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "util", "src\util\util.vcxproj", "{57F6206D-F264-4B07-BAF8-11B9BBE1F455}" - ProjectSection(ProjectDependencies) = postProject - {425D6C99-D1C8-43C2-B8AC-4D7B1D941017} = {425D6C99-D1C8-43C2-B8AC-4D7B1D941017} - {751D9F62-881C-454E-BCE8-CB9CF5F1D22F} = {751D9F62-881C-454E-BCE8-CB9CF5F1D22F} - {EE054E08-3799-4A59-A422-18259C105FFD} = {EE054E08-3799-4A59-A422-18259C105FFD} - EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "soundtouch", "dep\soundtouch\soundtouch.vcxproj", "{751D9F62-881C-454E-BCE8-CB9CF5F1D22F}" EndProject diff --git a/src/common-tests/common-tests.vcxproj b/src/common-tests/common-tests.vcxproj index d43bc094c..25bc2bccb 100644 --- a/src/common-tests/common-tests.vcxproj +++ b/src/common-tests/common-tests.vcxproj @@ -23,7 +23,7 @@ - $(SolutionDir)dep\googletest\include;$(SolutionDir)src;%(AdditionalIncludeDirectories) + %(AdditionalIncludeDirectories);$(SolutionDir)dep\googletest\include Console diff --git a/src/common/common.props b/src/common/common.props index 8c15b81fa..f4060baf8 100644 --- a/src/common/common.props +++ b/src/common/common.props @@ -4,14 +4,13 @@ WITH_OPENGL=1;WITH_VULKAN=1;%(PreprocessorDefinitions) $(SolutionDir)dep\glad\include;$(SolutionDir)dep\vulkan\include;%(AdditionalIncludeDirectories) - $(SolutionDir)dep\gsl\include;$(SolutionDir)dep\fast_float\include;$(SolutionDir)dep\fmt\include;$(SolutionDir)dep\stb\include;$(SolutionDir)dep\glslang;$(SolutionDir)dep\zlib\include;$(SolutionDir)dep\minizip\include;$(SolutionDir)src;%(AdditionalIncludeDirectories) + $(SolutionDir)src;%(AdditionalIncludeDirectories);$(SolutionDir)dep\gsl\include;$(SolutionDir)dep\fast_float\include;$(SolutionDir)dep\fmt\include;$(SolutionDir)dep\stb\include;$(SolutionDir)dep\glslang;$(SolutionDir)dep\zlib\include;$(SolutionDir)dep\minizip\include - $(RootBuildDir)glad\glad.lib;$(RootBuildDir)glslang\glslang.lib;%(AdditionalDependencies) - $(RootBuildDir)zstd\zstd.lib;$(RootBuildDir)fmt\fmt.lib;$(RootBuildDir)zlib\zlib.lib;$(RootBuildDir)minizip\minizip.lib;$(RootBuildDir)lzma\lzma.lib;d3dcompiler.lib;d3d11.lib;%(AdditionalDependencies) + d3dcompiler.lib;d3d11.lib;%(AdditionalDependencies) diff --git a/src/common/common.vcxproj b/src/common/common.vcxproj index 5f7250afa..31f576e30 100644 --- a/src/common/common.vcxproj +++ b/src/common/common.vcxproj @@ -196,6 +196,29 @@ true + + + {8be398e6-b882-4248-9065-fecc8728e038} + + + {43540154-9e1e-409c-834f-b84be5621388} + + + {7f909e29-4808-4bd9-a60c-56c51a3aaec2} + + + {8bda439c-6358-45fb-9994-2ff083babe06} + + + {ed601289-ac1a-46b8-a8ed-17db9eb73423} + + + {7ff9fdb9-d504-47db-a16a-b08071999620} + + + {73ee0c55-6ffe-44e7-9c12-baa52434a797} + + {EE054E08-3799-4A59-A422-18259C105FFD} diff --git a/src/core/core.props b/src/core/core.props index 7f3b8c7d7..b41302eba 100644 --- a/src/core/core.props +++ b/src/core/core.props @@ -9,19 +9,11 @@ WITH_RECOMPILER=1;%(PreprocessorDefinitions) WITH_MMAP_FASTMEM=1;%(PreprocessorDefinitions) - $(SolutionDir)dep\tinyxml2\include;$(SolutionDir)dep\glad\include;$(SolutionDir)dep\stb\include;$(SolutionDir)dep\imgui\include;$(SolutionDir)dep\xxhash\include;$(SolutionDir)dep\zlib\include;$(SolutionDir)dep\rcheevos\include;$(SolutionDir)dep\rapidjson\include;$(SolutionDir)src;%(AdditionalIncludeDirectories) + %(AdditionalIncludeDirectories);$(SolutionDir)dep\tinyxml2\include;$(SolutionDir)dep\glad\include;$(SolutionDir)dep\stb\include;$(SolutionDir)dep\imgui\include;$(SolutionDir)dep\xxhash\include;$(SolutionDir)dep\zlib\include;$(SolutionDir)dep\rcheevos\include;$(SolutionDir)dep\rapidjson\include $(SolutionDir)dep\rainterface;%(AdditionalIncludeDirectories) $(SolutionDir)dep\xbyak\xbyak;%(AdditionalIncludeDirectories) $(SolutionDir)dep\vixl\include;%(AdditionalIncludeDirectories) - - - - $(RootBuildDir)tinyxml2\tinyxml2.lib;$(RootBuildDir)rcheevos\rcheevos.lib;$(RootBuildDir)imgui\imgui.lib;$(RootBuildDir)stb\stb.lib;$(RootBuildDir)xxhash\xxhash.lib;$(RootBuildDir)zlib\zlib.lib;$(RootBuildDir)util\util.lib;$(RootBuildDir)common\common.lib;%(AdditionalDependencies) - $(RootBuildDir)rainterface\rainterface.lib;%(AdditionalDependencies) - $(RootBuildDir)vixl\vixl.lib;%(AdditionalDependencies) - - diff --git a/src/core/core.vcxproj b/src/core/core.vcxproj index a07ce3903..5bd94db1f 100644 --- a/src/core/core.vcxproj +++ b/src/core/core.vcxproj @@ -157,6 +157,38 @@ + + + {bb08260f-6fbc-46af-8924-090ee71360c6} + + + {e4357877-d459-45c7-b8f6-dcbb587bb528} + + + {4ba0a6d4-3ae1-42b2-9347-096fd023ff64} + + + {ed601289-ac1a-46b8-a8ed-17db9eb73423} + + + {933118a9-68c5-47b4-b151-b03c93961623} + + + {8906836e-f06e-46e8-b11a-74e5e8c7b8fb} + + + {09553c96-9f39-49bf-8ae6-7acbd07c410c} + + + {7ff9fdb9-d504-47db-a16a-b08071999620} + + + {73ee0c55-6ffe-44e7-9c12-baa52434a797} + + + {57f6206d-f264-4b07-baf8-11b9bbe1f455} + + {868B98C8-65A1-494B-8346-250A73A48C0A} diff --git a/src/duckstation-nogui/duckstation-nogui.vcxproj b/src/duckstation-nogui/duckstation-nogui.vcxproj index 6019e34e7..5916e9363 100644 --- a/src/duckstation-nogui/duckstation-nogui.vcxproj +++ b/src/duckstation-nogui/duckstation-nogui.vcxproj @@ -41,15 +41,24 @@ + + + {ee054e08-3799-4a59-a422-18259c105ffd} + + + {868b98c8-65a1-494b-8346-250a73a48c0a} + + + {6245dec8-d2da-47ee-a373-cbd6fcf3ece6} + + + {57f6206d-f264-4b07-baf8-11b9bbe1f455} + + {0A172B2E-DC67-49FC-A4C1-975F93C586C4} - - - $(RootBuildDir)frontend-common\frontend-common.lib;%(AdditionalDependencies) - - \ No newline at end of file diff --git a/src/duckstation-qt/duckstation-qt.vcxproj b/src/duckstation-qt/duckstation-qt.vcxproj index f01010de3..96e815e95 100644 --- a/src/duckstation-qt/duckstation-qt.vcxproj +++ b/src/duckstation-qt/duckstation-qt.vcxproj @@ -333,6 +333,23 @@ false + + + {bb08260f-6fbc-46af-8924-090ee71360c6} + + + {ee054e08-3799-4a59-a422-18259c105ffd} + + + {868b98c8-65a1-494b-8346-250a73a48c0a} + + + {6245dec8-d2da-47ee-a373-cbd6fcf3ece6} + + + {57f6206d-f264-4b07-baf8-11b9bbe1f455} + + @@ -345,7 +362,6 @@ - $(RootBuildDir)frontend-common\frontend-common.lib;%(AdditionalDependencies) $(QtEntryPointLib);%(AdditionalDependencies) diff --git a/src/duckstation-qt/duckstation-qt.vcxproj.filters b/src/duckstation-qt/duckstation-qt.vcxproj.filters index e98ec568c..19e486dd9 100644 --- a/src/duckstation-qt/duckstation-qt.vcxproj.filters +++ b/src/duckstation-qt/duckstation-qt.vcxproj.filters @@ -94,6 +94,7 @@ + diff --git a/src/duckstation-regtest/duckstation-regtest.vcxproj b/src/duckstation-regtest/duckstation-regtest.vcxproj index f4b6d0843..019905905 100644 --- a/src/duckstation-regtest/duckstation-regtest.vcxproj +++ b/src/duckstation-regtest/duckstation-regtest.vcxproj @@ -11,12 +11,21 @@ + + + {ee054e08-3799-4a59-a422-18259c105ffd} + + + {868b98c8-65a1-494b-8346-250a73a48c0a} + + + {6245dec8-d2da-47ee-a373-cbd6fcf3ece6} + + + {57f6206d-f264-4b07-baf8-11b9bbe1f455} + + - - - $(RootBuildDir)frontend-common\frontend-common.lib;%(AdditionalDependencies) - - \ No newline at end of file diff --git a/src/frontend-common/frontend-common.props b/src/frontend-common/frontend-common.props index 67ff17ad4..d4b6d7ec9 100644 --- a/src/frontend-common/frontend-common.props +++ b/src/frontend-common/frontend-common.props @@ -2,23 +2,11 @@ - - - $(SolutionDir)src;%(AdditionalIncludeDirectories) - - - $(RootBuildDir)core\core.lib;$(RootBuildDir)scmversion\scmversion.lib;%(AdditionalDependencies) - - - WITH_SDL2=1;WITH_DINPUT=1;WITH_DISCORD_PRESENCE=1;%(PreprocessorDefinitions) - $(SolutionDir)dep\cubeb\include;$(SolutionDir)dep\discord-rpc\include;%(AdditionalIncludeDirectories) + %(AdditionalIncludeDirectories);$(SolutionDir)dep\cubeb\include;$(SolutionDir)dep\discord-rpc\include - - $(RootBuildDir)cubeb\cubeb.lib;$(RootBuildDir)discord-rpc\discord-rpc.lib;%(AdditionalDependencies) - diff --git a/src/frontend-common/frontend-common.vcxproj b/src/frontend-common/frontend-common.vcxproj index ea07d2c33..a7d8b0efe 100644 --- a/src/frontend-common/frontend-common.vcxproj +++ b/src/frontend-common/frontend-common.vcxproj @@ -78,6 +78,29 @@ + + + {72f9423c-91ee-4487-aac6-555ed6f61aa1} + + + {4266505b-dbaf-484b-ab31-b53b9c8235b3} + + + {8bda439c-6358-45fb-9994-2ff083babe06} + + + {3773f4cc-614e-4028-8595-22e08ca649e3} + + + {933118a9-68c5-47b4-b151-b03c93961623} + + + {868b98c8-65a1-494b-8346-250a73a48c0a} + + + {075ced82-6a20-46df-94c7-9624ac9ddbeb} + + {6245DEC8-D2DA-47EE-A373-CBD6FCF3ECE6} diff --git a/src/util/util.props b/src/util/util.props index 9722be154..bdba634c1 100644 --- a/src/util/util.props +++ b/src/util/util.props @@ -6,13 +6,7 @@ %(PreprocessorDefinitions);SOUNDTOUCH_FLOAT_SAMPLES;SOUNDTOUCH_ALLOW_SSE;ST_NO_EXCEPTION_HANDLING=1 %(PreprocessorDefinitions);SOUNDTOUCH_USE_NEON - $(SolutionDir)dep\soundtouch\include;$(SolutionDir)dep\simpleini\include;$(SolutionDir)dep\libchdr\include;%(AdditionalIncludeDirectories) + %(AdditionalIncludeDirectories);$(SolutionDir)dep\soundtouch\include;$(SolutionDir)dep\simpleini\include;$(SolutionDir)dep\libchdr\include - - - - $(RootBuildDir)soundtouch\soundtouch.lib;$(RootBuildDir)simpleini\simpleini.lib;$(RootBuildDir)libchdr\libchdr.lib;%(AdditionalDependencies) - - diff --git a/src/util/util.vcxproj b/src/util/util.vcxproj index 13173f653..0921e34e6 100644 --- a/src/util/util.vcxproj +++ b/src/util/util.vcxproj @@ -44,6 +44,17 @@ + + + {425d6c99-d1c8-43c2-b8ac-4d7b1d941017} + + + {751d9f62-881c-454e-bce8-cb9cf5f1d22f} + + + {ee054e08-3799-4a59-a422-18259c105ffd} + + {57F6206D-F264-4B07-BAF8-11B9BBE1F455}