Skip to content

Commit b72fa1d

Browse files
committed
Feature: Add support for:
c.CCpp.Language.LanguageStandard = cpplang_stdcpp17; c.CCpp.General.AdditionalIncludeDirectories = ... Add sub tab for Optimization: c.CCpp.Optimization.Optimization = optimization_Disabled;
1 parent 5ecf7ba commit b72fa1d

3 files changed

Lines changed: 52 additions & 6 deletions

File tree

SolutionProjectModel/ProjectFileTypes.h

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -298,11 +298,55 @@ DECLARE_ENUM(EOptimization, "optimization_",
298298
optimization_ProjectDefault
299299
);
300300

301+
302+
DECLARE_ENUM(ELanguageStandard, "cpplang_",
303+
304+
// ISO C++14 Standard (/std:c++14)
305+
cpplang_stdcpp14,
306+
307+
// ISO C++17 Standard (/std:c++17)
308+
cpplang_stdcpp17,
309+
310+
// ISO C++ Latest Draft Standard (/std:c++latest)
311+
cpplang_stdcpplatest
312+
);
313+
314+
315+
316+
class SPM_DLLEXPORT CCppGeneralConf : public ReflectClassT<CCppGeneralConf>
317+
{
318+
public:
319+
REFLECTABLE(CCppGeneralConf,
320+
321+
// Additional Include Directories, ';' separated list.
322+
(CStringW)AdditionalIncludeDirectories
323+
);
324+
};
325+
326+
class SPM_DLLEXPORT CCppOptimizationConf : public ReflectClassT<CCppOptimizationConf>
327+
{
328+
public:
329+
REFLECTABLE(CCppOptimizationConf,
330+
(EOptimization)Optimization
331+
);
332+
};
333+
334+
class SPM_DLLEXPORT CCppLanguageConf : public ReflectClassT<CCppLanguageConf>
335+
{
336+
public:
337+
REFLECTABLE(CCppLanguageConf,
338+
(ELanguageStandard)LanguageStandard
339+
);
340+
};
341+
342+
301343
class SPM_DLLEXPORT CCppConf: public ReflectClassT<CCppConf>
302344
{
303345
public:
304346
REFLECTABLE(CCppConf,
305-
(EOptimization)Optimization
347+
(CCppGeneralConf)General,
348+
(CCppOptimizationConf)Optimization,
349+
(CCppLanguageConf)Language
306350
);
307351
};
308352

SolutionProjectModel/cppexec/cppexec.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@ class CommandLineArguments : ReflectClassT<CommandLineArguments>
2222
int wmain(int argc, wchar_t** argv)
2323
{
2424
path exePath(argv[0]);
25-
auto dir = weakly_canonical(exePath).parent_path();
25+
auto exeDir = weakly_canonical(exePath).parent_path();
2626
path scriptToRun;
2727

28-
for (auto& pit : directory_iterator(dir))
28+
for (auto& pit : directory_iterator(exeDir))
2929
{
3030
auto& filePath = pit.path();
3131
auto ext = filePath.extension();
@@ -104,13 +104,15 @@ int wmain(int argc, wchar_t** argv)
104104
p.AddFile(scriptToRun.c_str());
105105

106106
p.VisitConfigurations(
107-
[](VCConfiguration& c)
107+
[&](VCConfiguration& c)
108108
{
109109
c.General.IntDir = LR"(obj\$(ProjectName)_$(Configuration)_$(Platform)\)";
110110
c.General.OutDir = LR"(.\)";
111111
c.General.UseDebugLibraries = true;
112112
c.General.LinkIncremental = true;
113-
c.CCpp.Optimization = optimization_Disabled;
113+
c.CCpp.Optimization.Optimization = optimization_Disabled;
114+
c.CCpp.General.AdditionalIncludeDirectories = exeDir.append("SolutionProjectModel").c_str();
115+
c.CCpp.Language.LanguageStandard = cpplang_stdcpp17;
114116
c.Linker.System.SubSystem = subsystem_Windows;
115117
c.Linker.Debugging.GenerateDebugInformation = debuginfo_true;
116118
}

SolutionProjectModel/testCppApp.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ void main(void)
1919
c.General.OutDir = LR"(bin\$(Configuration)_$(Platform)\)";
2020
c.General.UseDebugLibraries = true;
2121
c.General.LinkIncremental = true;
22-
c.CCpp.Optimization = optimization_Disabled;
22+
c.CCpp.Optimization.Optimization = optimization_Disabled;
2323
c.Linker.System.SubSystem = subsystem_Console;
2424
c.Linker.Debugging.GenerateDebugInformation = debuginfo_true;
2525
}

0 commit comments

Comments
 (0)