<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to MakeItSoConfig</title><link>https://sourceforge.net/p/makeitso/wiki/MakeItSoConfig/</link><description>Recent changes to MakeItSoConfig</description><atom:link href="https://sourceforge.net/p/makeitso/wiki/MakeItSoConfig/feed" rel="self"/><language>en</language><lastBuildDate>Tue, 26 Nov 2013 10:16:38 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/makeitso/wiki/MakeItSoConfig/feed" rel="self" type="application/rss+xml"/><item><title>MakeItSoConfig modified by Anonymous</title><link>https://sourceforge.net/p/makeitso/wiki/MakeItSoConfig/</link><description>&lt;div class="markdown_content"&gt;&lt;h3 id="overview"&gt;Overview&lt;/h3&gt;
&lt;p&gt;To convert some solutions into makefiles, MakeItSo needs extra information given to it that it cannot get from the Visual Studio project and solution files. You can provide this information in a &lt;code&gt;MakeItSo.config&lt;/code&gt; file. &lt;/p&gt;
&lt;p&gt;The &lt;code&gt;MakeItSo.config&lt;/code&gt; file lets you tell the build to: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="" href="../MakeItSoConfig#Add_and_remove_libraries"&gt;Remove specified Windows libraries and use Linux versions instead.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="" href="../MakeItSoConfig#Add_and_remove_library_paths"&gt;Use different library paths for the Linux build.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="" href="../MakeItSoConfig#Add_and_remove_include_paths"&gt;Use different include paths for the Linux build.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="" href="../MakeItSoConfig#Add_and_remove_preprocessor_definitions"&gt;Remove pre-processor definitions, and replace them with others.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="" href="../MakeItSoConfig#Add_and_remove_compiler_flags"&gt;Remove compiler flags and replace them with others.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="" href="../MakeItSoConfig#Specify_an_alternative_compiler"&gt;Specify an alternative compiler.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="" href="../MakeItSoConfig#Convert_a_static_library_to_a_shared-objects_library"&gt;Convert a static library to a shared-objects library.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="" href="../MakeItSoConfig#Ignoring_a_project"&gt;Ignoring a project&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;'Self-contained solutions'&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;MakeItSo can convert many Visual Studio solutions without needing any extra information. If a solution is 'self-contained' then it should be able to be converted without any extra information being needed. A self-contained solution is one which contains all its dependencies (for example libraries) as projects within the solution. &lt;/p&gt;
&lt;p&gt;Some solutions are not self-contained. They link in 'external' libraries that are not built as part of the solution itself. If these are provided as pre-built Windows libraries, you will not be able to build them into a Linux version of the build. You will need to tell the Linux version to use pre-build Linux versions of these external libraries instead. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Add and remove vs. replace&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In most cases, the MakeItSo.config file specifies settings to add or remove rather than specifying replacements. This lets you replace a single Windows library with more than one Linux library if there is not a one-to-one match, for example. Or you could add a preprocessor definition to the Linux build without removing an existing one. &lt;/p&gt;
&lt;h3 id="makeitsoconfig-file-format"&gt;MakeItSo.config file format&lt;/h3&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="nt"&gt;&amp;lt;MakeItSo&amp;gt;&lt;/span&gt;

  &lt;span class="c"&gt;&amp;lt;!-- Settings that apply to all projects in the solution --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;AllProjects&amp;gt;&lt;/span&gt;

  &lt;span class="nt"&gt;&amp;lt;/AllProjects&amp;gt;&lt;/span&gt;

  &lt;span class="c"&gt;&amp;lt;!-- Settings for specific named projects --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;Project&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;App&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;

  &lt;span class="nt"&gt;&amp;lt;/Project&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;/MakeItSo&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Any settings in the &lt;code&gt;&amp;lt;AllProjects&amp;gt;&lt;/code&gt; section apply to all projects in the solution, unless there is a specific &lt;code&gt;&amp;lt;Project name="[name]"&amp;gt;&lt;/code&gt; section for the project. If there are specific settings for a project, it must contain all settings for that project. Specific projects do not inherit properties from the &lt;code&gt;&amp;lt;AllProjects&amp;gt;&lt;/code&gt; section. &lt;/p&gt;
