diff --git a/build/docs/builddoc.bat b/build/docs/builddoc.bat new file mode 100644 index 0000000000..e2c00dc9bc --- /dev/null +++ b/build/docs/builddoc.bat @@ -0,0 +1 @@ +"cppdoc_cmd.exe" -overwrite -autoview -autoquit -title="0 A.D." -company="Wildfire Games" -hier -insertbr -include-const -include-anonymous -document-preprocessor -comment-format="/**;*;*/;AFTER///;//;///" -classdir=projects -module="cppdoc-standard" -extensions="c,cpp,cxx,cc,h,hpp,hxx" -languages="c=cpp,cc=cpp,cpp=cpp,cs=csharp,cxx=cpp,h=cpp,hpp=cpp,hxx=cpp,java=java" -enable-author=true -enable-deprecations=true -enable-since=true -enable-version=true -file-links-for-globals=true -generate-deprecations-list=true -generate-hierarchy=true -header-background-dark="#ccccff" -header-background-light="#eeeeff" -include-private=true -include-protected=true -index-file-base=index -overview-html=overview.html -reduce-summary-font=true -selected-text-background=navy -selected-text-foreground=white -separate-index-pages=true -show-cppdoc-version=true -show-timestamp=true -summary-html=project.html -suppress-details=false -suppress-frames-links=false -table-background=white -wrap-long-lines=true "..\..\source\graphics" "..\..\source\maths" "..\..\source\ps" "..\..\source\renderer" "..\..\source\scripting" "..\..\source\sound" "..\..\docs\generated\index.html" \ No newline at end of file diff --git a/build/docs/cppdoc_cmd.exe b/build/docs/cppdoc_cmd.exe new file mode 100644 index 0000000000..d04403a9d6 Binary files /dev/null and b/build/docs/cppdoc_cmd.exe differ diff --git a/build/docs/modules/cppdoc-standard.dll b/build/docs/modules/cppdoc-standard.dll new file mode 100644 index 0000000000..1c7a87a6a7 Binary files /dev/null and b/build/docs/modules/cppdoc-standard.dll differ diff --git a/source/tools/autobuild/build.pl b/source/tools/autobuild/build.pl index 191e666d25..eb7cab9f24 100644 --- a/source/tools/autobuild/build.pl +++ b/source/tools/autobuild/build.pl @@ -13,8 +13,10 @@ my $svn_trunk = 'c:\0ad\trunk'; my $temp_trunk = 'c:\0ad\buildtrunk'; my $output_dir = 'c:\0ad\builds'; my $log_dir = 'c:\0ad\autobuild'; +my $doc_out_dir = 'p:\latest'; my $sevenz = '"C:\Program Files\7-Zip\7z.exe"'; +my $junction = 'c:\0ad\autobuild\junction.exe'; # from http://www.sysinternals.com/Utilities/Junction.html #my $vcbuild = '"C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE\vcbuild"'; # except I need to call vcvars32.bat then "vcbuild.exe /useenv", since the VS registry settings don't always exist @@ -68,7 +70,6 @@ if (grep { $_ eq '--commitlatest' } @ARGV) exit(EXIT_NOTCOMPILED); } - ### Update from SVN ### my $svn_output = `svn update --username $username --password $password 2>&1`; @@ -80,10 +81,10 @@ allow_abort(); $svn_output =~ /^(?:Updated to|At) revision (\d+)\.$/m or die; my $svn_revision = $1; -if ($svn_output =~ m~^. (source(?![/\\]tools)|build|libraries)~m) +if ($svn_output =~ m~^. (source(?![/\\]tools(?![/\\]atlas[/\\]GameInterface))|build|libraries)~m) { # The source has been updated. - # ('source' means something in the source, build, or libraries directories, excluding source/tools) + # ('source' means something in the source, build, or libraries directories, excluding source/tools, but including source/tools/atlas/GameInterface) } else { @@ -116,13 +117,22 @@ if (-e "$output_dir\\$svn_revision") ### Copy all the necessary files onto it ### -for (qw(source libraries build)) +# For some directories (which we're going to alter), do a real copy +for (qw(builds)) { `xcopy /e $svn_trunk\\$_ $temp_trunk\\$_\\ 2>&1`; die "xcopy $_: $?" if $?; allow_abort(); } +# For other directories (which we're only going to read), do a 'junction' (like a symbolic link) because it's faster +for (qw(source libraries)) +{ + `$junction $temp_trunk\\$_ $svn_trunk\\$_`; + die "junction $_: $?" if $?; + allow_abort(); +} + ### Create the workspace files ### chdir "$temp_trunk\\build\\workspaces" or die $!; @@ -182,6 +192,21 @@ die $? if $?; `copy $temp_trunk\\binaries\\system\\ps.pdb $output_dir\\temp\\`; die $? if $?; +### Generate the documentation ### + +chdir "$temp_trunk\\build\\docs" or die $!; +`builddoc.bat`; +if ($?) +{ + warn $?; +} +else +{ + ### Store the documentation ### + `rmdir /q /s $doc_out_dir 2>&1`; + `xcopy /e $temp_trunk\\docs\\generated\\*.* $doc_out_dir\\ 2>&1`; +} + ### Store the output permanently ### rename "$output_dir\\temp", "$output_dir\\$svn_revision" or die $!;