git/contrib/buildsystems/generate
Marius Storm-Olsen 259d87c354 Add scripts to generate projects for other buildsystems (MSVC vcproj, QMake)
These scripts generate projects for the MSVC IDE (.vcproj files) or
QMake (.pro files), based on the output of a 'make -n MSVC=1 V=1' run.

This enables us to simply do the necesarry changes in the Makefile, and you
can update the other buildsystems by regenerating the files. Keeping the
other buildsystems up-to-date with main development.

The generator system is designed to easily drop in pm's for other
buildsystems as well, if someone has an itch. However, the focus has been
Windows development, so the 'engine' might need patches to support any
platform.

Also add some .gitignore entries for MSVC files.

Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-09-18 20:00:42 -07:00

30 lines
1.2 KiB
Perl

#!/usr/bin/perl -w
######################################################################
# Generate buildsystem files
#
# This script generate buildsystem files based on the output of a
# GNU Make --dry-run, enabling Windows users to develop Git with their
# trusted IDE with native projects.
#
# Note:
# It is not meant as *the* way of building Git with MSVC, but merely a
# convenience. The correct way of building Git with MSVC is to use the
# GNU Make tool to build with the maintained Makefile in the root of
# the project. If you have the msysgit environment installed and
# available in your current console, together with the Visual Studio
# environment you wish to build for, all you have to do is run the
# command:
# make MSVC=1
#
# Copyright (C) 2009 Marius Storm-Olsen <mstormo@gmail.com>
######################################################################
use strict;
use File::Basename;
use Cwd;
my $git_dir = getcwd();
$git_dir =~ s=\\=/=g;
$git_dir = dirname($git_dir) while (!-e "$git_dir/git.c" && "$git_dir" ne "");
die "Couldn't find Git repo" if ("$git_dir" eq "");
exec join(" ", ("PERL5LIB=${git_dir}/contrib/buildsystems ${git_dir}/contrib/buildsystems/engine.pl", @ARGV));