&lt;h3 id="add-and-remove-libraries"&gt;Add and remove libraries&lt;/h3&gt;
&lt;p&gt;If a project links in Windows-specific external libraries you will need to replace these with Linux equivalents. For example: &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;RemoveLibrary&lt;/span&gt; &lt;span class="n"&gt;library&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;TextLibrary.lib&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;AddLibrary&lt;/span&gt; &lt;span class="n"&gt;configuration&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Debug&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;library&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;libTextLibD.a&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;AddLibrary&lt;/span&gt; &lt;span class="n"&gt;configuration&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Release&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;library&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;libTextLibR.a&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id="add-and-remove-library-paths"&gt;Add and remove library paths&lt;/h3&gt;
&lt;p&gt;If you are replacing libraries, you may need to replace library paths as well. For example: &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;RemoveLibraryPath&lt;/span&gt; &lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Externals/TextLibrary/Libs/Windows x86/Debug&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;RemoveLibraryPath&lt;/span&gt; &lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Externals/TextLibrary/Libs/Windows x86/Release&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;AddLibraryPath&lt;/span&gt; &lt;span class="n"&gt;configuration&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Debug&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Externals/TextLibrary/libs/gcc/Debug&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;AddLibraryPath&lt;/span&gt; &lt;span class="n"&gt;configuration&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Release&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Externals/TextLibrary/libs/gcc/Release&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Paths are specified relative to the solution root folder. &lt;/p&gt;
&lt;h3 id="add-and-remove-include-paths"&gt;Add and remove include paths&lt;/h3&gt;
&lt;p&gt;You may want to use different include paths with a Linux build. For example: &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;RemoveIncludePath&lt;/span&gt; &lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Include/WindowsTemplates&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;AddIncludePath&lt;/span&gt; &lt;span class="n"&gt;configuration&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Debug&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Include/gccTemplates&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;AddIncludePath&lt;/span&gt; &lt;span class="n"&gt;configuration&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Release&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Include/gccTemplates&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Paths are specified relative to the solution root folder. &lt;/p&gt;
&lt;h3 id="add-and-remove-preprocessor-definitions"&gt;Add and remove preprocessor definitions&lt;/h3&gt;
&lt;p&gt;You can add and remove preprocessor definitions. For example: &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;RemovePreprocessorDefinition&lt;/span&gt; &lt;span class="n"&gt;definition&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;TO_REPLACE&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;AddPreprocessorDefinition&lt;/span&gt; &lt;span class="n"&gt;configuration&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Debug&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;definition&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;REPLACEMENT_DEBUG&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;AddPreprocessorDefinition&lt;/span&gt; &lt;span class="n"&gt;configuration&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Release&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;definition&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;REPLACEMENT_RELEASE&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;MakeItSo automatically removes &lt;code&gt;WIN32&lt;/code&gt; and adds &lt;code&gt;GCC_BUILD&lt;/code&gt;. &lt;/p&gt;
&lt;h3 id="add-and-remove-compiler-flags"&gt;Add and remove compiler flags&lt;/h3&gt;
&lt;p&gt;You can add and remove compiler flags. For example: &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;RemoveCompilerFlag&lt;/span&gt; &lt;span class="n"&gt;flag&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;-O2&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;AddCompilerFlag&lt;/span&gt; &lt;span class="n"&gt;configuration&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Release&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;flag&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;-O3&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id="specify-an-alternative-compiler"&gt;Specify an alternative compiler&lt;/h3&gt;
&lt;p&gt;By default MakeItSo will use the default installation of these compilers: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;gcc for C files &lt;/li&gt;
&lt;li&gt;g++ for C++ files &lt;/li&gt;
&lt;li&gt;gmcs for C# files &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can specify alternative compilers for any one of these languages. For example: &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;       &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;CSharpCompiler&lt;/span&gt; &lt;span class="n"&gt;compiler&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;dmcs&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;
       &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;CCompiler&lt;/span&gt; &lt;span class="n"&gt;compiler&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;gcc2.1&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;
       &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;CPPCompiler&lt;/span&gt; &lt;span class="n"&gt;compiler&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;g++4.3&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id="convert-a-static-library-to-a-shared-objects-library"&gt;Convert a static library to a shared-objects library&lt;/h3&gt;
&lt;p&gt;By default MakeItSo converts Windows static libraries to Linux static libraries, and Windows DLLs to Linux shared-objects libraries. You can specify that Windows static libraries are converted into Linux shared-objects libraries instead: &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;ConvertStaticLibraryToSharedObjects&lt;/span&gt; &lt;span class="n"&gt;convert&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id="ignoring-a-project"&gt;Ignoring a project&lt;/h3&gt;
&lt;p&gt;You make have a project in the solution that cannot be converted and which should be excluded from the Linux makefiles. You can specify that projects can be ignored in the main part of the config file, ie outside the &lt;code&gt;&amp;lt;AllProjects&amp;gt;&lt;/code&gt; or project-specific sections. For example: &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="nt"&gt;&amp;lt;MakeItSo&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;IgnoreProject&lt;/span&gt; &lt;span class="na"&gt;project=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;App1&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/MakeItSo&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Anonymous</dc:creator><pubDate>Tue, 26 Nov 2013 10:16:38 -0000</pubDate><guid>https://sourceforge.netf7267225f057c3bfbea69eed780a9b2edb709b28</guid></item></channel></rss>