Edit

kc3-lang/freetype/Jamfile

Branch :

  • Show log

    Commit

  • Author : Werner Lemberg
    Date : 2016-09-08 09:04:32
    Hash : d2d5968a
    Message : * Version 2.7 released. ======================= Tag sources with `VER-2-7'. * docs/VERSION.TXT: Add entry for version 2.7. * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj, builds/windows/vc2005/index.html, builds/windows/vc2008/freetype.vcproj, builds/windows/vc2008/index.html, builds/windows/vc2010/freetype.vcxproj, builds/windows/vc2010/index.html, builds/windows/visualc/freetype.dsp, builds/windows/visualc/freetype.vcproj, builds/windows/visualc/index.html, builds/windows/visualce/freetype.dsp, builds/windows/visualce/freetype.vcproj, builds/windows/visualce/index.html, builds/wince/vc2005-ce/freetype.vcproj, builds/wince/vc2005-ce/index.html, builds/wince/vc2008-ce/freetype.vcproj, builds/wince/vc2008-ce/index.html: s/2.6.5/2.7/, s/265/27/. * include/freetype/freetype.h (FREETYPE_MINOR): Set to 7. (FREETYPE_PATCH): Set to 0. * builds/unix/configure.raw (version_info): Set to 18:6:12. * CMakeLists.txt (VERSION_MINOR): Set to 7. (VERSION_PATCH): Set to 0. * docs/CHANGES: Updated.

  • Jamfile
  • # FreeType 2 top Jamfile.
    #
    # Copyright 2001-2016 by
    # David Turner, Robert Wilhelm, and Werner Lemberg.
    #
    # This file is part of the FreeType project, and may only be used, modified,
    # and distributed under the terms of the FreeType project license,
    # LICENSE.TXT.  By continuing to use, modify, or distribute this file you
    # indicate that you have read the license and understand and accept it
    # fully.
    
    
    # The HDRMACRO is already defined in FTJam and is used to add
    # the content of certain macros to the list of included header
    # files.
    #
    # We can compile FreeType 2 with classic Jam however thanks to
    # the following code
    #
    if ! $(JAM_TOOLSET)
    {
      rule HDRMACRO
      {
        # nothing
      }
    }
    
    
    # We need to invoke a SubDir rule if the FT2 source directory top is not the
    # current directory.  This allows us to build FreeType 2 as part of a larger
    # project easily.
    #
    if $(FT2_TOP) != $(DOT)
    {
      SubDir  FT2_TOP ;
    }
    
    
    # The following macros define the include directory, the source directory,
    # and the final library name (without library extensions).  They can be
    # replaced by other definitions when the library is compiled as part of
    # a larger project.
    #
    
    # Name of FreeType include directory during compilation.
    # This is relative to FT2_TOP.
    #
    FT2_INCLUDE_DIR ?= include ;
    
    # Name of FreeType source directory during compilation.
    # This is relative to FT2_TOP.
    #
    FT2_SRC_DIR ?= src ;
    
    # Name of final library, without extension.
    #
    FT2_LIB ?= $(LIBPREFIX)freetype ;
    
    
    # Define FT2_BUILD_INCLUDE to point to your build-specific directory.
    # This is prepended to FT2_INCLUDE_DIR.  It can be used to specify
    # the location of a custom <ft2build.h> which will point to custom
    # versions of `ftmodule.h' and `ftoption.h', for example.
    #
    FT2_BUILD_INCLUDE ?= ;
    
    # The list of modules to compile on any given build of the library.
    # By default, this will contain _all_ modules defined in FT2_SRC_DIR.
    #
    # IMPORTANT: You'll need to change the content of `ftmodule.h' as well
    #            if you modify this list or provide your own.
    #
    FT2_COMPONENTS ?= autofit    # auto-fitter
                      base       # base component (public APIs)
                      bdf        # BDF font driver
                      bzip2      # support for bzip2-compressed PCF font
                      cache      # cache sub-system
                      cff        # CFF/CEF font driver
                      cid        # PostScript CID-keyed font driver
                      gzip       # support for gzip-compressed PCF font
                      lzw        # support for LZW-compressed PCF font
                      pcf        # PCF font driver
                      pfr        # PFR/TrueDoc font driver
                      psaux      # common PostScript routines module
                      pshinter   # PostScript hinter module
                      psnames    # PostScript names handling
                      raster     # monochrome rasterizer
                      sfnt       # SFNT-based format support routines
                      smooth     # anti-aliased rasterizer
                      truetype   # TrueType font driver
                      type1      # PostScript Type 1 font driver
                      type42     # PostScript Type 42 (embedded TrueType) driver
                      winfonts   # Windows FON/FNT font driver
                      ;
    
    
    # Don't touch.
    #
    FT2_INCLUDE  = $(FT2_BUILD_INCLUDE)
                   [ FT2_SubDir $(FT2_INCLUDE_DIR) ] ;
    
    FT2_SRC      = [ FT2_SubDir $(FT2_SRC_DIR) ] ;
    
    # Location of API Reference Documentation
    #
    if $(DOC_DIR)
    {
      DOC_DIR = $(DOCDIR:T) ;
    }
    else
    {
      DOC_DIR = docs/reference ;
    }
    
    
    # Only used by FreeType developers.
    #
    if $(DEBUG_HINTER)
    {
      CCFLAGS += -DDEBUG_HINTER ;
    }
    
    
    # We need `include' in the current include path in order to
    # compile any part of FreeType 2.
    #
    HDRS += $(FT2_INCLUDE) ;
    
    
    # We need to #define FT2_BUILD_LIBRARY so that our sources find the
    # internal headers
    #
    CCFLAGS += -DFT2_BUILD_LIBRARY ;
    
    # Uncomment the following line if you want to build individual source files
    # for each FreeType 2 module.  This is only useful during development, and
    # is better defined as an environment variable anyway!
    #
    # FT2_MULTI = true ;
    
    
    # The files `ftheader.h', `internal.h', and `ftserv.h' are used to define
    # macros that are later used in #include statements.  They need to be parsed
    # in order to record these definitions.
    #
    HDRMACRO  [ FT2_SubDir  $(FT2_INCLUDE_DIR) freetype config ftheader.h ] ;
    HDRMACRO  [ FT2_SubDir  $(FT2_INCLUDE_DIR) freetype internal internal.h ] ;
    HDRMACRO  [ FT2_SubDir  $(FT2_INCLUDE_DIR) freetype internal ftserv.h ] ;
    
    
    # Now include the Jamfile in `freetype2/src', used to drive the compilation
    # of each FreeType 2 component and/or module.
    #
    SubInclude  FT2_TOP $(FT2_SRC_DIR) ;
    
    # Handle the generation of the `ftexport.sym' file, which contains the list
    # of exported symbols.  This can be used on Unix by libtool.
    #
    SubInclude FT2_TOP $(FT2_SRC_DIR) tools ;
    
    rule GenExportSymbols
    {
      local  apinames = apinames$(SUFEXE) ;
      local  aheader ;
      local  headers ;
    
      for aheader in [ Glob $(2) : *.h ]
      {
        switch $(aheader)
        {
          case */ftmac.h :
            if ( $(MAC) || $(OS) = MACOSX ) {
              headers += $(aheader) ;
            }
          case *.h : headers += $(aheader) ;
        }
      }
    
      LOCATE on $(1) = $(ALL_LOCATE_TARGET) ;
    
      APINAMES on $(1) = apinames$(SUFEXE) ;
    
      Depends            $(1) : $(apinames) $(headers) ;
      GenExportSymbols1  $(1) : $(headers) ;
      Clean              clean : $(1) ;
    }
    
    actions GenExportSymbols1 bind APINAMES
    {
      $(APINAMES) $(2) > $(1)
    }
    
    GenExportSymbols  ftexport.sym : include/freetype ;
    
    # Test files (hinter debugging).  Only used by FreeType developers.
    #
    if $(DEBUG_HINTER)
    {
      SubInclude FT2_TOP tests ;
    }
    
    rule RefDoc
    {
      Depends  $1 : all ;
      NotFile  $1 ;
      Always   $1 ;
    }
    
    actions RefDoc
    {
      python $(FT2_SRC)/tools/docmaker/docmaker.py
             --prefix=ft2
             --title=FreeType-2.7
             --output=$(DOC_DIR)
             $(FT2_INCLUDE)/freetype/*.h
             $(FT2_INCLUDE)/freetype/config/*.h
    }
    
    RefDoc  refdoc ;
    
    
    # end of top Jamfile