Skip to content

Commit 4b80e91

Browse files
committed
Implemented support for building cppcheck lib into a dll
Updated VS9 solution New VS10 solution that builds cppcheck into a dll used by cli and testrunner. Functional changes and advantages of new solution: - Share code between testrunner and cli; ability to share code with gui as well (not yet implemented) - Files of /lib are no longer compiled twice (should improve build time on single core machines) - Added configuration for building with PCRE support - Executables are build into /bin (/bin/debug in debug mode) folder (Should no longer require rebuild when switching between debug and release) - Completely x64 compatible (contains also x64-debug configuration now)
1 parent 171f570 commit 4b80e91

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+1378
-1015
lines changed

cli/cli.vcxproj

Lines changed: 247 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,247 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<ItemGroup Label="ProjectConfigurations">
4+
<ProjectConfiguration Include="Debug|Win32">
5+
<Configuration>Debug</Configuration>
6+
<Platform>Win32</Platform>
7+
</ProjectConfiguration>
8+
<ProjectConfiguration Include="Debug|x64">
9+
<Configuration>Debug</Configuration>
10+
<Platform>x64</Platform>
11+
</ProjectConfiguration>
12+
<ProjectConfiguration Include="Release|Win32">
13+
<Configuration>Release</Configuration>
14+
<Platform>Win32</Platform>
15+
</ProjectConfiguration>
16+
<ProjectConfiguration Include="Release|x64">
17+
<Configuration>Release</Configuration>
18+
<Platform>x64</Platform>
19+
</ProjectConfiguration>
20+
</ItemGroup>
21+
<PropertyGroup Label="Globals">
22+
<ProjectGuid>{35CBDF51-2456-3EC3-99ED-113C30858883}</ProjectGuid>
23+
<RootNamespace>cli</RootNamespace>
24+
</PropertyGroup>
25+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
26+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
27+
<OutputDirectory>debug\</OutputDirectory>
28+
<ConfigurationType>Application</ConfigurationType>
29+
<IntermediateDirectory>temp\</IntermediateDirectory>
30+
</PropertyGroup>
31+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
32+
<OutputDirectory>debug\</OutputDirectory>
33+
<ConfigurationType>Application</ConfigurationType>
34+
<IntermediateDirectory>temp\</IntermediateDirectory>
35+
</PropertyGroup>
36+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
37+
<OutputDirectory>release\</OutputDirectory>
38+
<ConfigurationType>Application</ConfigurationType>
39+
<IntermediateDirectory>temp\</IntermediateDirectory>
40+
</PropertyGroup>
41+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
42+
<OutputDirectory>release\</OutputDirectory>
43+
<ConfigurationType>Application</ConfigurationType>
44+
<IntermediateDirectory>temp\</IntermediateDirectory>
45+
</PropertyGroup>
46+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
47+
<ImportGroup Label="ExtensionSettings" />
48+
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
49+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
50+
</ImportGroup>
51+
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
52+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
53+
</ImportGroup>
54+
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
55+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
56+
</ImportGroup>
57+
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
58+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
59+
</ImportGroup>
60+
<PropertyGroup Label="UserMacros" />
61+
<PropertyGroup>
62+
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\debug\</OutDir>
63+
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\bin\debug\</OutDir>
64+
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">temp\debug\</IntDir>
65+
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">temp\debug\</IntDir>
66+
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">cppcheck</TargetName>
67+
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">cppcheck</TargetName>
68+
<IgnoreImportLibrary Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</IgnoreImportLibrary>
69+
<IgnoreImportLibrary Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</IgnoreImportLibrary>
70+
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\bin\</OutDir>
71+
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\bin\</OutDir>
72+
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">temp\</IntDir>
73+
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">temp\</IntDir>
74+
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">cppcheck</TargetName>
75+
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">cppcheck</TargetName>
76+
<IgnoreImportLibrary Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</IgnoreImportLibrary>
77+
<IgnoreImportLibrary Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</IgnoreImportLibrary>
78+
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
79+
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
80+
</PropertyGroup>
81+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
82+
<ClCompile>
83+
<AdditionalIncludeDirectories>..\lib;..\externals;..\externals\tinyxml;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
84+
<AssemblerListingLocation>temp\</AssemblerListingLocation>
85+
<BrowseInformation>false</BrowseInformation>
86+
<BufferSecurityCheck>true</BufferSecurityCheck>
87+
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
88+
<ObjectFileName>temp\</ObjectFileName>
89+
<Optimization>Disabled</Optimization>
90+
<PreprocessorDefinitions>CPPCHECKLIB_IMPORT;UNICODE;WIN32;_CRT_SECURE_NO_WARNINGS;WIN32_LEAN_AND_MEAN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
91+
<PreprocessToFile>false</PreprocessToFile>
92+
<ProgramDataBaseFileName>.\</ProgramDataBaseFileName>
93+
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
94+
<SuppressStartupBanner>true</SuppressStartupBanner>
95+
<WarningLevel>Level4</WarningLevel>
96+
<DisableSpecificWarnings>4251</DisableSpecificWarnings>
97+
</ClCompile>
98+
<Link>
99+
<AdditionalDependencies>shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
100+
<AdditionalLibraryDirectories>../externals;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
101+
<GenerateDebugInformation>true</GenerateDebugInformation>
102+
<IgnoreImportLibrary>true</IgnoreImportLibrary>
103+
<SubSystem>Console</SubSystem>
104+
<SuppressStartupBanner>true</SuppressStartupBanner>
105+
<ProgramDatabaseFile>$(TargetDir)cli.pdb</ProgramDatabaseFile>
106+
</Link>
107+
<Midl />
108+
</ItemDefinitionGroup>
109+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
110+
<ClCompile>
111+
<AdditionalIncludeDirectories>..\lib;..\externals;..\externals\tinyxml;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
112+
<BrowseInformation>false</BrowseInformation>
113+
<BufferSecurityCheck>true</BufferSecurityCheck>
114+
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
115+
<Optimization>Disabled</Optimization>
116+
<PreprocessorDefinitions>CPPCHECKLIB_IMPORT;UNICODE;WIN32;_CRT_SECURE_NO_WARNINGS;WIN32_LEAN_AND_MEAN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
117+
<PreprocessToFile>false</PreprocessToFile>
118+
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
119+
<SuppressStartupBanner>true</SuppressStartupBanner>
120+
<WarningLevel>Level4</WarningLevel>
121+
<DisableSpecificWarnings>4251</DisableSpecificWarnings>
122+
<OmitFramePointers>false</OmitFramePointers>
123+
</ClCompile>
124+
<Link>
125+
<AdditionalDependencies>shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
126+
<AdditionalLibraryDirectories>../externals;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
127+
<GenerateDebugInformation>true</GenerateDebugInformation>
128+
<IgnoreImportLibrary>true</IgnoreImportLibrary>
129+
<SubSystem>Console</SubSystem>
130+
<SuppressStartupBanner>true</SuppressStartupBanner>
131+
<ProgramDatabaseFile>$(TargetDir)cli.pdb</ProgramDatabaseFile>
132+
</Link>
133+
<Midl />
134+
</ItemDefinitionGroup>
135+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
136+
<ClCompile>
137+
<AdditionalIncludeDirectories>..\lib;..\externals;..\externals\tinyxml;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
138+
<BrowseInformation>false</BrowseInformation>
139+
<BufferSecurityCheck>false</BufferSecurityCheck>
140+
<Optimization>MaxSpeed</Optimization>
141+
<PreprocessorDefinitions>CPPCHECKLIB_IMPORT;NDEBUG;UNICODE;WIN32;_CRT_SECURE_NO_WARNINGS;WIN32_LEAN_AND_MEAN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
142+
<PreprocessToFile>false</PreprocessToFile>
143+
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
144+
<SuppressStartupBanner>true</SuppressStartupBanner>
145+
<WarningLevel>Level4</WarningLevel>
146+
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
147+
<IntrinsicFunctions>true</IntrinsicFunctions>
148+
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
149+
<OmitFramePointers>true</OmitFramePointers>
150+
<WholeProgramOptimization>false</WholeProgramOptimization>
151+
<DisableSpecificWarnings>4251</DisableSpecificWarnings>
152+
<DebugInformationFormat>
153+
</DebugInformationFormat>
154+
</ClCompile>
155+
<Link>
156+
<AdditionalDependencies>shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
157+
<AdditionalLibraryDirectories>../externals;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
158+
<GenerateDebugInformation>false</GenerateDebugInformation>
159+
<IgnoreImportLibrary>true</IgnoreImportLibrary>
160+
<SubSystem>Console</SubSystem>
161+
<SuppressStartupBanner>true</SuppressStartupBanner>
162+
<OptimizeReferences>true</OptimizeReferences>
163+
<EnableCOMDATFolding>true</EnableCOMDATFolding>
164+
<SetChecksum>true</SetChecksum>
165+
<ProgramDatabaseFile>$(TargetDir)cli.pdb</ProgramDatabaseFile>
166+
</Link>
167+
<Midl />
168+
<ProjectReference />
169+
<ProjectReference />
170+
</ItemDefinitionGroup>
171+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
172+
<ClCompile>
173+
<AdditionalIncludeDirectories>..\lib;..\externals;..\externals\tinyxml;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
174+
<BrowseInformation>false</BrowseInformation>
175+
<BufferSecurityCheck>false</BufferSecurityCheck>
176+
<Optimization>MaxSpeed</Optimization>
177+
<PreprocessorDefinitions>CPPCHECKLIB_IMPORT;NDEBUG;UNICODE;WIN32;_CRT_SECURE_NO_WARNINGS;WIN32_LEAN_AND_MEAN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
178+
<PreprocessToFile>false</PreprocessToFile>
179+
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
180+
<SuppressStartupBanner>true</SuppressStartupBanner>
181+
<WarningLevel>Level4</WarningLevel>
182+
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
183+
<IntrinsicFunctions>true</IntrinsicFunctions>
184+
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
185+
<OmitFramePointers>true</OmitFramePointers>
186+
<WholeProgramOptimization>false</WholeProgramOptimization>
187+
<DisableSpecificWarnings>4251</DisableSpecificWarnings>
188+
<DebugInformationFormat>
189+
</DebugInformationFormat>
190+
<StringPooling>true</StringPooling>
191+
</ClCompile>
192+
<Link>
193+
<AdditionalDependencies>shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
194+
<AdditionalLibraryDirectories>../externals;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
195+
<GenerateDebugInformation>false</GenerateDebugInformation>
196+
<IgnoreImportLibrary>true</IgnoreImportLibrary>
197+
<SubSystem>Console</SubSystem>
198+
<SuppressStartupBanner>true</SuppressStartupBanner>
199+
<OptimizeReferences>true</OptimizeReferences>
200+
<EnableCOMDATFolding>true</EnableCOMDATFolding>
201+
<SetChecksum>true</SetChecksum>
202+
<ProgramDatabaseFile>$(TargetDir)cli.pdb</ProgramDatabaseFile>
203+
</Link>
204+
<Midl />
205+
</ItemDefinitionGroup>
206+
<ItemGroup>
207+
<CustomBuild Include="temp\cppcheck.res" />
208+
</ItemGroup>
209+
<ItemGroup>
210+
<ResourceCompile Include="cppcheck.rc" />
211+
</ItemGroup>
212+
<ItemGroup>
213+
<ClInclude Include="..\externals\tinyxml\tinystr.h" />
214+
<ClInclude Include="..\externals\tinyxml\tinyxml.h" />
215+
<ClInclude Include="..\lib\config.h" />
216+
<ClInclude Include="cmdlineparser.h" />
217+
<ClInclude Include="cppcheckexecutor.h" />
218+
<ClInclude Include="filelister.h" />
219+
<ClInclude Include="pathmatch.h" />
220+
<ClInclude Include="resource.h" />
221+
<ClInclude Include="threadexecutor.h" />
222+
</ItemGroup>
223+
<ItemGroup>
224+
<ProjectReference Include="..\lib\cppcheck.vcxproj">
225+
<Project>{c183db5b-ad6c-423d-80ca-1f9549555a1a}</Project>
226+
<Private>true</Private>
227+
<ReferenceOutputAssembly>true</ReferenceOutputAssembly>
228+
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
229+
<LinkLibraryDependencies>true</LinkLibraryDependencies>
230+
<UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
231+
</ProjectReference>
232+
</ItemGroup>
233+
<ItemGroup>
234+
<ClCompile Include="..\externals\tinyxml\tinystr.cpp" />
235+
<ClCompile Include="..\externals\tinyxml\tinyxml.cpp" />
236+
<ClCompile Include="..\externals\tinyxml\tinyxmlerror.cpp" />
237+
<ClCompile Include="..\externals\tinyxml\tinyxmlparser.cpp" />
238+
<ClCompile Include="cmdlineparser.cpp" />
239+
<ClCompile Include="cppcheckexecutor.cpp" />
240+
<ClCompile Include="filelister.cpp" />
241+
<ClCompile Include="main.cpp" />
242+
<ClCompile Include="pathmatch.cpp" />
243+
<ClCompile Include="threadexecutor.cpp" />
244+
</ItemGroup>
245+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
246+
<ImportGroup Label="ExtensionTargets" />
247+
</Project>

