1

我有以下烘焙文件(WinSparkle.bkl)

toolsets = vs2008 vs2010 vs2012 vs2013;

if ( $toolset == vs2008 )
    SUFFIX = "";
if ( $toolset == vs2010 )
    SUFFIX = "-2010";
if ( $toolset == vs2012 )
    SUFFIX = "-2012";
if ( $toolset == vs2013 )
    SUFFIX = "-2013";

vs2008.solutionfile = WinSparkle$(SUFFIX).sln;
vs2010.solutionfile = WinSparkle$(SUFFIX).sln;
vs2012.solutionfile = WinSparkle$(SUFFIX).sln;
vs2013.solutionfile = WinSparkle$(SUFFIX).sln;

// Common settings:
win32-crt-linkage = static;
archs = x86 x86_64;

defines += _CRT_SECURE_NO_WARNINGS;

// Build binaries compatible with Windows XP (SP3) -- it's still useful for
// installer stuff like WinSparkle.dll
vs2012.option.Configuration.PlatformToolset = v110_xp;
vs2013.option.Configuration.PlatformToolset = v120_xp;

if ( $(config) == Release ) {
    vs2008.option.VCCLCompilerTool.Optimization = 1;
    vs2008.option.VCCLCompilerTool.FavorSizeOrSpeed = 2;
    vs2008.option.VCCLCompilerTool.WholeProgramOptimization = true;
    vs2008.option.VCCLCompilerTool.StringPooling = true;
    vs2008.option.VCLinkerTool.LinkTimeCodeGeneration = 1;

    vs2010.option.Configuration.WholeProgramOptimization = true;
    vs2010.option.ClCompile.Optimization = MinSpace;
    vs2010.option.ClCompile.FavorSizeOrSpeed = Size;
    vs2010.option.ClCompile.WholeProgramOptimization = true;
    vs2010.option.ClCompile.StringPooling = true;
    vs2010.option.ClCompile.FunctionLevelLinking = true;
    vs2010.option.Link.OptimizeReferences = true;
    vs2010.option.Link.EnableCOMDATFolding = true;
    vs2010.option.Link.LinkTimeCodeGeneration = UseLinkTimeCodeGeneration;

    vs2012.option.Configuration.WholeProgramOptimization = true;
    vs2012.option.ClCompile.Optimization = MinSpace;
    vs2012.option.ClCompile.FavorSizeOrSpeed = Size;
    vs2012.option.ClCompile.WholeProgramOptimization = true;
    vs2012.option.ClCompile.StringPooling = true;
    vs2012.option.ClCompile.FunctionLevelLinking = true;
    vs2012.option.Link.OptimizeReferences = true;
    vs2012.option.Link.EnableCOMDATFolding = true;
    vs2012.option.Link.LinkTimeCodeGeneration = UseLinkTimeCodeGeneration;

    vs2013.option.Configuration.WholeProgramOptimization = true;
    vs2013.option.ClCompile.Optimization = MinSpace;
    vs2013.option.ClCompile.FavorSizeOrSpeed = Size;
    vs2013.option.ClCompile.WholeProgramOptimization = true;
    vs2013.option.ClCompile.StringPooling = true;
    vs2013.option.ClCompile.FunctionLevelLinking = true;
    vs2013.option.Link.OptimizeReferences = true;
    vs2013.option.Link.EnableCOMDATFolding = true;
    vs2013.option.Link.LinkTimeCodeGeneration = UseLinkTimeCodeGeneration;
}

// 3rd party library dependencies:
submodule 3rdparty/dependencies.bkl;

shared-library WinSparkle {

    vs2008.projectfile = $(id)$(SUFFIX).vcproj;
    vs2010.projectfile = $(id)$(SUFFIX).vcxproj;
    vs2012.projectfile = $(id)$(SUFFIX).vcxproj;
    vs2013.projectfile = $(id)$(SUFFIX).vcxproj;

    defines += XML_STATIC;
    includedirs += 3rdparty/expat/lib;
    deps += WinSparkle_expat;

    includedirs += 3rdparty/wxWidgets_setup_h 3rdparty/wxWidgets/include;
    deps += WinSparkle_wx;

    libs += comctl32 kernel32 user32 comctl32 rpcrt4 version wininet;

    defines += BUILDING_WIN_SPARKLE;

    // Public API headers:
    headers {
        include/winsparkle.h
        include/winsparkle-version.h
    }

    includedirs += include;

    // Private headers:
    headers {
        src/appcast.h
        src/appcontroller.h
        src/download.h
        src/error.h
        src/settings.h
        src/threads.h
        src/ui.h
        src/updatechecker.h
        src/updatedownloader.h
        src/utils.h
    }

    sources {
        src/appcast.cpp
        src/appcontroller.cpp
        src/dll_api.cpp
        src/dllmain.cpp
        src/download.cpp
        src/error.cpp
        src/settings.cpp
        src/threads.cpp
        src/ui.cpp
        src/updatechecker.cpp
        src/updatedownloader.cpp

        src/winsparkle.rc
    }
}

submodule examples/examples.bkl;

我下载了适用于 Windows 的 bakefile 并安装了它。然后我做了以下

     C:\winsparkle>bakefile -f msvc WinSparkle.bkl
file:///C:/winsparkle/WinSparkle.bkl:2:
parser
error :
Start tag expected, '<' not found

toolsets = vs2008 vs2010 vs2012 vs2013;

^

error: file 'C:\winsparkle\WinSparkle.bkl' is invalid

关于可能出了什么问题的任何建议?

4

1 回答 1

0

如果出于某种原因要重新生成项目,则需要 Bakefile 1.x,而不是 0.2.x:https ://github.com/vslavik/bakefile 。或者只使用存储库中包含的项目。

于 2014-02-04T08:39:43.957 回答