From 371d089a25e670e496afa77fb6757e60ec781484 Mon Sep 17 00:00:00 2001 From: Yehor Avramenko Date: Thu, 26 Mar 2026 13:00:20 +0100 Subject: [PATCH 1/2] Add Public C++ module directories option --- modules/vstudio/_preload.lua | 6 ++++++ modules/vstudio/vs2010_vcxproj.lua | 9 +++++++++ 2 files changed, 15 insertions(+) diff --git a/modules/vstudio/_preload.lua b/modules/vstudio/_preload.lua index d539ded2e..530430661 100644 --- a/modules/vstudio/_preload.lua +++ b/modules/vstudio/_preload.lua @@ -37,6 +37,12 @@ kind = "boolean" } + p.api.register { + name = "publicmoduledirectories", + scope = "config", + kind = "list:string", + } + p.api.register { name = "assemblydebug", scope = "config", diff --git a/modules/vstudio/vs2010_vcxproj.lua b/modules/vstudio/vs2010_vcxproj.lua index d880a8a17..be14a834a 100644 --- a/modules/vstudio/vs2010_vcxproj.lua +++ b/modules/vstudio/vs2010_vcxproj.lua @@ -377,6 +377,7 @@ m.extensionsToDeleteOnClean, m.executablePath, m.allModulesPublic, + m.publicModuleDirectories, m.clangtidy, m.runcodeanalysis } @@ -2099,6 +2100,14 @@ end end + function m.publicModuleDirectories(cfg) + if _ACTION >= "vs2019" then + if cfg.publicmoduledirectories ~= nil then + m.element("PublicModuleDirectories", nil,"%s;$(PublicModuleDirectories)", table.concat(cfg.publicModuleDirectories, ";")) + end + end + end + function m.structMemberAlignment(cfg) local map = { [1] = "1Byte", From a447131d0474e03872def4796df13dbf780bc184 Mon Sep 17 00:00:00 2001 From: Yehor Avramenko Date: Thu, 26 Mar 2026 13:22:01 +0100 Subject: [PATCH 2/2] Add tokens support and additional condition --- modules/vstudio/_preload.lua | 1 + modules/vstudio/vs2010_vcxproj.lua | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/vstudio/_preload.lua b/modules/vstudio/_preload.lua index 530430661..3f82596d3 100644 --- a/modules/vstudio/_preload.lua +++ b/modules/vstudio/_preload.lua @@ -41,6 +41,7 @@ name = "publicmoduledirectories", scope = "config", kind = "list:string", + tokens = true, } p.api.register { diff --git a/modules/vstudio/vs2010_vcxproj.lua b/modules/vstudio/vs2010_vcxproj.lua index be14a834a..ce7d7e606 100644 --- a/modules/vstudio/vs2010_vcxproj.lua +++ b/modules/vstudio/vs2010_vcxproj.lua @@ -2102,8 +2102,8 @@ function m.publicModuleDirectories(cfg) if _ACTION >= "vs2019" then - if cfg.publicmoduledirectories ~= nil then - m.element("PublicModuleDirectories", nil,"%s;$(PublicModuleDirectories)", table.concat(cfg.publicModuleDirectories, ";")) + if cfg.publicmoduledirectories ~= nil and #cfg.publicmoduledirectories > 0 then + m.element("PublicModuleDirectories", nil,"%s;$(PublicModuleDirectories)", table.concat(cfg.publicmoduledirectories, ";")) end end end