<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://www.jbkempf.com/blog/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>Yet another blog for JBKempf - Tag - IDE</title>
  <link>http://www.jbkempf.com/blog/</link>
  <atom:link href="http://www.jbkempf.com/blog/feed/tag/IDE/rss2" rel="self" type="application/rss+xml"/>
  <description>This is the blog of Jean-Baptiste Kempf. I will share some info about my life, my works and my VideoLAN work</description>
  <language>en</language>
  <pubDate>Mon, 06 Feb 2012 11:49:19 +0100</pubDate>
  <copyright></copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>VLC and IDE</title>
    <link>http://www.jbkempf.com/blog/post/2009/04/30/VLC-and-IDE</link>
    <guid isPermaLink="false">urn:md5:a8d0c66b7b8b01b0324757b82c706ebf</guid>
    <pubDate>Thu, 30 Apr 2009 08:19:00 +0200</pubDate>
    <dc:creator>Jean-Baptiste Kempf</dc:creator>
        <category>VideoLAN</category>
        <category>Building</category><category>IDE</category><category>Qt4</category><category>QtCreator</category><category>VideoLAN</category><category>VLC</category>    
    <description>    &lt;p&gt;I receive many questions about using an &lt;a href=&quot;http://www.jbkempf.com/blog/tag/IDE&quot;&gt;IDE&lt;/a&gt; to build &lt;a href=&quot;http://www.jbkempf.com/blog/tag/VLC&quot;&gt;VLC&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Usually, the answer is VIM. But I will try to introduce something else today.&lt;/p&gt;


&lt;h2&gt;Needs&lt;/h2&gt;

&lt;p&gt;Yeah, &lt;strong&gt;VIM&lt;/strong&gt; is &lt;strong&gt;TEH awesome&lt;/strong&gt;, but sometimes we would like more. But usually, more is &lt;em&gt;slow&lt;/em&gt;, &lt;em&gt;incomplete&lt;/em&gt; and &lt;em&gt;boring&lt;/em&gt;...&lt;/p&gt;


&lt;p&gt;Would you want an editor with:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;VIM syntax and command,&lt;/li&gt;
&lt;li&gt;Completion that is faster than the one from Eclipse&lt;/li&gt;
&lt;li&gt;Git inclusion&lt;/li&gt;
&lt;li&gt;Doesn't eat all your RAM&lt;/li&gt;
&lt;li&gt;Debuggueur and step-by-step+breakpoints integration like MSVC?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;ins&gt;I guess so!&lt;/ins&gt;&lt;/p&gt;


&lt;p&gt;Believe it or not, there is a solution: &lt;a href=&quot;http://www.qtsoftware.com/products/developer-tools&quot; hreflang=&quot;en&quot;&gt;QtCreator&lt;/a&gt; from Nokia/QtSoftware that I have tested to work with &lt;a href=&quot;http://www.jbkempf.com/blog/tag/VLC&quot;&gt;VLC&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Even if you don't think this will be useful for you, at least read in diagonale the following post.&lt;/p&gt;


&lt;h2&gt;Installation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Take &lt;a href=&quot;http://www.jbkempf.com/blog/tag/QtCreator&quot;&gt;QtCreator&lt;/a&gt; 1.1 (don't take older versions, they won't fit for VLC, or the VIM part will suck...)&lt;/li&gt;
&lt;/ul&gt;

&lt;pre&gt;  &lt;code&gt; `apt-get install qtcreator`&lt;/code&gt; in Debian/Sid&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;Take Qt4.5.1 (I mean it, Qt 4.5.0 is buggy!)&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;Setup&lt;/h2&gt;

&lt;h3&gt;General Setup&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Run QtCreator and launch Tools-&amp;gt;options
&lt;ul&gt;
&lt;li&gt;Activate FakeVim and set ShiftWidth to 4&lt;/li&gt;
&lt;li&gt;Text Editor-&amp;gt;Behaviour, set Tab size at 4&lt;/li&gt;
&lt;li&gt;Text Editor-&amp;gt;Display, enable Text Wrapping and display right margin, and if you like Alexis' vim, Visualize whitespace&lt;/li&gt;
&lt;li&gt;Text Editor, change the colour schemes to match you old editor &lt;img src=&quot;/blog/themes/jbkempf/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Save options.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;VLC Setup&lt;/h3&gt;


&lt;p&gt;For the example, I assume that you build your vlc in a &amp;quot;build&amp;quot; subdir of the source (as xtophe usually gives advice)&lt;/p&gt;


&lt;pre&gt; * File-&amp;gt;New
   Select 'Import of Makefile-based Project'
   &lt;del&gt;&lt;/del&gt;-
   Project Name 'VLC'
   Location '/home/you/vlc' and Choose, Next
   &lt;del&gt;&lt;/del&gt;-
   Let it process... It should take around 1minute
   Finish.&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;EXIT QtCreator... I MEAN it.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Setup Indexation&lt;/h3&gt;

&lt;p&gt;QtCreator will have done VLC.includes VLC.creator, VLC.files and a VLC.config in your vlc/ folder.&lt;/p&gt;


