#9137 closed patch (fixed)
Tools: create_project (Visual Studio/XCode/Code::Blocks)
Reported by: | Templier | Owned by: | lordhoto |
---|---|---|---|
Priority: | normal | Component: | Tools |
Version: | Keywords: | ||
Cc: | Game: |
Description
This in an entry to track progress and patches for the create_project tools (formerly create_msvc).
Goals for this project are: - Separation of project providers into their own source files & some cleanup/abstraction - Support for Code::Blocks - Support for XCode - Support for Intel C++ compiler (VS2008 only at this time) - Support for "Verify" build configuration with Code Analysis turned on (VS2010)
Ticket imported from: #2946946. Ticket imported from: patches/1242.
Attachments (5)
Change History (24)
comment:1 by , 15 years ago
comment:2 by , 15 years ago
Nice :). Assigning to LordHoto, the create_msvc author, to hear what he has to say about this (if anything).
comment:3 by , 15 years ago
Owner: | set to |
---|
comment:4 by , 15 years ago
Actually I'm having not much to say about it, currently a bit less on time and motivation for that.
comment:5 by , 15 years ago
Sorry, I haven't had time to work on it since I opened this entry. While the first few changesets dealing with moving the project providers to separate files could be merged with a little bit of cleanup work, the Code::Blocks and (more so) the XCode project providers still need quite a bit more work.
I don't know when I will have the time to work on it again (probably not until May). If there is a tools GSoc project this year, some code in that tree might end up being useful as a starting point for the selected student though.
comment:6 by , 14 years ago
Added a patch for the create_project tool. It implements the first two items in the list: - Separation of project providers into their own source files & some cleanup/abstraction - Support for Code::Blocks
The work in progress XCode support has been removed so that this patch can committed to trunk.
In addition to the two patches, the following is necessary: - Remove all Code::Blocks generated files from dists/codeblocks - Remove the create_msvc tool
You could also consider removing the devcpp project files. They haven't been updated since 2006 and since there is no support for mutli-project solutions, I won't be adding support for it in create_project.
If you want to see the full history instead of the big patch, it is available here: http://github.com/Littleboy/scummvm-jt/commits/create_project/
comment:7 by , 14 years ago
Updated the patch with support for SCUMMVM_SVN_REVISION generation on build (in debug mode only)
This uses the SubWCRev tool (it has to be in the path) that is included with TortoiseSVN (or can be downloaded separately from https://sourceforge.net/projects/tortoisesvn/files/Tools/ ). An empty include file is also generated when running the create_project tool for fallback. The scummvm_version.h file is then force included (only as part of the scummvm project build).
Drawbacks: it forces the rebuild of the whole scummvm project on a revision change.
Note: While there is support for VS8/9, it hasn't been tested yet.
comment:8 by , 14 years ago
Actually, only one file uses SCUMMVM_SVN_REVISION directly, namely base/internal_version.h -- and that is only to be included by base/version.cpp. Hence, it shouldn't be necessary to rebuild the whole project, this single file would suffice.
Our current Makefile buildsystem passes SCUMMVM_SVN_REVISION via a "-D" command line option, which is not very nice, as it tempts code authors to incorrectly make use of it. I consider this a bug, or at least a misfeature :).
comment:9 by , 14 years ago
Yes, I know about base/internal_version.h
The alternative is to use a template to generate that file with the revision number included, so that only version.cpp is rebuilt, but it comes with its own drawback, namely the build will fail is the SubWCRev tool is not present (unless we detect it when running create_project and only put the proper code in the project files if found).
Note: the reason it needs a full rebuild in the current patch is because of the way Forced Include (or /FI) works: it forces inclusion of the include file for every source file in the project.
It might be possible to use the current method (a pre-build action) with the alternative method I descrived (that would usually use a custom build action on the template file). I will look at it and post an updated patch if it works properly.
comment:10 by , 14 years ago
New patch set with the following updates: - Corrected lib path for new pre-compiled libs - Corrected pre-build event to look for .svn folder and handle errors gracefully - Added post-build event to copy engine data, themes, translation and SDL.dll to build folder
comment:11 by , 14 years ago
Nice! I was just thinking about this patch, looked here, and noticed there was an update (somehow I had missed the mail). BTW, I also tried accessing your git repos, but <http://github.com/Littleboy/scummvm-jt/commits/create_project/> gives me an error, and <http://github.com/Littleboy/scummvm-jt/> shows nothing :(
[ As an update to the earlier discussion: After my last comment here, I went and modified the default buildsystem; now -DSCUMMVM_SVN_REVISION is *only* passed when compiling version.cpp. ]
comment:12 by , 14 years ago
[Looking at your patches, they seem to be made using mercurial, so I guess you moved away from github?]
Some instructions as to how and in which order to apply your patches would be helpful :).
Looking at the "Add" patch, it seems to contain CRLF line endings (inside the new .ccp files, that is), that should ideally be changed to simple unix line endings (LF only). Or maybe there is a way to apply the patch that does this automatically?
by , 14 years ago
Attachment: | TOOLS - Update batch files for new create_project tool.zip added |
---|
1 - Update batch files in dists
by , 14 years ago
Attachment: | TOOLS - Add revision template file.patch added |
---|
3 - Add revision template file
comment:13 by , 14 years ago
Hi Max!
I uploaded the last version of patches. Hopefully this fixes the line endings. The order shouldn't matter, but I numbered them and made sure they cleanly applied in that order.
I indeed switched to Mercurial and I've been using a patch queue to manage all my patches (much easier to deal with than git on windows). I'll try to have a tree up (if I can find a good way to mirror the patch queue) on GitHub or Bitbucket soon.
by , 14 years ago
Attachment: | TOOLS - Add create_project tool.patch added |
---|
4 - Add create_project tool
comment:14 by , 14 years ago
Updated with support for the sword25 engine
(and my patch queue is now visible here: http://bitbucket.org/Littleboy/scummvm-jt )
by , 14 years ago
Attachment: | TOOLS - Remove create_msvc tool and update tools readme.patch added |
---|
2 - Remove create_msvc and update readme
by , 14 years ago
Attachment: | TOOLS - Add analysis build configuration.patch added |
---|
5 - Add support for analysis build configuration
comment:15 by , 14 years ago
Added a patch with support for analysis build configuration.
The VS2010 version has been tested, but not the VS2005/2008 one.
comment:17 by , 14 years ago
Merged into trunk in revisions r41180-48182
Support for Xcode is still unfinished, so I haven't merged it yet. The patch can be found there: http://bitbucket.org/Littleboy/scummvm-jt/src/tip/TOOLS%20-%20Add%20support%20for%20XCode%20to%20create_project.patch
comment:18 by , 14 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
comment:19 by , 6 years ago
Component: | → Tools |
---|
My git tree is now available on GitHub if you want to track progress on this.
The first two items are mostly complete (cleanup & Code::Blocks support) and XCode support is about halfway done.
http://github.com/Littleboy/scummvm-jt/tree/create_project