cli/cli.vcxproj.filters

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<ItemGroup>
4+
<Filter Include="Generated Files">
5+
<UniqueIdentifier>{71ED8ED8-ACB9-4CE9-BBE1-E00B30144E11}</UniqueIdentifier>
6+
<Extensions>cpp;c;cxx;moc;h;def;odl;idl;res</Extensions>
7+
</Filter>
8+
<Filter Include="Header Files">
9+
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
10+
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
11+
</Filter>
12+
<Filter Include="Source Files">
13+
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
14+
<Extensions>cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
15+
</Filter>
16+
</ItemGroup>
17+
<ItemGroup>
18+
<CustomBuild Include="temp\cppcheck.res">
19+
<Filter>Generated Files</Filter>
20+
</CustomBuild>
21+
</ItemGroup>
22+
<ItemGroup>
23+
<ResourceCompile Include="cppcheck.rc" />
24+
</ItemGroup>
25+
<ItemGroup>
26+
<ClInclude Include="..\lib\config.h">
27+
<Filter>Header Files</Filter>
28+
</ClInclude>
29+
<ClInclude Include="cmdlineparser.h">
30+
<Filter>Header Files</Filter>
31+
</ClInclude>
32+
<ClInclude Include="threadexecutor.h">
33+
<Filter>Header Files</Filter>
34+
</ClInclude>
35+
<ClInclude Include="cppcheckexecutor.h">
36+
<Filter>Header Files</Filter>
37+
</ClInclude>
38+
<ClInclude Include="filelister.h">
39+
<Filter>Header Files</Filter>
40+
</ClInclude>
41+
<ClInclude Include="pathmatch.h">
42+
<Filter>Header Files</Filter>
43+
</ClInclude>
44+
<ClInclude Include="resource.h">
45+
<Filter>Header Files</Filter>
46+
</ClInclude>
47+
<ClInclude Include="..\externals\tinyxml\tinystr.h">
48+
<Filter>Header Files</Filter>
49+
</ClInclude>
50+
<ClInclude Include="..\externals\tinyxml\tinyxml.h">
51+
<Filter>Header Files</Filter>
52+
</ClInclude>
53+
</ItemGroup>
54+
<ItemGroup>
55+
<ClCompile Include="main.cpp">
56+
<Filter>Source Files</Filter>
57+
</ClCompile>
58+
<ClCompile Include="pathmatch.cpp">
59+
<Filter>Source Files</Filter>
60+
</ClCompile>
61+
<ClCompile Include="threadexecutor.cpp">
62+
<Filter>Source Files</Filter>
63+
</ClCompile>
64+
<ClCompile Include="cppcheckexecutor.cpp">
65+
<Filter>Source Files</Filter>
66+
</ClCompile>
67+
<ClCompile Include="filelister.cpp">
68+
<Filter>Source Files</Filter>
69+
</ClCompile>
70+
<ClCompile Include="cmdlineparser.cpp">
71+
<Filter>Source Files</Filter>
72+
</ClCompile>
73+
<ClCompile Include="..\externals\tinyxml\tinystr.cpp">
74+
<Filter>Source Files</Filter>
75+
</ClCompile>
76+
<ClCompile Include="..\externals\tinyxml\tinyxml.cpp">
77+
<Filter>Source Files</Filter>
78+
</ClCompile>
79+
<ClCompile Include="..\externals\tinyxml\tinyxmlerror.cpp">
80+
<Filter>Source Files</Filter>
81+
</ClCompile>
82+
<ClCompile Include="..\externals\tinyxml\tinyxmlparser.cpp">
83+
<Filter>Source Files</Filter>
84+
</ClCompile>
85+
</ItemGroup>
86+
</Project>

0 commit comments

Comments
 (0)