&lt;p&gt;Overwrite the VLC.includes and the VLC.files with the one you can find:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://people.videolan.org/~jb/QtCreator/VLC.files&quot; hreflang=&quot;en&quot;&gt;http://people.videolan.org/~jb/QtCreator/VLC.files&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://people.videolan.org/~jb/QtCreator/VLC.includes&quot; hreflang=&quot;en&quot;&gt;http://people.videolan.org/~jb/QtCreator/VLC.includes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Doing this will gain you some time. Those could be auto-generated one day, I guess...&lt;/p&gt;



&lt;h3&gt;Setup Build&lt;/h3&gt;


&lt;h4&gt;Relaunch QtCreator&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Select Projects (on the left) and select VLC on the list&lt;/li&gt;
&lt;li&gt;Build Settings,
&lt;ul&gt;
&lt;li&gt;Change Build directory to /home/you/vlc/build, using browse&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Run Settings,
&lt;ul&gt;
&lt;li&gt;Add a custom Executable with the blue '+'&lt;/li&gt;
&lt;li&gt;Name it VLC, browse to /home/you/vlc/build/vlc for Executable&lt;/li&gt;
&lt;li&gt;Put -Iqt in Arguments&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Click on Edit on the left. You should see VLC with most useful files.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;Build VLC and launch it.&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;In the Menu, Build and Build All, you should see the Compilation output on the bottom (or by clicking on the left build progressbar)&lt;/li&gt;
&lt;li&gt;In the same menu, Build and Run it, and VLC will launch directly, outputting everything in the Application output.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cool. But that was just a minimum...&lt;/strong&gt;&lt;/p&gt;


&lt;h2&gt;Using it like VIM: Good!&lt;/h2&gt;

&lt;p&gt;Open modules/codec/avcodec/audio.c from the file browser and see... You are using VIM commands to control. You have Visual, Edit and all usual VIM modes!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Completion is triggered with Ctrl+Space and will give you a list. If there is no ambiguition, it is filled.&lt;/li&gt;
&lt;li&gt;. and -&amp;gt; triggers the list of the members of the struct or the class by default.&lt;/li&gt;
&lt;li&gt;After function completions, it will give the type of the arguments.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;F2 will give you access to the function definition where your mouse is.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Debugging it: awesome!&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;You can put breakpoints in the margins near the line numbers. (Like in modules/gui/qt4/main_interface.cpp:100 and 108)&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Now re run it using debug running.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It will stop at your breakpoint and you will have the function call lists (and line numbers) but also pointers values (like p_intf, and this in main_interface.cpp)
&lt;a href=&quot;http://www.jbkempf.com/blog/public/VideoLAN/VLC_Qt_Creator.png&quot;&gt;&lt;img src=&quot;http://www.jbkempf.com/blog/public/VideoLAN/.VLC_Qt_Creator_m.jpg&quot; alt=&quot;http://people.videolan.org/~jb/QtCreator/VLC_Qt_Creator.png&quot; title=&quot;VLC Qt Creator, avr. 2009&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;You can, of course Step In, Step Into and Step Out, resume or stop the code&lt;/p&gt;


&lt;h2&gt;More coolness:&lt;/h2&gt;

&lt;h3&gt;Locate&lt;/h3&gt;

&lt;p&gt;Use the locate search box to find quick declarations:
&lt;code&gt;'m vlc_object_act'&lt;/code&gt; will help you to go quickly to the method declaration, etc...&lt;/p&gt;


&lt;h3&gt;Git&lt;/h3&gt;

&lt;p&gt;Use the Git menu to checkout from within QtCreator.&lt;/p&gt;


&lt;h3&gt;Nota Bene&lt;/h3&gt;

&lt;p&gt;The indexing shouldn't be too long, but could be a bit longer the first time you launch the project!&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;Have fun!&lt;/strong&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>VLC media player Lines of Code</title>
    <link>http://www.jbkempf.com/blog/post/2007/12/07/VLC-media-player-Lines-of-Code</link>
    <guid isPermaLink="false">urn:md5:f1e4d4028a28c51fbe7e704c9da76f97</guid>
    <pubDate>Fri, 07 Dec 2007 22:15:00 +0100</pubDate>
    <dc:creator>Jean-Baptiste Kempf</dc:creator>
        <category>VideoLAN</category>
        <category>IDE</category><category>LOC</category><category>VLC media player</category>    
    <description>    &lt;h3&gt;Numbers&lt;/h3&gt;


&lt;p&gt;VLC has around &lt;strong&gt;600,000&lt;/strong&gt; Lines of code, with:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;312,000&lt;/strong&gt; lines of code in the modules.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;VLC uses a lot of external libraries, which are over &lt;strong&gt;3,020,000&lt;/strong&gt; lines of code....&lt;/p&gt;


&lt;h3&gt;IDE&lt;/h3&gt;

&lt;p&gt;Did you know that almost all VLC developers use VIM as a main editor? :D&lt;/p&gt;</description>
    
    
    
      </item>
    
</channel>
</rss>
