代码之家  ›  专栏  ›  技术社区  ›  sum1stolemyname

取决于当前活动项目的条件编译

  •  1
  • sum1stolemyname  · 技术社区  · 14 年前

    我正在为Delphi2010中的一个大型应用程序开发一个新模块。

    我将源组织在一个由两个项目组成的项目组中,一个项目用于构建完整的应用程序,另一个项目用于启动我的测试套件(它与主应用程序共享一些源代码)。

    在初始化一个单元的过程中,我需要根据编译的两个单元中的哪一个采取不同的行动。

    unit MySharedUnit
    var
      flag : TFlagValues;
    
    implementation
    [...]
    
    initialization
    
    if IsTestProject then
      flag := TestValue
    else
      flag := ReleaseValue;
    end. 
    

    目前,我使用 项目定义的环境变量 (仅在 项目的选项 )以决定活动项目。

    我的问题是:

    有没有其他或更优雅的方法来实现这一点,比如内置的define'd值,当测试应用程序应该在发布模式下运行时,不需要我手工修改项目选项?

    1 回复  |  直到 14 年前
        1
  •  6
  •   Toon Krijthe    14 年前

    initialization
    {$IFDEF FULLVERSION}
      flag := ReleaseValue;
    {$ELSE}
      flag := TestValue
    {$ENDIF}
    end.